Автономный робот с авто навигацией на Arduino

Автономный робот с авто навигацией на Arduino

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

Необходимые материалы

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

– 2 ультразвуковых датчика (4 для дальнейшей модернизации)

– 4 сервопривода (5 по желанию)

– Arduino (мы использовали Uno)

– Макетная плата

– Провода

– 2шт 9.6В аккумуляторы (мы использовали Vex)

– 9В батарея (для питания Arduino)

– 4 колеса (диаметром 5")

– Различные мелочи (гайки, болты и т.д.)

– Клейкая лента

Эта статья разделена на три шага.

Первый шаг посвящен механической части.

Второй шаг посвящен электронной части.

Третий шаг посвящен программированию.

Механическая часть

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

Сначала необходимо добавить сервоприводы на шасси, притом так, чтобы на их валы можно было надеть колеса. Мы использовали четыре колеса. Если у вас мощные сервоприводы, вы можете использовать два колеса. Но на верхней части шасси должно быть достаточно места, для Arduino, печатной платы и аккумуляторов.

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

Установите батарейный отсек. Мы взяли зарядное устройство Vex и модифицировали его так, что оно питает двигатели вместо зарядки батарей. Возьмите плату и отпаяйте провода + и GND которые идут в разъем для заряжаемых батарей.  Далее припаяйте черные провода от двух батарей к проводу GND зарядки, и припаяйте красные провода от батарей к проводу + зарядного устройства.  Потом подключите эти провода к плате.

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

Электронная часть

Электронная часть этого робота не такая уж трудная. Соедините аккумуляторы 9.6В параллельно, если вы используете батарейный отсек от зарядного устройства, то это уже сделано. Затем следуйте рисунку платы размещенному здесь. Но будьте внимательны, потому что в зависимости от размера вашего шасси, провода от приводов могут не достать до платы. Для сервоприводов 1 и 2 используется один сигнальный провод, а для сервоприводов 3 и 4 другой. Это сделано потому, что сервоприводы 1 и 2 должны всегда двигаться одинаково (потому что они находятся на одной стороне), это также касается сервоприводов 3 и 4.

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

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

Программная часть

Для написания ПО использовался Processing. Пример кода для навигации с использованием двумерного массива (arraything) можно скачать ниже. В двумерный массив мы вводим 0 или 1. 1 означает объект или препятствие, и робот ездит только по 0.

Скачать скетчи для Arduino

Оригинал статьи на английском языке (перевод: Александр Касьянов для сайта cxem.net)


Категория: Аппаратура радиоуправления моделями
Метки:

Написать коментарий

*
= 3 + 8

Добавить изображение

Последние статьи