Как сделать робота на Arduino, который самостоятельно объезжает препятствия. Какие компоненты нужны для сборки. Как работает ультразвуковой датчик для обнаружения препятствий. Какой код использовать для программирования робота на Arduino.
Принцип работы робота для объезда препятствий на Arduino
Робот на Arduino для объезда препятствий — это автономное устройство, способное самостоятельно перемещаться в пространстве, обнаруживая и объезжая встречающиеся на пути препятствия. Основные компоненты такого робота:
- Платформа Arduino (обычно Arduino Uno) — выступает в роли «мозга» робота
- Ультразвуковой дальномер — для обнаружения препятствий
- Моторы и колеса — для движения
- Драйвер двигателей — для управления моторами
- Сервопривод — для поворота ультразвукового датчика
- Источник питания
Принцип работы робота заключается в следующем:
- Робот движется вперед
- Ультразвуковой датчик постоянно измеряет расстояние до препятствий впереди
- При обнаружении препятствия ближе заданного расстояния (обычно 10-15 см) робот останавливается
- Сервопривод поворачивает датчик влево и вправо для сканирования пространства
- На основе полученных данных робот выбирает направление с наибольшим свободным пространством
- Робот поворачивает в выбранном направлении и продолжает движение
Таким образом, робот способен автономно перемещаться в пространстве, избегая столкновений с препятствиями.

Необходимые компоненты для сборки
Для сборки робота на Arduino, объезжающего препятствия, понадобятся следующие компоненты:
- Arduino Uno или аналогичная плата
- Ультразвуковой дальномер HC-SR04
- Драйвер двигателей L293D или аналогичный
- 2 коллекторных двигателя постоянного тока
- Сервопривод SG90
- 2 колеса
- Шасси или платформа для робота
- Источник питания (батарейный отсек или аккумулятор)
- Провода, резисторы, кнопка включения
Дополнительно могут понадобиться крепежные элементы, подшипники для колес, макетная плата. Точный список компонентов зависит от конкретной конструкции робота.
Схема подключения компонентов
Схема подключения основных компонентов робота к Arduino:
- Ультразвуковой датчик HC-SR04:
- VCC → 5V Arduino
- Trig → pin 9 Arduino
- Echo → pin 8 Arduino
- GND → GND Arduino
- Драйвер двигателей L293D:
- Enable 1,2 → 5V
- Input 1,2 → pin 6,7 Arduino
- Input 3,4 → pin 5,4 Arduino
- Output 1,2 → Мотор 1
- Output 3,4 → Мотор 2
- GND → GND Arduino
- Сервопривод:
- Сигнал → pin 11 Arduino
- VCC → 5V Arduino
- GND → GND Arduino
Питание Arduino и моторов лучше развести на отдельные источники для стабильной работы.

Программирование робота на Arduino
Для программирования робота на Arduino используется среда Arduino IDE. Основные блоки программы:
- Подключение необходимых библиотек (Servo.h)
- Определение пинов для подключения компонентов
- Инициализация в функции setup()
- Основной цикл в функции loop():
- Измерение расстояния до препятствия
- Проверка на наличие препятствия
- Остановка и сканирование при обнаружении препятствия
- Выбор направления движения
- Поворот и продолжение движения
Ниже приведен пример базового кода для робота на Arduino, объезжающего препятствия:
«`cpp #include
Как работает ультразвуковой датчик HC-SR04
Ультразвуковой датчик HC-SR04 — ключевой элемент робота, позволяющий обнаруживать препятствия. Принцип его работы основан на измерении времени прохождения ультразвукового сигнала:
- На вход Trig подается короткий импульс (10 мкс)
- Датчик генерирует 8 ультразвуковых импульсов частотой 40 кГц
- Сигнал отражается от препятствия и возвращается к датчику
- На выходе Echo формируется импульс, длительность которого пропорциональна расстоянию до препятствия
Зная скорость звука (около 340 м/с), можно рассчитать расстояние по формуле:
Расстояние = (Длительность импульса Echo * Скорость звука) / 2
Деление на 2 нужно, так как сигнал проходит путь до препятствия и обратно. В коде Arduino для этого используется формула:
distance = duration * 0.034 / 2
Где 0.034 — это скорость звука в см/мкс.
Возможные улучшения конструкции робота
Базовую конструкцию робота на Arduino для объезда препятствий можно улучшить несколькими способами:
- Добавление дополнительных датчиков (инфракрасных, лидаров) для более точного определения препятствий
- Использование энкодеров на колесах для точного контроля пройденного расстояния
- Добавление гироскопа/акселерометра для лучшего контроля движения
- Установка дисплея для вывода информации о состоянии робота
- Добавление Bluetooth или Wi-Fi модуля для удаленного управления
- Использование алгоритмов машинного обучения для более эффективной навигации
- Добавление камеры и системы компьютерного зрения
Эти улучшения позволят сделать робота более «умным» и эффективным в навигации и выполнении различных задач.

Применение роботов, объезжающих препятствия
Роботы на Arduino, способные автономно перемещаться и объезжать препятствия, находят применение во многих областях:
- Образование и обучение робототехнике
- Автоматизированные системы уборки (роботы-пылесосы)
- Складская логистика и инвентаризация
- Исследование труднодоступных или опасных мест
- Сельское хозяйство (автономные системы полива, сбора урожая)
- Охранные системы и патрулирование территорий
- Развлекательные и игровые роботы
С развитием технологий и алгоритмов искусственного интеллекта область применения таких роботов постоянно расширяется.
Arduino-робот, объезжающий препятствия | Занимательная робототехника
25.12.2016 RobotGeeks
Название проекта: Робот, объезжающий препятствия
Платформа: Arduino
Робот предназначен для создания и отладки различных алгоритмов. В данном проекте робот работает автономно — ездит и не врезается в препятствия.
На роботе установлен ИК датчик расстояния SHARP.
Платформа робота изготовлена на 3D принтере и позволяет закрепить на ней двигатели с редуктором (N20), Arduino UNO, и ИК датчик расстояния, а также различные другие датчики.
Файлы для печати: http://www.thingiverse.com/thing:1962314.
Использованные компоненты: Arduino UNO, сенсор SHARP GP2Y0A21Y, Bluetooth HC-05, Мотор-редуктор N20, Shield драйвер двигателей, Sensor shield
Сайт проекта: http://www. instructables.com/id/Arduino-Robot-With-Ir-Detector/
Проект о том, как сделать робота на ардуино, избегающего (объезжающего) препятствия.
Другие проекты на этой платформе:
- Робот-миньон-копилка Arduino
- Говорящий робот-пылесос. Универсальное улучшение на Arduino
- Шагающая тыква. Arduino-робот для Хэллоуина
- Sourino — самодельная роботизированная мышь
- Двуногий робот из Arduino, LEGO и деталей 3D печати
- Шестиногий шагающий робот из Arduino, LEGO и деталей 3D печати
- Робот-художник на базе Arduino Uno
- Самодельный робот-собака Spot Micro
- Сферический четвероногий робот Arduino
- Виртуальная игра, управляемая настоящим велосипедом (Arduino)
- Четверногий Arduino-робот mechDOG
- Велосипед, подключенный к Google Street View через Arduino
- Самодельный таймер мытья рук на основе Arduino
- Учебный набор начинающего ситифермера
- Робот на Arduino, управляемый с помощью жестов
- Как сделать аниматронный хвост
- Вездеход из Lego с видео и bluetooth на Raspberry Pi
- Робот Juno: изучай 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-проектов роботов
Как добавить робопроект в каталог?
Теги: arduino проект, DIY, headline, сделай сам
Применение контроллеров Arduino в проектной деятельности на уроках технологии.

Автор:
Дергачев Сергей Львович, Гуров Павел.
Применение контроллеров Arduino в проектной деятельности на уроках технологии.
Изменения, происходящие в современном российском образовании, связанные с внедрением федеральных государственных стандартов, требуют пересмотра целевых установок, приоритетных направлений, применения новых технологий, форм и методов обучения. На сегодняшний день от учителя требуется владение новыми технологиями обучения и воспитания, которые позволяют всесторонне развивать личность ребёнка, его индивидуальность, творческую инициативу. Необходимо научить его овладевать новыми видами деятельности, новыми знаниями. Этого можно добиться, используя проектную деятельность на уроке и во внеклассной работе.
В настоящий момент огромный интерес у детей вызывает робототехника. В школах появляются различные конструкторы: LEGO Mindsorms EV3, «Технолаб», «Амперка» и т. д. На различных площадках обсуждается возможность организации учебного процесса по предмету «Робототехника», который затрагивает такие дисциплины как информатика, технология, физика.
Для своих занятий я выбрал объекты проектирования на популярной плате Arduino Uno
Arduino — это комбинация аппаратной и программной частей для простой разработки электроники. Аппаратная часть включает в себя большое количество видов плат Arduino со встроенными программируемыми микроконтроллерами, а так же дополнительные модули. Программная часть состоит из среды разработки (программы для написания скетчей и прошивки микроконтроллеров Ардуино), упрощенного языка программирования, огромного множества готовых функций и библиотек.
Arduino представляет собой весьма простой инструмент для создания электронных устройств и воплощения в жизнь различных идей. Это платформа построена на печатной плате с интегрированной средой для написания программного обеспечения. В основе аппаратной части лежит микроконтроллер семейства ATmega и минимально необходимая для работы обвязка.
Популярности благоприятствует относительно простая сборка устройств, большой набор различных компонентов для сборки устройств и сеть Интернет, где пользователи делятся своими наработками и совместно решают различные проблемы.
К достоинствам Arduino можно отнести:
- низкая стоимость.
- кроссплатформенность. С Arduino можно работать на системах под управлением ОС Windows, Mac OS и Linux.
- простая и понятная среда программирования. Среда разработки спроектирована для новичков, не знакомых с разработкой программного обеспечения. Однако это не мешает опытным пользователям создавать и достаточно сложные проекты. Среда представляет собой приложение, которое включает в себя редактор кода, компилятор и специальный модуль для прошивки платы. Язык программирования, используемый в Arduino, является реализацией Wiring. Строго говоря, это C/C++, дополненный некоторыми библиотеками.
- возможность аппаратного расширения.
Возможности плат Arduino можно расширить с помощью особых микросхем, которые именуются «шилдами» (от англ. shields). Шилды устанавливаются поверх основной платы и дают новые возможности. Так, например, существуют платы расширения для подключения к локальной сети и интернету (Ethernet Shield), для управления мощными моторами (Motor Shield), для получения координат и времени со спутников GPS (модуль GPS) и многие другие.
В итоге, даже обычные пользователи могут разработать опытные образцы с целью экономии средств и понимания работы. Учащиеся же, создав программу, могут сразу наблюдать результаты своей деятельности. Программа из непонятного набора английских слов превращается в алгоритм управления реальным устройством, только что собранного своими руками. Это мотивирует, возбуждает интерес к данной деятельности.
В ходе реализации проекта учащиеся столкнулись с некоторыми трудностями. Главная из которых – слабые знания программирования.
Документация по проекту представлена в данной статье.
Автономный автомобильный робот для обхода препятствий с использованием Arduino
— Реклама —
Использование автономных систем для выполнения важных и деликатных задач быстро растет, и их применение в различных областях невозможно переоценить. Но уклонение от препятствий — важная задача в робототехнике, поскольку цель автономного робота — добраться до места назначения без столкновений. Один из типов автономных роботов, который может обнаруживать препятствия и края и выбирать альтернативные пути, свободные от препятствий и краев, — это робот, избегающий препятствия в реальном времени и обнаруживающий края.
Рис. 1: Авторский прототип
Посмотреть это видео на YouTube
Этот проект предлагает робота со встроенным интеллектом, который направляет его всякий раз, когда на его пути появляется препятствие, используя алгоритм. Конструкция позволяет роботу перемещаться в неизвестной среде, избегая столкновений. Избегание препятствий в роботах может обеспечить большую гибкость в различных средах и сделать их намного более эффективными, так что их постоянный контроль со стороны человека не требуется. Авторский прототип показан на рис. 1.
Спецификация |
1. Arduino Uno R3 -1 |
— Реклама —
Блок-схема робота, избегающего препятствия, показана на рис. 2, а его принципиальная схема показана на рис. 3. Этот робот построен с использованием микроконтроллера семейства ATmega 8 Arduino Uno R3. Когда его ультразвуковой датчик обнаруживает препятствие или край, он отправляет команду микроконтроллеру. Микроконтроллер на основе полученного входного сигнала дает указание роботу двигаться в альтернативном направлении, приводя в действие двигатели, которые с ним связаны через драйвер двигателя. В зависимости от ситуации робот может выбрать свободный путь, и процесс принятия решения об обходе препятствия и обнаружении края происходит спонтанно.
Рис. 2: Блок-схема робота, избегающего препятствияРис.
Датчик играет важную роль в этом проекте. Во-первых, передатчик посылает всплески ультразвуковых сигналов частотой 40 кГц. Этот сигнал отражается обратно, когда объект оказывается перед датчиком и принимается приемником. Ультразвуковой датчик генерирует высокочастотные звуковые волны и оценивает эхо, которое достигает приемника. Таким образом, используя эту технику, ультразвуковые волны непрерывно вычисляют расстояние между автомобилем и отраженными объектами.
Рис. 4: Припайка провода к редукторному двигателюПосле обнаружения препятствия автомобиль меняет направление движения, принимая автономное решение. Он может измерять расстояние между собой и окружающими объектами в режиме реального времени.
Рис. 5: Крепление мотор-редуктора к шассиПрограммное обеспечение
Программа написана на языке программирования Arduino Sketch. Для компиляции и загрузки программы в прототип использовалась Arduino IDE 1. 8.11. Проекту нужны различные библиотеки, которые для программирования должны быть включены во внешний заголовочный файл.
Для загрузки исходного кода ARDUINO_OBSTACLE_AVOIDING_CAR.ino в плату Arduino Uno подключите плату Arduino к настольному/ноутбуку с помощью USB-кабеля. Далее выбираем плату и порт и загружаем исходный код.
Рис. 7, 8 и 9: Сборка шасси в соответствии с этапом 2Сборка и тестирование
Прежде всего, загрузите исходный код в Arduino Uno и выполните шаги, указанные ниже, чтобы собрать робота.
Шаг 1. Сборка шасси (см. рис. 4, рис. 5 и рис. 6):
- Припаяйте провод к плюсу и заземлению мотор-редукторов постоянного тока
- Прикрепите редукторные двигатели постоянного тока к нижней части шасси
- Прикрепите колеса к двигателям постоянного тока
Шаг 2. Установка компонентов:
Шаг 3. Установка сервопривода:
• Установите сервопривод на верхнюю часть шасси
• Вставьте сервопривод в Контакты сервопривода 1 (SER1) на щите
Шаг 4. Подготовка ультразвукового датчика: (Рис. 11: Соединения датчика)
Поместите ультразвуковой датчик на сервопривод, используя подставку для датчика. Затем подключите четыре провода к датчику с помощью перемычек. Затем подключите датчик к Arduino Uno, как описано ниже:
GND→GND
Vcc→5V
TRIGpin 2 (AO)
ECHO→pin 13 (A1)
Подключите батарею Lipo к L293D-драйвер мотора выглядит следующим образом:
Lipo аккумулятор (+)→+12 В
Lipo аккумулятор (-)→GND Рис. 12: Подключение питания
Теперь робот для обхода препятствий готов! Его можно использовать для таких приложений, как:
- Мобильные навигационные системы, военные и правоохранительные органы, поисково-спасательные работы и охрана лесов.
- Для работы по дому, например, для автоматической уборки пылесосом.
- При правильном программировании для поднятия тяжестей и помощи при парковке.
Доктор С. Раджан — профессор, а Мифили М. — студентка последнего курса факультета ECE инженерно-технологического колледжа Велалар, Тиндал, Эроде, Тамил Наду
900 00 Препятствие Робот, избегающий препятствий, с использованием ArduinoЗдесь разработан простой проект робота, избегающего препятствий. Робототехника — интересная и быстро развивающаяся область. Робототехника является отраслью техники, и ее применение расширяется с развитием технологий.
Концепция мобильного робота быстро развивается, а количество мобильных роботов и их сложность увеличиваются в зависимости от приложений.
Существует много типов методов навигации мобильных роботов, таких как планирование пути, самолокализация и интерпретация карты. Робот, избегающий препятствий, — это тип автономного мобильного робота, который избегает столкновения с неожиданными препятствиями.
В этом проекте разработан робот, избегающий препятствий. Это робот на базе Arduino, который использует датчики ультразвукового дальномера, чтобы избежать столкновений.
Помогите нам выбрать следующий проект DIY Arduino. : Выберите свой любимый проект »
Схема
Принципиальная схема
Необходимое оборудование
- Arduino Uno [Купить здесь] 900 70
- Датчик ультразвукового дальномера — HC — SR04
- ИС драйвера двигателя — L293D [Купить здесь]
- Серводвигатель (Tower Pro SG90)
- Мотор-редукторы x 2
- Шасси робота
- Блок питания
- Разъем аккумулятора
- Держатель батареи
Описание компонентов
Arduino Uno
Arduino Uno — это макетная плата на основе микроконтроллера ATmega 328p. Это платформа электронного прототипирования с открытым исходным кодом, которую можно использовать с различными датчиками и исполнительными механизмами.
Arduino Uno имеет 14 цифровых контактов ввода-вывода, из которых 6 используются в этом проекте.
HC – SR04
Ультразвуковой дальномер. Это бесконтактная система измерения расстояния, которая может измерять расстояние от 2 см до 4 м.
L293D
Это драйвер двигателя, который может обеспечить двунаправленный приводной ток для двух двигателей.
Серводвигатель
Tower Pro SG90 — это простой серводвигатель, который может вращаться на 90 градусов в каждом направлении (всего примерно на 180 градусов).
Проектирование робота для обхода препятствий с использованием Arduino
Arduino является основным процессором робота. Из 14 доступных цифровых входов/выходов в этом проекте используются 7 контактов.
Ультразвуковой датчик имеет 4 контакта: Vcc, Trig, Echo и Gnd. Vcc и Gnd подключены к контактам +5v и GND Arduino. Trig (Триггер) подключается к 9-му контакту, а Echo подключается к 8-му контакту Arduino UNO соответственно.
Серводвигатель используется для вращения ультразвукового датчика для обнаружения препятствий. Он имеет три контакта, а именно Control, VCC и GND. Контакт управления сервоприводом подключен к контакту 11 Arduino, а VCC и GND подключены к + 5V и GND.
L293D представляет собой 16-контактную микросхему. Контакты 1 и 9 являются контактами включения. Эти контакты подключены к +5V. Контакты 2 и 7 являются входами управления от микроконтроллера для первого двигателя. Они подключены к контактам 6 и 7 Arduino соответственно.
Аналогично, контакты 10 и 15 являются управляющими входами от микроконтроллера для второго двигателя. Они подключены к контактам 5 и 4 Arduino. Контакты 4, 5, 12 и 13 L293D являются контактами заземления и подключены к Gnd.
Первый двигатель (считайте, что это двигатель левого колеса) подключается через контакты 3 и 6 L293D. Второй двигатель, выполняющий роль двигателя правого колеса, подключен к 11 и 14 контактам L293D.
16-й контакт L293D — Vcc1. Это связано с +5V. 8-й контакт — Vcc2. Это напряжение питания двигателя. Его можно подключить где угодно между 4,7 В и 36 В. В этом проекте контакт 8, если L293D подключен к источнику питания +5 В.
ПРИМЕЧАНИЕ: Питание драйвера двигателя, т. е. контакты 1 (включение 1), 8 (VCC2), 9 (включение 2) и 16 (VCC1), должны иметь отдельный источник питания.
Платы привода двигателя доступны со встроенным регулятором напряжения 5 В. Аналогичный используется в проекте.
Если приведенная выше принципиальная схема робота, избегающего препятствий, непонятна, может оказаться полезным следующее изображение.
Рабочий
Прежде чем приступить к работе над проектом, важно понять, как работает ультразвуковой датчик. Основной принцип работы ультразвукового датчика заключается в следующем:
Используя внешний триггерный сигнал, триггерный контакт на ультразвуковом датчике устанавливается на логический уровень в течение не менее 10 мкс. От модуля передатчика посылается звуковой сигнал. Он состоит из 8 импульсов по 40 кГц.
Сигналы возвращаются обратно после удара о поверхность, и приемник обнаруживает этот сигнал. На выводе Echo высокий уровень с момента отправки сигнала и его приема. Это время можно преобразовать в расстояние с помощью соответствующих расчетов.
Целью этого проекта является реализация робота, избегающего препятствия, с использованием ультразвукового датчика и Arduino. Все соединения выполнены согласно схеме. Работа проекта описана ниже.
Когда робот включен, оба двигателя робота работают нормально, и робот движется вперед. В это время ультразвуковой датчик непрерывно рассчитывает расстояние между роботом и отражающей поверхностью.
Эта информация обрабатывается Arduino. Если расстояние между роботом и препятствием меньше 15 см, робот останавливается и сканирует в левом и правом направлениях для определения нового расстояния с помощью серводвигателя и ультразвукового датчика. Если расстояние влево больше, чем вправо, робот подготовится к левому повороту. Но сначала он немного дает задний ход, а затем активирует мотор левого колеса в обратном направлении.
Аналогично, если расстояние вправо больше, чем расстояние влево, робот готовит правое вращение. Этот процесс продолжается вечно, и робот продолжает двигаться, не натыкаясь ни на какое препятствие.
ПРИМЕЧАНИЕ
- Поскольку проект основан на Arduino, программирование очень простое и может быть легко изменено.
- Не требует Arduino Motor Shield.
- При использовании батареи 9 В для питания робота необходимо не менее 2 таких батарей. Лучше использовать 2 батареи 9V (одна для Arduino, ультразвукового датчика, серводвигателя и другая для L293D и двигателей).
- Ультразвуковой датчик не следует подключать напрямую к источнику питания, так как это может повлиять на его нормальную работу.
- Вместо ультразвукового датчика также можно использовать пару ИК-передатчик-приемник.
Применение
- Роботы, избегающие препятствий, могут использоваться практически во всех навигационных системах мобильных роботов.
- Их можно использовать для работы по дому, например, для автоматической уборки пылесосом.
- Их также можно использовать в опасных условиях, где проникновение человека может привести к летальному исходу.
К концу этой статьи вы узнали о разработке робота, избегающего препятствий, и о коде для запуска устройства. К вашему удивлению, мы также предоставили роботы-пылесосы, в которых используются датчики предотвращения столкновений и предотвращения препятствий. Одним щелчком мыши узнайте больше о Роботы-пылесосы , обладающие потрясающими характеристиками.
Раньше роботы двигались во всех направлениях согласно данным им командам. Позже они узнали, что он застрял, когда перед ним появилось неожиданное препятствие. Поэтому они провели экстремальную исследовательскую работу и разработали роботов Arduino для предотвращения препятствий.