Arduino Train Apps

Мультиплеер и многоканальное управление

Эта функция аналогична управлению поездами c нескольких трансформаторов. Разница лишь в удобстве: вы можете установить приложение на второе устройство Android или воспользоваться селектором драйверов и получить тот же результат без добавления оборудования. Образцы скетчей для этой функции показаны в примере трека ROCO и URB макета.

Интерфейс приложений DUO и QUADRO запоминает текущее состояние элементов управления поездом и восстанавливает его при переключениях селектора.

Приложения
c этой функцией
...
...

...

 

Приложения
c этой функцией
...

Инерционный режим

Когда активирован инерционный режим, регулятор тяги устанавливается в центральное положение, и его поведение становится похожим на работу ручки TDB (дроссельной заслонки/динамического тормоза). Чем дальше от центра вы перемещаете ползунок, тем активнее ускорение или торможение. Когда ползунок отпущен, он немедленно устанавливается в центральное положение, при этом скорость стабилизируется.

Попробуйте этот режим при остановке на станции или перед тупиком. В приложении DUO вы также можете использовать различные уровни инерции ваших поездов. Низкий (LOW) уровень позволяет быстро разгоняться и тормозить, что подходит для поездов с небольшим количеством вагонов, высокий (HVY) уровень имитирует вождение тяжелых грузовых поездов.

...

Возможности приложений

Все приложения Arduino Trains имеют функцию управления переключением стрелок. Количество управляемых стрелок увеличивается с двух каналов в приложении START, до семнадцати каналов для обычных стрелок с двумя позициями, и, дополнительно, с другими типами стрелочных переводов в приложениях DUO и QUADRO. Количество кнопок управления напрямую не связано с количеством стрелок на макете, в некоторых случаях, благодаря алгоритму, вы можете переключать несколько стрелочных переводов одновременно одной кнопкой. Более того, это предпочтительный метод, поскольку система управления в первую очередь контролирует участки пути.

Ваш макет это не только поезда, железнодорожные пути и стрелочные переводы — в зданиях и сооружениях на вашем миниатюрном ландшафте вечером могут в разнообразном порядке зажигаться окна, включаться уличные фонари; возможно у вас будут движущиеся или вращающиеся механизмы (шлакбаумы, разводные мосты, краны, поворотный круг и другие элементами инфраструктуры). Система URB предлагает гибкое решение для этого. Вы можете использовать десятки каналов управления механизмами и освещением, использовать любые эффекты от плавного включения до случайного включения / выключения множества окон. Лучше всего для этого подходит приложение DUO. Во всех приложениях есть универсальная кнопка CUSTOM, которую вы можете назначить в коде на любое событие.

Обратная связь дает возможность использовать сенсоры для управления поездами и расширеную индикацию состояния путей. Режим AWS это автоматическая остановка поезда по назначенному вами сенсорному событию со звуковой и цветовой индикацией в пользовательском интерфейсе приложения.

В системе URB изначально предусмотрен запуск скриптов для автоматическим управлением множеством поездов, с возможностью создания и движения по маршрутам. Если вы добавите к модулю COMM часы реального времени, то возможен запуск по расписанию.

По умолчанию во всех приложениях есть звуки гудка локомотива. В Протоколе 3.9 добавлена возможность переноса звуковой подсистемы на ваш макет. Достаточно добавить к Ардуино модуль MP3 плеера и вы можете использовать собственные звуковые файлы используя данные состояния тяги. Так же вы можете установить MP3 плееры на локальные модули для создания местных звуковых эффектов.

Приложения DUO и QUADRO вместе с описанием применения расширенных функций системы доступны только для членов Клуба URB. Остальные приложения вы можете скачать из магазина приложений.

Locked
...

 

...
...
...

Arduino NANO

Сколько "убийц" классического Ардуино промаршировало за время существования моего проекта и тихонько ушло в небытие я даже не упомню. Самым именитым был STM32F103, очень распространенная платформа и хорошие собственные средства разработки. Интегрированные чипы ESP также являются очень интересным решением, которые наголову выше по производительности старенького ATmega. И, тем не менее, Ардуино НАНО по прежнему самая доступная и самая продаваемая плата. И проект URB использует, в основном, именно НАНО.

Основная причина это сам микроконтроллер ATmega328p — он очень прост и понятен. Для него не надо устанавливать дополнительные патчи в Arduino IDE и изучать особенности применения специализированного под конкретный чип кода. Его производительности и памяти хватает с запасом, если использовать многоплатное решение. В отличае от новых чипов, логический уровень его пинов 5 вольт (все современные чипы сделаны на техпроцессе для 3.3 вольт и менее). А это значит большая дальность проводных шин, большая мощность на пинах и меньше проблем с подключением периферии.

...

Конечно у НАНО есть много недостатков. По сравнению с Ардуино MEГА у него всего один аппаратный последовательный порт, причем на него установлен чип с интерфейсом USB-Serial. Всего шесть пинов с ШИМ от трех таймеров с очень замысловатым делителем частот скважности (сравните с ESP12 и STM). При этом изменение параметров таймеров может повлиять на корректность работы библиотек (известная история с сервоприводами и Таймером 1). Практически никогда не используемые пины A6 и А7. И чудовищное количество мифов от «бывалых», бред которых можно разоблачить только ткнув их в техническую документацию. Вы обязательно столкнетесь с мнением этих бойцов форумных фронтов про то, что "китайская поделка с чипом CH3400 не совместима с оригинальным Ардуино", так вот правильно так:

… на Ардуино НАНО 19 цифровых GPIO, а не 11 цифровых и 6 аналоговых. GPIO (general-purpose input/output) это синоним слова пин, а не отдельные понятия. Сервоприводы можно подключать к любым пинам, а не только к имеющим аппаратный ШИМ. У ШИМ есть только один байт для задания уровня скважности, соответственно диапазон переменной analogWrite от 0 до 255, и никак не до 1024. На НАНО есть интерфейсы I2C, Serial и SPI — остальные интерфейсы (TCP, CANbus и беспроводные) можно реализовать используя дополнительные внешние модули только через них. Регулятор напряжения подключенный к пину Vin может держать напряжение до 25 В, а не до 12-и. Частоты (16 МГц) ATmega328 достаточно для управления любыми системами, используемыми для модельных железных дорог. Нет смысла использовать высокоскоростные микроконтроллеры реального времени с частотами от 100 МГц и выше… Перечислять можно бесконечно, поэтому смотрите техданные, благо по Ардуино их всегда полный комплект.

И, кстати, у меня только Ардуино НАНО из Китая. За 10 лет не сломался ни один из них. Причем я гонял их и в хвост и в гриву.


...

Ток для каждого GPIO в режиме вывода ограничен 40 мА. Такого тока достаточно только для сигнальных светодиодов, при этом необходимо установить последовательно ограничивающий резистор около 100-200 Ом. Вы также можете напрямую подключать управляемые контакты таких модулей Arduino, как реле, датчики, сервоприводы, драйверы двигателей и прочее.

Arduino может управлять более мощной нагрузкой с помощью усилителей или реле. Одним из вариантов усилителей (тока и напряжения) является мотор-драйвер. В большинстве случаев смена полярности не требуется, поэтому достаточно собрать схему из нескольких транзисторов. В проекте URB вместо транзисторов используются микросхемы ULN2X03, где эти транзисторы уже собраны в матрицу Дарлингтона. Обратите внимание, что такая матрица работает с общим плюсом, а не как обычно с общей землей (GND). Вы также можете использовать любые другие драйверы выходного тока.

Мотор-драйвер L298N

На рынке деталей для Ардуино присутствует почти бесконечное количество мотор-драйверов. Но в моем проекте я использую только достаточно старый драйвер на чипе L298. Принцип тот же что и с НАНО: он дешев, надежен и доступен. Диапазон напряжения питания, и, соответственно, выходных напряжений у него от 5 до 46 В. Ток на каждом канале тоже неплох: до 2-х ампер, плюс эффективное гашение индуктивных всплесков и защита от короткого замыкания.

В отличии от других драйверов моторов на L298N шесть пинов управления и перемычки на ENA и ENB. Все достаточно просто: пины IN1 и IN2 управляют полярностью выходов OUT1 и OUT2, то же справедливо для второго канала (IN3 и IN4). Если при этом вы установите перемычки, то сможете переключать два стрелочных перевода электромагнитными приводами. Если вместо перемычек вы подключите ШИМ пины Ардуино, то сможете управлять поездами.

...
...
...
...
...
...
...

...

Bluetooth HC-06 (HC-05)

Причина использования Блютус и модулей HC-06 (или HC-05) в минимально необходимых усилиях со стороны моделиста для организации беспроводной связи между Android и системой URB. Все процедуры и софт по организации сопряжения и настройки множества параметров для создания и функционирования сети интегрированы в чипы этих модулей. Не нужен никакой код в скетчах или дополнительный роутер для создания виртуального канала RX/TX между приложением и Ардуино.

Согласно отзывам моделистов, использующих мои приложения, часто возникает запутанная ситуация с подключением нескольких модулей Bluetooth. Проблема не в самом подключении, оно работает очень надежно, а в согласовании имен множества устройств, сопряженных с телефоном. Поэтому изначально в моих приложениях отображается MAC-адрес подключенного устройства. Для опытных моделистов я рекомендую переименовывать используя AT-команды название модулей по умолчанию во что-либо конкретное, например Driver One и Driver Two.


...

Релейные модули

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

Я рекомендую применять инвертированный режим подключения исполнительных контактов, чтобы при ВЫСОКОМ (HIGH) уровне управляющего пина Ардуино, реле размыкало цепь. Вопреки устоявшемуся мнению реле имеет не два, а четыре состояния. Это связано с разными байпасными режимами, которые при обесточивании управляющей схемы должны сохранять безопасное положение контактов.

...

...

Блоки питания

Электропитание для системы управления URB разделено на две ветви: одна для движущихся поездов и приводов, вторая для электроники и периферийных устройств на макете. Таким образом, короткие замыкания на рельсах и другие неполадки с поездами не повлияют на управление остальной части вашего макета. Для небольших проектов досточного любого зарядное устройство для современных смартфонов с разъемом USB. Ток таких зарядных устройств должен составлять около 2 А. Для движения поездов вы можете использовать БП из стартерного комплекта, или любой источник питания постоянного тока с напряжением 12 В. Пожалуйста, обратите внимание, что выходной ток также должен составлять около 1 А или более. Для больших макетов используйте соответствующие по мощности источники питания. Идеальным решением может быть компьютерный блок питания, он сразу выдает напряжение как 5 В, так и 12 В с защитой. Также вы можете подключить два стандартных блока питания, на 5 В и 12 В, соединив их отрицательные провода вместе.


В этой итерации проекта URB я решил использовать только готовые и самые доступные модули Arduino. Старожилы проекта, безусловно, могут продолжать использовать свои URB юниты. В моих видеороликах вы также можете увидеть эти устройства, но на схемах и эскизах URB юниты заменены на винтовые клеммные шилды Arduino Nano.

Очень важным моментом является возможность установки Arduino NANO в разъем вашей схемы. Вы также можете подключить провода непосредственно к выводам платы Arduino, но в этом случае вы не сможете заменить или перенести плату Arduino для перепрограммирования без разрушения вашей схемы. Кроме того, надежность вашей системы, использующей резьбовые соединения, намного выше.

Когда я начал экспериментировать с наиболее распространенным винтовым шилдом для Arduino NANO, я столкнулся с неудобствами, с которыми столкнетесь и вы. Во-первых, клеммы имеют очень маленький размер — вы не сможете правильно подключить к клемме более одного провода. Это вызывает большие проблемы при подключении проводов питания к внешним устройствам, поэтому первым улучшением является добавление промежуточных общих клемм a для контактов 5V и GND. Второе, и вы обязательно это сделаете — неправильная установка платы Arduino, повернутой на 180 градусов к шилду. Поэтому нанесите яркую метку или каплю краски на углы НАНО и шилда в качестве видимого ключа.

...
...

Если у вас есть паяльник, то вы можете модифицировать один из шилдов для COMM модуля. Вам понадобится обычная игла, четырехконтактный разъем и немного времени. Как вы можете видеть, к обратной стороне также припаяны резисторы подтяжки шины I2C.