Показать сообщение отдельно
Старый 12.09.2017, 12:59   #4
laba
Местный
 
Аватар для laba
 
Регистрация: 06.03.2009
Адрес: Питер
Сообщений: 3,693
Сказал(а) 'не согласен(а)'!: 10
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 6,942
Поблагодарили 4,844 раз(а) в 1,822 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (5127)
По умолчанию Расширение возможностей простого DCC RF Booster-a

Напишу немного об особенностях использования DCC RF Booster с библиотекой rfbooster в Rocrail.
Вроде бы там нет ничего сложного, но как оказалось имеются некоторые моменты, которые всплыли при попытке использования этой библиотеки.
Прежде всего необходимо закачать в модуль новую версию прошивки(V.3 Новые модули идут вроде бы уже с новой прошивкой).
Делается это через ISP интерфейс, который имеется на плате модуля.
!!! Важный момент!!! DCC RF Booster со старой прошивкой, не сможет управлять декодерами с новой версией прошивки и наоборот.
Далее запаиваем разъём для подключения линий RX и TX, а также GND.



Теперь берём плату ардуино и соединяем её с платой модуля, как указано на картинке.



Собственно нам нужна только интерфейсная часть ардуино, т.е. её USB интерфейс.
Я на всякий случай вытащил микроконтроллер из панельки на плате Ардуино, но возможно это можно и не делать.

Далее подаём питание на модуль, подводим к нему сигнал DCC от КС, без этого сигнала модуль будет, как бы всегда находится в режиме СТОП и не будет передавать команды по радиоканалу.

Теперь подключаем плату ардуино к ПК и узнаём каким именно компортом она прикинулась в системе.
Запускаем Rocrail и открываем свойства Rocrail, где на вкладке Контроллер добавляем библиотеку контроллера rfbooster из списка библиотек.



Заходим в свойства контроллера и делаем там следующие настройки.




Там где прописывается номер порта, естественно прописываем или выбираем из списка тот, порт, на котором у нас висит ардуино. Сохраняем изменения и перезапускаем Rocrail полностью (клиент и сервер).
Снова запускаем программу и открываем свойства автомобиля, если его ещё нет, то создаём его.
Там всё делается как обычно, только на вкладке Интерфейс надо указать ID интерфейса контроллера, который использует бибиотеку rfbooster.
Вроде бы как и всё, но тут и вылезает один трабл. Оказывается при такой настройке автомобиля, у него будут управляться только функциональные выходы, а вот привести его в движение не получиться, точнее у меня это так и не получилось сделать. При этом от автомобиля удаётся получить данные о его скорости и состоянии аккумулятора, а также имеется возможность программировать CV в режиме POM.
Также заметил, что при любой попытке изменить скорость движения, у машинки выключаются передние фары, если они были включены до этого.
Но всё-таки нормально по-управлять автомобилем у меня получилось. Для этого в его свойствах, в качестве идентификатора интерфейса, требуется указать ID КС, с которой подаётся сигнал DCC на радиобустер. Это ещё один момент, на который стоит обратить внимание, т.е. КС должна иметь интерфейс для подключения к ПК и поддерживаться программой.
После такой настройки, управление автомобилем становится нормальным, также достен режим программирования на POM, данные о скорости и состоянии аккумулятора. Более того от машинки в программу проходит информация об адресе локального датчика IRM, который она проследовала,



но пока это не получится привязать к датчику на плане пути, как это реализовано с железом BiDiB.

Задал по этому поводу вопрос на форуме Rocrail, посмотрим, что ответят.

P.S. Ответили, что добавят эту возможность для библиотеки rfbooster. Таким образом теперь для организации позиционирования машинок на макете не требуется наличие физической шины ОС, подключенной к ПК. Отпадает необходимость тянуть её по всему макету, что особо актуально для модульных макетов и макетов, состоящих из нескольких отдельных частей.
__________________
HO, цифра, OpenDCC, S-88N, OpenCar, BiDiB
С приветом из подземки!!!

Последний раз редактировалось laba; 12.09.2017 в 14:24.
laba вне форума  
Вверх
3 пользователя(ей) сказали cпасибо: