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

Установка батареи

Просто приклейте её супер клеем на задней панели CARduino. Затем присоедините + и GND к + и GND Carduino.

Вы закончили сборку робота! На нем без изменений будет работать библиотека и тестовые программы. Подробнее о этом написано ниже.

Object Avoid – CARduino постоянно движется вперед, пока объект находится на расстоянии более 25 сантиметров. Затем он случайным образом выбирает сторону и поворачивает в неё на 800 или 2300 миллисекунд.

Шаг 2. Создание основы руки робота

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

Процесс подробнее лучше передан в видео:


  1. Серводвигатели – 4 штуки
  2. Нарезанный кусок картона – сделать “тело”.
  3. USB OTG (на фото ниже, выбрать любой).
  4. И, конечно, плата Arduino (любая).
  5. Несколько перемычек, чтобы сделать соединения.
  6. Для питания серводвигателей используется 9-вольтная батарея.

Шаг 1: Необходимые материалы

  • Arduino UNO
  • Мини макетная плата
  • Драйвер двигателя L298N
  • Два электромотора с колесами
  • Ультразвуковой датчик измерения расстояния HC — SR04
  • Микросервопривод
  • Кнопка
  • Красный диод
  • Резистор 220 Ом
  • Отсек для элемента питания 9В (с/без коннектора)
  • 8 стоек для макетных плат с наружной и внутренней резьбой, 8 винтов и 8 гаек

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

Для изготовления каркаса робота использован кусок плексигласа (оргстекла) 12х9,5 см. Можно сделать каркас из дерева или металла, или даже из компакт-дисков.

  • Дрель
  • Суперклей
  • Отвертка
  • Клеевой пистолет (опционально)

Для питания робота используется батарейка 9В (крона), она достаточно компактная и дешевая, но разрядится уже примерно через час. Возможно, вы захотите сделать питание от аккумулятора на 6 В (минимум) или 7 В (максимум). Аккумулятор мощнее батарейки, но и дороже и больше по габаритам.

  • Дрель
  • Суперклей
  • Отвертка
  • Клеевой пистолет (опционально)

Инструкции по созданию роботов на базе контроллеров:

Этот раздел сайта посвящен пошаговым инструкциям с фото и видео по изучению arduino, основам использования микроконтроллеров arduino в робототехнике. Проекты с контроллером arduino uno и starter kit. Практическая энциклопедия по arduino проектам для начинающих. Схемы и примеры arduino на русском. Основы работы со скетчами arduino, описания комплекта, программируем arduino. Программирование ардуино своими руками, описание ардуино комплектов для создания роботов. Конструируем роботов на базе arduino самостоятельно. Собираем примеры сборки ардуино роботов. Скетчи и проекты для arduino проектов для начинающих новичков и специалистов:

​Возможно ли построить дроида ВВ8 в домашних условиях из подручных материалов? Воспользуйтесь нашей пошаговой инструкцией, чтобы создать звездного робота своими руками. В данной инструкции мы покажем вам как построить своими руками известного дроида ВВ-8 ростом в натуральную величину, под управлением arduino и смартфона.

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

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

Это руководство – как построить еще один бесполезный робот, который предназначен скорее для развлечения, чем для решения логических задач. Игрушка в виде коробочки с тумблером и открывающейся створкой, заключает в себе ряд механических элементов и блок управления на основе Arduino. Для удобства представляем вам 9 шагов для более детального подхода к сборке. Что из этого получиться увидим, когда соберем эту игрушку у себя дома.

​Если вам нужен проект, который будет использовать все свои сервоприводы и механизмы движения, вы можете создать простого робота-паука. Если у вас есть навыки работы с техникой Fischertechnik, LEGO и K’NEX и лишние сервоприводы, этот проект для Вас. Действительно, этот паук с нелепыми движениями является большой обучающей платформой. Основной целью этого проекта является обучение основам работы сервоприводов, их синхронизации, программированию и пониманию диапазона и силы. Результат будет очень забавным.

​Sneel является роботом-змеей, который построенный для изучения живых, извилистых движений роботов в водной среде. Он предназначен для перемещения в неизвестной территории и экстремальной местности. Sneel является биомиметическим, мобильным, водным роботом с открытым исходным кодом. Электромеханическая конструкция Sneel имитирует структуру и движения реальной водяной змеи, чтобы исследовать поведение линейных роботов во время плавания. Представляем вам подробнейшую пошаговую инструкцию по его изготовлению.

Эта пусковая установка для пинг-понга управляется от Arduino. Конструкция использует сервопривод для распределения шариков и два двигателя с колесами для скорости и ловкости толчков.

Представляем вам картонного огромного робота, контролируемого компьютером, рука которого достигает 6 футов. Он состоит из двух конфигураций: 1) рука с захватом – трехпалый захват, который позволяет подбирать игрушки и грязные носки с пола без необходимости нагибаться. Возможность сохранения пути руки позволяет пользователям принимать те же движения с помощью камеры, снятые с точностью и способностью повторного воспроизведения. 2) Кран с камерой – камера с телефона позволяет делать фантастические изображения за мимолетный промежуток времени и видео-съемку.

​Робот-танк на основе смартфона является отличным проектом для вас и ваших детей. Этот робот может быть построен в течение часа и не требует пайки или специальных инструментов. Когда вы закончите его сборку, просто скачайте и установите приложение EMGRobotics Audio Robot на вашем телефоне. Приложение будет использовать камеру в телефоне и различные алгоритмы компьютерного зрения, чтобы робот ездил вокруг в поисках лиц или определенных цветов. Робот может также следовать линии или преследовать других роботов по комнате.

Это 5-дюймовая роботизированная платформа, работающая на PICAXE или Arduino с гидролокатором на мачте. Главная функция робота – обхождение препятствий. Это хорошая платформа для движения и подъема, которая может быть применимой ко многим конфигурациям и адаптирована к нескольким целям.

Это простой проект робо-автомобиля, который управляется через Bluetooth. Здесь используется контроллер Arduino. Для управления автомобилем используется Androidный гаджет со встроенным акселерометром. Чувствительность и значение наклона устанавливается в настройках приложения Android. Также предоставляется обычный способ управления – кнопки на экране. В дополнение ко всему можно реализовать сенсорное управление.

Этот интересный механизм называется FIER. Он представляет собой четвероногого робота, который сделан из деревянных деталей, проводков и программной системы Arduino. В этой инструкции мы продемонстрируем вам пошаговое построение этого робота со всеми подробностями. Это не сложно, нужно терпение и простые навыки работы с деревом и электроникой.

  • keyboard_arrow_left В БУДУЩЕЕ
  • 1
  • 2
  • В ПРОШЛОЕ keyboard_arrow_right

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

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

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

​Робот-танк на основе смартфона является отличным проектом для вас и ваших детей. Этот робот может быть построен в течение часа и не требует пайки или специальных инструментов. Когда вы закончите его сборку, просто скачайте и установите приложение EMGRobotics Audio Robot на вашем телефоне. Приложение будет использовать камеру в телефоне и различные алгоритмы компьютерного зрения, чтобы робот ездил вокруг в поисках лиц или определенных цветов. Робот может также следовать линии или преследовать других роботов по комнате.

Читайте также:  Проверка УЗО в домашних условиях - 145 фото и видео способов проверки работы устройства

Конструкция, шасси и двигатели робота на Ардуино

Для того, чтобы что-то поехало или стало перемещаться, надо снабдить “это” колесами, гусеницами или манипуляторами-ногами. Вот тут выбор совершенно не ограничен, можно использовать совершенно любые комбинации и сочетания платформ. Как правило, в качестве начального варианта берутся уже готовые наборы платформ с Алиэкспресс.

Двигатель, шасси и колеса машинки на ардуино

Если работать со стандартными наборами вам не интересно, можно создать платформу своими руками. Например, разобрать игрушечные радиоуправляемые машинки или любые двигатели на 5-12 вольт, с редукторами или без. Колеса можно создать и самим, что тоже является интересной задачей.

Двигатель, шасси и колеса машинки на ардуино

Необходимые компоненты

Плата Arduino Uno
Источник питания
Wi-Fi модуль ESP8266
USB кабель
Соединительные провода
Драйвер мотора L293D
Электродвигатели постоянного тока
Батарейки
Потенциометр 10 кОм (опционально)
Шасси робота с колесами
Мобильный телефон с Android
Приложение Blynk

Затем мы должны сконфигурировать контакты 8,9,10,11 в режим работы на вывод данных чтобы через них передавать инструкции роботу куда ему двигаться, а также запрограммировать функции для движения робота в заданных направлениях: void forward(), void backward(),void right() and void left() .

Робот на 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();
>

Использованные компоненты: Плата Arduino, Два двигателя постоянного тока, Акселерометр ADXL335, Кодер HT12D, Декодер HT12E ,Радиопередатчик и радиоприёмник, Драйвер двигателей L293D, Батарейка 9 В, Разъем для батарейки, USB-кабель, Шасси робота


Таблица состояний для управления роботом:

FAMAT › Блог › ROBOTяга ARDUINO — 1.Сборка

Машины бывают разные…

Решив приобщить сына к высоким технологиям, подарил ему набор для сборки робота на основе контроллера ARDUINO. Про ARDUINO информации полно в интернете…

Я хочу рассказать про робота и те «особенности», которые мы встретили при его постройке.
Выбор пал на четырехколесный робот. Заказывал на Алиэкспресс в «максимальной» комплектации, с бесплатной доставкой – вышло около 3000 руб.
ru.aliexpress.com/item/Fr…1112132&shopNumber=110055
Судя по описанию из этого набора частей, должно получиться «чудо» способное слушать команды от пульта дистанционного управления, от телефона по блютуз, уметь ездить по полосе и само определять препятствия – с помощью сонара.

Ждал не долго – около 20 дней, но вот пришло не все…

В посылке не хватало двух моторов-редукторов, вместо них был колесо от «тумбочки». Написали поставщику – недостающие детали обещали дослать.
Но это не основание ждать! Руки чешутся!
И так в наличии:
1. Arduino UNO R3.
2. Плата («драйвер») для управления 2-мя DC моторами — L298N Dual H-Bridge Stepper Motor Driver Controller (WB291111).
3. Плата расширения для подключения датчиков и «потребителей» — Arduino sensor shield v5.
4. Ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module Distance Measuring Sensor.
5. Модуль слежения за полосой с датчикам — 4 x Line inductive module.
6. ИК датчик с пультом — HX1838 Infrared Remote Control Module.
7. Модуль Блютуз — HC-06 wireless Bluetooth.
8. Моторы постоянного тока (DC) с редукторами с вращением в обе стороны –2 шт.
9. Колеса – 2 шт.
10. Сервопривод SG-90 TOWER.
11. Кронштейн для камеры с функцией поворота / наклона платформы.
12. Заготовки для четырехколесной платформы — 4 Wheel Drive Mobile Robot Platform – 2 шт.
13. Пластиковый бокс держатель для 4 батареек типа АА.
14. Пластиковый бокс держатель для батареек типа «Крона».
15. Макетная плата.
16. Тумблер – выключатель питания.
17. Провода для соединения модулей.
18. Крепеж.

Что бы было веселее – в коробке была инструкция по сборке трех колесного шасси – два колеса ведущих и одно подруливающее от «тумбочки». А вот инструкции по установке плат и датчиков, схемы соединения и «скетчей» не было.
Не беда, подумал я. В наш век — Google мне в помощь! А вот тут оказалось все еще «веселее» – несмотря на то, что наборы «выпускаются» не первый год, готового решения нет! С трудом через англоязычный сайт нашел в объявлении о продаже подобного набора со ссылкой на инструкцию – вольный перевод с китайского.
www.dx.com/ru/p/arduino-c…-kits-146418#.VldPetLhCt8
Нашлись и неплохие описания с российских просторов:
tim4dev.com/arduino-instruction-project-robocar4w/
Но полных и «универсальных» ответов, типа «вставь А в Б», «подключи В к Г», «загрузи Д в Е» нет.
Тем более интересней разобраться самому.
Те, кто со мной согласен, дальше не читайте! У вас свой путь «открытий» 🙂
Для всех остальных – начнем с шасси…

Сборка шасси.
Для сборки нам понадобится:
Из набора.
1. Arduino UNO R3.
2. «Драйвер» для управления моторами.
3. Моторы постоянного тока (DC) с редукторами –2 шт.
4. Колеса – 2 шт.
5. Платформа из оргстекла.
6. Пластиковый бокс держатель для 4 батареек типа АА.
7. Пластиковый бокс держатель для батареек типа «Крона».
8. Провода для соединения модулей.
9. Крепеж.
Дополнительно.
1. Выключатель двух полюсной.
2. Изолента и/или термоусадка (для изоляции проводов).
3. Скотч двухсторонний.
4. Винты и гайки 3 мм (в наборе их мало и они короткие).
Инструмент.
1. Дрель.
2. Набор сверл (3 мм, 5 мм).
3. Пассатижи.
4. Отвертка.
5. Ножницы.
6. Паяльник.
7. Олово, канифоль, паяльная кислота.

Читайте также:  Мюнхенская штукатурка: особенности, преимущества и недостатки, принципы использования и технология нанесения

Изначально шасси должно было быть четырехколесным и полноприводным. Шасси должно состоять из двух пластин из оргстекла, между которыми размещены 4 мотора редуктора и плата «драйвера» управления двигателями.
В моем случае пришлось делать трех колесное шасси – два колеса ведущих и одно подруливающее в «хвосте». Использовал одну пластину шасси.
Учитывая, что отверстия на пластинах шасси для крепления платы ARDUINO и других блоков не предусмотрены — компоновка размещения свободная, поэтому:
1. Размещаем блок ARDUINO так, что к нему мог быть доступ. Особенно важно, чтобы доступ был к разъему USB. Крепление сделал с помощью винтов диаметром 3 мм прикрученных к пластине шасси.

2. Размещаем «драйвер» моторов – его в принципе можно разместить и снизу пластины шасси – как я сделал первоначально (Вариант 1), но из-за особенности работы подруливающего колеса (об этом позже), решил поставить «драйвер» вверху. Крепление так же с помощью винтов прикрученных к пластине шасси.
3. Размещаем элементы/блоки питания. Все зависит от выбранной схемы питания, об этом я напишу ниже. У меня в процессе «эволюции» размещение элементов питании менялось несколько раз (Вариант 1, 2, 3). Для крепления блоков я использовал двухсторонний скотч. За время испытаний такое «крепление» не подвело.
4. Размещаем выключатель питания. Он должен быть в легкодоступном месте. Я поставил сверху – что бы не переворачивать постоянно «роботягу». Если вы как я и будете строить раздельное электропитание — для ARDUINO и электродвигателей, то стандартный выключатель вам не подходит – нужен двухполюсной – что бы одним движением обесточивать обе схемы. Хотя можно и однополюсным – отключать «минус» от обоих схем.

5. Подготавливаем моторы – провода моторов идут в комплекте, но они не припаяны – нужно припаять. Но будьте осторожны! Если контакты моторов перегреть, они расплавят пластмассу – щетки сдвинутся – мотор можно выбросить. Я что бы этого избежать использовал паяльную кислоту. Провода двигателей в наборе очень жесткие, поэтому что бы избежать их обрыва, я примотал их к двигателям изолентой.

Отдельный вопрос – размещение третьего колеса. Не смотря на простоту конструкции и очевидность решения, не все так просто! Собрав Вариант 1 и начав испытания, я не мог заставить робота ехать прямо!

Посчитав, что причина не правильная развесовка – батарейный блок сильно «прижимает» подруливающее колесо, я переместил его на переднюю ось, а так же собрал колесо из «Лего» сына (Вариант 2), что бы уменьшить вес.

Машины бывают разные…

Структура робота

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

«Мозги» робота — плата arduino uno (1); была в заказанном из Китая наборе. Для наших целей ее вполне хватает (ориентируемся на количество используемых пинов). Из этого же набора мы взяли готовое шасси (2), на которое крепятся два ведущих колеса (3) и одно заднее (свободно вращающееся) (4). Также в наборе был готовый батарейный отсек (5). Спереди у робота стоит ультразвуковой датчик (HC-SR04) (6), сзади — драйвер двигателей (L298N) (7), по центру — светодиод-мигалка (8), и чуть в стороне — пищалка (9).

На этапе компоновки мы смотрим:

— чтобы все влезло
— чтобы было сбалансировано
— чтобы было рационально размещено

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

  1. В шасси из набора есть много заводских отверстий, но какая в них логика — я так и не разобрался. Двигатели и аккумуляторный блок закрепились без проблем, дальше началась «подгонка» со сверлением новых отверстий, чтобы закрепить ту или иную плату.
  2. Весьма выручили латунные стойки и прочий крепеж из запасников (иногда приходилось выкручиваться).
  3. Шины от каждой платы пропускал через зажимы (опять же нашел в запасниках). Весьма удобно, все провода лежат красиво и не болтаются.

Двигатели и драйвер

9. Подключение батареи и моторов

При подключении батареи нужно быть абсолютно уверенным в правильности соблюдения полярности, как говорится 7 раз отмерь, один раз подключи. Старайтесь соблюдать такое правило — красны провод всегда к + питания, черный провод — земля, он же минус, он же GND. Производители стараются соблюдать такие же правила. Поэтому провода идущие от аккумуляторного отсека подсоединяем к колодке +M и GND, на плате управления двигателями. Провода от ходовых двигателей подключаем к колодкам M1, M2 платы управления двигателями. Левая сторона, по ходу движения подсоединяется к колодке M1, правая сторона к колодке M2. По поводу полярности двигателей пока волноваться не стоит, её можно будет поменять, если во время теста пойдёт что то не так.

Соединение двигателей с платой управления

Соединение двигателей с платой управления

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

Уважаемые учащиеся а также родители! Мы открыли новый набор в кружки робототехники Президенсткого Физико-математического лицея №239 г. Санкт-Петербурга по следующим направлениям: “BEAM-робототехника” (учимся создавать простых роботов, чтобы постичь азы роботостроения и получить необходимые навыки и знания в робототехнике и электронике); “Программирование микроконтроллеров Arduino” (учимся программировать и собирать своих первых программируемых роботов, делаем проекты и участвуем в соревнованиях); “Творческое проектирование Arduino” (создаем крутые проекты с использованием Arduino для участия в соревнованиях, конференциях выставках и тп). Обучение БЕСПЛАТНОЕ. Преподаватель: Мельников Сергей Алексеевич.
Подробнее о кружках и о том, как в них попасть


Решил сделать робота на Arduino. Так как на всех сайтах предлагающих даныый контроллер был обещан быстрый старт и доступность даже новичку я выбрал именно его. Для изучения начала основ программирования Ардуина использовал книгу Улли Соммера, проект робота IE-POPBOT (есть на Русском языке на сайте Терраэлектроника), статьи с сайта http://robocraft.ru , ну и конечно http://www.google.ru
Итак, для будущего робота я приобрел следующие детали:
1. Arduino Uno.
2. Драйвер моторов L-Motor Shield. Как я понял делает Калининград. (http://robocraft.ru/shop/index.php?route=product/product&product_id=172). Здесь же выложена для него библиотека. Достаточно не высокая стоимость и хороший функционал.
3. Колеса с мотор редуктором в комплекте (http://www.aliexpress.com/fm-store/806307/211015222-505652927/2pcs-lot-High-quality-tyre-Reduction-motor-fasteners–TT-motor-intelligent-car-wheels.html).
4. Серво моторы SG-50. Выписывал то же с Китая. Минимум 4 шт. (http://www.aliexpress.com/fm-store/206278/211153634-478942769/free-shipping-4pcs-5g-High-Torque-Micro-coreless-motor-Servo-SG50.html).
5. ИК дальномер SHARP GP2D120. Покупал в магазине, но он довольно распространен и его легко можно найти в Интернет магазинах России, так же как и колеса и сервы.
Платформу сделал из оргстекла, его легко можно приобрести в рекламной мастерской.
Соединительные кронштейны сделаны из оцинковки (обрезки от водоотливов). Легко режутся ножницами по металлу и можно загнуть под любой угол. В качестве источника питания использовал 6 аккумуляторов ААА, и два блока под них один на 4, другой на 2 штуки.
В качестве передней опоры использовал мебельную колесную опору за 15 руб.
Вот что получилось:


Робот, при подъезду к препятсвию на расстояние 10 см. остонавливается, измеряет расстояние до препятствия с право, с лево, и выбирает приоритетное направление. Всего четыре варианта действий.

Вот на него код (вполне вероятно, что корявый, но он работает)

200?’200px’:”+(this.scrollHeight+5)+’px’);”> #include
#include

LMotorShield lms;
int gp2;
int gp3;
int gp4;
int gp5;
int gp24;
int gp25;

void setup() <
<
Serial.begin(9600);
lms.begin(LMS_SERVOS);
>
pinMode(3,OUTPUT); // Motor A скорость
pinMode(7,OUTPUT); // Motor A направление
pinMode(11,OUTPUT); // Motor B скорость
pinMode(8,OUTPUT); // Motor B направление
pinMode(2,OUTPUT); // Motor A2
pinMode(4,OUTPUT); // Motor B1
>
void Forward() < // Подпрограмма движения робота вперед
digitalWrite(3,HIGH);
digitalWrite(7,LOW);
digitalWrite(11,HIGH);
digitalWrite(8,LOW);
>
void Backward() < // Подпрограмма движения робота назад
digitalWrite(3,HIGH);
digitalWrite(7,HIGH);
digitalWrite(11,HIGH);
digitalWrite(8,HIGH);
>
void motorStop()< // Подпрограмма остановки мотора

digitalWrite(2,LOW);
digitalWrite(4,LOW);
>
void Spin_Left() < // Вращение в лево
digitalWrite(11,HIGH);
digitalWrite(8,LOW);
digitalWrite(3,HIGH);
digitalWrite(7,HIGH);
>
void Spin_Right() < // Вращение в право
digitalWrite(3,HIGH);
digitalWrite(7,LOW);
digitalWrite(11,HIGH);
digitalWrite(8,HIGH);
>
void loop()
<
int i;
for (i=0;i 12&&gp5>12) <
motorRun();
Spin_Left();
delay(569);
>>>
else
<
motorRun();
Forward(); // Двигаться вперед
>>

Решил сделать робота на Arduino. Так как на всех сайтах предлагающих даныый контроллер был обещан быстрый старт и доступность даже новичку я выбрал именно его. Для изучения начала основ программирования Ардуина использовал книгу Улли Соммера, проект робота IE-POPBOT (есть на Русском языке на сайте Терраэлектроника), статьи с сайта http://robocraft.ru , ну и конечно http://www.google.ru
Итак, для будущего робота я приобрел следующие детали:
1. Arduino Uno.
2. Драйвер моторов L-Motor Shield. Как я понял делает Калининград. (http://robocraft.ru/shop/index.php?route=product/product&product_id=172). Здесь же выложена для него библиотека. Достаточно не высокая стоимость и хороший функционал.
3. Колеса с мотор редуктором в комплекте (http://www.aliexpress.com/fm-store/806307/211015222-505652927/2pcs-lot-High-quality-tyre-Reduction-motor-fasteners–TT-motor-intelligent-car-wheels.html).
4. Серво моторы SG-50. Выписывал то же с Китая. Минимум 4 шт. (http://www.aliexpress.com/fm-store/206278/211153634-478942769/free-shipping-4pcs-5g-High-Torque-Micro-coreless-motor-Servo-SG50.html).
5. ИК дальномер SHARP GP2D120. Покупал в магазине, но он довольно распространен и его легко можно найти в Интернет магазинах России, так же как и колеса и сервы.
Платформу сделал из оргстекла, его легко можно приобрести в рекламной мастерской.
Соединительные кронштейны сделаны из оцинковки (обрезки от водоотливов). Легко режутся ножницами по металлу и можно загнуть под любой угол. В качестве источника питания использовал 6 аккумуляторов ААА, и два блока под них один на 4, другой на 2 штуки.
В качестве передней опоры использовал мебельную колесную опору за 15 руб.
Вот что получилось:

Читайте также:  Проект освещения - составление и детальное описание

Робот, при подъезду к препятсвию на расстояние 10 см. остонавливается, измеряет расстояние до препятствия с право, с лево, и выбирает приоритетное направление. Всего четыре варианта действий.

Программа управления и пояснения к ней

// управляются привода с помощью переменных резисторов – потенциометров.

int potpin = 0; // аналоговый пин для подключения потенциометра

int val; // переменная для считывания данных с аналогового пина

val = analogRead(potpin); // считывает значение потенциометра (значение между 0 и 1023)

val = map(val, 0, 1023, 0, 179); // масштабирует полученное значение для использования с сервами (получаем значение в диапазоне от 0 до 180)

myservo1.write(val); // выводит серву в позицию в соответствии с рассчитанным значением

delay(15); // ждет, пока серводвигатель выйдет в заданное положение

val = analogRead(potpin1); // серва 2 на аналоговом пине 1

val = map(val, 0, 1023, 0, 179);

val = analogRead(potpin2); // серва 3 на аналоговом пине 2

val = map(val, 0, 1023, 0, 179);

val = analogRead(potpin3); // серва 4 на аналоговом пине 3

val = map(val, 0, 1023, 0, 179);

val = analogRead(potpin4); //серва 5 на аналоговом пине 4

val = map(val, 0, 1023, 0, 179);


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

Электросхема

Можно использовать вместо резистора R1 потенциометр на 100 кОм для регулировки яркости вручную. В качестве сопротивлени R2 использовались резисторы на 118 Ом.

Перечень основных узлов, которые использовались:

  • R1 – резистор на 100 кОм
  • R2 – резистор на 118 Ом
  • Транзистор bc547
  • Фоторезистор
  • 7 светодиодов
  • Переключатель
  • Подключение к плате Arduino

В качестве микроконтроллера использовалась плата Arduino. В качестве питания использовался блок питания от персонального компьютера. Подключив мультиметр к красному и черному кабелям, вы увидите 5 вольт (которые используются для серводвигателей и ультразвукового датчика расстояния). Желтый и черный дадут вам 12 вольт (для Arduino). Делаем 5 коннекторов для сервомоторов, параллельно подключаем позитивные к 5 В, а негативные – к земле. Аналогично с датчиком расстояния.

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

Кроме того, на плате питания был установлен светодиод-индикатор питания. Реализуется это несложно. Дополнительно использовался резистор на 100 Ом между 5 В и землей.

10 миллиметровый светодиод на роботе тоже подключен к Arduino. Резистор на 100 Ом идет от 13 пина к к позитивной ноге светодиода. Негативный – к земле. В программе его можно отключить.

Для 6 серводвигателей использовано 6 коннекторов, так как 2 серводвигателя снизу используют одинаковый сигнал управления. Соответствующие проводники соединяются и подключаются к одному пину.

Повторюсь, что в качестве питания используется блок питания от персонального компьютера. Либо, конечно, вы можете приобрести отдельный источник питания. Но с учетом, того, что у нас 6 приводов, каждый из которых может потреблять около 2 А, подобный мощный блок питания обойдется недешево.

Обратите внимание, что коннекторы от серв подключаются к ШИМ-выходам Arduino. Возле каждого такого пина на плате есть условное обозначение

. Ультразвуковой датчик расттояния можно подключить к пинам 6, 7. Светодиод – к 13 пину и земле. Это все пины, которые нам понадобятся.

Теперь мы можем перейти к программированию Arduino.

Перед тем как подключить плату через usb к компьютеру, убедитесь, что вы отключили питание. Когда будете тестировать программу, также отключайте питание вашей робо-руки. Если питание не выключить, Arduino получит 5 вольт от usb и 12 вольт от блока питания. Соответственно, мощность от usb перекинется к источнику питания и он немного “просядет”.

На схеме подключения видно, что были добавлены потенциометры для управления сервами. Потенциометры не являются обязательным звеном, но приведенный код не будет работать без них. Потенциометры можно подключить к пинам 0,1,2,3 и 4.


delay(15); // ждет, пока серводвигатель выйдет в заданное положение

Что понадобится

Для нашего примера понадобятся следующие детали:

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

Для нашего примера понадобятся следующие детали:

Управление электродвигателями из Arduino

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

Типичная схема подключения электродвигателя превосходно объяснена на wiki-сайте Амперки, поэтому я просто приведу здесь их иллюстрацию:

Там же можно прочитать интересную статью про полевые МОП-транзисторы (a.k.a. MOSFET). В отличие от биполярных транзисторов, полевые транзисторы управляются напряжением, а не током. Полевые транзисторы используются, когда нужно управлять сравнительно большим током (сотни миллиампер). Типичный полевой транзистор, используемый во многих проектах, что я видел — IRF3205.

Описанная схема позволяет вращать электродвигателем только в одну сторону. Однако колеса в роботе должны крутиться не только вперед, но и назад. Для решения этой проблемы используется конструкция под названием H-мост. При желании его можно спаять и самостоятельно, но в наше время обычно используют готовые микросхемы. Одной из самых популярных является микросхема L298P. В частности, именно она используется в Motor Shield от Амперки. Если вы полистаете даташит [PDF], то обнаружите, что это довольно скучная микросхема, построенная на транзисторах и логических вентилях — никакой магии.

Из драйверов двигателей, аналогичных L298P, стоит упомянуть L293D и L293B. Максимальный ток на канал первого составляет 0.6 А против 2 А у L298P. Зато L293D имеет встроенную диодную защиту от паразитных токов и стоит заметно дешевле. L293B также намного дешевле L298P. Максимальный ток на канал этого чипа — 1 А, встроенной диодной защиты нет.

Если вы решите изготовить свой Motor Shield при помощи ЛУТ или ФР, вот соответствующая схема для одного электродвигателя:

Картинку было лень рисовать самому, поэтому я позаимствовал ее из поста H Bridge Motor Control Circuit Using L298 в блоге circuitstoday.com. Кстати, с виду весьма интересный блог. В качестве возвратных диодов Motor Shield от Амперки использует диоды Шоттки SS14. На аналогичной по функционалу китайской плате используются более дешевые диоды M7.

В заключение к теоретической части стоит упомянуть, что в роботах обычно используют электродвигатели с редукторами. Благодаря редуктору скорость вращения колеса уменьшается, а момент силы увеличивается. Другими словами, робот двигается медленнее, чем мог бы, зато становится способен преодолевать более сложные препятствия — взбираться на крутые горки, и так далее. Рассмотренный далее робот, к примеру, способен подъехать к стене, начать карабкаться на нее, и в результате перевернуться.

Как видите, робот просто получает направление и скорость вращения двигателей от пульта. Если пульт не посылал никаких данных в течение 500 мс, робот останавливается. NRF24L01 иногда теряет пакеты, особенно при наличии помех от самих двигателей робота. Благодаря тому, что робот какое-то время помнит последнюю полученную команду, он будет двигаться плавно, даже если 98% пакетов теряются.

Добавить комментарий