Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 35

Тема: Самодельный Loconet серво декодер на Arduino Nano

  1. #1

    Самодельный Loconet серво декодер на Arduino Nano

    Итак, самодельный серво декодер с интерфейсом Loconet. Сердцем является Arduino Nano v3 с интерфейсом mini-USB.
    Все четыре изготовленных (ЛУТ) устройства успешно работают вместе с Z21. Прошу прощения, для фотосессии пришлось взять "модель" уже в рабочей обстановке )))
    Нажмите на изображение для увеличения. 

Название:	2015-09-16 19.25.34.jpg 
Просмотров:	71 
Размер:	821.5 Кб 
ID:	16221

    Возможности:
    - управление 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)
    - управление светофорами
    - управление анимированными деталями макета
    Вложения Вложения
    Последний раз редактировалось shalex; 27.10.2015 в 12:19.

  2. 9 пользователей сказали cпасибо shalex за это полезное сообщение:

    DM TT (17.09.2015), ERWman (07.11.2015), Maxim (17.09.2015), taksist850 (15.10.2015), Александр Нигиян (17.09.2015), Валериевич (17.09.2015), Крош (17.09.2015), Русанов Сергей (17.09.2015), СерП (17.09.2015)

  3. #2
    Потенциально можно подключить еще сервы 4, сделать режим на выходе не как для сервы (PWM), а логический 0 или 1 (светодиоды, релейные модули)

    Но с другой стороны на каждую серву надо 3 провода и для меня проще еще одно устройство сЛУТить и поставить хаб,



    который раздает 5В, питается от 20В(и раздает дальше) ну и заодно может принимать/раздавать DCC.
    Для понижения с 20В до 5В используется такой конвертер с регулировкой напряжения на выходе.
    Остальные детали - коннекторы с винтами.

  4. 3 пользователей сказали cпасибо shalex за это полезное сообщение:

    DM TT (18.09.2015), Валериевич (17.09.2015), Крош (17.09.2015)

  5. #3
    Последние новости:
    осваиваю Eagle - нарисовал схему серводекодера, плату и заказал изготовление 10 двухслойный плат в китае (почти 1000 руб с доставкой).

    Но есть нюанс - отказался от 4-х канальных декодеров(который в первом посте) и светодиодной индикации положения стрелок - перешел на 8-и канальные декодеры без индикации вообще. дело в том, что на ардуине есть штатный светодиод на выходе D13 и можно режим программирования изображать на нем. а индикация положения стрелок пока ни разу не пригодилась, разве чтобы понять - рабочее устройство или нет )))


    Нажмите на изображение для увеличения. 

Название:	Image 12.png 
Просмотров:	189 
Размер:	20.9 Кб 
ID:	16411Нажмите на изображение для увеличения. 

Название:	Image 11.png 
Просмотров:	106 
Размер:	15.6 Кб 
ID:	16412
    Последний раз редактировалось shalex; 14.10.2015 в 19:08.

  6. 3 пользователей сказали cпасибо shalex за это полезное сообщение:

    Dimas (14.10.2015), DM TT (15.10.2015), Maxim (15.10.2015)

  7. #4
    Приехали платы. И как обычно в пословице про первые блины )) Ошибся с диодом шотки - не на ту сторону разместил и проводники тонковаты
    А так ничего - работает , только скетч надо немного поменять: поправить кол-во серв и массивы с константами пинов и CV-шек.
    Если есть интерес - напишите и выложу новый скетч.

    Планирую немного переделать код и сделать на этой же плате светофорный декодер.
    Нажмите на изображение для увеличения. 

Название:	2015-11-05 19.07.30.jpg 
Просмотров:	111 
Размер:	350.3 Кб 
ID:	16550Нажмите на изображение для увеличения. 

