Небольшой настольный робот для гонок по линии
Существует множество видов соревнований по робототехнике. А описание некоторых интересных проектов можно найти в Интернете. Гонки по линии это такой вид соревнований, в котором различные роботы соревнуются в скорости следования по линии. Я сделал крошечного робота, который может гонять по столу. Это просто игрушка, ее размеры меньше одной пятой по сравнению с типичными роботами для соревнований. Но я считаю, что она подходит для домашнего использования в небольших домах и квартирах
О "Гонщике по линии"
"Гонщик по линии" - это простой робот который следует по линии, нарисованной на полу. Вот основные функции такого робота:
1) Определение положения линии при помощи оптических сенсоров, установленных спереди робота. Большинство таких датчиков реагируют на отраженный свет, но некоторые крутые роботы оснащены датчиком изображения для обработки изображений. Процесс требует надежных и высокоточных датчиков.
2) Поворот робота.
3)Управление скоростью. Скорость движения снижается при прохождении поворотов для того чтобы робот не слетел с линии.
Есть два типа линии - белые линии на черном фоне и черные линии на белом фоне. Чаще всего используется первый тип, с толщиной линии от 15 до 25 миллиметров.
Железо
Механика
На картинке вид робота снизу и сбоку. Вся механика и электроника смонтированы на макетную плату, и она также представляет собой шасси робота.
Робот имеет три точки опоры: два ведущих колеса с резиновыми шинами и маленькое колесо, которое свободно вращается. Ведущие колеса имеют диаметр 7 мм. Маленькое колесо имеет диаметр 5 мм. Для привода ведущих колес используются два вибромоторчика. Их валы прижимаются к шине и крутящий момент передается на колеса.
Для поворота используется разница в скорости вращения левого и правого колеса. Это не требует никаких дополнительных приводов.
Электроника
Мозги: ATmega8
Датчики линии: Шесть датчиков, реагирующих на отраженный от линии свет
Питание: Две литиевые CR2032(Одна для управления, другая для двигателей)
Двигатели: Вибромоторы
Размеры: 45x33x12,5 [мм]
Вес: 15 грамм (Робот: 8g, Батареи: 7g)
Скорость: 53 сантиметра в секунду при овальной линии
Для управления используется микроконтроллер Atmel ATmega8. Он запитан от литиевой батарейки на 3В. От другой литиевой батарейки питаются двигатели. Раздельное питание сделано для того чтобы избежать случайного сброса микроконтроллера из-за просадок напряжения. Шесть датчиков крепятся на передней части шасси. Они принимают отраженный свет от линии под ними. Для управления двигателями используется ШИМ.
Программа
Принцип работы датчиков
Для обнаружения линии по которой необходимо следовать, большинство роботов оснащены двумя или более датчиков-отражателей. Напряжение на нем пропорционально степени отражения света от линии. Принимается решение - обнаружена линия или нет. Тем не менее решение это не всегда правильное, потому что датчик может засветится внешним источником света, как показано на рисунке.
В большинстве датчиков для промышленного применения используются модулированный сигнал, чтобы избежать помех. В приемнике применены фильтры, поэтому приемник может обнаружить только модулированный сигнал.
В этом проекте датчики сканируются последовательно, для того чтобы избежать засветки с других датчиков. Микроконтроллер начинает сканировать состояние датчика, получает образец напряжения с датчика, включает светодиод и снова проверяет напряжение. По разнице между двумя можно судить о положении робота относительно линии. Засветка при таком способе исключается. Все остальные датчики сканируются в такой же последовательности.
Обработка сигналов с датчиков
Микроконтроллер сканирует шесть датчиков и определяет положение линии. Положение линии может быть обнаружено линейно только с шестью датчиками.
Если робот слетает с линии или линия заканчивается, двигатели останавливаются и микроконтроллер переходит в спящий режим.
Прикрепленные файлы:
- ltc.rar (16 Кб)