Как-то в магазине мне попался на глаза игровой аппарат «хватайка», который служит для выманивания десятирублевых монеток и детей, соблазняя молодых жертв, вкусными конфетами. Конструкция машины не сложная – каретка, которая перемещается по осям X и Y, а также клешня, которая по нажатию на кнопку опускается и хватает, все что сможет. Далее каретка отъезжает и отдает выигранное богатство довольному ребенку. Перемещение по осям довольно простое и интереса у меня не вызвало, а вот клешня показалась достойной темы для этой статьи. Как раз у меня появился новый сервопривод mg90s и уже давно чешутся руки его куда-нибудь приспособить.
Как работает клешня «хватайки»
Как конкретно работает клешня, в профессиональном аппарате, я не разглядел, поскольку механика была прикрыта защитным кожухом, поэтому пришлось поэкспериментировать.
Поломав некоторое время голову, получилось придумать более-менее рабочий вариант: клешня состоит из четырех «пальцев», которые одним концом фиксируются на неподвижной раме. Так же добавил крестовину, с ней «пальцы» имеют шарнирное соединение примерно посередине. К неподвижной части рамы жестко зафиксировал сервопривод, качалка которого опускает и поднимает ось. Крестовина в свою очередь жестко закреплена к оси и вместе с ней совершает движения вверх и вниз, из-за чего и происходит сжатие и раскрытие клешни. Чтобы было понятнее, ниже находится картинка с клешней. Изображение можно вращать с помощью мышки, зажав ЛКМ и перемещая влево или вправо.
С изготовлением клешни особо не мучался и напечатал ее на 3D принтере.
Сервопривод mg90s и arduino
Для автоматического сжатия и раскрытия клешни я использовал сервопривод mg90s, он является копией sg90, про который я уже как-то писал статью: пример использования сервопривода sg90. Единственное отличие этих сервоприводов в том, что mg90s имеет внутри металлические шестерни на редукторе. Что делает его более долговечным и соответственно немного дороже. Во всем остальном полная идентичность. Mg90s имеет три провода: красный – это 5 вольт, коричневый – GND и оранжевый для передачи сигнала.
Для подключения сервопривода mg90s к ардуино соединяем провода питания напрямую, а также провод для передачи сигнала к любому цифровому пину, например 10.
Что использовалось в проекте
- Arduino (я использовал arduino nano, но можно любую другую). Покупал тут: arduino nano
- Сервопривод mg90s. Покупал тут: Сервопривод mg90s
Скетч для управления сервоприводом mg90s
Для управления сервоприводом mg90s удобно использовать, встроенную в среду разработки Arduino IDE, библиотеку Servo.h. Для примера ниже приведен простой код, который каждые 3 секунды сжимает и разжимает клешню. Угол, на который необходимо повернуть сервопривод для открытия и закрытия клешни подбирается опытным путем. У меня получилось подобрать для полного раскрытия и закрытия — это 105 и 40 градусов соответственно.
#include <Servo.h> // подключение библиотеки Servo test_servo; // создание объекта для сервопривода void setup() { test_servo.attach(10); // указываем управляющий пин delay(100); // устанавливаем начальное положение сервопривода test_servo.write(105); delay(1000); } void loop() { // сжимаем клешню test_servo.write(40); delay(3000); // разжимаем клешню test_servo.write(105); delay(3000); }
Послесловие
Вот так выглядит клешня в подвешенном состоянии в положении сжатых «пальцев»:
Это только прототип клешни, если делать какой-то рабочий захват для реальных проектов, то придется еще немного дорабатывать чертеж, поскольку такой манипулятор не всегда удачно хватает и сжимает предметы. Но как пример и основа, от которой можно отталкиваться, данный прототип вполне подходит.
Очень жаль, что из этих фотографий не понятно, как конкретно подключается сервопривод к этой «клешне».
А так же не понятно какой Pin назначен в примере скетча.
Спасибо.