Курс «Основы робототехники». Занятие 14. Сервомоторы, захват
Сервомотор (далее серво) позволяет поворачивать вал на заданный угол и удерживать его на этом угле. Используется в рулях моделей машин и самолетов, манипуляторах, руках роботов, шагоходах и т.п.
Серво SG90
Весьма дешевый серво, хорошо подходит для учебных моделей. Мощность и надежность малы, поэтому для практического применения лучше использовать более мощные (но и более дорогие) серво. Рассмотренные ниже схемы подключения и программы управления подходят и для более мощных серво (с учетом того, что их обязательно нужно питать от внешнего источника питания). Параметры SG90:
· Рекомендуемое напряжение питания от 4,8 до 6 В. По испытаниям, нормально работает от двух аккумуляторов Li-Ion 18650, дающих при полной зарядке 2·4=8 В, но большую нагрузку при этом давать не следует и при перегреве серво немедленно выключать его. На роботе будет использоваться стабилизатор напряжения до +5 В
· Угол поворота вала от 0 до 180°. На крайних значениях работает плохо, рекомендуется использовать в диапазоне от 10 до 170° и уже.
Подключение серво:
· коричневый или черный провод к Gnd
· красный провод к + напряжения питания
· белый, желтый или оранжевый провод к цифровому пину Arduino
Примечание: рекомендуется питать серво от своего источника питания, соединив минус источника с Gnd Arduino. По результатам испытаний, SG90 можно питать от +5 В Arduino, но не более четырех сразу и с небольшой нагрузкой. При этом Arduino должна питаться от USB, а не от внутреннего стабилизатора (то есть не от аккумуляторов)
Библиотека Servo
Базовая библиотека, используемая для управления сервомоторами SG90 и другими. Команды:
#include <Servo.h> – подключить библиотеку Servo, добавляется в начале программы
Servo myservo; – создать объект для контроля определенного серво. myservo – название серво, оно может быть любым. Добавляется в начале программы
myservo.attach(9); – подключить серво с названием myservo к номеру пина в скобках (сигнальный провод серво должен быть физически подключен к этому пину). Добавляется в блоке setup
myservo.write(30); – повернуть серво с названием myservo на угол, заданный в скобках
Практическое занятие 1. Сборка стабилизатора напряжения на +5 В
Напряжения питания от аккумуляторов +8 В для серво SG90 слишком много. Хотя они и работают от такого напряжения, но греются и могут выйти из строя.
Преобразователь из 8 В в 5 В, имеющийся на Arduino, слабый и может питать только сам контроллер и малопотребляющие модули (датчики, модуль Bluetooth). Но для питания моторов его мощности не хватит. Поэтому серво от 5V Arduino можно питать только при питании не от аккумуляторов, а от USB
Для обеспечения возможности питания серво от аккумуляторов робота требуется сделать внешний преобразователь напряжения 8 В ® 5 В. Для этого используем микросхему L7805. Нумерация контактов и схема включения микросхемы:
Таким образом, по схеме видно, что + аккумулятора нужно подключить к первому контакту микросхемы, землю – ко второму контакту, а напряжение +5 В брать с третьего контакта. Также между вторым и первым, а также вторым и третьим контактами микросхемы должны быть конденсаторы, подключенные минусом ко второму контакту. Для простоты схемы используем конденсаторы на входе и выходе одной емкости – 100 мкФ
1. Соберите приведенную ниже схему на макетной плате робота. Показана не вся схема робота, а изменения, которые нужно внести в схему. Конденсаторы тем выводом, на котором нарисованы минусы - - - должны быть воткнуты в ряд центральной ножки микросхемы. Перед тем, как подавать питание, покажите собранную схему преподавателю. Два провода штырек-штырек справа, предназначенные для подключения мультиметра (красный от третьей ножки микросхемы и черный или синий от земли) оставить висеть, проследив, чтобы они не замкнулись друг с другом
2. Переключите мультиметр на режим измерения напряжения (20V), включите питание и померяйте напряжение между проводами справа (ни в коем случае не замыкайте провода друг с другом)
3. Показываемое напряжение должно быть близко к +5 В (например, 4,96 В). Если это не так, немедленно отключите питание и проверьте схему
Практическое занятие 2. Подключение одного серво захвата и движение по циклу
1. Подключите питание серво к проводам, которыми мерили напряжение. Таблица и схема включения серво:
Назначение | Серво | Схема |
Gnd | Коричневый провод | Черный или синий провод к земле |
+5 В | Красный провод | Красный провод к выходу (третьей ножке) стабилизатора напряжения L2805 |
Сигнал | Желтый, оранжевый или белый провод | К любому цифровому пину Arduino |
2. Откройте пример работы с серво: Файл / Примеры / Servo / Sweep. Так как используемый захват не должен двигаться в пределах 0…180° (такое движение может привести к его поломке), изменим диапазоны углов движения серво:
for(pos = 0; pos < 180; pos += 1) | for(pos = 50; pos < 80; pos += 1) |
for(pos = 180; pos>=1; pos-=1) | for(pos = 80; pos>=51; pos-=1) |
3. Загрузите программу в контроллер, включите тумблер питания и убедитесь, что серво захвата двигается. Если серво при повороте начинает упираться в элементы конструкции захвата – немедленно отключите питание, так как это может привести к поломке серво
4. Отключите серво первого захвата, подключите вместо него серво второго захвата и проверьте его