Как использовать шаговый двигатель в тинкеркад
Перейти к содержимому

Как использовать шаговый двигатель в тинкеркад

  • автор:

Привод стрелки шаговым двигателем

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

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

Кандидат в приводы стрелок

Моторчики эти существуют в двух вариантах: с полукольцом (на фото) и с ушком за которое можно закрепить что-то винтом.

Для проверки сделал тягу из проволоки 0.5 мм., которая прекрасно держится за выступ с полукольцом, собрал схему с ардуино, стабилизатором питания AMS1117 и драйвером MX1508, взял элементарный скетч для шагового двигателя, настроил движение на 450 шагов + ресет на 500, и результат оказался очень хорошим:

У меня стрелки Peco с достаточно мощной пружиной, которая обеспечивает нужное прижимание остряка, демонтировать пружину не требуется. Мотор запитан от стабилизатора 3.3 В, чтоб преодолевать сопротивление пружины, а при встрече с препятствием пропускать шаги не повреждая ничего вокруг. Тяга из проволоки сама тоже немного пружинит, а так же пружинит в местах крепления к стрелке и редуктору. Плюс есть небольшой люфт в крепеже тяги к стрелке и редуктору, что дополнительно защищает стрелку от повреждения при переключении, т.е. финальные доли миллиметра остряк проходит под действием родной пружины в стрелке, а тяга его догоняет.

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

Схема в стиле кишки наружу

На фото выше первая сборка прототипа декодера для управления шаговым двигателем привода стрелки. Схема управления шаговым двигателем крайне простая. Схема для чтения DCC-пактов сложнее, но тоже ничего сверхъестественного. Схемы и программы для ардуино легко гуглятся, а сложности и вопросы решаются на форумах. Ноу-хау только в том, чтоб совместить все в одном и научить правильно работать.

Изготовление корпуса привода

Изначально планировался всего один вариант исполнения привода, но на практике их получилось несколько для разных вариантов размещения.

Первый чертеж привода

Для проектирования 3D-моделей приводов я освоил FreeCAD, который не лишен недостатков, но для моих целей оказался гораздо удобнее браузерного Tinkercad. Разработка каждого варианта заняла много времени как на проектирование, так и на тестирование результата, и породила много пластикового брака. Описывать тонкости процесса нет смысла, в целом все сводилось к измерениям, проектированию, печати, проверке; и так много раз. В результате появилось несколько жизнеспособных вариантов приводов. Так же в процессе разработки проволочная тяга была заменена пластиковой, которую легче воспроизвести и выглядит она лучше, а сам редуктор на вариант с ушком вместо полукольца для возможности использования винтов в креплении тяги.

Накладной привод

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

P10227-190514.jpg

Обычная крышкаКомпактная крышка

GP35 с выступающими частями проходит привод со стандартной крышкой

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

Так же есть дополнительная компоновка, где мотор утоплен ниже уровня «земли», чтоб габарит привода был не выше рельса.

Утопленный привод

Утопленный привод

Привод на макете

И еще один вариант компоновки с мотором ниже уровня «земли», но развернутым зеркально. Такой вариант используется в тех местах, где нет возможности разместить привод на противоположной стороне стрелки.

Зеркальный привод без крышки

Зеркальный привод на макете

Накладной привод с датчиком положения

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

P10503-121443.jpgP10503-121421.jpg

На тяге «гребенка» с шагом 1 мм, на перевод стрелки приходится 4 срабатывания датчика, это вполне достаточно для контроля положения. Красный пластик «прозрачный» для датчика, поэтому окрашен в черный цвет.

Туннельный привод

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

P10321-004411.jpg P10321-004417.jpgP10321-004428.jpg

Туннельный привод на макете

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

Туннельный привод 2

Туннельный привод 2 в сборе

Туннельный привод на макете

Кассетный привод

Эта компоновка была разработана для минимизации видимой части привода. Редуктор мотора расположен перпендикулярно плоскости стрелки, на съемной кассете. Большая часть расположена ниже уровня макета, видимой остается лишь тяга и плоскость основания.

P10320-010556.jpg P10320-010610.jpg P10320-010727.jpg P10320-010837.jpgP10320-010901.jpg

Кассетный привод на макете

Подмакетный привод

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

P10325-234152.jpgP10325-234247.jpg

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

Arduino DCC step motor shield

Мне требовалось устройство, на котором можно было бы отладить схему и ПО декодера, а так же использовать для перевода приводов, пока не готовы печатные платы. Использовать сборку в стиле «кишки наружу» на макетной плате (фото выше) было крайне неудобно, поэтому был сделан шилд для ардуино уно.

Arduino DCC step motor shield

Шилд разделен на 2 платы: приемник DCC-сигнала и плата управления двигателем. На приемнике предусмотрена кнопка ручного управления, а на плате управления двигателем предусмотрен переключатель выбора питания драйвера от стабилизатора 3.3В или от 5В.

Декодер для шагового двигателя

Декодер для одного привода

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

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

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

Платы для декодера

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

Программное обеспечение декодера (прошивка) создана на основе открытых библиотек для ардуино и, конечно же, моего «ноу-хау», чтоб все слаженно работало вместе.

Подробное описание разработанного декодера и его настроек можно посмотреть здесь.

Данные декодеры я планирую продавать в виде КИТов для сборки вместе с приводом стрелки. Если вы заинтересованы в приобретении, пишите!

Стоимость

Для сборки экспериментального накладного привода понадобилось купить:

  • разные модели моторов, драйверы и стабилизаторы питания, примерно на 500 руб.
  • ардуино, макетная плата и всякая мелочь для нее, еще около 1000 руб.

Комплект из 10 моторов для приводов 1000 руб.

Всякие электронные компоненты для создания прототипа шилда для ардуино еще примерно 1000 руб.

Комплект 10 драйверов и разной электроники для плат 1000 руб.

Комплект из 10 ардуино про-мини 3000 руб.

3D принтер и пластик 17000 руб. (конечно он нужен не только для макета, но тем не менее)

Комплект из 10 плат для декодеров 1000 руб.

Комплект из 10 плат для двойных декодеров 1000 руб.

Еще комплект из 10 ардуино и 20 драйверов 2500 руб.

Как использовать шаговый двигатель в тинкеркад

  • Автор темы Буратино
  • Дата начала 2 Авг 2020

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Буратино

2 Авг 2020 13 0

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

Эдуард Анисимов

23 Сен 2019 2,242 957 57 Марий-Эл

Ни один ресурс Вам не поможет так, как Вы можете себе помочь.
Нужно сначала поставить себе задачу. Несложную.
Да хотя бы нажал кнопку светодиод горит.
Нажал ещё раз, не горит.
НО. При этом ища и читая информацию. Как следует вдумываясь в неё.
Т.К. 90% что Вы прочитаете это фуфло и гонево.
НЕ смотрите видосики. За редким исключением нарвётесь на бекающего-мекающего чувака. Которому важно не объяснить а накрутить просмотры.
Лучше читать и обрабатывать информацию.
И самое главное. Не пользуйтесь готовыми библиотеками.
Сначала напишите сами. А когда поймёте что к чему. Вы будете понимать как работают более сложные библиотеки.
И только тогда Вы поймёте что для чего нужно.

Arduino.ru

Пытаюсь создать гирлянду из обычный светодиодов 5мм

Пнд, 13/12/2021 — 07:25 | by Milford

Сразу скажу я новичок в ардуино и вообще в электронике, пытаюсь сделать гирлянду из обычный светодиодов 5мм как видно на схеме светодиоды теряют яркость по сравнение со светодиодом выше, возможно ли как то создать примерную гирлянду, с большим количеством светодиодов, не теряя мощность и яркость? ссылка на сайт со схемой https://www.tinkercad.com/things/bILcM5rNA6X-start-simulating/editel

ad8232 зачем 3 электрода и как справляться с помехами

Вс, 12/12/2021 — 00:28 | by vasya00

Здравствуйте, пытаюсь подключить модуль ad8232, что то даже получается, на фоне помех отчетливо видны R зубцы, об анализе ЭКГ конечно речи нет из за помех. Но все таки кому то удалось справиться с помехами и получить сколько нибудь пригодные для анализа плёнки? Хотя бы для оценки ритма и ширины комплексов QRS? И ещё не ясно зачем используется 3 электрода? Мы ведь снимаем только одно отведение? Это разность потенциала между двумя точками, зачем третий?

  • 11 комментариев
  • Читать далее

Вывод растрового монохромного изображения на дисплей TFT 1.77″ 128×160 SPi

Сб, 11/12/2021 — 23:24 | by Дкаэлу 113

необходимо вывести QR-код на tft экран с ардуино уно, использовал инструкцию с https://arduinoplus.ru/arduino-tft-lcd-display/#i-22 , заливает область вывода черным, перекодировал так ка на сайте. Прошу помочь чем сможете)

Работа с ик датчиком и пультом

Пт, 10/12/2021 — 22:26 | by anonim9900

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

  • Общий
  • Песочница. Раздел для новичков

Многопоточность — ethernetshield + шаговый двигатель

Пт, 10/12/2021 — 16:45 | by God_father86

