Робот на Arduino, управляемый с помощью жестов
Название проекта: Робот на Arduino, управляемый с помощью жестовПлатформа: Arduino
Любительская робототехника развивается весьма быстрыми темпами. Все больше и больше людей хотят сделать своего робота, пусть даже небольшого, простого и обладающего минимальным набором функций.
При разработке робота встает вопрос о его управлении. Робот, управляемый джойстиком или клавиатурой, вполне обычное явление среди радиолюбителей. Куда интереснее сделать робота с необычным управлением, например, с жестовым управлением с помощью акселерометра.
Потребуется:
- Плата Arduino
- Два двигателя постоянного тока
- Акселерометр ADXL335
- Кодер HT12D
- Декодер HT12E
- Радиопередатчик и радиоприёмник
- Драйвер двигателей L293D
- Батарейка 9 В
- Разъем для батарейки
- USB-кабель
- Шасси робота
Пульт управления, состоящий из акселерометра и радиопередатчика, крепится на руке и позволяет перемещать робота вперёд, назад, влево, вправо и останавливать.
Акселерометр ADXL335 имеет по аналоговому выходу на каждую ось (X-OUT, Y-OUT, Z-OUT) и питается напряжением 5 В.
Робот совершает перемещения на основе положения руки. Если наклонить руку вперёд, робот начнёт движение прямо и будет продолжать, пока не будет дана другая команда. Отклонение руки назад позволит роботу двигаться назад. Наклоны руки вправо или влево заставит робота поворачивать направо или налево соответственно. Для остановки робота нужно держать руку в горизонтальном положении.
На представленном ниже видео показано функционирование простого робота с жестовым управлением с помощью акселерометра:
Проект робота состоит из двух частей: передающей части и принимающей части. В передающей части основными элементами являются акселерометр и радиопередатчик. Поскольку акселерометр передаёт аналоговые сигналы, их необходимо преобразовать в цифровые. Для этой цели вместо АЦП используется 4-канальный компаратор. С помощью опорного напряжения мы получаем необходимые цифровые сигналы, которые впоследствии подводим к шифратору HT12E для получения последовательных данных для последующей их отправки по радиоканалу.
В принимающей части данные, принятые от радиоприёмника, поступают на дешифратор HT12D. Он преобразует информацию в параллельные сигналы, которые заводятся на Arduino. На основе этих данных робот осуществляет движение. Следует учитывать, что для питания двигателей используется дополнительный источник в виде батарейки 9 В.
Таблица состояний для управления роботом:
Код для Arduino:
//определяем выходные пины для двигателей
#define FD 16
#define BD 17
#define LD 18
#define RD 19
#define m11 3
#define m12 4
#define m21 5
#define m22 6
void forward()
{
digitalWrite(m11, HIGH);
digitalWrite(m12, LOW);
digitalWrite(m21, HIGH);
digitalWrite(m22, LOW);
}
void backward()
{
digitalWrite(m11, LOW);
digitalWrite(m12, HIGH);
digitalWrite(m21, LOW);
digitalWrite(m22, HIGH);
}
void left()
{
digitalWrite(m11, HIGH);
digitalWrite(m12, LOW);
digitalWrite(m21, LOW);
digitalWrite(m22, LOW);
}
void right()
{
digitalWrite(m11, LOW);
digitalWrite(m12, LOW);
digitalWrite(m21, HIGH);
digitalWrite(m22, LOW);
}
void Stop()
{
digitalWrite(m11, LOW);
digitalWrite(m12, LOW);
digitalWrite(m21, LOW);
digitalWrite(m22, LOW);
}
//определяем направления для пинов
void setup()
{
pinMode(FD, INPUT);
pinMode(BD, INPUT);
pinMode(LD, INPUT);
pinMode(RD, INPUT);
pinMode(m11, OUTPUT);
pinMode(m12, OUTPUT);
pinMode(m21, OUTPUT);
pinMode(m22, OUTPUT);
}
void loop()
{
//считываем входы
int temp1=digitalRead(FD);
int temp2=digitalRead(BD);
int temp3=digitalRead(LD);
int temp4=digitalRead(RD);
if(temp1==1 && temp2==0 && temp3==0 && temp4==0)
backward();
else if(temp1==0 && temp2==1 && temp3==0 && temp4==0)
forward();
else if(temp1==0 && temp2==0 && temp3==1 && temp4==0)
left();
else if(temp1==0 && temp2==0 && temp3==0 && temp4==1)
right();
else
Stop();
}

Сайт проекта: http://circuitdigest.com/microcontroller-projects/accelerometer-based-hand-gesture-controlled-robot-using-arduino, http://digitrode.ru/computing-devices/mcu_cpu/296-robot-na-arduino-upravlyaemyy-s-pomoschyu-zhestov.html
Другие проекты на этой платформе:
- Робот-миньон-копилка Arduino
- Говорящий робот-пылесос. Универсальное улучшение на Arduino
- Шагающая тыква. Arduino-робот для Хэллоуина
- Sourino — самодельная роботизированная мышь
- Двуногий робот из Arduino, LEGO и деталей 3D печати
- Шестиногий шагающий робот из Arduino, LEGO и деталей 3D печати
- Робот-художник на базе Arduino Uno
- Самодельный робот-собака Spot Micro
- Сферический четвероногий робот Arduino
- Виртуальная игра, управляемая настоящим велосипедом (Arduino)
- Четверногий Arduino-робот mechDOG
- Велосипед, подключенный к Google Street View через Arduino
- Самодельный таймер мытья рук на основе Arduino
- Учебный набор начинающего ситифермера
- Как сделать аниматронный хвост
- Вездеход из Lego с видео и bluetooth на Raspberry Pi
- Робот Juno: изучай Arduino и программирование
- Робот-манипулятор из настольной лампы IKEA
- Arduino-робот, объезжающий препятствия
- Роботизированная интеллектуальная система — РИС
- Серво-выключатель света для умного дома
- Робот-рыба на Arduino
- Сделай сам большого человекоподобного робота
- Сноуборд в виртуальной реальности с Arduino и Google Cardboard
- Open Source проект робота на Arduino
- Робот-компаньон на основе Arduino и Android-смартфона
- Робот миньон из яйца от Kinder-сюрприза и Arduino
- Робот-собака на Arduino
- Робот WALL-E на Arduino
- Робот-Железяка 1, управляемый по Bluetooth
- Собирай кубик Рубика с Arduino UNO
- ArGo — автомобиль из конструктора Lego Technic и Arduino
- Arduino робот-сортировщик Skittles, напечатанный на 3D-принтере
- Полноразмерный робот T-800 из фильма Терминатор
- Робот Гадкий утенок
- Робот-шлем для чистки зубов
- Noodlebot — шагающий робот на базе Arduino
- Робот телеприсутствия из arduino и нетбука
- Arduino-робот жук Ringo
- Arduino-Lego танк
- Робот для игры в воздушный хоккей из частей для 3D принтера
- Arduino драм машина (Yellow Drum Machine)
- Робот-гуманоид Halley: Ambassador Robot 001
- MobBob — шагающий робот-смартфон
- PopPet — оригинальный образовательный робот
- Робот, рисующий по фотографии
- Робот R2D2, напечатанный на 3D-принтере
- Робот, танцующий как Майкл Джексон
- Запускай кофе-машину, используя Twitter
- Управляй телевизором силой мысли и Arduino
- О’кей Google, Сезам, открой дверь
- Марсоход, напечатанный на 3D-принтере
- Шагающий робот из палочек от мороженого
Перейти в каталог DIY-проектов роботов
Как добавить робопроект в каталог?