Название:	2015-11-05 20.14.47.jpg 
Просмотров:	354 
Размер:	432.9 Кб 
ID:	16551
    Последний раз редактировалось shalex; 06.11.2015 в 18:22.

  8. 4 пользователей сказали cпасибо shalex за это полезное сообщение:

    AleksSF (13.01.2017), DM TT (06.11.2015), Lexx (05.11.2015), Metallboy (12.11.2015)

  9. #5
    Выкладываю схему, плату и скетч для новой версии устройства.

    Внимание: артикул
    - устройства 5003 (для программирования CV)
    - Адрес по умолчанию: 14 (CV0 = 14)

    CV для серв:

    CV4 - Стрелка 1. Прямо
    CV5 - Стрелка 1. В сторону

    CV6 - Стрелка 2. Прямо
    CV7 - Стрелка 2. В сторону

    CV8 - Стрелка 3. Прямо
    CV9 - Стрелка 3. В сторону

    CV10 - Стрелка 4. Прямо
    CV11 - Стрелка 4. В сторону

    CV12 - Стрелка 5. Прямо
    CV13 - Стрелка 5. В сторону

    ....

    CV18 - Стрелка 8. Прямо
    CV19 - Стрелка 8. В сторону

    Все остальное без изменений.

    p.s. сейчас подумал, что, наверное, с изменением артикула можно было не заморачиваться, т.к. по сути - назначение устройства то же, управление через CV то же, вот только кол-во CV отличается.
    Вложения Вложения
    Последний раз редактировалось shalex; 06.11.2015 в 18:24.

  10. 2 пользователей сказали cпасибо shalex за это полезное сообщение:

    yrij_063 (06.11.2015), Крош (06.11.2015)

  11. #6
    Устраните пробел в познаниях.
    1в чем отличие этого декодера от прочих ,которые сидят по управлению на dcc. в чем преимущество локонета?
    2зачем нужен артикул устройства?
    3 что значит конфигурация цэвэ при управлении направление движения на стрелке. как это используется на практике? т. е сv4 первая стрелка вправо. что например этой константе должно быть присвоено . как управлять таким декодером
    " За СПАСИБО"

  12. #7
    ура! первый вопрос в теме!!! )))

    Цитата Сообщение от yrij_063 Посмотреть сообщение
    в чем отличие этого декодера от прочих ,которые сидят по управлению на dcc
    в том, что можно программировать CV через сеть Loconet,т.к. сеть позволяет как получать сигнал, так и отправлять ответ.
    это дает возможность полноценного обмена между КС и устройством, ну и всякие плюшки,например, не нужно подключать usb-кабель к устройству, чтобы поменять ему адрес, настройки углов серв автоопределение(не реализовано в данном декодере) устройств в сетии т.д.

    "побочные плюсы" - шина управления(Loconet в данном случае) выделена в отдельную шину, и на нее не могут повлияють проезды локов по "сигнальным" для устройства рельсам и прочие чудеса электричества

    Юрий, последний абзац не для Вас. видел в вашей теме S88 - видно, что подход серьезный )))

    оффтопик


    Цитата Сообщение от yrij_063 Посмотреть сообщение
    что значит конфигурация цэвэ при управлении направление движения на стрелке. как это используется на практике? т. е сv4 первая стрелка вправо. что например этой константе должно быть присвоено
    это становится константой после настройки. а так я считаю, что это просто "настройка", т.е. скорее переменная (сохраняемая при отключении питания) в терминах управляющей программы ))

    у простой стрелки два положения, которым соответствует определенный угол поворота/наклона сервы. как раз эти углы и хранятся в CV. можно сначала найти эти крайние положения (методом подбора), а если положение стрелки не соотв. фактическому (наоборот, например), то просто поменять в CV значения между собой.

    например, для первой стрелки было CV4=80, CV5=110, изображение положения стрелки на Rocomause расходилось с действительностью. после замены будет CV4=110,CV5=80 и фактическое положение стрелки будет соответствовать изображению на Rocomause.

    Цитата Сообщение от yrij_063 Посмотреть сообщение
    зачем нужен артикул устройства?
    пока он был нужен для программирования по сети Loconet. при программировании указывается адрес устройства и его тип(артикул). зачем разработчики так придумали - исчерпывающе не могу ответить. просто у в моем коде CV устроены не по правилам. если делать по уму, то в определенных CV прописываются: тип/вид устройства, производитель и т.д.
    это, например, должно давать возможность КС автоматически опросить наличие устройств опреденного типа, типа plug'n'play для моделей.
    насчет автоопределения, возможно, это только мои смутные догадки из переводов, ни одной КС от Digitrax у меня не было )))
    но декодер работает и без этих фишек и этого достаточно )

    - - - - - - - - - - Добавлено - - - - - - - - - -

    Цитата Сообщение от yrij_063 Посмотреть сообщение
    как управлять таким декодером
    также, как и обычной стрелкой, естественно, КС должна поддерживать сеть Loconet
    Последний раз редактировалось shalex; 29.12.2015 в 21:36.

  13. 3 пользователей сказали cпасибо shalex за это полезное сообщение:

    DM TT (08.11.2015), ERWman (07.11.2015), yrij_063 (06.11.2015)

  14. #8
    Добавил индикацию режима программирования.
    Теперь в режиме программирования светодиод на арудине начинает моргать (в нормальном режиме погашен).
    Если в течении 30 секунд к устройству не обращаются, то оно само выходит из режима программирования.

    Это не спасает от возможности запрограммировать несколько устройств одновременно ,но теперь хотя бы можно будет кинув взгляд (или просто выключить свет) убедиться, что моргает только одно устройство )))

    Исправленный скетч во вложении.
    Вложения Вложения
    Последний раз редактировалось shalex; 12.11.2015 в 14:52.

  15. 5 пользователей сказали cпасибо shalex за это полезное сообщение:

    Alex444 (01.02.2016), Dimas (12.11.2015), DM TT (13.11.2015), yrij_063 (14.11.2015), Крош (12.11.2015)

  16. #9
    Приехали новые платы, которые умеют управлять подачей питания на сервоприводы.

    Новая плата нужна, чтобы избавиться/управлять первоначальным рывком серв при включении питания. Из-за этого рывка, когда включаются сразу десятка два серв, происходит всплеск нагрузки по питанию, который иногда даже уводит блок питания в защиту.

    Новые возможности:
    - задержка включения питания серв. в мс. Настраивается через CV.
    - возможность настройки сохранения позиции сервы: 0 или 1.
    если 1, то При включении декодера серва возвращается в сохр.позицию (можно вкл/выкл через CV).
    если 0, то серва при включении сначала занимает среднее положение и потом занимает положение стрелки "прямо"
    - инициализировать все сервы одновременно или по очереди.настройка через CV:
    - увеличен диапазон регулировки скорости перемещения сервы


    В итоге рывок на сервах при включении питания все равно остался, но уже минимальный - 5-10 град. Есть и что поправить на плате: промахнулся с расположением диода - слишком близко к крепежному отверстию. С помощью CV, а именно с помощью настройки порядка инициализации сервоприводов, можно отчасти управлять нагрузкой на питание.

    Нажмите на изображение для увеличения. 

Название:	10071.jpg 
Просмотров:	7 
Размер:	168.1 Кб 
ID:	25345Нажмите на изображение для увеличения. 

Название:	10072.jpg 
Просмотров:	5 
Размер:	180.9 Кб 
ID:	25346

  17. 2 пользователей сказали cпасибо shalex за это полезное сообщение:

    AleksSF (18.09.2017), DM TT (13.09.2017)

  18. #10
    Поделюсь еще одним "велосипедом"

    Добавил к "своему" декодеру немного удобств:
    - управлением реальным кол-вом серв, подключенных к декодеру с помощью (CV 7)
    - сброс CV в заводские настройки (запись не нуля в CV8)
    - просто перезагрузка декодера. Чтобы не даже под макет не заглядывать. Сейчас надо кнопку reset нажать на устройстве, после настройки CV. (запись не нуля в CV9)

    - - - - - - - - - - Добавлено - - - - - - - - - -

    Схема новой платы:
    Нажмите на изображение для увеличения. 

Название:	10073.jpg 
Просмотров:	16 
Размер:	64.4 Кб 
ID:	25347

  19. 3 пользователей сказали cпасибо shalex за это полезное сообщение:

    AleksSF (18.09.2017), DM TT (20.09.2017), yrij_063 (14.09.2017)

Похожие темы

  1. Токовый модуль обратной связи на Arduino для LocoNet
    от shalex в разделе Электрика и DCC
    Ответов: 12
    Последнее сообщение: 21.09.2017, 21:09
  2. ДЦЦ-Декодер ЛЕД/Серво, 17 выходов на Ардуино
    от PetrOs в разделе Электрика и DCC
    Ответов: 53
    Последнее сообщение: 26.02.2017, 11:19
  3. самодельный ТГК2
    от Aden_Pryde в разделе конверсия | самоделки | самосборка
    Ответов: 52
    Последнее сообщение: 21.10.2016, 14:49
  4. Arduino - справочные материалы
    от Б.О.(zeuke) в разделе Электрика и DCC
    Ответов: 19
    Последнее сообщение: 06.07.2016, 15:02
  5. Ответов: 52
    Последнее сообщение: 12.05.2016, 10:35

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •