Arduino Train Apps

 

 

Увлечение нашим хобби предпологает много времени и ручного труда. Чтобы вы могли сократить ваши усилия я представляю здесь несколько моих разработок. Есть способ ускориться еще больше — использовать 3D принтер и министанок ЧПУ. Возможно вам также понравятся несколько примеров их применения и мои советы по разработке.

 

Стрелочный перевод

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

Учитывая большую погрешность в положении рычага дешевого сервопривода при остановке после вращения, и необходимость удобной регулировки без инструментов на месте установки, задача показалась мне неразрешимой. Впрочем, я придумал даже гораздо больше. Плечи рогатки, как и сам механизм, изготовлены из тонкого оцинкованного листового металла (профиль для гиспсокартона). Итак, сгибая их пальцем, вы можете регулировать ход стержня и, соответственно, точность положения тяги стрелки. Кроме того, эти плечи действуют как амортизатор, парируя ошибки механической трансмиссии и надежно фиксируя механизм переключения передач в крайних положениях. Тяги и стрелочный коннектор сделвны из скрепок и булавочной иглы. Но это еще не все. Если рычаг сервопривода установлен в положение 90 градусов, механизм разблокирован, и вы можете переключать стрелки вручную. Эскизы и примеры в этом проекте сосредоточены именно на этом механизме.

В отличие от других известных конструкций сервоприводов, эта конструкция не требует места под макетом. То есть вы можете разместить такой механизм на столе или полу рядом с рельсами. Или, как при классической установке сервоприводов, под макетом. Есть также модифицированную версия механизма с добавлением датчика Холла. В этой модификации стрелочный перевод генерирует сигнал положения стрелки, как при использовании концевых выключателей. Только он надежнее, так как не имеет механических контактов.

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

Инструкция по изготовлению
... ...
...

Железнодорожный переезд

Моя версия вращения шлакбаумов была разработана почти десять лет назад, и первый прототип, показанный на видео, переехал в Арабские Эмираты пять лет назад в качестве подарка. Популярность моего дизайна в том, что механизм привода чрезвычайно тонок. И выполнен таким образом, чтобы полностью вписываться в пространство под платформой переезда и не выходить за его габариты. Этот механизм преобразует поступательное движение тяги от сервопривода во вращение стрелы и в то же время имеет амортизатор. Горизонтальный угол вектора тяги может быть установлен вами в широком диапазоне. Каждый шлакбаум приводится в действие отдельным сервоприводом. Поэтому их можно перемещать асинхронно и с разной скоростью, что больше похоже на реальное поведение железнодорожного переезда в котором это происходит именно так. Также в прототипе используются классические мигающие огни.

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

На видео вы видите работу железнодорожного переезда подключенного к системе URB. Источниками сигнала поезда о приближении и выезде из зоны железнодорожного переезда являются инфракрасные датчики, расположенные на детерменированном расстоянии от переезда. От этих сигналов (в терминологии системы: событий) срабатывает алгоритм.

Здесь я использую инфракрасный датчик с разделенными излучателем и приемником, где они развернутыми относительно рельсов на 45 градусов и установлены на моей оригинальной платформе. Таким образом, я устраняю проблемы с различной отражающей способностью вагонов и ложным срабатыванием датчика при смене движущихся вагонов поезда в зоне действия датчика. То есть, на такой платформе действует обратный алгоритм, в отличие от обычного — пока поезда нет датчик активен, когда поезд пересекает датчик, и пока он полностью не покинет зону его действия, датчик блокируется. Очевидно, что минимальное расстояние срабатывания от зоны датчика до переезда должно быть таким, чтобы при приближении поезда на максимальной скорости шлагбаум успевал опуститься. Это расстояние должно быть установлено экспериментально.

...

На всякий случай я уточню некоторые принципы работы сервоприводов. Обычный сервопривод всегда вращается с максимальной скоростью и у разных моделей скорость вращения разная. Есть быстрые и медленные сервоприводы, но скорость вращения всегда постоянна. То есть мы не можем сделать вращение быстрее, чем установлено. Но мы можем снизить эту скорость, поворачивая вал сервопривода на небольшой угол с задержкой, и повторять этот процесс снова и снова, пока сервопривод не повернется в нужное положение. Для этого есть альтернативные библиотеки для Ардуино очень похожую по функциям на стандартную, но с регулировкой скорости, например VarSpeedServo. Инструкцию по установке библиотеки сторонних производителей в среде Arduino IDE вы прочтете на странице автора. В результате вы получаете еще одну настройку для управления вращением сервопривода. Второй параметр myservo.write (угол, скорость, true); установливает скорость от очень низкой: 10-50, до максимальной: 255. В обычных скетчах удобнее указывать непосредственно угол поворота сервопривода, но в этом случае лучше использовать переменную. Она может пересчитываться динамически во время работы программы — это позволяет создать еще более реалистичное поведение движущихся объектов, например, когда положение опускающегося шлагбаума ближе к крайнему положению его можно замедлить или реализовать небольшой отскок.

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

Оригинальный алгоритм автоматизации движущихся барьеров использует две переменные для каждого датчика, одна из которых действует как защелка. В результате обеспечивается независимость от времени, а код становится очень простым.

if (latch_s1 & & latch_s2 & & !trigger_s1 & & !trigger_s2) {
  latch_s1 = false;
  latch_s2 = false; 
} 
					
Алгоритм корректно реагирует на остановку поезда в зоне действия датчика и даже на маневры поезда на железнодорожном переезде. Вы также можете добавить звуковой модуль MP3 pleer для Ардуино.


Прочный светофор

Железнодорожные сигналы редко встречаются на макете, и их наличие является признаком профессионализма. Не то что бы моделисты не хотят их устанавливать, но это нетривиальная задача — алгоритм переключения множества сигналов необходимо корректировать для каждой железнодорожной линии или переключать их вручную. С Ардуино все становится намного проще. Вместе с доступностью информации о положении всех стрелочных переводов и простотой программирования система URB позволяет создать любую сигнальную систему. Для большей реальности яркость сигналов рекомендую индивидуально подбирать резисторами — яркость и спектр светодиодов разных производителей сильно отличаются. Также очень удобно использовать решение для подключения множества сигналов через несколько очень дешевых плат с чипом PCF8574. Остается еще одна причина: светофоров нужно много и они достаточно дороги. Так давайте делать их самостоятельно.

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

Инструкция по изготовлению
...


Продолжение следует