Самодельный робот на Arduino, следующий за рукой

Инструкция по сборке робота-автомобиля на колесной или гусеничной платформе

В этой статье расскажем вам о том, как по шагам собрать универсального робота на колесной или гусеничной платформе.  Управлять им будет микроконтроллер Ардуино нано. Если вам не нравится долго читать, посмотрите в конце статьи на видео, подготовленное нашими партнерами – каналом ArduMast Club:

Пример платформы робота машины на Ардуино

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

Для реализации проекта нам понадобится:

  • Контроллер Ардуино (в нашем случае, Arduino Nano).
  • Драйвер двигателя L298N.
  • Двигатели с редукторами.
  • Корпус и шасси для крепления колес и оборудования
  • Корпус для аккумуляторов 18650 с выключателем.
  • Коммутационные провода.

Дополнительное оборудование, которое потребуется для создания полноценного проекта:

  • Датчик расстояния и серво-мотор, на который он установлен.
  • Инфракрасные датчики линии.
  • Светодиоды для индикации и “красоты”.
  • Пьезодинамик – пищалка.
  • Bluetooth модуль (если собираетесь управлять машинкой дистанционно).
  • Sensor shield (упрощает коммутацию).
  • Модуль контроля заряда и подзарядки аккумуляторов.
  • Сами аккумуляторы.

Схема электропитания робота автомобиля

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

Давайте разберем самый простой вариант схемы питания электромоторов. Перед началом сборки лучше заранее припаять провода к моторам.

Все достаточно стандартно и вы найдете в интернете десятки подобных примеров. Но в этой схеме есть большой минус – в случае полного разряда аккумуляторы придут в негодность.

Для добавления контроллера разряда придется внести следующие изменения в схему:

Теперь аккумуляторы будут защищены, но здесь нет возможности заряжать их.

Для зарядки можно использовать модуль повышения напряжения с 5v до необходимого уровня зарядки, который зависит от количества серий используемых аккумуляторов. Он имеет гнездо типа микро USB и при частом использовании оно может сломаться, поэтому мы рекомендуем установить дополнительное гнездо для последующей подзарядки пяти вольтовым блоком питания. Для зарядки двух литий-ионных аккумуляторов необходимо настроить выходное напряжение на 8,4 Вольта.

Подключаем двигатели и плату

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

Затем размещаем холдер и плату БМС. Не забываем оставлять место спереди для последующего монтажа каких-либо сенсоров. Ардуиио нужно разместить так, чтобы была в дальнейшем возможность подключить его к ПК для прошивки. Это же правило относится и к модулю для зарядки аккумуляторов.

Питание для ардуино и других электронных компонентов мы возьмем от драйвера двигателей.

Подключаем Bluetooth к машинке

Мы собираемся использовать модуль Bluetooth через  SoftwareSerial (библиотеку SoftwareSerial.h), поэтому подключаем модуль блютуз к 3 и 4 цифровым пинам ардуино.  RX к D3,   TX к D4

Платформа робота готова! Теперь осталось загрузить прошивку для контроллера Ардуино и программу для смартфона RC CAR. Вы можете посмотреть на нашем сайте обзор Android приложений для работы с Arduino.

Робот пылесос — Часть1: Механика

Наверное, каждый, кто только начинает по-настоящему увлекаться робототехникой, электроникой или программирование, проходя сложный путь изучения сопутствующих технологий, надеется в будущем применить накопленные знания для работы над серьёзным и интересным проектом.

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

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

Из всей механики робота пылесоса особую сложность в проектировании и изготовлении представляет мусороуборочный узел.

-Занимать как можно меньше места, но при этом иметь вместительный контейнер для мусора.

-Хорошо убирать загрязнения на любых поверхностях, но при этом обладать низким энергопотреблением и уровнем шума.

Прежде чем удалось добиться выполнения всех этих запросов, было перепробовано множество различных вариаций компоновки узла.

Макеты мусороуборочных узлов.

В конце — концов, остановился на схеме: широкая боковая щётка + пылесос. Радиальная щётка, расположенная с правой стороны, загребает мусор к жерлу пылесоса, расположенному по центру. Горизонтально-цилиндрическую щётку, как у Румбы, решил не ставить, так – как она лишь незначительно увеличивает качество уборки, но при этом сильно осложняет конструкцию жерла пылесоса. Устройство пылесосящего узла представлено на фото ниже.

Однако возникает вопрос: Где взять турбину и двигатель для пылесоса?

Можно спаять турбину из стеклотекстолита и жести

Турбина из жести.

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

Готовая турбина, обрезанная на токарном станке до нужного диаметра(вентилятор от компьютера для сравнения).

А ещё её можно купить, в виде дешёвого китайского автомобильного пылесоса.

Не сочтите за рекламу, но рекомендую брать именно этот пылесос(kioki), так как в нём гарантировано правильная турбина с мощным двигателем и удобным краплением (при цене, в среднем, 500р). Хотя, что касается двигателя – то его лучше заменить. У стандартного потребление порядка 3А, при замене на двигатель QX-RS-385-2073 с потреблением 1.2А, мощность всасывания падает незначительно, зато робот начинает меньше шуметь и дольше бегает без подзарядки. Что касается самодельных турбин, они хоть и хорошо всасывают, но их довольно сложно отцентрировать так чтобы не было вибрации.

Популярные статьи  Гидравлический экскаватор из шприцов своими руками

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

В качестве приводных моторов служат два 25милиметровых моторредуктора, наверное, здесь нужно что-то более подходящее, например переделанные под постоянное вращение сервоприводы, но я поставил то что было под рукой.

Готовых колёс нужного размера не нашлось, поэтому пришлось вырезать их 10милеметровой фанеры и обклеить теплоизоляционной лентой, для лучшего сцепления с поверхностью. Отверстия в колесе – для энкодеров, хотя в конечном счёте я отказался от их применения из-за низкой точности.

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

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

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

Механика робота в собранном виде.

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

Подключаем датчики изгиба к Arduino

Самодельный робот на Arduino, следующий за рукой

Резисторы на фото имеют номинал 22 кОм. Цвета проводов соответствуют цветам, приведенным на схеме подключения.

Все контакты GND от датчиков соединены в общую Землю. Земля идет к пину GND на Arduino. +5V на Arduino подключается к общему контакту питания от всех датчиков. Каждый голубой коннектор сигнала подключается к отдельному аналоговому входу на микроконтроллере.

Я собрал схему на небольшой монтажной плате. Размеры платы желательно выбрать поменьше, чтобы в дальнейшем закрепить на перчатку. Закрепить на перчатке нашу собранную схему можно с помощью элементарной нити и иголки. Кроме того, не поленитесь и сразу же используйте изоленту на оголенных контактах.

Шаг 1: немного теории

Самобалансирующийся робот похож на перевернутый маятник. В отличие от обычного маятника, который продолжает колебаться, после того как его толкают, этот перевернутый маятник не может оставаться сбалансированным сам по себе. Он просто упадет.
Рассмотрим балансировку карандаша на указательном пальце, который является классическим примером балансировки перевернутого маятника. Мы двигаем пальцем в направлении падения карандаша. Аналогично и с самобалансирующимся роботом, нужно вращать колеса в направлении, в котором он падает что бы удерживать центр тяжести робота над точкой поворота.
Для управления моторами нам понадобится информация о текущем состоянии робота. Нужно знать направление, в котором робот падает, угол наклона и скорость, с которой он падает. Вся эта информация может быть получена с помощью датчика MPU6050. Обработав данные с датчика, на драйверы моторов подаются соответствующие управляющие сигналы что бы поддерживать равновесие.

Дистанционное управление «умным» домом

Для подключения платы к интернету, понадобится:

  • Wi-Fi-адаптер, настроенный на прием и передачу сигнала через маршрутизатор;
  • или подключенный через Ethernet кабель Wi-Fi роутер.

Также, есть вариант дистанционного управления по блютуз. Соответственно, к плате должен быть подключен Bluetooth модуль.

Есть несколько вариантов управления умным домом Arduino: с помощью приложения для смартфона или через веб.

Так как данная система-конструктор – не закрытая экосистема, то и приложений, реализованных для нее очень много. Они отличаются друг от друга не только интерфейсом, но и выполнением различных задач.

Управлять удаленно платой умного дома можно, разместив получение и обработку данных умного дома на веб-сервере. Естественно, сервер для умного дома Ардуино нужно создавать самостоятельно.

Для этих целей понадобится Arduino Ethernet Shield – сетевое расширение для пинов Ардуино Уно, позволяющее добавить разъем RJ-45 для подключения к сети.

При удаленном подключении, необходимо обеспечить внешнее питание платы не от USB.

Затем, подключите по USB плату к компьютеру, а по Ethernet плату к роутеру, которой раздает интернет компьютеру. При правильном установлении соединения, вы увидите зеленый свечение на порту.

После этого, нужно использовать библиотеки шилдов Ethernet и в среде разработки IDE написать код для создания сервера и отправки данных на сервер. Пример самодельного сервера неплохо описан в данной инструкции.

С помощью подключаемой библиотеки GSM в Arduino IDE можно:

  1. Работать с голосовыми вызовами.
  2. Получать и отправлять СМС.
  3. Подключаться к Интернету через GPRS.

Работает схема через специальную плату расширения GSM, содержащую специальный модем.

О создании универсальной сигнализации на Arduino, с отправкой СМС уведомления на смартфон можно узнать из соответствующей видеоинструкции.

  • https://ElektrikExpert.ru/arduino.html
  • https://ArduinoMaster.ru/projects/proekty-arduino-dlya-nachinayushhih/
  • https://ArduinoPlus.ru/arduino-uno-proekti/
  • https://ArduinoPlus.ru/arduino-nano-projects/
  • https://future2day.ru/umnyj-dom-na-osnove-arduino/

Предыдущая
ArduinoЧто такое ide arduino: характеристики и применение на практике

Программирование мобильного робота арудино

Для начала напишем простую программу для робота движения вперед. На следующем уроке мы разберем как управлять роботом  программировать повороты направо, налево  мобильного  Arduino робота 
В самом начале программы мы должны  определить пины  через которые мы будем управлять скоростью и направлением вращения моторов#define SPEED_1      6 //Пин для управления  скоростью  первого мотора
#define DIR_1        7 //Пин для управления направлением первого мотора
#define SPEED_2      5 // Пин для управления  скоростью  второго мотора
#define DIR_2        4 // Пин для управления направлением второго мотора
В блоке setup  необходимо установить пины отвечающие за управлением моторами в режим OUTPUT Подробнее об управлением через пины ардуиноvoid setup() {
Serial.begin(9600); 
 pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
В основной программе loop  запрограммируем движение вперед мобильного робота ардуино.Для этого необходимо  перевести пины отвечающие за направление в режим HIGH (в зависимости от подключения моторов  у Вас за движение мотора вперед  может быть режим LOW) Это цифорвые пины , поэтому используется команда digitalWrite(номерпина, HIGH)digitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
Установим скорости  моторов  с помощью записи в пины отвечающие за скорость  уровня скорости вращения. Это аналоговые пины, поэтому используем команду analogWrite(номерпина, скорость). Скорость может изменяться в диапазоне от 1 до 255analogWrite(SPEED_1, 100);
analogWrite(SPEED_2,100);
И в конце установим время, сколько будет робот двигаться в таком режиме с помощью команды
delay(время в миллисекундах);
После  движения необходимо остановить моторы, для этого скорость устанавливается в  нольdigitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
analogWrite(SPEED_1, 0);
analogWrite(SPEED_2,0);
delay(время остановки в миллисекундах);Полная версия программы для движения мобильного робота ардуино вперед#define SPEED_1      6 // скорость первого мотора
#define DIR_1        7 // направление первого мотора
#define DIR_2        4 // направление второго мотора
#define SPEED_2      5 // скорость второго мотора
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
  analogWrite(SPEED_1, 100);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,100);
 digitalWrite(DIR_2, HIGH);
 delay(1000);
 analogWrite(SPEED_1,0);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,0);
 digitalWrite(DIR_2, HIGH);
 delay(10000);
}

Популярные статьи  Теплоизоляционный силиконовый коврик

Вернуться к содержанию курса Следующая тема Повороты мобильного робота ардуино

Полезно почитать по теме мобильные роботы arduinoМобильный робот arduino с драйвером l289Правильное питание мобильного робота arduinoРобот сумо arduino

Как работает простая конструкция блоков

Система блоков или полиспаст известна человечеству с древнейших времён. Классическая конструкция системы состоит из шкивов и троса. Один шкив называют блоком. В зависимости от способа крепления шкив может быть подвижным и неподвижным:

  • Неподвижный блок. Крепится к опоре и играет роль изменения направления движения каната. Не даёт никакого выигрыша в силе.
  • Подвижный блок. Располагается на стороне груза и даёт выигрыш в силе.

Принцип работы полиспаста схож с принципом работы рычага в физике простых механизмов. Роль рычага в этом случае играет сам трос. В случае простого блока из двух шкивов, подвижный шкив делит верёвку на 2 части и для того, чтобы поднять груз на то же расстояние, потребуется канат в 2 раза длиннее. Работа по поднятию груза выполняется в том же объёме. А усилие, из-за того, что длина верёвки стала в два раза больше, становится в два раза меньше.

В случае если в системе более 2-х шкивов, выигрыш в силе примерно равен количеству блоков. В случае 3-х блоков, усилие будет в 3 раза меньше, а 4 блока потребуют лишь четверть от первоначального усилия.

Шаг 2: Сборка робота.

Самодельный робот на Arduino, следующий за рукой

Я построил своего робота используя дополнительные части распечатанные на  3D-принтере, которые у меня были, но Вы можете использовать запчасти от DVD или любой другой маленький плоский кусок пластика. Я использовал шасси с Aliexpress, Вы можете использовать другое шасси для своего проекта, но код Arduino будет немного отличаться. У меня все моторы, стояли в направлении передней части. В предварительно собранном шасси расположение направления двигателей расположено друг к другу, поэтому просто имейте это в виду.

В любом случае, используйте горячий клей или какой-либо другой клей, чтобы прикрепить ваши двигатели и детали Arduino к шасси.

Приклейте отсек для батареек к нижней части робота. Колеса будут защелкиваться к редукторам двигателя постоянного тока.

У меня есть вторая батарея под моим роботом. Я приклеил горячим клеем usb power bank на нижнею сторону в дополнение к 9-вольтовой батарее для того, чтобы подключить MCU Node отдельно для более продолжительного времени автономной работы во время разработки, но вы можете просто использовать 9-вольтовую батарею, если хотите.

Чтобы удержать телефон на месте, я использовал пластмассовую Г-образную пластину и пластиковый хомут. Я уверен, что есть другие (лучшие) варианты исполнения.

Скетч с использованием ультразвукового датчика расстояния

Это, наверное, одна из самых эффектных частей проекта. На манипулятор устанавливается датчик расстояния, который реагирует на препятствия вокруг.

Основные пояснения к коду представлены ниже

#define trigPin 7

#define echoPin 6

#define led 13

#include

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

Следующий кусок кода:

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

Мы присвоили всем 5-ти сигналам (для 6 приводов) названия (могут быть любыми)

Следующее:

void setup() {

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

}

Мы сообщаем плате Arduino к каким пинам подключены светодиоды, серводвигатели и датчик расстояния. Изменять здесь ничего не стоит.

Идем дальше:

void position1(){

digitalWrite(led, HIGH);

myservo2.writeMicroseconds(1300);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(800);

myservo5.writeMicroseconds(1000);

}

Здесь кое-что можно менять. Я задал позицию и назвал ее position1. Она будет использована в дальнейшей программе. Если вы хотите обеспечить другое движение, измените значения в скобках в диапазоне от 0 до 3000.

После этого:

void position2(){

digitalWrite(led,LOW);

myservo2.writeMicroseconds(1200);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(1400);

myservo5.writeMicroseconds(2200);

}

Аналогично предыдущему куску, только в данном случае это position2. По такому же принципу вы можете добавлять новые положения для перемещения.

Дальше будет следующая запись:

void loop() {

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Теперь начинает отрабатывать основной код программы. Не стоит его изменять. Основная задача приведенных выше строк — настройка датчика расстояния.

После этого:

if (distance <= 30) {

position1();

}

else {

position2();

}

if (distance < 10) {

myservo5.writeMicroseconds(2200); //открыть схват

}

else {

myservo5.writeMicroseconds(1000); //закрыть схват

}

Теперь вы можете добавлять новые перемещения в зависимости от расстояния, измеренного ультразвуковым датчиком.

if(distance <=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

position1(); //по сути арм отработает все, что вы зададите между скобками { }

}

else{ // если расстояние больше 30 см, переход в position2

position()2 // аналогично предыдущей строке

}

Можно в коде поменять расстояние ну и творить все, что вы пожелаете.

Последние строки кода

if (distance > 30 || distance <= 0){

Serial.println(«Out of range»); //вывод в серийном монитеоре сообщения, что мы вышли за заданный диапазон

}

else {

Serial.print(distance);

Serial.println(» cm»); //расстояние в сантиметрах

}

delay(500); //задержка в 0.5 секунды

}

Конечно, можно перевести тут все в миллиметры, метры, изменить отображающееся сообщение и т.п. Можно немного поиграться с задержкой.

Вот, собственно и все. Наслаждайтесь, модернизируйте свои собственные манипуляторы, делитесь идеями и резутатами!

Аппаратная и программная часть

Для того, чтобы собрать умный дом своими руками, мы будет использовать Wi-Fi модуль ESP8266. Процесс разработки на нём почти не отличается от традиционной разработки на Arduino.

Для начала нужно скачать приложение Blynk из GooglePlay или AppStore и зарегистрироваться в нём. После этого нужно создать новый проект и выбрать соответствующий микроконтроллер. Перед вами появится пустая панель, на которой можно размещать элементы управления. Это могут быть кнопки, иконки, слайдеры, индикаторы, выпадающие списки и многое другое.

После создания проекта на вашу почту придёт токен доступа. Его нужно будет указать в скетче и веб-хуках.

К элементам управления можно подвязать физический пин микроконтроллера или же виртуальный порт. При взаимодействии с каким-либо элементом, его новое значение будет сразу отправляться на микроконтроллер.

Популярные статьи  Переводные татуировки. Фото, как сделать дома, где купить, сколько держится

Примечание Виртуальные порты в Blynk можно представить как переменные, которые синхронизируются между устройством и сервером.

Для этого скетча в панели управления Blynk нужно добавить элемент «Button». В его настройках OUTPUT выставить V0, а режим работы переключить в Switch.

Теперь к указанному порту можно подключать реле. Если всё правильно, то при нажатии на кнопку в панели управления реле будет открываться и закрываться.

Голосовое управление светом не мешает управлению им аппаратно. К микроконтроллеру можно подключить физическую кнопку или выключатель, которые тоже будут включать и выключать свет. Если это необходимо, то изменять состояние виртуального порта можно методом . Тогда изменения будут отображаться и на панели управления.

Примечание При работе с механическими кнопками и выключателями не забывайте про дребезг контактов.

Всё работает? Тогда можете переходить к следующему этапу.

Характеристики

Технические характеристики бортового ГАЗ-53, на который обычно устанавливается манипулятор:

Автомобили ГАЗ-53 комплектовались шинами 8,25-R20. Вместимость бензобака составляет 90 литров. Задняя и передняя подвески – зависимые рессорные, на передней также установлены телескопические амортизаторы. Автоманипулятор ГАЗ-53 на обеих осях оснащен тормозами барабанного типа. Благодаря отсутствию гидроусиления рулевого управления процесс вождения данной техники превращается в физически непростое занятие.

В течение производственного цикла на автомобили ГАЗ-53 устанавливались различные двигатели, мощность которых влияла на грузоподъемность машины.

Где купить платформу и запчасти

Все, о чем говорится в этой статье, можно без проблем купить на всем известном сайте. К сожалению, подавляющее большинство предложений основываются на стандартной платформе 4WD автомобиля с двумя несущими планками, не очень надежными двигателями и колесами, любящими ездить в “развалочку”. Но эти варианты относительно не дороги и вполне подойдут для начала работы.

Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов

4WD платформа для Ардуино с необычным видом крепления элементов

Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2

Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Сборка в общих чертах

Самодельный робот на Arduino, следующий за рукой

Теперь приступаем непосредственно к созданию руки-манипулятора. Начинаем с основания. Необходимо обеспечить возможность поворота устройства во все стороны. Хорошим решением будет его размещение на дисковой платформе, которая приводится во вращение с помощью одного мотора. Чтобы она могла вращаться в обе стороны, существует два варианта:

  1. Установка двух двигателей. Каждый из них будет отвечать за поворот в конкретную сторону. Когда один работает, второй пребывает в состоянии покоя.
  2. Установка одного двигателя со схемой, которая сможет заставить его крутится в обе стороны.

Какой из предложенных вариантов выбрать, зависит исключительно от вас. Далее делается основная конструкция. Для комфорта работы необходимо два «сустава». Прикреплённый к платформе должен уметь наклоняться в разные стороны, что решается с помощью двигателей, размещённых в его основании. Ещё один или пару следует разместить в месте локтевого изгиба, чтобы часть захвата можно было перемещать по горизонтальной и вертикальной линии системы координат. Далее, при желании получить максимальные возможности, можно установить ещё двигатель в месте запястья. Далее наиболее необходимое, без чего не представляется рука-манипулятор. Своими руками предстоит сделать само устройство захвата. Тут существует множество вариантов реализации. Можно дать наводку по двум самым популярным:

  1. Используется только два пальца, которые одновременно сжимают и разжимают объект захвата. Является самой простой реализацией, которая, правда, обычно не может похвастаться значительной грузоподъёмностью.
  2. Создаётся прототип человеческой руки. Тут для всех пальцев может использоваться один двигатель, с помощью которого будет осуществляться сгиб/разгиб. Но можно сделать и конструкцию сложней. Так, можно к каждому пальцу подсоединить по двигателю и управлять ими отдельно.

Далее остаётся сделать пульт, с помощью которого будет оказываться влияние на отдельные двигатели и темпы их работы. И можно приступать к экспериментам, используя робот-манипулятор, своими руками сделанный.

Схват манипулятора

Самодельный робот на Arduino, следующий за рукой

Самодельный робот на Arduino, следующий за рукой

Самодельный робот на Arduino, следующий за рукой

Самодельный робот на Arduino, следующий за рукой

Для установки схвата вам понадобится серводвигатель и несколько винтов.

Итак, что именно необходимо сделать.

Берете качалку от сервы и укорачиваете, пока она не подойдет к вашему схвату. После этого закручиваете два маленьких винта.

После установки сервы, проворачиваете ее в крайнее левое положение и сжимаете губки схвата.

Теперь можно установить серву на 4 болта. При этом следите, чтобы двигатель был все так же в крайнем левом положении, а губки схвата закрыты.

Можно подключить сервопривод к плате Arduino и проверить работоспособность схвата.

Учтите, что могут возникнуть проблемы с работой схвата, если болты/винты слишком сильно затянуты.

Программирование робота на Ардуино

Так как мы делаем инструкцию по сборке универсального робота, то неплохо бы предусмотреть все необходимое для разных вариантов ее использования. Весь код вы можете найти в архиве: https://yadi.sk/d/jIYZQDI-GuytMw

Для езды по черной линии мы задействовали 3 пина под датчики линии и три пина для подключения светодиодов, чтобы иметь возможность визуального контроля наличия линии. Другими словами, если под левым сенсором есть черная линия, то загорится левый светодиод и так далее. Кроме того, мы разработали и протестировали схему, в которой будут одновременно использоваться и управление скоростью моторов по ШИМ, и серводвигатель.

Программирование

Самое интересное, это управление манипулятором с компьютера. У uArm есть удобное приложение для управления манипулятором и протокол для работы с ним. Компьютер отправляет в COM-порт 11 байт. Первый из них всегда 0xFF, второй 0xAA и некоторые из оставшихся — сигналы для сервоприводов. Далее эти данные нормализуются и отдаются на отработку двигателям. У меня сервоприводы подключены к цифровым входам/выходам 9-12, но это легко можно поменять. Терминальная программа от uArm позволяет изменять пять параметров при управлении мышью. При движении мыши по поверхности изменяется положение манипулятора в плоскости XY. Вращение колесика — изменение высоты. ЛКМ/ПКМ — сжать/разжать клешню. ПКМ + колесико — поворот захвата. На самом деле очень удобно. При желании можно написать любой терминальный софт, который будет общаться с манипулятором по такому же протоколу.

Я не буду здесь приводить скетчи — скачать их можно будет в конце статьи.

Оцените статью
Денис Серебряков
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Самодельный робот на Arduino, следующий за рукой
Кривулька «Тюльпан»