Всем привет!
Ребята, строю своего первого робота, вроде в железе он готов, но теперь сложности со скетчем.
В качестве моторов для колес (крышек от сока) взяты две сервомашинки SG90, УЗ-датчик расстояния (определить препятствие впереди) HC-SR04, "бортовой компьютер" - Arduino Nano, еще красненький LED, чтобы включаться, когда робот видит препятствие и самая обычная 18650 как источник питания.
Вот он на фото:
Пожалуйста, если вам не трудно и есть свободное время, могли бы помочь со скетчем?
Просто, поначалу казалось, что это вообще легко будет, но у сервомашинок, оказывается абсолютное позиционирование (!), нельзя задать просто "+1 оборот вперед", чтобы робот поехал.
Сначала хочу просто решить задачу минимум - чтобы робот просто "пятился" от препятствия (выставленной ладони перед ним) назад и старался объехать ладонь справа или слева. То есть, датчик расстояния определяет препятствие на расстоянии 50мм или ближе - дает команды светодиоду - "включиться на 2 секунды, затем выключиться", затем сервам - "отъехать назад на полкорпуса, повернуть направо или налево, повернуться вперед (влево/вправо) на 90 градусов, поехать вперед снова, пока нет препятствия", правильно?
Если я верно понимаю, то "пятиться" робот будет так - внешний диаметр-крышек-колес - 35 мм, значит по формуле длины окружности C = Пи * диаметр = 110 мм. 80 мм (полкорпуса робота) назад - это 80 / 110 = 0.72 оборота или поворот левой сервы по часовой стрелке вперед, а правой назад на 260 градусов.
Но лучше вообще как-то вначале "конвертировать" абсолютное движение серв SG90 в "относительное" движение.
Я не прошу сделать за меня все, я делаю этого робота просто как хобби в свободное от учебы время.
Но с программированием "не дружу", мне проще руками что-то собрать, чем писать код.
Если можете - пожалуйста, помогите составить "каркас" будущего кода робота, а я уже дальше буду его усложнять, добавлять ему более сложное поведение, вроде запоминания пройденного пути (добавлю еще карту памяти SD).
Заранее большое спасибо всем!