Робот-марсоход на Arduino с повышенной проходимостью


Планета Марс на протяжении многих веков пленяла воображение человеческих умов, а идея отправить марсоходы для исследования ее поверхности еще больше подогревала их любопытство. В этом проекте мы окунемся в захватывающий мир робототехники и продемонстрируем, как построить марсоход на базе Arduino , способный преодолевать различные ландшафты. Итак, пристегните ремни безопасности - мы отправляемся в захватывающее путешествие по созданию собственного марсохода. Если же у вас нет возможности испытать его на Марсе, то тогда вы можете использовать его на Земле в качестве робота (вездехода) с повышенной проходимостью.))

Робот-марсоход на Arduino с повышенной проходимостью

В этой статье мы рассмотрим создании робота-марсохода на основе платы Arduino с управлением по Bluetooth. Целью данного руководства является предоставление четкого пошагового объяснения от сборки шасси вездехода до его программирования и тестирования. Наша основная задача — кодирование инструкций, написанных на языке программирования C или C++. Микроконтроллер Arduino компилирует и выполняет код, позволяя марсоходу функционировать в соответствии с заложенной в него программой.

Ранее на нашем сайте мы уже рассматривали различные проекты роботов на основе платы Arduino, такие как робот, следующий вдоль линиипожарный роботроботизированная рукасамобалансирующийся робот и т. д .

Также на нашем сайте вы можете проект более продвинутого марсохода, являющегося копией марсохода Mars Perseverance.

Конструкция робота-марсохода

Прежде чем мы углубимся в технические аспекты проекта, давайте потратим немного времени на то, чтобы разобраться в конструкции марсохода. Типичному марсоходу приходится преодолевать сложные ландшафты поверхности Марса. Для достижения этой цели мы сосредоточимся на создании вездехода с системой привода на 6 колес с соответствующей подвеской, обеспечивающей оптимальную мобильность и устойчивость марсохода.

Шасси вездехода служит основой всего транспортного средства. Оно должно быть прочным, долговечным и способным преодолевать различные ландшафты, а также должно обеспечивать размещение различных электронных компонентов, таких как плата Arduino, блок питания и модули управления двигателем.

Основные компоненты конструкции марсохода

Автор проекта (ссылка на оригинал приведена в конце статьи) создал акриловые детали шасси робота с помощью SolidWorks и выполнил лазерную резку, чтобы построить свой марсоход.

Также вы можете скачать файлы .dxf проекта марсохода, которые вы можете использовать для лазерной резки. Следующее видео продемонстрирует процесс сборки марсохода и демонстрацию его работы.

Необходимые компоненты

  • Шасси марсохода.
  • 6 двигателей BO и колеса.
  • Плата Arduino Uno (купить на AliExpress).
  • Модуль драйвера двигателя L298N (L298N Motor Driver Module) (купить на AliExpress).
  • Модуль Bluetooth HC-05 (купить на AliExpress).
  • Литий-ионный аккумулятор 12 В с разъемом.
  • L-зажим (8 шт.).
  • Гайки и болты М4 10 мм (8 шт.).
  • Гайки и болты M3 10 мм (12 шт.).
  • Гайки и болты M3 30 мм (12 шт.).
  • Выключатель и соединительные провода.

Модуль драйвера двигателя L298N

Модуль драйвера двигателя L298N — популярный модуль драйвера двигателя, обычно используемый в проектах робототехники и электроники. Модуль основан на интегральной схеме L298n, имеет две схемы H-моста, по одной на каждый канал двигателя, что обеспечивает двунаправленное управление двигателями. Подавая соответствующие логические сигналы на управляющие контакты модуля, вы можете управлять скоростью и направлением вращения двигателя. Более подробно про подключение драйвера двигателя L298N к плате Arduino вы можете прочитать в этой статье.

Поскольку в нашем проекте мы не используем сигнал ШИМ, генерируемый Arduino, для управления скоростью двигателей, они будут работать на максимальной скорости. Это связано с тем, что мы сохраняем на плате контакты ENA и ENB, соответствующие управлению ШИМ, в фиксированном состоянии. Следовательно, основной целью модуля драйвера двигателя в этой установке является изменение направления вращения двигателей. Эта возможность позволяет роботу двигаться во всех четырех направлениях, включая вперед, назад, влево и вправо.

Распиновка драйвера двигателя L298N

Модуль драйвера двигателя L298N имеет специальную распиновку, соответствующую его различным функциям. Назначение его контактов следующее:

VCC - данный контакт используется для подключения внешнего источника питания (до 12 В) для питания двигателей.

GND - общий провод (земля) модуля и должен быть подключен к земле источника питания и источника управляющего сигнала (Arduino).

5V - обеспечивает регулируемый выход 5 В, который можно использовать для питания внешних компонентов или подачи логического напряжения на источник управляющего сигнала.

ENA и ENB - используются для включения или отключения двигателя, подключенного к каналам A и B. Отвечают за управление скоростью вращения двигателя посредством сигналов ШИМ (широтно-импульсной модуляции).

IN1, IN2, IN3, IN4 - эти входные контакты используются для управления направлением вращения двигателя, подключенного к каналу А (IN1 и IN2) и каналу B (IN3 и IN4). Подавая соответствующие логические уровни (HIGH или LOW), вы можете установить желаемое направление вращения двигателя.

OUT-1 и OUT-2 - предназначены для подключения двигателей. В частности, один двигатель должен быть подключен к OUT-1 и OUT-2, а другой двигатель должен быть подключен к OUT-3 и OUT-4. Важно отметить, что двигатели можно подключать в диапазоне напряжений от 5 В до 35 В. Однако стоит учитывать, что выходное напряжение на этих контактах уменьшится примерно на 2 В по сравнению с напряжением, подаваемым на контакт Vcc.

Модуль Bluetooth HC-05

HC-05 — это широко используемый модуль Bluetooth, который обеспечивает удобный и надежный способ добавления возможностей беспроводной связи к электронным устройствам. Он поддерживает последовательную связь по протоколу UART (универсальный асинхронный приемник-передатчик).

Модуль HC-05 поддерживает спецификацию Bluetooth версии 2.0 и может быть настроен как ведущее или ведомое устройство с помощью AT-команд, в зависимости от желаемого приложения. В режиме «Master» он может инициировать соединения с другими устройствами Bluetooth, а в режиме «Slave» — принимать входящие соединения.

Распиновка HC-05

Распиновка модуля HC-05

Модуль Bluetooth HC-05 имеет определенную распиновку, соответствующую его различным функциям. Назначение его контактов:

VCC - данный контакт используется для подачи питания на модуль. Обычно он работает в диапазоне напряжений от 3,3 В до 6 В.

GND - общий провод (земля) модуля и должен быть подключен к земле источника питания и источника управляющего сигнала.

TXD - контакт передачи данных, используется для отправки данных из модуля на другое устройство. Он должен быть подключен к контакту приема (RX) принимающего устройства.

RXD - контакт приема данных, используется для получения данных от другого устройства. Он должен быть подключен к контакту передачи (TX) передающего устройства.

STATE - этот контакт является дополнительным, который можно использовать для проверки состояния модуля. Его можно настроить для предоставления информации о состоянии подключения модуля или другой соответствующей информации.

EN - используется для переключения модуля между режимом команд и данных. Когда на этот вывод подается ВЫСОКИЙ уровень (3,3 В или 5 В), включается командный режим, а когда на этот вывод подается НИЗКИЙ уровень (0 В или GND), модуль переключается в режим данных.

Сборка шасси марсохода

Для создания шасси для нашего проекта мы использовали лазерную резку акрилового листа. Лист был точно разрезан для размещения всех необходимых фитингов и компонентов, что позволяет легко собрать его потом с помощью отверток.

Внешний вид компонентов, необходимых для сборки робота-марсохода

Последовательность сборки робота при этом будет следующей. Сначала соедините заднюю ногу с передней с помощью гаек и болтов M4 10 мм.

Соединение задней ноги робота с передней

Затем соедините пару передней и задней опоры с опорной пластиной с помощью L-образного зажима с гайками и болтами M3, M4 диаметром 10 мм.

Соединение передней и задней опоры робота с опорной пластиной

После этого прикрепите двигатели обеими ножками к соответствующему месту с помощью гаек и болтов M3 диаметром 30 мм.

Закрепление двигателей робота

И, наконец, поместите все электронные компоненты в подходящее место с помощью двусторонней ленты.

Закрепление электронных компонентов на роботе

Схема проекта

Схема робота-марсохода на основе платы Arduino приведена на следующем рисунке.

Схема робота-марсохода на основе платы Arduino

В конструкции нашего робота шесть двигателей: три двигателя соединены параллельно с правой стороны и три двигателя подключены параллельно с левой стороны. Такая конфигурация позволяет всем трем двигателям с каждой стороны работать синхронно, с одинаковой скоростью и в одном направлении. Подключив их параллельно, мы обеспечиваем получение ими одинаковых сигналов управления и питания. Такое расположение обеспечивает эффективное и скоординированное движение марсохода, повышая его маневренность и устойчивость.

Соединения:

Модуль Bluetooth Arduino и HC-05:

  • Подключите контакт TX модуля Bluetooth к контакту RX (обычно цифровой контакт 0) платы Arduino.
  • Подключите контакт RX модуля Bluetooth к контакту TX (обычно цифровой контакт 1) платы Arduino.
  • Подключите контакты VCC и GND модуля Bluetooth к соответствующим контактам питания (+5 В) и земли на Arduino.

Модуль Arduino и драйвер двигателя:

  • Подключите цифровые выходные контакты Arduino (цифровые контакты 10, 9, 8 и 7) к соответствующим входным контактам (IN1, IN2, IN3 и IN4) на модуле драйвера двигателя.
  • Подключите контакты ENA и ENB модуля драйвера двигателя к контакту платы с уровнем High с помощью разъема типа "мама".
  • Подключите контакты OUT1, OUT2, OUT3 и OUT4 модуля драйвера двигателя к соответствующим клеммам двигателей.
  • Подключите контакты VCC (+5 В) и GND модуля драйвера двигателя к соответствующим разъемам питания (Vin) и земли (GND) на Arduino.

Источник питания:

  • Подключите положительную клемму источника питания к входу +12 В модуля драйвера двигателя.
  • Подключите отрицательную клемму источника питания к контакту GND модуля драйвера двигателя.
  • Подключите контакт GND Arduino к контакту GND модуля драйвера двигателя.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Конфигурация контактов: заданы контакты на плате Arduino, которые подключены к модулю драйвера двигателя и другим компонентам. Этот шаг гарантирует, что для управления двигателем и других операций используются правильные контакты.

Мы определили контакты IN1, IN2, IN3 и IN4 как цифровые контакты 10,9,8 и 7 платы Arduino. Эти контакты подключены к входным контактам модуля драйвера двигателя.

Настройка: функция настройки запускается только один раз в начале выполнения кода. Она отвечает за настройку протоколов связи, настройку режимов работы контактов и инициализацию переменных.

В функции setup() мы начинаем с инициализации аппаратной последовательной связи со скоростью передачи данных 9600 бод. Это позволяет плате Arduino устанавливать связь с внешними устройствами, такими как модуль Bluetooth, с заданной скоростью передачи данных.

Далее мы устанавливаем режимы контактов для контактов управления направлением вращения двигателей. Эти контакты предназначены для управления движением и направлением вращения двигателей. Устанавливая их изначально на LOW , мы гарантируем, что двигатели будут остановлены в начале выполнения программы. Это предотвращает любое непреднамеренное движение двигателей до получения каких-либо команд или инструкций.

Инициализация аппаратной последовательной связи и установка соответствующих режимов контактов являются важными шагами в подготовке Arduino к правильному управлению двигателем и обеспечению того, чтобы исходное состояние двигателя было контролируемым и стационарным.

Цикл (Loop): функция цикла работает непрерывно после завершения настройки. Она включает в себя основную логику программы, определяющую поведение марсохода на основе полученных команд.

Функция loop() постоянно проверяет наличие входящих команд от модуля Bluetooth. В зависимости от полученной команды марсоход будет двигаться вперед, назад, поворачивать налево, поворачивать направо или останавливаться.

Код проверяет входящие сигналы Bluetooth и получает команды от сопряженного устройства. Это могут быть инструкции по движению вперед, назад, повороту влево или вправо или остановке марсохода.

Принятые команды переводятся в соответствующие управляющие сигналы для двигателей. Код отправляет необходимые сигналы модулю драйвера двигателя, корректируя направления согласно приянтым инструкциям.

Полученные данные сравниваются с помощью операторов if и else if, что позволяет условно выполнить определенные операторы на основе оценки этих условий.

В рамках этих условных операторов мы определили семь различных функций движения, соответствующих различным действиям марсохода. Эти функции вызываются внутри операторов if в зависимости от конкретных условий. Каждая функция отвечает за управление определенным движением, например движением вперед, назад, поворотом влево или вправо, остановкой, назад влево и назад вправо.

Организовав код таким образом, мы можем упростить его понимание и доработку (при необходимости). Условные операторы гарантируют, что соответствующая функция перемещения будет выполнена при выполнении соответствующего условия на основе полученных данных.

Таким образом, операторы if и else if позволяют коду программы оценивать полученные данные и выполнять соответствующую функцию движения на основе выполненного условия, обеспечивая точное управление и маневренность марсохода.

Установка Android-приложение для управления марсоходом

Чтобы управлять нашим вездеходом по Bluetooth с телефона, выполните следующие действия:

  • Откройте приложение «Bluetooth RC Car» на своем устройстве (телефоне) Android. Обратите внимание, что в настоящее время это приложение доступно только для пользователей Android.
  • Включите Bluetooth на телефоне, зайдя в настройки телефона.
  • Подключите телефон к модулю Bluetooth HC-05. Если у вас новый модуль HC-05, перед подключением необходимо выполнить дополнительный шаг.
  • Зайдите в настройки Bluetooth на вашем телефоне.
  • Выполните поиск устройств Bluetooth.
  • Вы найдете устройство Bluetooth с именем HC-05.
  • Выполните сопряжение устройства Bluetooth с телефоном, выбрав его.
  • В процессе сопряжения вам будет предложено ввести пароль.
  • Пароль по умолчанию для HC-05 обычно — 1234 или 0000 .
  • Введите пароль и продолжите процесс сопряжения.
  • После успешного сопряжения ваш марсоход, управляемый через Bluetooth, будет подключен к вашему устройству Android.

Внешний вид приложения Bluetooth RC Car

Выполнив следующие действия, вы сможете установить соединение между вашим телефоном и модулем Bluetooth марсохода, что позволит вам управлять им по беспроводной сети с помощью приложения «Bluetooth RC Car».

Заключение

Поздравляем! Вы успешно собрали марсоход на основе платы Arduino. Теперь можно приступить к тестированию его работы. Путешествуйте на своем вездеходе по разным местам, проводите эксперименты и собирайте ценные данные. Управляйте им по беспроводной сети с помощью смартфона или других устройств с поддержкой Bluetooth и наблюдайте, как он справляется с трудностями.

Внешний вид собранного робота-марсохода на основе платы Arduino

Исходный код программы (скетча)

Источник статьи

(1 голосов, оценка: 5,00 из 5)
Загрузка...
438 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *