Mio-tech-service.ru

Автомобильный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое шаговый двигатель stm

STM32F3DISCOVERY, акселерометры, шаговые двигатели и немного магии

Добрый день, уважаемый Хабровчанин. Хочу рассказать тебе о своей работе, которой обычно занимаются студенты последних курсов технических ВУЗов (да-да, именно то нехорошее слово на букву «Д»).

Целью работы была разработка системы очувствления и управления мобильным роботом. За сими громкими словами стоит не очень большая, но для меня интересная задача.

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

Закупка:

Свой выбор остановил на следующих комплектующих:

• STM32F3DISCOVERY, так как имеет на борту уже установленный акселерометр и гироскоп. Да и под STM32 имеется уже много готовых примеров, что должно было облегчить задачу (отчасти облегчило).
• Цифровые акселерометры LIS331DH, 3ех осевые, высокоточные (от 2g до 8g). Вообще почти вся серия LIS* очень хороша и подходит под требования.
• Шаговый движок FL42STH25-0404A, ну тут что на любимой кафедре завалялось, то и пошло в дело.

Интересный момент, что в процессе работы искал статьи и информацию именно по STM32F3, и удивился, что ее не так много, как ожидалось (к примеру, по STM32F4 в разы больше примеров и информации). Да вы скажите, что там почти никакой разницы, и будете отчасти правы, но работа с периферией у них оказывается в некоторых местах разная. Поэтому я и решил внести свои 5 копеек по работе с этим микропроцессором.

Потихонечку разбираемся:

Достаем STM32F3DISCOVERY из коробочки, подключаем к ПК и запускаем. Демопрограмма показывает, что при отклонениях лампочки мигают, то есть датчики работают. Кричим «Ура!» и лезем в код разбираться и собственно реализовывать необходимое.

А необходимого много, но сначала решил остановиться на том, чтобы достучаться до внешних датчиков (не бортовых). Распаяли акселя, подключаем. У акселей есть 2 интерфейса для подключения: SPI и I2C. Решил остановиться на SPI, т.к. с ним уже приходилось иметь дело на ATTINY2313 (реализовывал его программно) и думал, что уж с аппаратным SPI вообще проблем не должно быть.

Хотел как проще, оказалось как всегда


Подключение: MISO – MISO, MOSI – MOSI, SCK – SCK, CS можно вешать на любую ногу, так как будем дергать его программно.
Сначала нам надо проинициализировать SPI. В данном примере работа идет с SPI2, так как через первый SPI работает встроенный гироскоп (или аксель, точно не помню):

Пытаемся прочитать данные с регистра WHO_AM_I:
getValue = getRegisterValue(&AXELx, 0x0F);
где

Тут необходимо отметить важный нюанс, что надо вовремя дергать CS акселерометра, к которому обращаемся, так как прижимание CS к земле инициализирует начало передачи данных (именно из-за этого момента у меня возникли жестокие затыки и проблемы, плюс не все акселя удачно запаялись и часть оказалась нерабочими, что застопорило мою работу примерно недели на две. О_о ). Потом отправляем адрес регистра, с которым будем работать (читать/писать), вторым байтом читаем или пишем.

Ну а писать будем так:

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

С датчиками закончили, ура! Теперь давайте перейдем к управлению шаговыми двигателями.

Тише едешь – дальше будешь


Для управления ШД использовался драйвер VNH3SP30. Правда он позволяет управлять только одной из двух обмоток шагового двигателя, поэтому нам понадобится 2 таких платки.

Таким образом, для управления одной обмоткой нам понадобится 3 выхода с микроконтроллера (один несущей частоты и 2 направления), на весь двигатель – 6.

Дефайним порты для удобства:

И инициализируем их:

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

Маска управляющих сигналов следующая:

А теперь делаем шаг в нужном направлении. Направление в данном случае определяется направлением обхода по маске управляющих сигналов:

Определим еще для удобства шаг против часовой и шаг по часовой стрелке:

А теперь напишем функцию, с помощью которой будем вращать двигатель на нужное количество шагов в нужном направлении:

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

Власти в наших руках становится все больше и больше и мы переходим к следующему этапу – отправка данных на ПК и управление ШД с ПК.

Общение по USB

Для работы с USB использовал один из примеров работы с USB, а именно VirtualComport_Loopback (искать на просторах интернета в комплекте STM32 USB-FS-Device development kit). В данном демо подключённый stm32 к ПК определялся как виртуальный ком-порт, и отправлял в обратную все получаемые данные. Ну что же, это нам отлично подходит! Берем данный пример, разрываем петлю обмена и вуаля – пользуемся.

Читать еще:  Двигатель азлк нет давления масла

Единственная проблема, которая возникла – приложение на .Net не хотело подключаться к виртуальному ком-порту, если микропроцессор постоянно опрашивал датчик и слал данные на ПК (интересно, что сторонняя программа Hercules, которой я пользовался для отладки отлично открывала порт). Поэтому я решил добавить ожидание нажатия User Button, после которого уже начинался постоянный опрос датчиков и обмен информацией с ПК.

Собственно получился примерно следующий код:
Инициализация USB:

Ждем пока не нажмем User Button:

Обработчик на нажатие UserButton:

Заключение

В данной статье я опустил многие моменты по распиновке и подключению устройств друг к другу, схемы плат и некоторые другие детали (работа с АЦП) и постарался сделать акцент на работу с периферией. К сожалению, собранный рабочий макет был сдан в ВУЗ (будем надеяться, что последующие поколения заинтересуются данной работой и продолжат ее), в результате чего я не могу продемонстрировать его работу, но у меня сохранилось несколько фото. Вот к примеру фото, когда мы проводили эксперимент по определению амплитуды ускорения при перемещении физической модели транспортного средства по синусоидальной поверхности с разной жесткостью пневмоподвески.

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

Хочется выразить благодарность ВУЗу, который научил меня многому за эти долгие 6 лет и своему дипломному руководителю, который был в меру отзывчив и всегда помогал мне с «научной» деятельностью.

Оптимизация характеристик драйвера

Для того чтобы получить разрешение 256 микрошагов, компания ST разработала усовершенствованный прецизионный алгоритм управления двигателем посредством широтно-импульсной модуляции с контролем тока. В данном алгоритме очередной шаг формируется встроенным компаратором, который сравнивает мгновенное значение тока двигателя с порогом, заданным цифро-аналоговым преобразователем (ЦАП).

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

Оптимизированная структура STSPIN820 позволила также отказаться от встроенного микроконтроллера (МК), имеющегося в других драйверах серии STSPIN, например, STSPIN32F0(A). Такое решение обусловлено тем, что разработчики мобильных электронных устройств имеют в своем распоряжении широкую номенклатуру МК с вычислительными ресурсами, достаточными для управления двигателями. Отказ от встроенного МК позволил компании ST значительно уменьшить размеры кристалла, сохранив при этом все преимущества нового драйвера без ухудшения его характеристик.

Управление шаговым драйвером (приводом)

Доброго всем времени суток!

Сегодня я хочу рассказать о том, как управлять шаговым драйвером с помощью микроконтроллера. Возьмем для примера драйвер PLD545. Все остальные, я думаю, работают аналогично, этот драйвер продавался в purelogic, а там цена выше аналогов на aliexpress в два раза.

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

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

Шаговых приводов выпущено производителями большое разнообразие, чтобы в этом убедиться надо зайти на сайт aliexpress.com и ввести в поиске товаров Step driver. Шаговые привода управляют соответственно шаговыми моторами. В зависимости от конфигурации обмоток двигатели делятся на биполярные и униполярные. Биполярный двигатель имеет одну обмотку в каждой фазе, которая для изменения направления магнитного поля должна переполюсовывается драйвером. Всего биполярный двигатель имеет две обмотки и, соответственно, четыре вывода. Униполярный двигатель также имеет одну обмотку в каждой фазе, но от середины обмотки сделан отвод. Это позволяет изменять направление магнитного поля, создаваемого обмоткой, простым переключением половинок обмотки. Таким образом, в униполярном двигателе используется другой способ изменения направления магнитного поля.

Читать еще:  Активные подушки двигателя что это

Но это не мешает подключать к данному приводу различные по конструкции двигателя:

Некоторые уникальные свойства шагового двигателя делают их порой исключительно удобными и даже незаменимыми для применения. Шаговый двигатель — это разновидность синхронного двигателя, поэтому он имеет высокий крутящий момент на низких оборотах. Но величина момента, помноженная на скорость вращения вала ШД — величина постоянная. С увеличением скорости вращения крутящий момент на валу падает пропорционально. Большинство моторов делает 200 или 400 шагов на оборот, однако конструкция ШД позволяет фиксировать ротор в промежуточных положениях, что позволяет добиться дробления шага до 800-10000(и даже более) шагов/оборот. Подавляющее производимых ШД имеют погрешность при выполнении установки ротора в размере плюс-минус 5% от величины шага, т.е. для двигателя с шагом 1.8 град погрешность составит плюс-минус 5.4 минуты

Преимущества шаговых двигателей

  • Угол поворота ротора определяется числом импульсов, которые поданы на двигатель
  • Двигатель обеспечивает полный момент в режиме остановки (если обмотки запитаны)
  • Возможность быстрого старта/остановки/реверсирования
  • Высокая надежность, связанная с отсутствием щеток, срок службы шагового двигателя фактически определяется сроком службы подшипников
  • Однозначная зависимость положения от входных импульсов обеспечивает позиционирование без использования обратной связи
  • Возможность получения очень низких скоростей вращения для нагрузки, присоединенной непосредственно к валу двигателя без редуктора
  • Большой диапазон скоростей
  • Низкая стоимость(по отношению к сервоприводам)

Главное преимущество шаговых приводов — точность. При подаче потенциалов на обмотки шаговый двигатель повернется строго на определенный угол.
К приятным моментам можно отнести стоимость шаговых приводов, в среднем в 1,5-2 раза дешевле сервоприводов. Шаговый привод, как недорогая альтернатива сервоприводу, наилучшим образом подходит для автоматизации отдельных узлов и систем, где не требуется высокая динамика.

Недостатки шаговых двигателей

  • Резонанс
  • Возможен пропуск шагов, и как следствие — потеря контроля положения(ввиду отсутствия обратной связи)
  • Потеря момента и стабильности на высоких скоростях
  • Невысокая удельная мощность

Возможность «проскальзывания» ротора — наиболее известная проблема этих двигателей. Это может произойти при превышении нагрузки на валу, при неверной настройке управляющей программы (например, ускорение старта или торможения не адекватно перемещаемой массе), при приближении скорости вращения к резонансной. Электрически это никак не может быть замечено, поэтому контроллер все последующие движения будет производить с ошибкой. Для ответственных применений устанавливают датчики обратной связи (контроль вращения или перемещения), но такие датчики достаточно дороги. Наличие датчика позволяет обнаружить проблему, но автоматически скомпенсировать её без остановки производственной программы возможно только в очень редких случаях. Чтобы избежать проскальзывания ротора, как один из способов, можно увеличить мощность двигателя.

Сам проект

Проект сделан на микроконтроллере Mega16 несколько лет назад в программе Code Vision AVR. Структурная схема:
При нажатии кнопки L или R происходит вращение двигателя в какую-либо сторону, и при этом на дисплее отображается направление >>> или 09 Ноя 2014 в 18:56 Михаил Николаевич Мищенко пишет:

А ты что, дома это собираешь? И как, не тяжело писать программы для контроллеров мега 16 в таких установках? С удовольствием бы весь процесс посмотрел от проекта в протеусе до сборки в реальном виде.

Thanks for your whole work on this website. My niece takes pleasure in working on research and it is simple to grasp why. We all notice all relating to the powerful ways you render worthwhile tricks via your website and therefore welcome response from website visitors on this topic while our own simple princess is without question understanding so much. Take pleasure in the rest of the year. Your performing a wonderful job. https://harrington-service.com/

Ваш ответ

Наука и жизнь в России. предыдущее название: Проекты на микроконтроллерах | Благодарим за внимание

Canon ultrasonic

Автор Катюшка – задал вопрос в разделе Выбор, покупка аппаратуры

Что такое USM объектив? что такое STM объектив? Чем объектив USM отличается от STM?(Canon) какой из них лучше. и получил лучший ответ

Ответ от АС[гуру] Объективы с ультразвуковым приводом помечаются аббревиатурой USM в названии. Ультразвуковой привод системы автофокусировки появился в объективе EF 300 mm f/2.8L USM в 1987 году. Canon стала первым производителем, применившим подобную технологию в своей продукции. Объективы, оснащённые USM-мотором, обеспечивают более быструю фокусировку, издают меньше шума и потребляют меньше энергии по сравнению с обычными моторами, применяемыми в объективах. В 2012 году вместе с фотоаппаратом Canon EOS 650D, оснащённым матрицей, у которой часть пикселей предназначена для фокусировки методом разности фаз, были представлены первые два объектива с шаговым мотором (STM — stepper motor). Эта технология обеспечивает многократные быстрые перемещения фокусировочной группы линз на небольшие расстояния, причём с крайне низким уровнем шума. Объективы с технологией STM в сочетании с фотоаппаратами, обеспечивающими фазовую фокусировку с помощью матрицы, позволяют быстро и бесшумно фокусироваться в режимах Live View и при съёмке видео. Очень хорош для съемки ВИДЕО Остальные выводы делайте сами.

Читать еще:  L4cs что за двигатель


Как Вы уже догадались объективов у Canon целый вагон. Есть все и для каждого вида съемки. Не так давно в продаже появились объективы STM.

Они идут в «Китовой» комплектации новых моделей зеркальных, любительских камер Canon.

Что такое объективы STM? STM — это технология фокусировочного механизма, основаная на использовании шагового двигателя (моторчика).

Источники сигнала SYSCLK

Итак, теперь мы знаем, что основным тактовым сигналом в микроконтроллерах STM32 является SYSCLK. Давайте теперь разберемся, как его получить. В нашем распоряжении 3 варианта: генераторы HSI, HSE и модуль PLL:

Рис. 9. Источники сигнала SYSCLK

После сброса микроконтроллера в качестве источника сигнала SYSCLK по-умолчанию устанавливается встроенный RC-генератор HSI. Прохождение тактового сигнала для этого случая представлено на рис. 10, значения по-умолчанию всех делителей обвел кружочком:

Рис. 10. Конфигурация системы тактирования по-умолчанию

А теперь давайте посчитаем значения всех частот в конфигурации по-умолчанию. Частоты HCLK, FCLK, PCLK1, TIMXCLK, PCLK2, TIM1CLK будут равны 8 МГц, частота Cortex System timer равна 1 МГц, а ADCCLK 4 Мгц.

Если мы хотим задействовать HSE-генератор, то картина будет следующей:

Рис. 11. Выбор генератора HSE в качестве источника тактирования SYSCLK

При использовании кварцевого резонатора на 8 МГц все системные частоты будут такими же, что и в предыдущем случае. Разница только в одном: при использовании генератора HSE стабильность частот лучше, чем при использовании HSI. Однако, если мы хотим получить максимальную производительность всей системы, то нужно в качестве источника SYSCLK использовать блок умножения частоты PLL.

И что теперь?

А теперь всё должно заработать. Если нет — диагностику начинать как всегда с питания. Важно, хотя микросхемы-драйверы и имеют встроенную защиту от КЗ, при случайном замыкании выходов питания на землю сгорают моментально. Также возможно, что следует поменять полярность сигналов синхронизации. А может, вы забыли инициализировать микросхему ОЗУ какой-нибудь SDRAM_Initialization_Sequence? И вообще, она у вас точно работает?

Снят ли с дисплея RESET? Посмотреть осциллографом, что там действительно творится на выходах LTDC, посчитать периоды и частоту. Если плата самодельная — проверьте целостность линий.

Если заработало, можно поиграться с Background color, или же залить экран каким-нибудь цветом с помощью memset:

Либо включить DMA2D (в настройках выбрать формат цвета такой же, как в LTDC)

И попробовать залить экран цветом при помощи него:

Как вы, как производитель камер, относитесь к съёмке с объективами MF на EOS R5 и R6 при помощи адаптера от сторонних производителей?

Кенго Иезука: Камеры EOS R5 и EOS R6 оснащены встроенным механизмом коррекции дрожания камеры. Используя эту систему, можно наслаждаться съёмкой старым мануальным объективом. Хотя на это и не распространяется гарантия Canon, мы надеемся, что нашим пользователям понравится съёмка с использованием различных адаптеров крепления, в том числе и других производителей.

Выводы

На сегодняшний день так долго бывшие лидерами рынка в области встраиваемых решений 8-ми и 16-тибитные микроконтроллеры были практически вытеснены полноценными 32-битными гигантами, вроде ядра Cortex-M. Это позволило разработчикам не вникать во внутреннее строение, думая на уровне архитектуры, а сосредоточиться на более высоком – программном уровне. Таким образом грань между персональными компьютерами и микроконтроллерами значительно размылась. Проблемами, которые отталкивала разработчиков от 32-битных контроллеров семь лет назад были высокая стоимость кристалла, сложность его сопряжения с внешним миром, высокое энергопотребление.

Когда производители уменьшили энергопотребление кристаллов за счет создания множества механизмов отключения отдельных модулей в ненужные моменты времени и внедрили в свои устройства высококачественные модули шифрования, множественные АЦП и ЦАП, модули связи – началась эпоха цифровых сигнальных процессоров. Однако очевидно, что удовлетворяющий большинство современных прикладных задач кристалл будет требовать охлаждения, равносильного охлаждению ядерного реактора, поэтому в определенный момент гонка за максимальной частотой тактирования закончилась. Началась эпоха параллельных вычеслений. Можно утверждать, что МК серии STM32F4 находятся посредине – на этом переходном этапе, определенно занимая свою нишу.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector