Страница 5 из 326
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 3:40 pm
arturmon
Alex писал(а):>
Спасибо, как буду разбираться с этим модулем обязательно посмотрю ваш пример. Я не стал засовывать ПИР в цикл потому, что для каждого ПИРа нужна индивидуальная реакция и код получается ещё больше.
вот почти готовая функция которая требует только номер пира (чуть чуть допилить) и будет возвращать значение. тоесть если нужна массавая обработка пира то цикл в помощь, а так наоборот получается довольно гибкая функция.
По поводу кода...много статики (( переписывать придется индивидульано действительно, я тоже раньше что то подобное делал хотел как раз переехать на due )) из-за нехватки памяти и необходимой гибкости.
предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками
Про printf я имел ввиду
например:
заменить на
прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.
вот немного переработал функцию пира для возврата значения
Код: Выделить всё
#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];
}
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 4:28 pm
Alex
> предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками
Это как? Что-то я не понял. У меня есть другая идея. Стандартизировать «публичные» переменные модулей. У меня есть 3 разные реализации модулей температуры — идея в том, чтобы выбирать реализацию при компиляции — хочешь «длинный код», хочешь с циклами. А проект компилируется корректно с любым модулем.
> Про printf я имел ввиду
И что, простая замена Serial.print на printf прокатит и сэкономит память? Очень интересно. Если это так, то нужно всё поменять.
> вот немного переработал функцию пира для возврата значения
Проблема: там, где находится
printf("Detect motion STD"); (printf("End motion STD"); )
у каждого пира может находиться произвольный и объёмный код. Это _индивидуальная_ реакция на событие.
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 5:10 pm
Alex
> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.
Попробовал заменить сериал на printf
Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.
Так что...
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 5:56 pm
arturmon
Alex писал(а):> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.
Попробовал заменить сериал на printf
Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.
Так что...
вот тут описывается одна из альтернатив сериала
http://www.utopiamechanicus.com/article ... ial-print/
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 7:41 pm
Alex
Пять баллов вам, arturmon и плюс в карму. Это работает! Если не будет глюков, то просто супер.
Re: Arduino Mega Server
Добавлено: Пн июн 29, 2015 9:49 pm
Alex
Прошелся по скетчу и освободил 630 (!) байт памяти (почти 10%). Ещё бы освободить длинные строки, формирующие буффер (sprintf).
Re: Arduino Mega Server
Добавлено: Вт июн 30, 2015 1:26 am
arturmon82
Выложил на гит хаб можем теперь дружно разработывать и заниматься улучшением )) завтра ссылку кину, надеюсь что будет много желающих развивать данный проект.
Re: Arduino Mega Server
Добавлено: Вт июн 30, 2015 7:40 am
Alex
Супер. Поздравляю всех с выходом на геостационарную орбиту
Ещё желательно лёгенькую инструкцию как это грамотно делать на гитхабе (для парней из Айовы, вроде меня).
Или ссылку где расписаны простым языком принципы совместной работы на гитхаб.
Re: Arduino Mega Server
Добавлено: Вт июн 30, 2015 8:12 am
Alex
Очередной вопрос. Яваскрипт шлёт запросы Ардуине и они мониторятся через сериал. Всё ок. Закрываем браузер, а запросы... продолжают сыпаться (судя по сериалу) ещё несколько минут.
Вопрос. Откуда они берутся, если браузер закрыт?! Это что, какой-то буфер или как? И что за буфер — операционной системы или где?
Re: Arduino Mega Server
Добавлено: Вт июн 30, 2015 12:13 pm
arturmon
вот обещанная ссылка )) надеюсь на дружный и плодотворный труд
https://github.com/arturmon/Arduino-Mega-Server-