Управление шаговым двигателем через контроллер Canny

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Наткнулся недавно на статью камрада BosonBeard про новые контроллеры и решил попробовать на зуб что это такое. Недолго думая были раздобыты 3 типа контроллеров: Canny 3 Tiny, Canny 5 Nano, Canny 7.



Рис. 1. Внешний вид упаковки контроллеров Canny 7 (слева), Canny 5 Nano (в центре), Canny 3 Tiny (справа), шариковая ручка для масштаба



Рис. 2. Внешний вид контроллеров Canny 7 (слева), Canny 5 Nano (в центре), Canny 3 Tiny (справа), шариковая ручка для масштаба

На что стоит обратить внимание… сердцем контроллеров являются чипы семейства PIC — PIC18F25K50-I/ML, PIC18F25K80, PIC24HJ128GP506A-I/PT — соответственно. Про возможности каждого чипа можно прочитать из даташитов производителя, так что не будем заострять на этом внимание. Из особенностей могу добавить только, что у модели Canny 5 Nano есть внешний TTL-USB драйвер на чипе CP2102. На счет подключения и впаянных разъемов на моделях Canny 7 и Canny 3 переживать не стоит, т.к. производитель укомплектовывает поставку солидным пучком проводов с запаянными разъемами.


Применение чипов семейства PIC было неожиданностью. Хотя сам я не большой их поклонник, свою нишу они определенно занимают не зря. К слову, система защиты от протечек “аквасторож” тоже построена на чипах PIC.


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


Внимание! Собственный бутлоадер и графическая среда программирования накладывают определенные ограничения — невозможность использования стандартных библиотек. Но когда это нас останавливало?)


Не уверен что использовать подобный контроллер в качестве полноценного драйвера шагового двигателя даже для настольного ЧПУ или 3D принтера рационально, но для простого поворотного столика для создания моделей или съемки думаю реально.


От старого проекта у меня лежал неиспользованный старенький ДШИ-200 и самодельный драйвер к нему.



Рис.3. Мой старый драйвер шагового двигателя, на рисунке можно увидеть 3 канала управления


Это делает задачу немного интересней, так как готовые примеры рассчитаны на использование обычных сейчас 2-х обмоточных двигателей, в то время как ДШИ-200 — четырехобмоточный с двумя выводами с каждой обмотки.


Для сравнения, стандартная программа управления выглядит так:



А то что изобразил я, для управления своим двигателем выглядело так:



Почему такая разница в программах? Во-первых для таймлапса не надо организовывать реверс, т.е. достаточно вращения двигателя в одну сторону. Во-вторых — особенности самого двигателя, который может быть включен как по униполярной, так и по биполярной схеме. Так что нам подойдет униполярная схема:



В качестве платформы для таймлапса я использовал слегка измененный поворотный стол от 3д сканера cyclopus:



Достоинства и недостатки.
По традиции начнем с недостатков:
Закрытый бутлоадер
Отсутствие возможности подключения внешних библиотек


Из достоинств:
Графическая среда программирования — да, это непривычно, но это снижает порог вхождения
Высокая скорость разработки программ
Простота настройки и наладки программ “по месту” в полевых условиях
Развитое сообщество и поддержка разработчиков


Выводы
Не смотря на то, что контроллер достаточно специфичный и относится больше к узкоспециализированному профессиональному классу, производитель позаботился и о простых смертных. Это действительно сопоставимо со временем написания программ на Arduino. Но если взять более сложные программы, Arduino в проигрыше из-за сложности восприятия кода. Всетаки “картинку” мозг воспринимает быстрей чем текст. Кроме того, человеку который не участвовал в изначальной разработке кода проще будет его разобрать по картинке. Конечно визуальная среда разработки добавляет в загружаемый код хлама, но для сложных задач можно выбрать другой контроллер с большим объемом памяти… в общем каждый сам решает что ему важнее.


Уверен что многие вспомнят визуальную среду программирования Arduino — ArduBlock, которая умеет поддерживать библиотеки различных модулей и протоколов. Однако для чипов PIC ничего такого не было. Да и вообще с того момента как массово стали использовать Arduino про аналогичные устройства на PIC большинство из нас забыло. О достойной альтернативе говорить сложно, но это однозначно шаг вперед.


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

Источник: https://habr.com/ru/post/492910/


Интересные статьи

Интересные статьи

Не так давно в мире Java случилось грандиозное событие. Во всех актуальных версиях OpenJDK стал доступен Java Flight Recorder (или просто JFR). Что такое Java ...
Для поддержки пользователей через интернет портал Deutsche-Telekom www.telekom.de/kundencenter/startseite используется чат бот FragMagenta Архитектура микросервисная, исторически конте...
В данной статье рассматривается вариант использования управление освоенным объемом с нормированным бюджетом (Earned Volume Management with a normalized budget). Таким образом, сохраня...
Привет, Habr! Хочу рассказать историю о том, как мне в руки попал китайский налобный фонарик на светодиоде Cree XM-L и что дальше с ним стало.
Столкнулся с проблемой «ненахода» актуального скрипта для массового создания сотрудников. Проблема связана с переходом Яндекса с PDD (Почта для домена), на Я.Коннект с новой версией API. Ск...