Мы живём в век стремительного развития робототехники, и современные игрушки поражают своим художественным оформлением и технологией работы. Уже сейчас можно найти в магазинах наборы для самостоятельной сборки и программирования роботов. В основном эти наборы ориентированы для обучения детей и студентов, но и для взрослых, интересующихся робототехникой, здесь открываются большие возможности для реализации своих идей. В статье я предлагаю краткую информацию о том, какие конструкторы для сборки программируемых роботов существуют в природе уже сейчас, представлены варианты стоимостью до 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, позволяющей управлять автомобилем как дистанционно (с помощью смартфона), так и автономно.
Практическая значимость работы заключается в том, что её результаты могут быть использованы для создания небольших мобильных автомобилей, запоминающих точную траекторию движения, которые найдут свое применение в индустрии развлечений; могут быть использованы в домашних условиях, например, для развлечения и развития детей; могут быть использованы на уроках информатики для демонстрации функционирования программ. Себестоимость этого робота значительно ниже предлагаемых аналогов на рынке, а самостоятельная сборка занимает незначительное время и очень увлекательна!
Для достижения поставленной цели необходимо решить следующие задачи:
1. Определить конструктивные особенности модели автомобиля и перечень необходимых компонентов для её создания.
2. Собрать и протестировать работоспособность модели.
3. Разработать на базе платы Arduino приложение, управляющее пошаговым движением автомобиля.
Теоретические аспекты разработки модели автомобиля
В ходе изучения интернет-ресурсов меня заинтересовал робот «mCar», это трехколесный робот-автомобиль [10].
В качестве ведущих колес используется 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» – воспроизведение записанного.
Экспериментальная работа
Выбор комплектующих элементов автомобиля
Для создания модели автомобиля на торговой площадке aliexpress.com я начал искать комплектующие для самостоятельной сборки такой игрушки.
А каркас автомобиля и колёса были взяты от старого «железного» конструктора.
Сборка
Сперва я закрепил два шаговых двигателя с помощью металлического конструктора (крепёжные отверстия в двигателях были предусмотрены).
Затем одел на шестерни двигателя отрезки пластиковой трубки и запрессовал пластиковые колёса от того же конструктора.
И закрепил на железном каркасе плату контроллера
Таблица приобретённых комплектов
Название |
Стоимость, (руб). |
Характеристика |
Двигатель – 2 шт. |
по 945 |
на них одеваются колёса |
Платы-драйверы – 2 шт. |
по 100 |
управление двигателями |
Модуль «HC-05» |
215 |
приём данных по Bluetooth, пароль к нему «1234» |
Плата Arduino UNO |
880 |
«мозг» машины (контроль и управление) |
Итого: |
3491 |
В соответствии с информацией из поисковых систем подключил двигатели к платам драйверов и платы драйверов к Arduino UNO.
Затем подключил Bluetooth модуль HC-05.
Программирование платы Arduino
Для создания программы управления движениями были определены виды и назначение переменных, которые будут использованы в программе (табл. 1).
Таблица 1
Используемые переменные
Имя переменной |
Тип |
Назначение |
|
1 |
T_min |
word (0…65535) |
Минимальное время переключения шагов, допустимое для двигателей. |
2 |
Tik_l |
word (0…65535) |
Отсчёт времени для левого двигателя |
3 |
Time_l |
word (0…65535) |
Заданное время шага для левого двигателя |
4 |
Step_l |
byte (0…255) |
Текущий номер шага левого двигателя |
5 |
Tik_r |
word (0…65535) |
Отсчёт времени для правого двигателя |
6 |
Time_r |
word (0…65535) |
Заданное время шага для правого двигателя |
7 |
Step_r |
byte (0…255) |
Текущий номер шага правого двигателя |
8 |
S_zad |
byte (0…255) |
Заданная скорость 0…255 |
9 |
Turn_zad |
byte (0…255) |
Заданный поворот 65…88…110 |
10 |
Mode_zad |
byte (0…255) |
Заданный режим стоп-вперёд-назад |
11 |
Dev_zad |
byte (0…255) |
Дополнительные кнопки управления |
12 |
i |
word (0…65535) |
Вспомогательная переменная. |
13 |
k |
Int(-32768… 32767) |
Вспомогательная переменная. |
14 |
x |
byte (0…255) |
Вспомогательная переменная. |
Для управления шаговыми двигателями используется подпрограмма, которая переключает полярность на обмотках по алгоритму полношагового однофазного режима.
Для приёма данных с Bluetooth модуля используется функция Serial.read()
Далее данные обрабатываются и пересчитываются в направление шагов и временные задержки между шагами двигателя.
Заключение
В данной работе была теоретически осмыслена и практически реализована идея создания робота-автомобиля, который можно создать своими руками из недорогих компонентов. Данный автомобиль может стать игрушкой для ребёнка и не надоедать монотонностью работы, так как помимо режима управления с любого смартфона, его можно обучать.
В ходе работы над проектом автором была проведена теоретическая работа по изучению физических основ работы шагового двигателя, а также принципа работы последовательного порта.
Практическая часть потребовала от автора определенных навыков работы с электронными компонентами, электроинструментами, а также навыков программирования.
Несмотря на то, что в процессе работы было получено законченное изделие, автор видит возможность дальнейшей его доработки. Например, разработка программы для ПК, конвертирующей векторные рисунки в координаты для робота-автомобиля, превращая его в робота-художника для рисования на больших плакатах. Возможна установка дополнительных устройств на автомобиль (фары, звуковой сигнал, ультразвуковые датчики препятствия, манипулятор и т.д.).
Библиографическая ссылка
Равчев Р.Н. РАЗРАБОТКА МОДЕЛИ АВТОМОБИЛЯ, УПРАВЛЯЕМОГО ПО КООРДИНАТАМ // Международный школьный научный вестник. – 2018. – № 3-1. ;URL: https://school-herald.ru/ru/article/view?id=510 (дата обращения: 21.11.2024).