Робот на arduino uno своими руками

Объезжающий препятствия робот на Arduino

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

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

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

Принцип работы ультразвукового датчика HC-SR04

Ультразвуковой датчик HC-SR04 используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления.

Ультразвуковой датчик HC-SR04 обеспечивает на своем выходе сигнал, пропорциональный дистанции до препятствия. Датчик генерирует звуковые колебания в ультразвуковом диапазоне (после получения управляющего импульса) и после этого ждет когда они вернутся к нему (эхо), отразившись от какого-нибудь препятствия. Затем, основываясь на скорости звука (340 м/с) и времени, необходимом для того чтобы эхо достигло источника (нашего датчика), датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию до препятствия.

Как показано на рисунке сначала нам нужно инициировать датчик для измерения расстояний, для этого на его триггерный контакт (trigger pin) необходимо подать логический сигнал высокого уровня длительностью не менее 10 мкс, после этого датчик генерирует серию звуковых колебаний и после получения отраженного сигнала (эхо) датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию между ним и препятствием.

Ультразвуковой сигнал отражается от поверхности, возвращается обратно и улавливается приемником ультразвукового сигнала датчика. После этого на контакте Echo датчика устанавливается напряжение высокого уровня (high) на время, пропорциональное расстоянию до препятствия.

После этого расстояние до препятствия можно рассчитать по следующей формуле:

Distance= (Time x Speed of Sound in Air (343 m/s))/2

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

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

Схема проекта

Схема робота на Arduino, объезжающего препятствия, представлена на следующем рисунке. Как видите, в схеме мы использовали плату Arduino Nano, но эту же схему без изменений можно использовать и в случае использования платы Arduino Uno. Код программы в этом случае также останется без изменений.

После сборки у нас получилась конструкция робота, показанная на следующем рисунке.

Объяснение программы для Arduino

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

Источник

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, управляемый по WiFi

Роботы являются одними из самых популярных устройств, конструируемыми энтузиастами в микроконтроллерной технике. Мы на нашем сайте уже рассматривали проекты различных роботов на основе платы Arduino Uno:

А в этой статье мы рассмотрим создание робота на основе Arduino Uno, управляемого по WiFi со смартфона с помощью приложения Blynk App. Для демонстрации работы этого робота мы используем мобильное приложение для Android под названием “Blynk”. Blynk – это совместимое приложение с Arduino, удобное для создания различных проектов для интернета вещей (IoT based project). Это приложение можно скачать из Google Play Store, его легко установить и настроить.

Шаги для настройки приложения Blynk

1. Сначала скачайте его из Google Play Store и установите его на свой мобильный телефон с Android.

2. После этого необходимо создать аккаунт если у вас его нет. Также вы можете использовать Gmail аккаунт (если он у вас есть).

3. Теперь выберите Arduino Board и задайте имя для своего проекта.

4. Запишите код авторизации токена (Auth Token Code) или просто перешлите его на свой Email аккаунт и затем скопируйте и вставьте его в свою программу (скетч) для Arduino.

5. Запишите свой Auth Token Code в программе (скетче) для Arduino.

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = «caa17a11c0124d4083d0eaa995f45917»;

6. Затем кликните на «создать кнопку» (create button) в приложении Blynk.

7. Теперь выберите Joystick Widget, Click on Joystick, Configure the Joystick (более подробно смотрите в видео в конце статьи) и нажмите кнопку возвращения назад back button.

8. После этого нажмите кнопку Play в верхнем правом углу экрана.

Более подробно процессы настройки приложения Blynk показаны в видео в конце статьи.

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

Работа схемы

Схема устройства представлена на следующем рисунке.

Основными элементами в ней являются плата Arduino Uno и Wi-Fi модуль ESP8266. Контакты Vcc и GND модуля ESP8266 непосредственно подключены к контактам 3.3V и GND платы Arduino, контакт CH_PD также подсоединен к контакту 3.3V. Контакты Tx и Rx модуля ESP8266 подключены к контактам 2 и 3 платы Arduino. Software Serial Library (библиотека последовательной связи) используется для осуществления последовательной связи на контактах 2 и 3 платы Arduino. В статье про передачу Email с использованием Arduino мы достаточно подробно останавливались на подключении WiFi модуля ESP8266 к плате Arduino, поэтому здесь эти вопросы рассматривать не будем.

Микросхема драйвера двигателей L293D используется для управления двигателями постоянного тока. Входные контакты микросхемы драйвера мотора непосредственно подключены к контактам 8, 9, 10 и 11 платы Arduino. Электродвигатели постоянного тока подключены к выходным контактам микросхемы L293D. Для питания схемы и двигателей постоянного тока мы использовали батарейку на 9 Вольт.

Структурная схема работы устройства показана на следующем рисунке.

Работа схемы достаточно проста – нам в приложении Blynk на смартфоне необходимо просто перемещать джойстик в том направлении, в котором мы хотим чтобы двигался робот. Если мы отпустим кнопку джойстика в приложении, то его рычаг переместится в центр и робот остановится.

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

Исходный код программы

Код программы практически полностью готов в среде Arduino IDE. Нам необходимо просто скачать Blynk Library для Arduino. И после внесения ряда изменений мы получим программу для управления роботом по Wi-Fi.

В программе мы первым делом должны подключить все необходимые библиотеки, затем мы должны войти в строку авторизации (auth string) в токене авторизации (Auth Token) от приложения Blynk. Далее мы подсоединяем последовательный контакт модуля Wi-Fi к Arduino с помощью библиотеки последовательной связи. RX подсоединяем к контакту 2, а TX – к контакту 3.

Читайте также:  Макет пустыни для детского сада своими руками

#define BLYNK_PRINT Serial // поместите это в комментарий чтобы отключить печать и сэкономить пространство
#include
#include
// Set ESP8266 Serial object
#include
SoftwareSerial EspSerial(2, 3); // RX, TX
ESP8266 wifi(EspSerial);
// You should get Auth Token in the Blynk App (вы должны получить Auth Token в приложении Blynk)
// Go to the Project Settings (nut icon). (зайдите в настройки проекта)
char auth[] = «caa17a11c0124d4083d0eaa995f45917»;

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

void setup()
<
// установить бодовую скорость передачи
Serial.begin(9600);
delay(10);
// установка бодовой скорости для ESP8266
// 9600 рекомендовано для библиотеки Software Serial
EspSerial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, «username», «password»); // имя пользователя и пароль для wifi
pinMode(m11, OUTPUT);
pinMode(m12, OUTPUT);
pinMode(m21, OUTPUT);
pinMode(m22, OUTPUT);
>

После этого мы в программе должны проверить ряд условий для управления роботом. Здесь мы выбрали виртуальный контакт 1 (V1) чтобы получать информацию о требуемом направлении движения от приложения Blynk. Поскольку мы выбрали соответствующую опцию в приложении, то мы можем получать значения осей x и y на этом же самом контакте.

BLYNK_WRITE(V1)
<
int x = param[0].asInt();
int y = param[1].asInt();
if(y>220)
forward();
else if(y
backward();
else if(x>220)
right();
else if(x
left();
else
Stop();
>

Далее мы просто должны использовать функцию blynk в цикле loop.

Источник

Как сделать робота на Ардуино своими руками: самодельный robot Arduino в домашних условиях

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

Чтобы сделать робота в домашних условиях вам понадобится собственно сама плата микроконтроллера и ультразвуковой сенсор. Если сенсор зафиксирует препятствие, сервопривод позволит ему обогнуть препятствие. Сканируя пространство справа и слева, робот выберет наиболее предпочтительный путь для обхода препятствия.

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

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

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

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

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

Шаг 2: Делаем каркас робота

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

На нижней стороне пластины плексигласа приклейте на суперклей электромоторы. Они должны быть параллельны друг другу, с помощью линейки-угольника проверьте их положение прежде чем клеить (фото 2). Затем приклейте на суперклей отсек для батарейки.

Можно также просверлить отверстия под провода электромоторов и питания.

Шаг 3: Монтируем электронику

Закрепите на каркасе плату контроллера и драйвер двигателей, используя стойки для печатных плат, винты и гайки. Миниатюрная макетная плата клеится на липкий слой (уже есть на нижней стороне) (фото 1).

Теперь делаем заднее опорное колесо из скрепки и бусины (фото 2). Концы проволоки закрепите на нижней стороне каркаса суперклеем или термоклеем.

Шаг 4: Устанавливаем «глаза» робота

На передней части каркаса приклейте на суперклей миниатюрный сервопривод. Рассмотрите на первом фото, как крепится плата ультразвукового датчика к сервоприводу с помощью маленького вала.
На втором фото показано, как выглядит завершенное соединение датчика и сервопривода.

Шаг 5: Схема подключений

Теперь приступаем к подключению электронных компонентов. Подключение компонентов происходит согласно схеме на рисунке 1.

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

Шаг 6: Код

Код, который приведен ниже, сделан с помощью Codebender.

Codebender – это браузерный IDE, это самый простой способ программировать вашего робота из браузера. Нужно кликнуть на кнопку «Run on Arduino» и все, проще некуда.

Вставьте батарейку в отсек и нажмите на функциональную кнопку один раз, и робот начнет движение вперед. Для остановки движения нажмите на кнопку еще раз.

Нажав кнопку «Edit», вы можете редактировать скетч для своих нужд.

Например, изменив значение «10» измеряемого расстояния до препятствия в см, вы уменьшите или увеличите дистанцию, которую будет сканировать robot Arduino в поисках препятствия.

Если робот не двигается, может изменить контакты электромоторов (motorA1 и motorA2 или motorB1 и motorB2).

Шаг 7: Завершенный робот

Ваш самодельный робот, обходящий препятствия, на базе микроконтроллера Arduino готов.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Источник

admin
Делаю сам
Adblock
detector