Robot Car
Решил сделать своего робота, так как в процесе создание многому можно научиться.
Робот представляет собой платформу которая может управляться с пульта, или компьютера (пока слишком тупая, чтобы принимать решения самостоятельно но я над этим работаю). В планах управление по Wi-Fi, беспроводная передача видео, обработка даных с датчиков, комютерное зрение, и многое другое… Итак, с чего же состоит мой робот:
Железо
- Платформа с 4 независимыми моторами и редукторами — 1шт.
- Драйверы двигателей — нужны чтобы управлять направлением и скоростью движения — 2шт.
- Step-Down преобразователи, выходное напряжение можно настраивать — 2шт.
- Мозг робота радиомодуль Synapse SM700 — 1шт.
Программирование
Для программирования модулей используется среда Synapse Portal, программа пишеться на python (к сожалению на С здесь писать невозможно) После написания скрипта, его можно сразу загружать в радиомодули по беспроводному каналу связи! Для программирования можно использовать два варианта:- Написать два скрипта, каждый под свой радиомодуль (платформу и ПДУ).
- Написать один скрип с функциями двух радиомодулей, а нужний код выбирать при конфигурации переключателей, или перемычек.Я выбрал первый вариант, он проще и мне больше так нравиться.
На рисунках среда Synapse Portal. На первом отображаеться список устройств (нодов). На втором пример загрузки скрипта в модуль:
Как работает
4 двигателя подключены каждый к своему каналу драйвера, каждый драйвер имеет 2 независимых канала управления.К драйверу подключены 2 источника питания: 5V — питание логики драйвера, и 8V силовое питание для двигателей (питания двигателя 6V, но на транзисторах драйвера падает примерно 2V). 5V и 8V создаются 2 Step-Down преобразователями. Питание робота от китайской Li-Ion батареи, 14.V 5200 mA. Знаю, батарея большая и некрасивая, но у мене пока другой нет. Да и для первого прототипа нормально.
Сигналы управления двигателя с драйверов идут на радиомодуль. На радиомодуле бегает прошивка(скрипт). Задача радиомодуля принимать команды от другого радиомодуля, обрабатывать их и подавать сигналы управления на драйверы двигателей («0», «1» и PWM). К другому радиомодулю подключена клавиатура (самодельный джойстик) для управления платформой, вместо джойстика можно использовать UART и управлять с компьютера. В перспективе хочу кнопками из программы запущенной на компе управлять движением робота и в нее выводить показания, снятые модулем на роботе.
Между радиомодулями полнодуплесная связь. Можно создавать сеть с нескольких радиомодулей. Поворачивается робот по танковому принципу. Планируется сделать пропорциональное управление. И разворот робота на месте с минимальным радиусом (при повороте одна пара колес двигается вперед, другая в тоже время назад). Распаял на макетке кнопки, подключил к демоборду и получил ПДУ:
Результат
Разработка очень сырая, и пока робот не принимает решения самостоятельно, еще рано называть его роботом)
Думаю с рисунков должно быть все понятно, если есть вопросы — задавайте, с удовольствием отвечу на все!
P.S. Не знаю как можно выравнивать текст по ширине.
10 комментариев
А так, получилась отличная машинка на радиоуправлении :) Женский голос за кадром в восторге, а это — главное :)
А что будет с этой машинкой дальше? В чем будет «роботичность»?
Планирую сначала до модуля подключить плату STM23+FreeRTOS, к ней ультразвуковой датчик растояния (уже купил), также оптические енкодеры для двух колес — для стабилизации прямолинейного движения. Это поможет не не попадать в стены).Перевести пульт управление на комп в программу написаною на QT Linux. Принимать разные дание от машинки и выводить в программу.
Уже едут модули Wi-Fi попробую сделать канал управления на них. Хочеться добавить одноплатный компютер c Linux, только не определился — роутер WR-702,Rasbery Pi, или MK802. F А там и добавить ком. зрение создание карты и другое что пока не придумал))