Итак, самодельный серво декодер с интерфейсом Loconet. Сердцем является Arduino Nano v3 с интерфейсом mini-USB.
Все четыре изготовленных (ЛУТ) устройства успешно работают вместе с Z21. Прошу прощения, для фотосессии пришлось взять "модель" уже в рабочей обстановке )))
Возможности:
- управление 4 сервами, т.е. 4 стрелки (или стационарным расцепным механизмом)
- серводекодеру может быть изменен адрес через CV.
- также через CV можно настроить скорость поворота сервы, режим серв и углы поворота серв для разных положений стрелки.
- сохраняет внесеные CV при отсутствии питания
- при включении питания восстанавливает последнее положение сервы
- обновление прошивки по USB
- без питания 5В и при подключении по USB сервы не работают, т.е. не перегружают USB порт компьютера
- светодиодная индикация положения серв/стрелок
- устройство простое, как топор )))
Требования:
- Для работы декодера и серв необходим источник питания 5В.
- Наличие подключения к сети Loconet.
Описание:
Схема интерфейса Arduino-Loconet взята отсюда.
Поскольку деталей совсем немного и схема совершенно банальна, то номиналы деталей можно увидеть в схеме для sprint layout (см. вложение)
SMD резисторы формата 1206.
Все компоненты, включая сервы, заказывал на ebay.com по критериям: Free shipping, Buy it now и выбирал продавца с "медалькой", т.е. понадежнее.
Внимание:
- RJ11 разъемы должны называться как то так: RJ11 6 Pin 6P6C Right Angle PCB socket
- выбирайте ардуину с пометкой "with bootloader". Иначе вам потребуется другая рабочая ардуина для программирования "окирпиченной", если вы купите ардуину без загрузчика (bootloader-а)
Как использовать:
1. Скачать и установить IDE для Arduino
2. Запустить установленную программу Arduino (Run as Administrattor). Затем скачать и установить библотеку Loconet для Arduino
3. Подключить Arduino Nano v3 кабелем к компьютеру (кабель обычый mini-USB).
4. Выбрать правильный тип Arduino в меню Tools - Board (Arduino Nano), а также правильный COM-порт в меню Tools - Port (как правило он там один)
5. Открыть файл .ino из архива во вложении скомпилировать скетч для ардуины загрузить на плату (кнопка Upload, выглядит как стрелка вправо)
6. Через CV в Loconet настроить корректные углы поворота для серв. Для Z21 использую прогу Z21_Maintenance
Программирование CV:
Для начала программирования достаточно считать один из CV. Далее можно записывать в CV необходимые значения.
В один момент времени можно программировать только одно такое устройство, поэтому после завершения программирования CV нажмите кнопку Reset на Arduino Nano(кнопка там одна, перепутать невозможно)
CV общие:
CV0 - адрес устройства (после смены нажать Reset на Arduino). Адреса стрелок, соответственно, идут по нарастанию, начиная с адреса СV0. Например, CV0=20. Адрес первой стрелки 20, адрес второй - 21, третьей -22, четвертой - 23. (по умолчанию CV0=10)
CV1 - 1...10. Скорость повотота сервы. (по умолчанию 1)
CV2 - 0 или 1. Режим сервы. 0-отключать серву после перевода стредки, 1-не отключать (возможно появления жужжания на серве, т.к. она будет поддерживать нужный угол поворота, даже при внешнем воздействии). (по умолчанию 0)
CV3 - 0 или 1. Выдавать или нет отладочную информацию с Arduino. (по умолчанию 1)
CV для серв:
CV4 - Стрелка 1. Прямо
CV5 - Стрелка 1. В сторону
CV6 - Стрелка 2. Прямо
CV7 - Стрелка 2. В сторону
CV8 - Стрелка 3. Прямо
CV9 - Стрелка 3. В сторону
CV10 - Стрелка 3. Прямо
CV11 - Стрелка 3. В сторону
Внимание 1: после завершения установки любых CV на устройстве надо нажать кнопку Reset на Arduino. Это завершит процесс программирования устройства, т.к. программировать можно только одно устройство в один момент. В противном случае CV будут записываться одновременно в несколько устройств.
Внимание 2: если изменить в файле .ino номер версии прошивки (EEPROM_VERSION), то при следующем запуске во все CV вернутся значения по умолчанию. Поэтому рекомендую сразу после настройки углов серв записать полученные значения на бумаге и сохранить в надежном месте.
p.s. потенциальные возможности:
- реакция на сообщения сети локонет: лок. декодеры, стрелочные декодеры, детекторы занятости. например, указанный в CV датчик занятости сработал - стрелка перевелась и т.д.
- отправка тех же типов сообщений в сеть локонет. например, если стрелка в положении прямо, то имтировать занятось участка (адрес блока указан в CV)
- управление светофорами
- управление анимированными деталями макета