Форум ModelldepO

Форум ModelldepO (http://forum.modelldepo.ru/index.php)
-   Цифровая аппаратура Modelldepo (http://forum.modelldepo.ru/forumdisplay.php?f=147)
-   -   Проблема декодер StrvoMotion1 и ARDUINO (http://forum.modelldepo.ru/showthread.php?t=18747)

IChibrik 02.05.2017 20:06

декодер StrvoMotion1 и ARDUINO
 
Доброго времени суток всем читающим.
В наличии имеется 2 серво декодера ServoMotion1 от Modelldepo и командная станция на Arduino mega.
Есть необходимость управления на макете стрелками от Rocrail с использованием вышеуказанных устройств.
Проблема в том, что серво декодер не хочет дружить с ARDUINO, а может что-то недопонимаю.
Понимаю, что можно отказаться от декодера и использовать только Arduino, но хотелось бы что бы все это заработало вместе.
Заранее всем спасибо за участие или советы.

Rokfor 02.05.2017 21:13

Мало данных, не знаю, что посоветовать.
Что именно не дружит ?

BNSF9399 02.05.2017 21:22

А что за станция для начала?
За Рокраил не скажу, но DCC++ нормально работает с SM
http://forum.modelldepo.ru/showpost....&postcount=129
в видео с 4:34

IChibrik 02.05.2017 21:37

При переводе в аналоговый режим сервы управляются.
Не совсем понятно какой адрес вводить для управления от КС.
По мануалу на ServoMotion (Выход S0 522, S1 532, S2 542 и S3 552)
Пробовал как адресацию PADA и как Rocrail-Standart, но не увидел никакой реакции у декодера.
Понимает ли Arduino нумерацию CV от 513 как того требует NMRA.
Можно ли программировать адреса стрелок прямо от Arduino, как в ролике про ServoMotion который есть на форуме.

---------- Сообщение добавлено в 23:37 ---------- Предыдущие сообщение было в 23:30 ----------

Цитата:

Сообщение от BNSF9399 (Сообщение 300110)
А что за станция для начала?
За Рокраил не скажу, но DCC++ нормально работает с SM
http://forum.modelldepo.ru/showpost....&postcount=129
в видео с 4:34

Цитата:

Сообщение от BNSF9399 (Сообщение 300110)
А что за станция для начала?

Станция на Arduino mega 256, Motor Shield R3 и w5100 Ethernet Shield

BNSF9399 02.05.2017 21:53

Цитата:

Сообщение от IChibrik (Сообщение 300111)
Можно ли программировать адреса стрелок прямо от Arduino, как в ролике про ServoMotion который есть на форуме.

Да, можно.

Цитата:

Сообщение от IChibrik (Сообщение 300111)
Понимает ли Arduino

Ардуино ничего не понимает. Понимает скетч, который в нее залит

Цитата:

Сообщение от IChibrik (Сообщение 300111)
Станция на Arduino mega 256, Motor Shield R3 и w5100 Ethernet Shield

Вы перечислили железо. А скетч какой КС в ардуину залит? Как минимум на данном форуме обсуждается два варианта, DCC++ и A21

---------- Сообщение добавлено в 21:53 ---------- Предыдущие сообщение было в 21:51 ----------

Цитата:

Сообщение от IChibrik (Сообщение 300111)
CV от 513 как того требует NMRA.

почитайте мануал на ServoMotion, там есть волшебная кнопочка, которая позволяет программировать CV выше 512 с КС которая не умеет этого делать

И всеже, давайте сначала разберемся, что у вас за КС.

IChibrik 02.05.2017 22:05

Станция на Arduino mega 2560, Motor Shield R3 и w5100 Ethernet Shield
Скетч DCCpp_UNO (BaseStation-1.2.1)

BNSF9399 02.05.2017 22:22

Цитата:

Сообщение от IChibrik (Сообщение 300117)
DCCpp_UNO

Вы как ее к компьютеру подключаете?
По сети или через USB?
Если через сеть - в Config.h перед заливкой поменяли значение в #define COMM_INTERFACE 0 на единицу?
Для программирования (запоминания адреса) к мэйн трэк декодер подключен?
Для запоминания адреса нажимаете и удерживаете кнопку на декодере пока светодиод не начнет мигать.
одиночные вспышки - первый выход (S0)
короткое нажатие на кнопку меняет программируемый выход. двойные вспышки - второй выход и т.д.
после выбора нужного выхода, отправляете с КС команду на нужный вам аксессуарный адрес, светодиод при этом должен погаснуть на декодере.

BNSF9399 09.05.2017 01:04

поковырял Rocrail. Превосходно все программируется с DCC++
разъем DCC декодера подключаем к выходу программного трэка моторшилда
Заходим на вкладку Programming, включаем PT, вводим CV, значение и жмем Set
http://xrc.ru/ms/Rocrail_New_Plan_20...9_00-59-15.png
Но всеже, адреса стрелок рекомендую назначать через режим запоминания адреса, как указано в руководстве и описано чуть выше

IChibrik 10.05.2017 11:52

Про эту вкладку программирования все понятно. Менял на ней CV у локов.
Я наверно не совсем правильно сформулировал свой вопрос.
1. Есть Rocrail в котором есть план пути.
2. На этом плане есть определённое количество стрелок.
3. Для каждой стрелки есть ещё свойства, в которых указана шина, адрес и т.п.
По умолчанию в ServoMotion заданы адреса для выходов.
4. Вопрос был в том какой адрес нужно ввести в свойствах стрелки и какие настройки ещё нужно сделать для того, что бы она начала переключаться от КС.

Как я понимаю если ввести адреса установленные по умолчанию для выходов S0-S4 в свойства стрелки в Rocrail, она
Уже должна работать от переключения с КС.
Но не хочет.

laba 10.05.2017 12:11

Цитата:

Сообщение от IChibrik (Сообщение 300537)
По умолчанию в ServoMotion заданы адреса для выходов.

А какие они по-умолчанию?
ИМХОИсходя из описания в документации там ничего не прописано по-умолчанию, т.е. для начала, надо произвести программирование самому.

---------- Сообщение добавлено в 12:11 ---------- Предыдущие сообщение было в 12:07 ----------

Цитата:

Сообщение от IChibrik (Сообщение 300111)
По мануалу на ServoMotion (Выход S0 522, S1 532, S2 542 и S3 552)

Это не адреса, это номера CV. Вот в них и надо для начала прописать значения адресов, которые потом прописываются в свойствах стрелки в Rocrail.

Цитата:

Настройка адресов
Для входа в режим запоминания адресов нажмите кнопку на 3сек. Светодиод на плате декодера начнет
мигать одиночной вспышкой, это означает, что декодер готов запомнить адрес для первого выхода S0.
Если нажать кнопку еще раз - декодер будет запоминать адрес для второго выхода S1, при этом светодиод
будет мигать 2-мя короткими вспышками, и т.д. для остальных выходов. Чтобы декодер запомнил адрес,
необходимо с командной станции переключить стрелку с требуемым номером. Декодер запомнит адрес из
первой полученной от командной станции команды и автоматически выйдет из режима программирования.
Исходя из этого, я бы настройку делал следующим образом:
1. Настраиваем стрелки в Rocrail и прописываем им любые удобные нам адреса.
2. После этого, на декодере нажимаем кнопку и выбираем настройку для выхода S0.
3. Включаем питание в программе и щёлкаем мышью на той стрелке, которая будет управляться от выхода S0.
При этом, Rocrail, через командную станцию, отправит нужную команду на декодер, из которой тот и запишет правильный адрес для выхода S0.
Таким же образом делаем настройку и для остальных выходов(S1-S3)

IChibrik 10.05.2017 14:17

И именно так и делал настройку.
А по поводу адресов по умолчанию, там в руководстве (стр.8) написано, что СV 522 (... основной адрес выхода S0 ... Не программируйте эти CV) и т.д.

laba 10.05.2017 14:30

Цитата:

Сообщение от IChibrik (Сообщение 300548)
А по поводу адресов по умолчанию, там в руководстве (стр.8) написано, что СV 522 (... основной адрес выхода S0 ... Не программируйте эти CV) и т.д.

Как я понял, что не стоит программировать эти CV через режим программирования CV, но их можно изменять при настройке адресов через кнопку.

И кроме того там для определения адреса каждого выхода, используется аж три CV:
S0(CV522, CV523, CV524)
S1(CV532, CV533, CV534)
S2(CV542, CV543, CV544)
S3(CV552, CV553, CV554)
Наверное поэтому и не рекомендуется программировать их через режим записи CV.

А у Вас сама DCC++ работает, т.е. Вы хоть чем-то с помощью неё можете управлять?

IChibrik 10.05.2017 14:48

Цитата:

Сообщение от laba (Сообщение 300550)
Как я понял, что не стоит программировать эти CV через режим программирования CV, но их можно изменять при настройке адресов через кнопку.

И кроме того там для определения адреса каждого выхода, используется аж три CV:
S0(CV522, CV523, CV524)
S1(CV532, CV533, CV534)
S2(CV542, CV543, CV544)
S3(CV552, CV553, CV554)
Наверное поэтому и не рекомендуется программировать их через режим записи CV.

Цитата:

Сообщение от laba (Сообщение 300550)
Как я понял, что не стоит программировать эти CV через режим программирования CV, но их можно изменять при настройке адресов через кнопку.

Похоже что да.
Пропустил на стр.6 руководства ( ... требуется лишь задать адреса выходам декодера)
Но через кнопку по алгоритму:

1. Подключить к треку программирования.
2. Выбрать адрес выхода с помощью кнопки на декодере.
3. Переключить стрелку от станции.
4. Индикатор на декодере должен погаснуть.

Не получается.
Он продолжает моргать, пока сам не погаснет и при переключении ServoMotion на Main Track стрелка не управляется.

laba 10.05.2017 14:53

Цитата:

Сообщение от IChibrik (Сообщение 300551)
1. Подключить к треку программирования.

Вот этого делать не надо. Подключаете к маинтреку, как при обычном управлении. Вы же не программируете, а отправляете простую стрелочную команду. Это к треку для программирования отношения не имеет никакого.

---------- Сообщение добавлено в 14:53 ---------- Предыдущие сообщение было в 14:50 ----------

Цитата:

Сообщение от IChibrik (Сообщение 300551)
Он продолжает моргать, пока сам не погаснет

Вооот! Он не гаснет, потому что не получает от DCC++ стрелочной команды, она то идёт на маинтреке, а Вы подключились к програмтреку.

BNSF9399 10.05.2017 16:35

Цитата:

Сообщение от IChibrik (Сообщение 300551)
и при переключении ServoMotion на Main Track стрелка не управляется.

ээээ... вы что, адрес программируете методом запоминания на программном трэке???

---------- Сообщение добавлено в 16:35 ---------- Предыдущие сообщение было в 16:18 ----------

Цитата:

Сообщение от IChibrik (Сообщение 300537)
4. Вопрос был в том какой адрес нужно ввести в свойствах стрелки и какие настройки ещё нужно сделать для того, что бы она начала переключаться от КС.

адрес декодера и адрес порта.
Адрес декодера - от одного до 512, адрес порта - от нуля до трех.
Естественно, что сочетание адрес декодера+адрес порта должны быть уникальными в рамках плана.

Чтобы было понятие в дальнейшем, аксессуарный адрес (N) состоит из двух частей, адреса декодера (ADDRESS) и адреса порта (SUBADDRESS)

где
N = (ADDRESS - 1) * 4 + SUBADDRESS + 1

или в обратную сторону
ADDRESS = INT((N - 1) / 4) + 1
SUBADDRESS = (N - 1) % 4

Это по NMRA, когда адреса декодеров начинаются с единицы. У Роко и МД - адреса декодеров начинаются с нуля, и для них вот так считать
N = ADDRESS * 4 + SUBADDRESS + 1

или в обратную сторону
ADDRESS = INT(N / 4) + 1
SUBADDRESS = N % 4

Для чего это нужно понимать. Не все декодеры имеют режим запоминания адреса, тем более не все декодеры позволяют для каждого выхода отдельно задавать аксессуарный адрес, как правило - в декодере указывается только адрес декодера и аксессуарные адреса идут подряд. Поэтому, по формуле узнаем первый аксессуарный адрес для адреса декодера и остальные три будут идти подряд.
Например, для адреса декодера 5, первый аксессуарный адрес по NMRA будет (5-1)*4+0+1 = 17, для второго выхода 18, для третьего 19 и для четвертого 20
По Roco/MD 5*4+0+1 = 21,22,23,24

laba 10.05.2017 18:56

Цитата:

Сообщение от BNSF9399 (Сообщение 300560)
адрес порта - от нуля до трех.

А не от 1 до 4 случайно? Насколько мне помниться Rocrail не принимает нулевые значения адреса и порта.

BNSF9399 10.05.2017 19:53

Цитата:

Сообщение от laba (Сообщение 300571)
Насколько мне помниться Rocrail не принимает нулевые значения адреса и порта.

адреса - да, порта нет.
ну в смысле адреса с первого (как того и требует NMRA) и порты с 0 по 3 (тоже согласно NMRA)

laba 10.05.2017 21:07

Цитата:

Сообщение от BNSF9399 (Сообщение 300576)
ну в смысле адреса с первого (как того и требует NMRA) и порты с 0 по 3 (тоже согласно NMRA)

Нормы да, а вот Rocrail нет.
http://wiki.rocrail.net/doku.php?id=...pg-en#overview
Смотрим внимательно таблицу типов адресаций

BNSF9399 10.05.2017 22:54

Цитата:

Сообщение от laba (Сообщение 300577)
Смотрим внимательно таблицу типов адресаций

Да, вы правы. Беру свои слова обратно :) Стоило поставить галочку "Аксессуар" и нулевой порт перестало принимать.
Для наглядности, пример скринов с настройками одой стрелки
http://xrc.ru/ms/Switch_15_2017-05-10_22-48-35.png
http://xrc.ru/ms/Switch_15_2017-05-10_22-46-33.png

IChibrik 12.05.2017 08:45

Цитата:

Сообщение от BNSF9399 (Сообщение 300584)
Да, вы правы. Беру свои слова обратно :) Стоило поставить галочку "Аксессуар" и нулевой порт перестало принимать.
Для наглядности, пример скринов с настройками одой стрелки
http://xrc.ru/ms/Switch_15_2017-05-10_22-48-35.png
http://xrc.ru/ms/Switch_15_2017-05-10_22-46-33.png

Цитата:

Сообщение от BNSF9399 (Сообщение 300584)
Для наглядности, пример скринов с настройками одой стрелки

С таким скрином оно просто не могло не заработать.
Все замечательно управляется.
Большое спасибо.


Текущее время: 01:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -