DCC++ - командная станция на Arduino без пайки
Добавлено: Пт янв 01, 2016 12:51 pm
Всех с Новым Годом!
Где-то год назад захотел попробовать цифру, посмотрел на ценники и ужаснулся. Причем не только ценам, но и ограничением тех или иных систем и доплатой за каждый чих. В результате взял задёшево старый Lokmaus2, чтобы попробовать и определиться, определился, что хочу иметь возможность программировать CV больше, чем 99, одновременное управление парой-тройкой поездов, желательно, не вставая с дивана и возможность подключения к компьютеру. При этом не хочу платить за это более 50 евро и, тем более, получать в нагрузку закрытые протоколы, мелкий шрифт в инструкциях и обещания производителей допилить поддержку чего-либо позднее.
Как ни странно, нашёл ответ для всех моих хотелок, даже с запасом на будущие хотелки. DCC++ - это командная станция и бустер на 1.5 А на основе Arduino со свободно распространяемым кодом. Минимально необходимое железо - Arduino UNO или Mega 2560 + Motor Shield (на L298P) + блок питания на 12-15 В. К компьютеру подключается по USB (serial communication). При желании можно использовать Bluetooth модуль для ардуино и, таким образом, избавиться от проводов. Если в качестве мозгов использовать Mega 2560, то можно добавить ethernet shield (w5100). И ничего не надо паять. В случае использования китайских модулей всё это укладывается бюджет с большим запасом.
Итак, что мы имеем за 20 евро (Mega + Motor Shield, БП найдётся в закромах):
- 12 локомотивов в одновременной работе (на Arduino Mega можно в коде задать в пару раз больше)
- 128 скоростей. Это может быть проблемой, если в хозяйстве есть декодеры на 14 скоростей. Но вряд ли таких много.
- до 28 функций декодера
- программирование на макете + программирование и чтение CV на пути для программирования
- поддержка аксессуарных декодеров
- Мониторинг потребляемого тока. В коде порог отключения питания стоит на ~ 1А, можно увеличить, если БП и Motor Shield позволяют.
- Не используемые для генерации сигнала DCC выводы Arduino (8 для UNO и штук 40-50 для Mega) можно использовать как входы для сенсоров или цифровые выходы (например, включать и выключать освещение на макете). Автор будет попробовать добавить дополнительные Mega на шине I2C, где каждая будет считывать сенсоры/ управлять сервами и т.п., так что потенциально отпадает необходимость в декодерах для стрелок.
- Простой протокол для общения с внешними программами. Из известных уже поддерживается в JMRI. Автор DCC++ также выложил свою программу для управления / автоматизации.
Проект находится в начальной стадии, материалов почти нет. То же описание протокола существует не в виде отдельного документа, а как комментарии в коде.
Основные ресурсы (на английском):
Веб-сайт (пустой): http://dccplusplus.github.io/
Код базовой станции и управляющей программы: https://github.com/DccPlusPlus
Обсуждение проекта: http://www.trainboard.com/highball/inde ... ace.84800/
Видео с объяснением, как это работает и как это использовать. Частично заменяет отсутствующую документацию. Объяснения принципов работы DCC очень хороши, рекомендую всем интересующимся.: https://www.youtube.com/channel/UCJmvQx ... IH-_g-_rZw
март 2016: Поддержка DCC++ добавлена в Rocrail: http://wiki.rocrail.net/doku.php?id=dccpp:dccpp-en
Где-то год назад захотел попробовать цифру, посмотрел на ценники и ужаснулся. Причем не только ценам, но и ограничением тех или иных систем и доплатой за каждый чих. В результате взял задёшево старый Lokmaus2, чтобы попробовать и определиться, определился, что хочу иметь возможность программировать CV больше, чем 99, одновременное управление парой-тройкой поездов, желательно, не вставая с дивана и возможность подключения к компьютеру. При этом не хочу платить за это более 50 евро и, тем более, получать в нагрузку закрытые протоколы, мелкий шрифт в инструкциях и обещания производителей допилить поддержку чего-либо позднее.
Как ни странно, нашёл ответ для всех моих хотелок, даже с запасом на будущие хотелки. DCC++ - это командная станция и бустер на 1.5 А на основе Arduino со свободно распространяемым кодом. Минимально необходимое железо - Arduino UNO или Mega 2560 + Motor Shield (на L298P) + блок питания на 12-15 В. К компьютеру подключается по USB (serial communication). При желании можно использовать Bluetooth модуль для ардуино и, таким образом, избавиться от проводов. Если в качестве мозгов использовать Mega 2560, то можно добавить ethernet shield (w5100). И ничего не надо паять. В случае использования китайских модулей всё это укладывается бюджет с большим запасом.
Итак, что мы имеем за 20 евро (Mega + Motor Shield, БП найдётся в закромах):
- 12 локомотивов в одновременной работе (на Arduino Mega можно в коде задать в пару раз больше)
- 128 скоростей. Это может быть проблемой, если в хозяйстве есть декодеры на 14 скоростей. Но вряд ли таких много.
- до 28 функций декодера
- программирование на макете + программирование и чтение CV на пути для программирования
- поддержка аксессуарных декодеров
- Мониторинг потребляемого тока. В коде порог отключения питания стоит на ~ 1А, можно увеличить, если БП и Motor Shield позволяют.
- Не используемые для генерации сигнала DCC выводы Arduino (8 для UNO и штук 40-50 для Mega) можно использовать как входы для сенсоров или цифровые выходы (например, включать и выключать освещение на макете). Автор будет попробовать добавить дополнительные Mega на шине I2C, где каждая будет считывать сенсоры/ управлять сервами и т.п., так что потенциально отпадает необходимость в декодерах для стрелок.
- Простой протокол для общения с внешними программами. Из известных уже поддерживается в JMRI. Автор DCC++ также выложил свою программу для управления / автоматизации.
Проект находится в начальной стадии, материалов почти нет. То же описание протокола существует не в виде отдельного документа, а как комментарии в коде.
Основные ресурсы (на английском):
Веб-сайт (пустой): http://dccplusplus.github.io/
Код базовой станции и управляющей программы: https://github.com/DccPlusPlus
Обсуждение проекта: http://www.trainboard.com/highball/inde ... ace.84800/
Видео с объяснением, как это работает и как это использовать. Частично заменяет отсутствующую документацию. Объяснения принципов работы DCC очень хороши, рекомендую всем интересующимся.: https://www.youtube.com/channel/UCJmvQx ... IH-_g-_rZw
март 2016: Поддержка DCC++ добавлена в Rocrail: http://wiki.rocrail.net/doku.php?id=dccpp:dccpp-en