Мы живём в век стремительного развития робототехники, и современные игрушки поражают своим художественным оформлением и технологией работы. Уже сейчас можно найти в магазинах наборы для самостоятельной сборки и программирования роботов. В основном эти наборы ориентированы для обучения детей и студентов, но и для взрослых, интересующихся робототехникой, здесь открываются большие возможности для реализации своих идей. В статье я предлагаю краткую информацию о том, какие конструкторы для сборки программируемых роботов существуют в природе уже сейчас, представлены варианты стоимостью до 100 тыс. рублей. Вот какие конструкторы попали в обзор:
LEGO Education WeDo;LEGO Education WeDo 2.0;LEGO Mindstorms ; Education EV3;TETRIX;MATRIX;Robotis OLLO;Robotis Bioloid;Hovis Lite;VEX EDR;VEX IQ;VEX PRO;Технолаб;Arduino;#Структор;Multiplo;Makeblock;HUNA-MRT;RoboRobo;fischertechnik;Engino Robotics Platform;ТРИК;MOSS;Robo Wunderkind.
Интерес автора к физическим основам конструкции автомобиля и программированию послужили основой для выбора темы исследования.
Тема данной научно-исследовательской работы: «Разработка модели автомобиля, управляемого по координатам».
Цель работы – описать разработку модели автомобиля и создать приложение, управляющее узлами автомобиля.
Объектом исследования в работе является технология функционирования автомобиля.
Предметом исследования в работе является разработка управляющей программы для Arduino, позволяющей управлять автомобилем как дистанционно (с помощью смартфона), так и автономно.
Практическая значимость работы заключается в том, что её результаты могут быть использованы для создания небольших мобильных автомобилей, запоминающих точную траекторию движения, которые найдут свое применение в индустрии развлечений; могут быть использованы в домашних условиях, например, для развлечения и развития детей; могут быть использованы на уроках информатики для демонстрации функционирования программ. Себестоимость этого робота значительно ниже предлагаемых аналогов на рынке, а самостоятельная сборка занимает незначительное время и очень увлекательна!
Для достижения поставленной цели необходимо решить следующие задачи:
Определить конструктивные особенности модели автомобиля и перечень необходимых компонентов для её создания.
Собрать и протестировать работоспособность модели.
Разработать на базе платы Arduino приложение, управляющее пошаговым движением автомобиля.
В ходе изучения интернет-ресурсов меня заинтересовал робот «mCar», это трехколесный робот-автомобиль http://neobot.ru/products/universalnyj-obrazovatelnyj-nabor-mdrawbot-kit.
В качестве ведущих колес используется 2 шаговых двигателя. Шаговые двигатели позволяют достичь высокой точности перемещения при относительно небольшой стоимости комплектующих. Третье колесо - опорное, позволяет роботу поворачивать в любых направлениях. Используя этот робот-автомобиль, можно нарисовать собственные маршруты движения на бумаге. Если вместо ручки установить мелок (или маркер), можно рисовать на полу.
Стоимость этого робота-автомобиля около 22000 рублей. Конечно же, я начал думать, как мне сделать такой чудо-автомобиль самому. Изучив описание вышеописанного робота «mCar» я понял, что он представляет собой плату контроллера, две платы управления шаговыми моторами (их называют драйверами), источник питания и кабель к компьютеру. А траекторию движения в него загружают с помощью приложения, работающего на ПК.
Я решил, что мой робот-автомобиль должен быть полностью автономным и не должен быть привязан к компьютеру. В связи с этим я просмотрел на Google Play Market имеющиеся бесплатные приложения, использующие ресурсы смартфона и выдающие данные по каналу Bluetooth под названием «Arduino Joystick Controller». Мне понравилось удобство управления двумя рычажками: вперёд-назад и вправо-влево, а так же приложение может вместо рычажков использовать данные с гироскопа, встроенного в смартфон. Соединив по Bluetooth смартфон с планшетом, я проанализировал с помощью программы «Terminal» какие данные выдаёт приложение.
В состоянии покоя в 16-ричном формате посылка выглядит так F3 00 58 00
Старший байт (#3) HEX:
F3 стоп
F1 вперёд
F2 назад
F4 ручной тормоз
байт (#2) HEX: скорость 00…255
байт (#1) HEX: положение руля 65…88…110
байт (#0) BIN:
7 bit передние фары включить
6 bit задние фары включить
5 bit гудок
4 bit «A» включено
3 bit «B» включено
2 bit «C» включено
Остаётся написать программу для управляющего контроллера, которая бы принимала посылку по последовательному порту, управляла бы отдельно правым и левым колесом в зависимости от принятых данных скорости и угла поворота. А так же хочу чтобы при нажатии на кнопку «А» включалась бы запись движений, а при нажатии на кнопку «B» - воспроизведение записанного.
Часть 2. Экспериментальная работа Параграф 1. Выбор комплектующих элементов автомобиляДля создания модели автомобиля на торговой площадке aliexpress.com я начал искать комплектующие для самостоятельной сборки такой игрушки.
Таблица приобретённых комплектов:
Название |
Стоимость, (руб). |
Характеристика |
Двигатель- 2 шт. |
по 945 |
на них одеваются колёса |
Платы-драйверы- 2 шт. |
по 100 |
управление двигателями |
Модуль «HC-05» |
215 |
приём данных по Bluetooth, пароль к нему «1234» |
Плата Arduino UNO |
880 |
«мозг» машины (контроль и управление) |
Итого: |
3491 |
А каркас автомобиля и колёса были взяты от старого «железного» конструктора.
Параграф 2. СборкаСперва я закрепил два шаговых двигателя с помощью металлического конструктора (крепёжные отверстия в двигателях были предусмотрены).
Затем одел на шестерни двигателя отрезки пластиковой трубки и запрессовал пластиковые колёса от того же конструктора.
И закрепил на железном каркасе плату контроллера
В соответствии с информацией из поисковых систем подключил двигатели к платам драйверов и платы драйверов к Arduino UNO.
Затем подключил Bluetooth модуль HC-05.
Параграф 3. Программирование платы ArduinoДля создания программы управления движениями были определены виды и назначение переменных, которые будут использованы в программе (Таблица 1).
Таблица 1. Используемые переменные
Имя переменной |
Тип |
Назначение |
|
|
T_min |
word (0…65535) |
Минимальное время переключения шагов, допустимое для двигателей. |
|
Tik_l |
word (0…65535) |
Отсчёт времени для левого двигателя |
|
Time_l |
word (0…65535) |
Заданное время шага для левого двигателя |
|
Step_l |
byte (0…255) |
Текущий номер шага левого двигателя |
|
Tik_r |
word (0…65535) |
Отсчёт времени для правого двигателя |
|
Time_r |
word (0…65535) |
Заданное время шага для правого двигателя |
|
Step_r |
byte (0…255) |
Текущий номер шага правого двигателя |
|
S_zad |
byte (0…255) |
Заданная скорость 0…255 |
|
Turn_zad |
byte (0…255) |
Заданный поворот 65…88…110 |
|
Mode_zad |
byte (0…255) |
Заданный режим стоп-вперёд-назад |
|
Dev_zad |
byte (0…255) |
Дополнительные кнопки управления |
|
i |
word (0…65535) |
Вспомогательная переменная. |
|
k |
Int(-32768… 32767) |
Вспомогательная переменная. |
|
x |
byte (0…255) |
Вспомогательная переменная. |
Для управления шаговыми двигателями используется подпрограмма, которая переключает полярность на обмотках по алгоритму полношагового однофазного режима.
Для приёма данных с Bluetooth модуля используется функция Serial.read()
Далее данные обрабатываются и пересчитываются в направление шагов и временные задержки между шагами двигателя.
ЗаключениеВ данной работе была теоретически осмыслена и практически реализована идея создания робота-автомобиля, который можно создать своими руками из недорогих компонентов. Данный автомобиль может стать игрушкой для ребёнка и не надоедать монотонностью работы, так как помимо режима управления с любого смартфона, его можно обучать.
В ходе работы над проектом автором была проведена теоретическая работа по изучению физических основ работы шагового двигателя, а также принципа работы последовательного порта.
Практическая часть потребовала от автора определенных навыков работы с электронными компонентами, электроинструментами, а также навыков программирования.
Несмотря на то, что в процессе работы было получено законченное изделие, автор видит возможность дальнейшей его доработки. Например, разработка программы для ПК, конвертирующей векторные рисунки в координаты для робота-автомобиля, превращая его в робота-художника для рисования на больших плакатах. Возможна установка дополнительных устройств на автомобиль (фары, звуковой сигнал, ультразвуковые датчики препятствия, манипулятор и т.д.).
Список используемых источников и литературыГальперштейн Л.Я. Забавная физика: научно-популярная книга/ Л.Я. Гальперштейн. – М.: Детская литература, 1993. – 255 с.
Информационно-строительная основа моего дома [Электронный ресурс] – Режим доступа: http://osnovam.ru/stroitelnye/fontan-svoimi-rukami
Классная физика: занятные страницы [Электронный ресурс] – Режим доступа: http://class-fizika.spb.ru/index.php/opit/658-op-davfon
Культура и искусство [Электронный ресурс] – Режим доступа: http://www.kulturologia.ru/
Освой программирование играючи. Сайт Александра Климова [Электронный ресурс] – Режим доступа: http://developer.alexanderklimov.ru/arduino/threeleds.php
Емельянов, А. В. Шаговые двигатели:учеб.пособие / А. В. Емельянов, А. Н. Шилин. – Волгоград: ВолгГТУ, 2005. – 48 с.
Уроки программирования Ардуино. Последовательный порт UART и Библиотека Serial. [Электронный ресурс] – Режим доступа: http://mypractic.ru/urok-12-posledovatelnyj-port-uart-v-arduino-biblioteka-serial-otladka-programm-na-arduino.html
Конструкторы программируемых роботов. [Электронный ресурс] – Режим доступа: http://www.proghouse.ru/article-box/26
Роботы и робототехника [Электронный ресурс] – Режим доступа: http://www.prorobot.ru/arduino/uno_lesson9.php