цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Робот на основе Arduino. Часть I – управление двигателями

Робот на основе Arduino. Часть I – управление двигателями

Автор: Mike(admin) от 25-04-2014, 07:01

Arduino – настолько распространенная и простая плата, что сложно не сделать на ее основе какого-нибудь незамысловатого робота. Например, такого:


Робот на основе Arduino

Сегодня мы рассмотрим связь с драйвером TB6612FNG и управление двигателем с помощью этого драйвера.


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


Двигатели Mabuchi FA-130RA-18100


Двигатели, которые использовались для построения вышеприведенного робота, называются FA-130RA-18100. Это компактные игрушечные моторы. Они могут потреблять около 0.1 – 0.2 А на холостых оборотах. В реальной работе их токопотребление может составить 0.5 А. Если вы боитесь, что ваше приложение будет потреблять больше тока, то следует предусматривать какую-нибудь защиту от превышения тока, например, можно поставить предохранитель или организовать в микроконтроллере обратную связь по току.


Контроллер двигателя Toshiba TB6612FNG


Контроллер TB6612FNG является недорогим и легко монтируемым на плату решением. Некоторые компании продают этот контроллер уже в виде готового модуля, например, Pololu TB6612FNG Motor Driver Carrier. Он может стоить около $5.


Основные характеристики драйвера:


  • Два независимых канала двунаправленного управления двигателем

  • Диапазон логического напряжения 2.7 - 5.5 В

  • Диапазон напряжения питания двигателя 2.5 - 13.5 В

  • Непрерывный выходной ток 1 А, максимум на канал 3 А; можно соединять каналы, чтобы удвоить выходной ток.

Соединение TB6612FNG с микроконтроллером, источником питания и двигателями


Робот на основе Arduino

Левая сторона:


• GND – земля микроконтроллера
• VCC – питание от микроконтроллера (2.7-5.5 В)
• AO1 – выход к контакту (-) двигателя A
• AO2 - выход к контакту (+) двигателя A
• BO2 - выход к контакту (+) двигателя B
• BO1 - выход к контакту (-) двигателя B
• VMOT – положительная полярность источника питания двигателя
• GND - отрицательная полярность источника питания двигателя

Правая сторона:


• PWMA – на ШИМ-вывод микроконтроллера
• AIN2 - на цифровой вывод микроконтроллера
• AIN1 - на цифровой вывод микроконтроллера
• STBY – на цифровой вывод микроконтроллера или соединить с питанием
• BIN1 - на цифровой вывод микроконтроллера
• BIN2 - на цифровой вывод микроконтроллера
• PWMB – на ШИМ-вывод микроконтроллера
• GND – земля микроконтроллера

Итак, как нам этим управлять?


Во-первых, ничего работать не станет, если вывод STBY не будет в высоком логическом состоянии. Его можно «навечно» подтянуть к питанию, или управлять им с помощью микроконтроллера.


Если вы хотите, чтобы двигатель A крутился по часовой стрелке, установите AIN1 в лог. «1», AIN2 в лог. «0», PWMA >0. Для вращения против часовой стрелки AIN1 в лог. «0», AIN2 в лог. «1», PWMA >0. Если вы не хотите регулировать скорость с помощью ШИМ (PWM), то можете выводы PWMA и PWMB соединить с питанием. В случае с Arduino это будет эквивалентно AnalogWrite(5,255);. В случае управления скоростью с помощью ШИМ нужно озаботиться минимальной шириной импульса, при которой будет обеспечиваться минимальная скорость. Низкие значения ШИМ могут привести также к прерывистой работе двигателя. В данном случае минимальное значение ШИМ, при котором двигатель бесперебойно вращался на минимальных оборотах, составило 35. В целом, это значение зависит от выбранного источника питания двигателя, мощности двигателя и веса робота.


Теперь, когда вы можете контролировать направление и скорость вращения каждого двигателя, вы можете легко управлять роботом. Равномерное вращение двигателей A и B приведет к движению робота по прямой. При этом для организации ровного движения робота могут потребоваться эксперименты со значениями ШИМ. Так, например, для одного мотора может потребоваться значение 255, а для другого 249. Вращая только один двигатель можно осуществлять повороты.


Документация на драйвер


Документация на двигатель




Робот на основе Arduino. Часть II – шасси, средства передвижения и питание


Робот на основе Arduino. Часть III – подключение, программирование и пробный пуск


Робот на основе Arduino. Часть IV – ультразвуковой датчик HC-SR04




Перевод © digitrode.ru


<Источник>


Теги: Arduino, Робот, HC-SR04




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

Комментарии:

Оставить комментарий