|
05.07.2016, 23:13 | #1 |
Brocken-Meister
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (9364)
|
Командная станция DCC++ на Ардуино за ~10$
Всем превед, В связи с выбором системы управления грядущим макетом озадачился поисками подходящей коммандной станции на Ардуино, которую можно было бы интегрировать в макет за недорого, и до 2х ампер тока. И что бы можно было прямо в ней реализовать автоматику на макете. Без компьютера. И вспомнил про наводку Алексея (AlexMit) тему на скейле "Командная станция без пайки". Нашел, поднял, почитал и понял, что это прямо мое. И как то не заслуженно мы эту тему засунули в ссылки и забыли. Решил поднять, а за одно и снять небольшое кинцо для начинающих, по-русски, что бы показать, что это совсем не сложно и бюджетно. Сайт проекта DCC++: https://sites.google.com/site/dccppsite/ Там можно скачать все, что нужно для создания станции, включая очень доступную документацию. Rocrail и DCC++: http://wiki.rocrail.net/doku.php?id=dccpp:dccpp-en JMRI & DCC++: http://jmri.sourceforge.net/help/en/...pp/index.shtml Настройка JMRI: http://trainelectronics.com/DCC_Ardu...etup/index.htm Модификации на 5А и 43А: http://trainelectronics.com/DCC_Arduino/DCC++/ Компоненты: 1) Arduino Uno / Arduino Mega 2) Motor Shield R3 eBay: Uno MotorShield Основной плюс - простота сборки: ничего не нужно паять, станция собирается за 30 секунд, из 2-х деталей и 2-х проводков. Что умеет комстанция DCC++:
Это проект можно использовать как стартовый набор для изучения Ардуино в контексте DCC да и просто как способ заполучить быстро и не дорого ком станцию DCC. Также, это отличный программатор декодеров с чтением сивишек. По ценам: ардуино - 3-5$, моторшилд - 5$. Творчество - бесценно!!! Ну и , собственно, лучше 1 раз увидеть, чем 100 раз прочитать. Смотрим в 720p. |
26 пользователя(ей) сказали cпасибо: |
06.07.2016, 12:21 | #2 |
Местный
Регистрация: 12.01.2010
Адрес: Геленджик
Сообщений: 2,773
Сказал(а) 'не согласен(а)'!: 28
Сказали 'не согласен'! 10 раз(а) в 9 сообщениях
Сказал(а) спасибо: 7,166
Поблагодарили 5,542 раз(а) в 1,369 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (5582)
|
|
|
06.07.2016, 13:46 | #3 |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,858
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,650
Поблагодарили 3,274 раз(а) в 1,172 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3285)
|
посмотрел немного код...
если правильно понял, то датчики ОС подключаются к свободным пинам ардуины, как и выводы (output) Протокол какой то свой, интеграцию с другими протоколами не нашел (( |
|
06.07.2016, 17:47 | #4 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,837
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 972
Поблагодарили 2,652 раз(а) в 1,569 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2678)
|
Цитата:
С подключением микриков или герконов проблем нет. С датчиками Хола или оптопарами чуть сложнее. Но если брать питание с Ардуино, то не проблема. А вот что-то более навороченное (CD1 например), только через дополнительную гальваническую развязку. |
|
|
Пользователь сказал cпасибо: |
06.07.2016, 18:22 | #5 |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,837
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 972
Поблагодарили 2,652 раз(а) в 1,569 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2678)
|
|
|
2 пользователя(ей) сказали cпасибо: |
07.07.2016, 22:33 | #6 |
Brocken-Meister
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (9364)
|
Ну и в догонку, нашёл схему прикручивания к этой станции моторшилда на 43(!!!) ампера. Заказал уже.
Если выгорит, то проблема с управлением садовой дорогой решена. Хотел Экос покупать, а тут DCC++ плюс Rocrail - примерно тот же функционал если не круче. ---------- Сообщение добавлено в 00:33 ---------- Предыдущие сообщение было в 00:30 ---------- Да какой там протокол? Пин в HIGH - занято, пин в LOW - свободно. И все. Сервы и детекторы реализуются при использовании Arduino Mega.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка. Московский Модуль H0-присоединяйтесь! |
|
30.10.2016, 12:39 | #7 |
Московский модуль
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 941
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,981
Поблагодарили 3,306 раз(а) в 637 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (3321)
|
http://trainelectronics.com/DCC_Ardu...ster/index.htm
Судя по схеме подключения мотор шилда входы "EN" ( выводы 3, 4 ), с этим все понятно, и питание ( вывод 7 ) собраны в кучу и на пин ардуины. Хорошо ли , что питание мотор шилда идет с выхода ардуины ? |
|
30.10.2016, 13:02 | #8 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (2791)
|
|
|
30.10.2016, 13:44 | #9 |
Московский модуль
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 941
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,981
Поблагодарили 3,306 раз(а) в 637 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (3321)
|
|
|
30.10.2016, 15:37 | #10 |
Местный
Регистрация: 06.03.2014
Адрес: Москва
Сообщений: 1,741
Сказал(а) 'не согласен(а)'!: 5
Сказали 'не согласен'! 9 раз(а) в 7 сообщениях
Сказал(а) спасибо: 553
Поблагодарили 2,794 раз(а) в 755 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (2791)
|
|
|
17.06.2017, 08:47 | #11 |
Местный
Регистрация: 21.04.2012
Адрес: Новомосковск Тульская область
Сообщений: 1,887
Сказал(а) 'не согласен(а)'!: 18
Сказали 'не согласен'! 15 раз(а) в 10 сообщениях
Сказал(а) спасибо: 5,751
Поблагодарили 4,917 раз(а) в 1,110 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (4924)
|
вот какое радиоуправление человек делает на ардуино
https://vk.com/daimlermar?w=wall-122344455_2459 ---------- Сообщение добавлено в 08:45 ---------- Предыдущие сообщение было в 08:43 ---------- ...https://vk.com/daimlermar?w=wall-122344455_2022 ---------- Сообщение добавлено в 08:47 ---------- Предыдущие сообщение было в 08:45 ---------- ,,,https://vk.com/daimlermar?w=wall-122344455_1927 |
|
3 пользователя(ей) сказали cпасибо: |
07.07.2016, 22:58 | #12 |
Пользователь
Регистрация: 14.07.2014
Адрес: СПб
Сообщений: 321
Сказал(а) 'не согласен(а)'!: 4
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 105
Поблагодарили 225 раз(а) в 111 сообщениях
:
0 за это сообщение 0 Всего Репутация: - весьма и весьма положительная личность (224)
|
Сие творение может жить с эмулятором z21 на той же Ардуине?
|
|
07.07.2016, 23:18 | #13 |
Brocken-Meister
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (9364)
|
Детальное описание протокола команд для управления через серийный интерфейс - в файле "SerialCommand.cpp" в папке со скетчем. ---------- Сообщение добавлено в 01:09 ---------- Предыдущие сообщение было в 01:07 ---------- Теоретически - да. Но нужно вживлять одно в другое. А там - таймеры, прерывания и иные подводные камни. Я для себя решил, что просто допишу в скетч с Z21 протокол обмена через серийный порт, и соединю 2 ардуины по серийному порту. Или же к гатовской станции с интегрированной z21 можно прикрутить этот моторшилд. Но тогда не будет интерфейса с рокрейлом. ---------- Сообщение добавлено в 01:18 ---------- Предыдущие сообщение было в 01:09 ---------- Эта станция также управляется и из JMRI. |
3 пользователя(ей) сказали cпасибо: |
07.07.2016, 23:37 | #14 |
Brocken-Meister
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (9364)
|
|
3 пользователя(ей) сказали cпасибо: |
08.07.2016, 00:54 | #15 |
Заглянувший
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
:
0 за это сообщение 0 Всего Репутация: - луч света в тёмном царстве (454)
|
Очень интересный проект командной станции
Собрал себе такую из промини, драйвера двигателя за 1.5$ и повышающего dc-dc преобразователя(до 14в) на 2 ампера. Для девятки вроде хватает. Лишние пины ардуино можно использовать и как на вход от датчиков и как на выход для управления (свет в домиках, стрелки). Если количества свободных пинов для обратной связи от датчиков не хватает, можно просто их эмулировать посылая в порт программе rocrail команды, например <Q100> (вкл) и <q100> (выкл) для сенсора под адресом 100 на вашем плане. |
|
7 пользователя(ей) сказали cпасибо: |
19.04.2020, 01:46 | #16 |
Пользователь
Регистрация: 23.06.2016
Адрес: Санкт-Петербург
Сообщений: 925
Сказал(а) 'не согласен(а)'!: 25
Сказали 'не согласен'! 11 раз(а) в 11 сообщениях
Сказал(а) спасибо: 1,321
Поблагодарили 606 раз(а) в 318 сообщениях
:
0 за это сообщение 0 Всего Репутация: - это имя известно всем (618)
|
|
|
Пользователь сказал cпасибо: |
19.04.2020, 16:52 | #17 |
Заглянувший
Регистрация: 26.01.2013
Адрес: Минск
Сообщений: 204
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 1 раз в 1 сообщении
Сказал(а) спасибо: 458
Поблагодарили 454 раз(а) в 135 сообщениях
:
0 за это сообщение 0 Всего Репутация: - луч света в тёмном царстве (454)
|
Из коробки, данная станция опрашивает только свои пины, которые rocrail настроил в качестве сенсоров.
Протокол общения станции с rocrail'ом достаточно прост и не подразумевает прямую связь id сенсора и пина микроконтроллера: <Q ID> - for transition of Sensor ID from HIGH state to LOW state (i.e. the sensor is triggered) <q ID> - for transition of Sensor ID from LOW state to HIGH state (i.e. the sensor is no longer triggered) По этому можно просто научить станцию узнавать о состоянии датчиков из вне, например от других контроллеров по i2c/usart/nrf24..., и передавать эту информацию уже рокрейлу, используя тот же самый протокол. В самой программе просто создаются сенсоры на плане, в их настройках указывается только станция и адрес сенсора. Например создаем сенсор с адресом 25 и указываем в графе Interface ID нашу станцию. Теперь при получении сообщения рокрейлом от станции <Q 25> датчик считается активным, а получив <q 25> датчик освобождается. Скрытый текст
|
|
5 пользователя(ей) сказали cпасибо: |
26.04.2020, 21:00 | #18 |
Заглянувший
Регистрация: 05.02.2018
Адрес: Томск
Сообщений: 44
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 15
Поблагодарили 10 раз(а) в 5 сообщениях
:
0 за это сообщение 0 Всего Репутация: на пути к лучшему (10)
|
увеличивал количество портов станции на UNO (и на pro mini) при помощи расширителей на 16 портов mcp23017 - подключается по i2c, вносил соответствующие доработки (несложные) в код станции. Этот расширитель работает как на ввод (inputs), так и на вывод (outputs).
|
|
2 пользователя(ей) сказали cпасибо: |
05.05.2020, 17:18 | #19 | |
Пользователь
Регистрация: 23.06.2016
Адрес: Санкт-Петербург
Сообщений: 925
Сказал(а) 'не согласен(а)'!: 25
Сказали 'не согласен'! 11 раз(а) в 11 сообщениях
Сказал(а) спасибо: 1,321
Поблагодарили 606 раз(а) в 318 сообщениях
:
0 за это сообщение 0 Всего Репутация: - это имя известно всем (618)
|
Цитата:
1. Создать свою процедуру регистрации дополнительных датчиков и вызывать ее из setup() основного файла. 2. Создать свою процедуру опроса доп.датчиков и вызывать ее из void Sensor::check() файла Sensor.cpp Думаю для работы этого достаточно. Затем можно также сохранять/читать/удалять настройки датчиков в EEprom. Я ничего не упустил ?
__________________
С Уважением Александр. HO, DCC++, Z21 Arduino |
|
|
08.07.2016, 10:27 | #20 |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
Почему не будет? Рокраил поддерживает z21 или там есть какие-то проблемы? Я просто не сильно в теме гатовской реализации z21.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
08.07.2016, 10:32 | #21 |
Brocken-Meister
Регистрация: 27.04.2012
Адрес: !Msk
Сообщений: 8,618
Сказал(а) 'не согласен(а)'!: 7
Сказали 'не согласен'! 110 раз(а) в 87 сообщениях
Сказал(а) спасибо: 7,024
Поблагодарили 9,323 раз(а) в 3,311 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (9364)
|
Да, действительно.
__________________
H0 - DR/DB, Ep.III, G и H0m - HSB, Н0е - DR/ÖBB/Zillertalbahn Ep.V-VI. И эночка. Московский Модуль H0-присоединяйтесь! |
|
08.07.2016, 10:51 | #22 | |
Местный
Регистрация: 08.07.2015
Адрес: МО
Сообщений: 2,858
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 4,650
Поблагодарили 3,274 раз(а) в 1,172 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (3285)
|
Цитата:
|
|
|
2 пользователя(ей) сказали cпасибо: |
08.07.2016, 11:01 | #23 |
Местный
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
:
0 за это сообщение 0 Всего Репутация: репутация неоспорима (5127)
|
Тогда уж не только чёрную, но и белую тоже. Обмен данными идёт по сети, так что и гатовский вариант должен прокатить.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB С приветом из подземки!!! |
|
Пользователь сказал cпасибо: |
08.07.2016, 11:56 | #24 | |
Пользователь
Регистрация: 23.06.2016
Адрес: Санкт-Петербург
Сообщений: 925
Сказал(а) 'не согласен(а)'!: 25
Сказали 'не согласен'! 11 раз(а) в 11 сообщениях
Сказал(а) спасибо: 1,321
Поблагодарили 606 раз(а) в 318 сообщениях
:
0 за это сообщение 0 Всего Репутация: - это имя известно всем (618)
|
Цитата:
|
|
|
08.07.2016, 17:56 | #25 | |
Местный
Регистрация: 29.06.2010
Адрес: Москва
Сообщений: 2,837
Сказал(а) 'не согласен(а)'!: 6
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 972
Поблагодарили 2,652 раз(а) в 1,569 сообщениях
:
0 за это сообщение 1 Всего Репутация: репутация неоспорима (2678)
|
Цитата:
Библиотека там используется DCCInterfaceMaster. (Работает.) В основу лучше брать МЕГУ, а то может не хватить памяти. И скетч для начала лучше из ранних. (Легче разобраться.) ---------- Сообщение добавлено в 17:56 ---------- Предыдущие сообщение было в 17:52 ---------- До 03.03.2016 это может и имело бы смысл, а теперь нет. |
|
|
Пользователь сказал cпасибо: |
Опции темы | |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Декодер для стрелки LGB на Ардуино | BR95009 | Arduino | 42 | 25.10.2016 16:13 |
Самодельная Командная станция | Васёк | Электрика и DCC | 58 | 16.12.2010 16:11 |
Командная станция ESU | VRD | Электрика и DCC | 4 | 13.05.2010 17:17 |