Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Аппаратная часть представляет собой набор смонтированных печатных плат.
Язык программирования Arduino является стандартным C++ с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
Это дает возможность даже далекому от робототехники человеку легко влиться в среду программирования.
У нашей команды стояла конкретная задача – сделать робота-перевозчика.
Суть заключалась в том, что робот, должен проехать по полю, представляющему собой белое основание с черной линией траектории. За минимальное время он должен переместить цветные кубики, стоящие по периметру поля, на базу в определенном порядке.
В первую очень мы собрали основу – трехколесную машинку, в которой 2 передних колеса ведущие, а сзади опорное колесико без мотора. Затем мы начали продумывать захват для кубика, в итоге получилась некая «рука», работающая на сервоприводе ( маленьком моторе, с оборотом в 180 градусов) и двух шестернях с конической передачей. Шестерни стоят под углом 90 градусов, относительно друг друга, в центре каждой из них имеется отверстие для оси. В сервопривод вставлена ось, которая приводит в действие шестерню, в свою очередь передающую импульс на вторую шестерню, закручивающую ось, на которой и прикреплен наш захват.
С ледующей задачей стала езда по линии и распознавание кубика. Мы установили 3 датчика цвета на днище робота так, чтобы они считывали яркость поля, тем самым определяя, где находится черная линия. Средний датчик был цифровой, он отсылал «0», если распознавал черную линию, и «1» если видел белый цвет. Справа и слева от него стояли аналоговые датчики, они распознают плавный переход от белого к черному и отсылают значения от 1 до 255, тем самым давая возможность роботу повернуть до того, как все датчики окажутся по одну из сторон черной линии.
Для распознавания кубика мы воспользовались ультра-звуковым датчиком, который отсылал расстояние до ближайшего объекта в поле его видимости. Если это расстояние становилось меньше установленного значения, робот останавливался и захватывал кубик. Затем еще один датчик определял цвет кубика, если цвет кубика оказывался правильным, то робот вез его на базу. В противном случае захват поднимался, срабатывал второй сервопривод, отвечающий за «выбрасывание» кубика, и машина продолжала движение по линии.