В данной статье мы соберем робота едущего по линии. Сразу хочется оговориться, что собрать бота выполняющего одну задачу - следование по линии.
Внешний вид робота едущего по линии
В нашей сборке будут использоваться датчики линии на базе TCRT5000L.
Из вышеупомянутой статьи видно, что в зависимости от подстилающей поверхности (черное/белое) значения на выходе датика будут изменяться. Применим данные знания для создания робота едущего по линии.
Итак, за основу берем стартовую платформу ранее описаную на нашем сайте.
Также будет необходимы ИК датчики линии, в нашем случае с аналоговыи интерфейсом.
Начнем со следования по линии на основе показания двух датчиков.
На Z-Motor Shied, в нижнем правом углу, имеется мини "сенсор шилд" для аналоговых входов (G, V, S), к нему мы и будем подключать датчики
Подкючается все очень просто:
Правый датчик к Arduino: S к A0, + к +5V, – к GND
Левый датчик к Arduino: S к A1, + к +5V, – к GND
Датчики, для одинаковых показаниях на обоих, следует разместить как показано на рисунке. Высота от датчика до певерхности должна быть 0.5-10мм (откалибровать под свой тип бумаги)
Следующим шагом у нас будет рисование линии. Линию следует нарисовать чуть тоньше чем расстояние между датчиками.
Для лучшей калибровки я бы рекомендовал найти оптимальную ширину линии на листах формата A4.
Теперь нужно протестировать датчик и найти граничное значение на переходе от белого к черному. У меня на белом датчик выдавал значение 640-670, на краю черного 690-710 по мере приближения к середине >900.
Нас интересует значение на переходе, по-этому будем отталкиваться от минимального значения на краю черного - 690
Все, у нас есть отправная точка. Теперь, зная эти значения, нужно заставить бота двигаться.
Алгоритм работы у нас будет следующий. Пока оба датчика находятся на белом, двигатели включаются и едут прямо, Когда один из датчиков оказывается над черным, то двигатель на стороне датчика отключается, в то время как на другой стороне двигатель продолжает работу, тем самым возвращая платформу на линию. При попадании обоих датчиков на черное, оба двигателя отключаются.
P.S. Вот здесь вам можно будет уже и поиграться с алгоритмами, к примеру заставить робота развернуться и возвратиться на линию.