Перейти к содержимому

Open

Фотография
* * * * * 17 Голосов

Аква-контроллер от Олега


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7638

#21 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 11 Февраль 2013 - 17:59

Кстати там возможно резистор уже запаян на плате - надо Олега спрашивать, или просто подключиться и проверить работу датчиков - ничего не сгорит, это подтягивающий резистор.
  • BARS и Bishob это нравится
С уважением, Сергей Таранченко

#22 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 11 Февраль 2013 - 18:02

Во... и я ПРО ЭТО :biggrin: Будем ждать что ответит...Cегодня БП поправим и попробую. :) :wink:

#23 mixzt

mixzt

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 3 150
  • Меня зовут:Михаил
  • Откуда:Ивантеевка, МО

Отправлено 11 Февраль 2013 - 18:36

Кстати там возможно резистор уже запаян на плате - надо Олега спрашивать, или просто подключиться и проверить работу датчиков - ничего не сгорит, это подтягивающий резистор.


Запаян.

#24 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 11 Февраль 2013 - 18:40

СПС...я тоже вроде от него такое слышал :good:

#25 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 11 Февраль 2013 - 22:32

Не так... это так я раньше хотел, до получения шилда Олега.
А где в посте 3 указан резистор? :ah:
Про номера на АЛ читал в темке...


Раз не указан - значит не нужен, все что можно я в плату втащил. -:)

Сергей- я помню тот ваш компьютер. Но на сегодня получается что цена контроллера сравнима с ценой 1-2 коралов, т.е это не такая уж и существенная сумма.
Я согласен с Кареном что в высоко висящем светильнике - экран не очень то и лепится, но если монтировать в крышку -то тач наилучшее решение. И симпатично, и кнопок не надо.
И в качестве DIY -такое проще поставить одно квадратное отверстие и проблема решена.
В конце концов одну и туже плату, если подумать хорошо, можно паять в разных версиях
тач
тач + блютус
блютус

Лично у меня с блютусом както не сложилось. Аква в одной комнате, компьютер в другой.
Рядовой зуб недотягивает и антенны не очень помогают. Поэтому экран проще.
Мой знакомый, не найдя место для этого контролера в своем "сверхплотном" светильнике просто поставил его в тумбу, и протянул тонкий кабель управления в светильник, да и все.
все. Ну и есть еще один момент, утилиту то под винду ктото написать должен. Я не могу, не мое это.

#26 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 12 Февраль 2013 - 09:54

Я не могу, не мое это.

Ну если опишешь протокол обмена с контроллером ....... :)

И в качестве DIY -такое проще поставить одно квадратное отверстие и проблема решена.

Если без экрана, то и это отверстие не нужно. :)

одну и туже плату, если подумать хорошо, можно паять в разных версиях

С точки зрения производства (а у меня все мои разработки изготавливают на заводе) проще одна плата.
Блютуз можно сделать отдельным небольшим модулем и подключать отдельно, тем более что если корпус металлический, то его нужно обязательно выносить за пределы корпуса (на шлейфе в 4 провода).
Если есть свободный, выведенный на разъемы UART порт контроллера, то можно вообще сделать многофункционалку - либо блютуз (а это по сути UART радиоудлиннитель) либо к USB компа через переходник USB-UART. Программа от этого не меняется.
Все что нужно от тебя, это запрограммировать в контроллере управление через UART и дать описание команд (чтение-запись). Проще всего это делется так:
Выделяется область EEPROM в которой хранятся все переменные настройки, контроллер читает их оттуда в цикле и в соответствии с их значениями работает. Через UART идут только две команды - считать эту область и записать ее. Ну а на компе просто экранный интерфейс.
Где-то так. Карен наверняка что-то еще умное подскажет :)
Неплохо бы еще иметь возможность загрузки программы контроллера через UART, чтобы можно было легко переписывать ее при выходе новых версий.
С уважением, Сергей Таранченко

#27 Карен

Карен

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 3 905
  • Откуда:Камчатка

Отправлено 12 Февраль 2013 - 15:49

Выделяется область EEPROM в которой хранятся все переменные настройки, контроллер читает их оттуда в цикле и в соответствии с их значениями работает. Через UART идут только две команды - считать эту область и записать ее. Ну а на компе просто экранный интерфейс.

Нет, это слишком медленно, каждый раз считывать всю область. У меня работает примерно так.
1. Контроллер сам по своей инициативе никогда никуда ничего не посылает.
2. Постоянно мониторится буфер приема, если там появились данные, проверяем команда это или нет (на предмет фильтрации мусора), если команда, то передаем ее интерпретатору - длинный switch:

void CommandInterpret(unsigned char CommandID){
StartResponce(CommandID);// отправка заголовка ответа
switch (buf[0]){
case READ_TIME :
PutInteger(Sec);
PutInteger(Min);
PutInteger(Hour);

case WRITE_TIME :
//получаем 6 байт: hhmmss (hour min sec)
............
case READ_DIMMER_EERPOM : //читаем почасовую яркость одного канала
if (buf[1]<4) //buf[1] = номер канала
PutBufferEEPROM(EEPROM_Dim_Array[buf[1]],24);
else putchar('0');
break;

case WRITE_DEVICE_NAME :
... и так далее, еще много разных команд на запись и на чтение
}
StopResponce(); // конец ответа

}

К примеру, хотим прочитать текущее время светильника - посылаем команду (байт) READ_TIME и в ответ ожидаем получить три числа - секунды, Минуты, часы.
Хотим записать новое время в светильник - посылаем байт WRITE_TIME и еще 3 двухбайтовых числа - секунды, Минуты, часы.
Ну и так далее, если команда на изменение чего-то, что храниться в EEPROM - то полученные данные сразу пишутся в EEPROM и одновременно в рабочую переменную, которая используется в программе.

Короче говоря, все что надо от программы микроконтроллера - это написать функцию с длинным switch где описать все возможные действия на все получаемые команды - это все очень несложно и легко читаемо.
Наверное эта функция (для начала) может повторять все те же действия, которые делаются в ответ на тачскрин.
А прогу под винду сделать имея такой интерфейс в контроллере уже не проблема. Если возьмешь за основу мою систему команд, то можно сделать на основе моего ЛедКонтроллера, только интерфейс переделать в некоторой степени, а сам движок останется тем же (он отлажен и работает отлично).
Самодельные тесты: NO3, NO2, PO4, Si, KH, Ca, Mg.
от крипта...

#28 Карен

Карен

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 3 905
  • Откуда:Камчатка

Отправлено 12 Февраль 2013 - 15:53

Неплохо бы еще иметь возможность загрузки программы контроллера через UART, чтобы можно было легко переписывать ее при выходе новых версий.

Это уже почти есть - по родному USB шнурку, без среды Ардуино (чтоб пользователям не заморачиваться) любой hex фал можно записать в процессор используя его родной ардуиновский загрузчик. Это все можно встроить в управляющую программу под виндовс.
Самодельные тесты: NO3, NO2, PO4, Si, KH, Ca, Mg.
от крипта...

#29 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 12 Февраль 2013 - 17:37

Нет, это слишком медленно,

Я не писал быстро, я писал проще всего :)
В реале да, так и есть. Первые два байта - команда (RT,WT,RE, WE, ......), дальше чтение N байт в зависимости от команды.
Ну и последний байт - Q, конец команды, но это можно и не использовать.
Далее в программе идет:
Cmd = Buffer[0]+Buffer[1];
Case Cmd:
RT:.............
WT:...........
Ну и так далее.
Для задачи параметров, хранимых в EEPROM (зачем дублировать их переменными в программе ?) командой RW записываются N байт начиная с Х адреса, т.е. команда выглядит так:
RW08000102030405060708Q
С уважением, Сергей Таранченко

#30 oleg_il

oleg_il

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 711
  • Откуда:Israel

Отправлено 12 Февраль 2013 - 23:38

Нет Сергей.
Так не надо. Любая команда принимается в буфер, в ram, благо места там предостаточно. Вначале команда проверяется на "исправность"
чексум, хедер, трейлер - неважно, по степени фантазии автора. А потом уже анализируется типа как указал Карен, потом уже на исполнение.
Это и значительно быстрее, и надежнее. Всегда можно дать запрос на повтор команды в случае ошибки, а потом уже корежить еепром. :ah:

Это уже почти есть - по родному USB шнурку, без среды Ардуино (чтоб пользователям не заморачиваться) любой hex фал можно записать в процессор используя его родной ардуиновский загрузчик. Это все можно встроить в управляющую программу под виндовс.

Карен, я не уверен что все так просто. Ты написал ехе для прожига с использованием функций avrdude.
Я сделал тоже самое написав bat файл к avrdude. И радостный дал его двум человекам чтобы мне не морочили головы с прошивками.
Это зараза у них не заработала. Дудка протребовала микрософт net и еще чтото. Короче по телефону я с ними бился пару часов и конце-концов пришлось перебросить всю сотню мегабайт ардуины.
Так что отдельную незевисимую утилиту я найти не сумел. Причем проверять работоспособность этого надо на "чистом" компе.
Такая утилита весьма пригодилась-бы.

А прогу под винду сделать имея такой интерфейс в контроллере уже не проблема. Если возьмешь за основу мою систему команд, то можно сделать на основе моего ЛедКонтроллера, только интерфейс переделать в некоторой степени, а сам движок останется тем же (он отлажен и работает отлично).

Перетрем в личке. потребность есть и большая, могобыть. :biggrin:

#31 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 13 Февраль 2013 - 10:15

Любая команда принимается в буфер, в ram, благо места там предостаточно. Вначале команда проверяется на "исправность"
чексум, хедер, трейлер - неважно, по степени фантазии автора. А потом уже анализируется типа как указал Карен, потом уже на исполнение.
Это и значительно быстрее, и надежнее. Всегда можно дать запрос на повтор команды в случае ошибки, а потом уже корежить еепром.

Ну а я как написал ? Buffer[] это же не EEPROM, это оперативка. Запись в EEPROM идет после приемки команды и ее разбора. Только зачем при этом хранить полученные настройки в EEPROM и в переменных в памяти я не пойму. Не хочется лишний раз писать в EEPROM, так можно сделать проверку перед записью на совпадение настроек, предназаначенных для записи и уже хранащихся в EEPROM.

Карен, я не уверен что все так просто. Ты написал ехе для прожига с использованием функций avrdude.

У Карена в его контроллере собственный загрузчик, который может загружать программу по UART, если я о том.
..................................
Честно, если учесть, что Ардуино это собственно Атмега в базовом включении с несколькими расширениями, то не вижу смысла его (Ардуино) применять. Для разработчика очень удобно, в серии - удорожание конструкции, т. к. не все расширения Ардуино нужны. Но это ИМХО.
С уважением, Сергей Таранченко

#32 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 13 Февраль 2013 - 11:13

...Я сделал тоже самое написав bat файл к avrdude. И радостный дал его двум человекам чтобы мне не морочили головы с прошивками.
Это зараза у них не заработала. Так что отдельную незевисимую утилиту я найти не сумел. Причем проверять работоспособность этого надо на "чистом" компе.
Такая утилита весьма пригодилась-бы.

У меня (как показывал на АЛ) "зараза" :biggrin: вроде как работала... на рабочей Arduino batы вроде и читали и писали, но позавчера, после первого серьезного вылета (не удачно как-то снял экран), востановить старые настройки не удалось.
Пришлось прошить исходник и опять долго и муторно все настраивать. ;)

#33 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 13 Февраль 2013 - 11:42

опять долго и муторно все настраивать

Чтобы этого не было делается предварительный сброс настроек на внешний носитель (в файл) и затем их загрузка в контроллер.
С уважением, Сергей Таранченко

#34 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 13 Февраль 2013 - 11:49

Пока просто для интереса... нашел такую схему подключения Bluetooth:
connectionBluetooth module wiring.jpg
Bluetooth module wiring

На Шилде:
P25.JPG P25_1.JPG
GND вижу(Pin1), а в остальном "темному" :ah: покажите... какие пины на шилде соответствуют 5V(или можно 3,3В), RXD и TXD? :)

#35 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 13 Февраль 2013 - 11:51

Чтобы этого не было делается предварительный сброс настроек на внешний носитель (в файл) и затем их загрузка в контроллер.

Это обсуждалось... но вроде так и не нашли приемлимого быстрого способа (или подскажи если знаешь) :)

#36 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 13 Февраль 2013 - 11:53

Быстро это как ? У меня это пара секунд. Быстрее надо ?
Скорость порта 19200.
Блютуз + Ардуино
  • Boris.Kirilov это нравится
С уважением, Сергей Таранченко

#37 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 13 Февраль 2013 - 11:56

Да НЕ...cкорее КАК? :mail:
При чем здесь "Скорость порта" :)

#38 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 13 Февраль 2013 - 12:01

А зачем ? Эта операция делается один раз, после всех настроек.
Быстрее - повышать скорость передачи.
С уважением, Сергей Таранченко

#39 Александр Авдеев

Александр Авдеев

    Продвинутый пользователь

  • Авдеевы
  • PipPipPip
  • Cообщений: 16 541
  • Меня зовут:Александр
  • Откуда:Ухта, Республика Коми

Отправлено 13 Февраль 2013 - 12:08

Мне не надо быстрее... ЧЕМ делается операция (какой прогой)?
Есть у меня например AVR8 Burn....ею можно?
з.ы. Мы наверно не поймем друг друга... у меня Arduino :(

#40 Starcomputer

Starcomputer

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • Cообщений: 2 164
  • Меня зовут:Сергей
  • Откуда:Донецк, ДНР

Отправлено 13 Февраль 2013 - 12:17

Аааа. Понятно.
Нет, нужна своя программа, чужая тут не подойдет скорее всего.
Хотя поскольку Ардуино можно программировать, в т.ч. и EEPROM, то значит можно его и считать и сохранить. Это наверно и AVR8 Burn может.
Далее вопрос к Олегу.
Но даже если программа работает с переменными и считывает EEPROM только в момент старта, то надо сохранить EEPROM, потом зашить его заново и рестартануть контроллер.
Все это в том случае, если ВСЕ установки хранятся в EEPROM ( ну или и в памяти и в EEPROM, последнее обязательно).
С уважением, Сергей Таранченко




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

Ветка управляется: