Arduino Mega Server

Модератор: Alex

arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение arturmon » Пн июн 29, 2015 3:40 pm

Alex писал(а):>
Спасибо, как буду разбираться с этим модулем обязательно посмотрю ваш пример. Я не стал засовывать ПИР в цикл потому, что для каждого ПИРа нужна индивидуальная реакция и код получается ещё больше.
вот почти готовая функция которая требует только номер пира (чуть чуть допилить) и будет возвращать значение. тоесть если нужна массавая обработка пира то цикл в помощь, а так наоборот получается довольно гибкая функция.
По поводу кода...много статики (( переписывать придется индивидульано действительно, я тоже раньше что то подобное делал хотел как раз переехать на due )) из-за нехватки памяти и необходимой гибкости.
предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками :roll:
Про printf я имел ввиду
например:

Код: Выделить всё

Serial.print("Connect to Laurent... "); 
заменить на

Код: Выделить всё

printf("Connect to Laurent... "); 
прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

вот немного переработал функцию пира для возврата значения
СпойлерПоказать

Код: Выделить всё

#define pirNumber 6
int pirPin[pirNumber]={22,23,24,25,26,30};
boolean pirState[pirNumber];
boolean pir[pirNumber];

void pirsInitX() {
for (int x = 0; x < pirNumber; x++)
  {
    pirState[x] = LOW;
    pir[x] = 0;
    pinMode (pirPin[x], INPUT);
  }
modulPirs = 1;    
}


// вызов функции pirsWorksX (x);
// вызов с присвоением boolean x = pirsWorksX (x);
// возвращает значение pirState[Pin];
boolean pirsWorksX(boolean Pin) {
  pir[Pin] = digitalRead(pirPin[Pin]);
  if (pir[Pin] == HIGH) { 
    if (pirState[Pin] == LOW) {
      printf("Detect motion STD");
      pirState[Pin] = HIGH;
    }
  } else {
    if (pirState[Pin] == HIGH){
      printf("End motion STD");
      pirState[Pin] = LOW;
    }
  }
  return pirState[Pin];
}



Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июн 29, 2015 4:28 pm

> предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками

Это как? Что-то я не понял. У меня есть другая идея. Стандартизировать «публичные» переменные модулей. У меня есть 3 разные реализации модулей температуры — идея в том, чтобы выбирать реализацию при компиляции — хочешь «длинный код», хочешь с циклами. А проект компилируется корректно с любым модулем.

> Про printf я имел ввиду

И что, простая замена Serial.print на printf прокатит и сэкономит память? Очень интересно. Если это так, то нужно всё поменять.

> вот немного переработал функцию пира для возврата значения

Проблема: там, где находится

 printf("Detect motion STD"); (printf("End motion STD"); )

у каждого пира может находиться произвольный и объёмный код. Это _индивидуальная_ реакция на событие.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июн 29, 2015 5:10 pm

> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

Попробовал заменить сериал на printf

Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.

Так что...
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение arturmon » Пн июн 29, 2015 5:56 pm

Alex писал(а):> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

Попробовал заменить сериал на printf

Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.

Так что...
вот тут описывается одна из альтернатив сериала
http://www.utopiamechanicus.com/article ... ial-print/
За это сообщение автора arturmon поблагодарил:
Alex (Пн июн 29, 2015 7:41 pm)
Рейтинг: 1.16%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июн 29, 2015 7:41 pm

Пять баллов вам, arturmon и плюс в карму. Это работает! Если не будет глюков, то просто супер.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июн 29, 2015 9:49 pm

Прошелся по скетчу и освободил 630 (!) байт памяти (почти 10%). Ещё бы освободить длинные строки, формирующие буффер (sprintf).
arturmon82
Сообщения: 28
Зарегистрирован: Сб июн 06, 2015 6:04 pm
Благодарил (а): 9 раз
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение arturmon82 » Вт июн 30, 2015 1:26 am

Выложил на гит хаб можем теперь дружно разработывать и заниматься улучшением )) завтра ссылку кину, надеюсь что будет много желающих развивать данный проект.
За это сообщение автора arturmon82 поблагодарили (всего 2):
Alex (Вт июн 30, 2015 7:41 am) • braserlaky (Ср янв 27, 2016 10:11 am)
Рейтинг: 2.33%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт июн 30, 2015 7:40 am

Супер. Поздравляю всех с выходом на геостационарную орбиту :)

Ещё желательно лёгенькую инструкцию как это грамотно делать на гитхабе (для парней из Айовы, вроде меня). :)

Или ссылку где расписаны простым языком принципы совместной работы на гитхаб.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт июн 30, 2015 8:12 am

Очередной вопрос. Яваскрипт шлёт запросы Ардуине и они мониторятся через сериал. Всё ок. Закрываем браузер, а запросы... продолжают сыпаться (судя по сериалу) ещё несколько минут.

Вопрос. Откуда они берутся, если браузер закрыт?! Это что, какой-то буфер или как? И что за буфер — операционной системы или где?
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение arturmon » Вт июн 30, 2015 12:13 pm

вот обещанная ссылка )) надеюсь на дружный и плодотворный труд ;)
https://github.com/arturmon/Arduino-Mega-Server-
Ответить