Написал скетч для управления шаговым двигателем, с кнопок управляется отлично. Теперь возникла необходимость управлять двигателем програмно. Для этого взяли ethernet shield. По http GET-запросом устанавливаю состояния выходов — с LOW на HIGHT. При LOW двигатель должен двигаться, при HIGHT — останавливаться. Проблема в том, что при выполнении программы происходит смена сигнала на LOW, и затем arduino как-будто уходит в себя, докручивает шаговик до конца, и только после этого принимает команду HIGHT.

Нужна помощь в скетче

Пт, 10/12/2021 — 12:16 | by cargoluxe

Всем привет, изучаю первые пару дней ардуинку.

● Проект 17: Сервопривод. Крутим потенциометр, меняем положение

Сервопривод (см. рис. 17.1) – устройство, обеспечивающее преобразование сигнала в строго соответствующее этому сигналу перемещение (как правило, поворот) исполнительного устройства. Представляет собой прямоугольную коробку с мотором, схемой и редуктором внутри и выходным валом, который может поворачиваться на строго фиксированный угол, определяемый входным сигналом.
Как правило, этот угол имеет предел в 60 в 180. Кроме этого, еще бывают сервоприводы и постоянного вращения.

Рис. 17.1. Сервопривод

 Сервопривод TowerPro SG90 подключается к Arduino

Сервопривод подключается с помощью трех проводов к управляющему устройству (драйверу или контроллеру) и источнику питания. Сервопривод управляется с помощью импульсов переменной длительности. Угол поворота определяется длительностью импульса, который подается по сигнальному проводу. Это называется широтно-импульсной модуляцией. Сервопривод ожидает импульса каждые 20 мс. Длительность импульса определяет, насколько далеко должен поворачиваться мотор. Например, импульс в 1,5 мс диктует мотору поворот в положение 90° (нейтральное положение). Когда сервопривод получает команду на перемещение, его управляющий орган перемещается в это положение и удерживает его. Если внешняя сила действует на сервопривод, когда он удерживает заданное положение, сервопривод будет сопротивляться перемещению из этого положения. Максимальная величина силы, которую может выдерживать сервопривод, характеризует вращающий момент сервопривода. Однако сервопривод не навсегда удерживает свое положение, импульсы позиционирования должны повторяться, информируя сервопривод о сохранении положения.
В нашем эксперименте мы будем управлять положением сервопривода с помощью потенциометра. Схема подключения сервопривода и потенциометра к плате Arduino показана на рис. 17.2.

Рис. 17.2. Схема подключения сервопривода и потенциометра к Arduino

Cервопривод подключается тремя проводами: питание (Vcc), «земля» (Gnd) и сигнальный (С). Питание– красный провод, он может быть подключен к +5 В внешнего источника питания, черны (или коричневый) провод – «земля» – подключается к GND-выводу Arduino GND, сигнальный (оранжевый/желтый/белый) провод подключается к цифровому выводу контроллера Arduino. Для питания сервопривода используем отдельный блок питания +5 В. Для управления сервоприводом в Arduino имеется стандартная библиотека Servo. На платах, отличных от Mega, использование библиотеки отключает возможность применения analogWrite() (ШИМ) на пинах 9 и 10 (вне зависимости, подключены к этим пинам сервы или нет). На платах Mega до 12 сервоприводов могут использоваться без влияния на функциональность ШИМ, но использование от 12 до 23 сервомашинок отключит PWM ШИМ на пинах 11 и 12.
Аналоговые данные потенциометра (0–1023) масштабируем функцией map() в значения угла поворота сервопривода (0–180) и с помощью библиотечной функции servo.write(angle) даем сервоприводу команду для поворота. Скетч приведен в листинге 17.1.

#include // подключение библиотеки Servo Servo servo1; const int pinServo=8; // Пин для подключения сервопривода const int POT=0; // Аналоговый вход A0 для подключения потенциометра int valpot = 0; // переменная для хранения значения потенциометра int angleServo = 0; // переменная для хранения угла поворота сервы void setup() < // подключить переменную servo к выводу pinServo servo1.attach(pinServo); > void loop() < valpot = analogRead(POT); // чтение данных потенциометра // масштабируем значение к интервалу 0-180 angleServo=map(valpot,0,1023,0,180); // поворот сервопривода на полученный угол servo1.write(angleServo); delay(15); // пауза для ожидания поворота сервопривода >

Порядок подключения:

1. Подключаем датчик сервопривода и потенциометр по схеме на рис. 17.2.
2. Загружаем в плату Arduino скетч из листинга 17.1.
3. Поворотом ручки потенциометра управляем положением сервопривода.

Листинги программ скачать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *