Машина на радиоуправлении ардуино с плавным пуском двигателя

Делаем машинку на радиоуправлении на Arduino Uno

Начать процесс изготовления советуем с просмотра авторского видеоматериала

Для изготовления машинки, нам понадобится:
— игрушечная машинка;
— две карты Arduino Uno;
— две платы радио модуля NRF24;
— конденсатор на 470 мф, 25 вольт;
— плата драйвера двигателя L298N;
— двигатель;
— сервопривод;
— аналоговый джойстик;
— аккумуляторные батарейки;
— батарейка крона;
— две кнопки включения и выключения;
— корпус.

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

Необходимо позаботиться о поворотной системе автомобиля. Для этого вырезаем часть, предназначенную для крепления передних колес.

Далее берем два уголка для мебели и проделываем два отверстия в каждом в отмеченных на рисунке местах.

Теперь необходимо проделать отверстия диаметром 4 мм в нижней части корпуса машинки и колесах.

Собираем все. Просовываем винт в колесо, и фиксируем двумя гайками.

Далее надеваем на тот же винт уголок и снова фиксируем гайками.

Просовываем еще один винт в отверстие на корпусе, фиксируем гайками.

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

Теперь необходимо соединить сервопривод к поворотной системе.

Далее нужно соединить двигатель к шасси. Для этого распиливаем ось шасси по центру. Далее вставляем в отверстия двигателя обе полуоси и приклеиваем эпоксидным клеем.

Также в двигателе есть специальные крепежные отверстия, в которые нужно вставить два винтика, чтобы закрепить двигатель на корпусе машинки.

Теперь необходимо залить код на плату Arduino. В конце статьи будет представлен код для приемника, а также код для передатчика.

Представляем схему сборки джойстика или передатчика.

Ниже вы можете увидеть схему сборки приемника.

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

Источник

Контролируем со смартфона радиоуправляемую машину с использованием Arduino

Этот урок показывает как сделать радиоуправляемую модель машины, которую можно контролировать через смартфон. В этом руководстве мы будем использовать плату Arduino Uno.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Шаг 1. Комплектующие

Для того, чтобы сделать модель машины на радиоуправлении (RC-машина) с использованием Ардуино и с возможностью контроля через смартфон, нам понадобятся следующие детали:

Шаг 2. Шасси

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Вы можете купить готовый комплект для сборки 4WD шасси или сделать его с помощью ПВХ или любого вида жесткой доски. Наш вариант на фото выше был куплен в онлайн-магазине. Вполне возможно сделать аналог этого шасси своими руками. Не имеет особого значения вид шасси, можно выбрать на свой вкус.

Шаг 3. Моторы (приводы)

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

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

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

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

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Шаг 4. Установка двигателей

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

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

Шаг 5. Ардуино контроллер

Плата оснащена наборами цифровых и аналоговых пинов ввода/вывода (I/O), которые могут быть подключены к различным платам расширения (экранам) и другим цепям. Плата имеет 14 цифровых контактов, 6 аналоговых контактов и программируется с помощью Arduino IDE (интегрированная среда разработки) через USB-кабель типа B. Плата может питаться от USB-кабеля или от внешней 9-вольтовой батареи, хотя он принимает напряжение от 7 до 20 вольт, по аналогии с Arduino Nano и Leonardo.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Эталонный дизайн оборудования распространяется под лицензией Creative Commons Attribution Share-Alike 2.5 и доступен на веб-сайте Arduino. Макет и производственные файлы для некоторых версий оборудования также доступны. «Uno» означает один на итальянском языке и был выбран в честь выпуска Arduino Software (IDE) 1.0. Плата Uno и версия 1.0 программного обеспечения Arduino (IDE) были эталонными версиями Arduino, теперь разработанными для более новых выпусков.

Плата Uno является первой в серии плат Arduino c USB и эталонной моделью для последующих платформ. ATmega328 на Arduino Uno поставляется с предварительно запрограммированным загрузчиком, который позволяет загружать новый код без использования внешнего аппаратного программера с использованием оригинального протокола STK500. Uno также отличается от всех предыдущих плат тем, что не использует микросхему драйвера FTDI USB-to-serial. Вместо этого он использует Atmega16U2 (Atmega8U2 до версии R2), запрограммированный как преобразователь USB-to-serial.

Микроконтроллеры обычно программируются с использованием диалекта функций из языков программирования C и C++. В дополнение к использованию традиционных наборов инструментов компилятора проект Arduino предоставляет интегрированную среду разработки (IDE).

Шаг 6. H-мост (модуль LM 298)

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Термин H-мост (англ. H-bridge) выведен из типичного графического представления такой схемы. Это схема, которая может приводить двигатель постоянного тока в прямом и обратном направлении, см. рисунок выше для понимания работы H-моста.

Он состоит из 4 электронных переключателей S1, S2, S3 и S4 (транзисторы / МОП-транзисторы (MOSFET) / IGBTS). Когда переключатели S1 и S4 замкнуты (а S2 и S3 разомкнуты), на двигатель идет положительное напряжение. Поэтому он вращается в прямом направлении. Аналогично, когда S2 и S3 замкнуты, а S1 и S4 открыты, обратное напряжение идет через двигатель, поэтому он вращается в обратном направлении.

H-мосты доступны в виде интегральных микросхем, или вы можете создать свой собственный, используя 4 обычных транзистора или полевых транзистора (MOSFET). В нашем случае мы используем микросхему H-моста LM298, которая позволяет контролировать скорость и направление вращения двигателей. Ниже перейдем к описанию пинов:

Выход 1: двигатель постоянного тока 1 «+» или шаговый двигатель A+

Выход 2: двигатель постоянного тока 1 «-» или шаговый двигатель A-

Выход 3: двигатель постоянного тока 2 «+» или шаговый двигатель B+

Выход 4: двигатель B выведен

12В контакт: 12В вход, но вы можете использовать от 7 до 35 В

GND: земля

Вывод 5В: выход 5 В, если перемычка 12 В на месте, идеально подходит для питания вашего Arduino

EnA: включает сигнал ШИМ для двигателя А

IN1: включить двигатель A

IN2: включить двигатель A

IN3: включить двигатель B

IN4: включить двигатель B

EnB: включает сигнал ШИМ для двигателя B

Шаг 7. Источник питания

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Для нашей радиоуправляемой модели машины на основе Ардуино и с контролем через смартфон могут быть использованы следующие батареи:

Шаг 8. Электрические соединения

Для реализации соединений нужны перемычки. Соедините красные провода двух двигателей (с каждой стороны) вместе и черные провода вместе. Таким образом у нас теперь есть два терминала с каждой стороны. MOTORA отвечает за два правых двигателя, соответственно два левых двигателя подключены к MOTORB. Следуйте инструкциям ниже, чтобы соединить все.

Соединения двигателей

Питание

Шаг 9. Логика управления

Логика управления описывается в таблице ниже.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Шаг 10. Приложение для смартфона

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Скачать приложение и установить в смартфон вы можете через Google Play (ссылка).

Для управления RC-автомобилем мы используем смартфон. Смартфон подключается к контроллеру через модуль Bluetooth (HC-06/05). После установки приложения необходимо настроить связь с модулем Bluetooth. Пароль для связи: «1234».

Шаг 11. Код Ардуино

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

Источник

Машинка на радиоуправлении. Arduino + nrf24l01 + пульт.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Исходники для печати можете скачать тут.

Установил электронику: Arduino UNO, драйвер L298n, два мотор-редуктора с колесами и конечно же радио модуль nrf24l01.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

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

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Установил 2 бокса под аккумуляторы 18650. Соединил их последовательно и подключил к драйверу L298n. Так как у драйвера есть понижающий стабилизатор на 5 вольт. С соответствующих разъемов мы берм 5в и подключаем Arduino UNO. Но тут есть минус. Нужно следить, чтобы аккумуляторы не пере разрядились. Иначе они выйдут из строя. Остальная часть схемы ни чем не отличается от предыдущего проекта.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Пульт управления берем из предыдущего проекта. Схема подключения пульта управления на Arduino + NRF24L01 + гироскоп GY-521 MPU-6050 . Выглядит вот так.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Скетч тоже без изменений.

Пульт планирую переделывать. Тем более он выглядит не очень красиво.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

И ребенок у меня его модернизировал. Проводки пере подключал. Я конечно все восстановил. Но работает немного не так как раньше. Смотрите в видео всем отличие.

Искать причину почему радио пульт стал так работать нет времени и желания. Как говорил все ровно его буду переделывать.

Переделал код для машинки. В предыдущей версии жаловались, что при включении крутиться одно колесо. Исправил. Проблема была вот в этом куске кода.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

В итоге получилась вот такая машинка на Arduino радио модуле nrf24l01 с пультом управления. Который управляет машиной при наклоне пульта. Не нужно нажимать на кнопки.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Планирую доработку пульта и машинки. Так что Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook. Всем Пока-Пока. И до встречи в следующем проекте.

Понравилась статья? Поделитесь ею с друзьями:

Источник

Arduino. Проект «Робот-машина RoboCar4W»

Вы понимаете, — втолковывал редактор, — это должно быть занимательно, свежо, полно интересных приключений… Так, чтобы читатель не мог оторваться.
И.Ильф, Е.Петров «Как создавался Робинзон».

Начинать работу с Arduino, как и с любой другой платформой программной или аппаратной, всегда интереснее с какого-нибудь реального проекта. Программисты при этом пишут код выводящий «Hello, world», ардуинисты моргают светодиодом. И все радуются как дети.

Я же решил начать с продвинутого проекта, в том числе с тайной надеждой оторвать молодое поколение от Counter-Strike (не получилось).

Как можно догадаться из названия RoboCar4W, первым проектом стал робот-машина о четырех колесах. Начиная работу я уже имел опыт программирования, умел когда-то давно паять, но совершенно не знал даже распиновки Arduino и документацию совершенно не читал. Все премудрости изучал по ходу пьесы и Гугл в помощь.

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

Всё «железо» приобреталось на ebay, и по своему опыту хочу сказать, что проще приобрести сразу стартер кит (ищите по словам Arduino Starter Kit), а не собирать подетально. Да и приедет все сразу вместе. Решено было не мелочиться, купить нормальное шасси, нормальные колеса, нормальные моторы, чтоб было «дорохобохато».

Главный секрет успешных покупок на eBay — покупать у продавцов с высоким рейтингом и при этом внимательно читать описание товара. Об этом есть много статей в интернете.

Какую плату семейства Arduino выбрать?

Я взял Arduino UNO, под нее много проектов с описаниями. Но сейчас бы взял Arduino Mega 2560, у нее больше цифровых и аналогов выводов и полная совместимость по проектам с UNO.

Общее описание проекта

В мире разработки программного обеспечения это называют еще «требования к системе».

Задумка проекта была следующей. Первый вариант машины-робота под названием RoboCar4W должен выполнять незамысловатые действия:

Второй вариант машины должен управляться вручную по bluetooth с Android телефона.

Чтобы вам лучше работалось вот весь финальный проект RoboCar4W в сборе (тут без блютуза).

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Вот видео ходовых испытаний.

На первом видео RoboCar4W ездит в автоматическом режиме с объездом препятствий на двух разных версиях «прошивки», т.е. скетча, поэтому, если кто самый зоркий и заметил, что поведение робота в разных эпизодах немного отличается.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

На втором видео RoboCar4W передвигается при помощи команд, передаваемых «водителем» по Bluetooth с мобильного телефона под Android. На телефоне установлена программа «Bluetooth RC Car». Причем, если близко впереди оказывается препятствие, то робот останавливается, т.е. протаранить что-нибудь не получится (однако есть «секретная» кнопка, которая отключает безопасный режим).

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

На третьем видео RoboCar4W показывает заранее запрограммированную демо-программу движения с поворотами. Демо-программа активируется по команде с того же мобильного телефона под Android. Робот просто едет некоторое время и делает повороты.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Алгоритм управления движением

Ошибочно называть наш способ «алгоритм объезда препятствий» или «поиском пути». Это отдельные математические дисциплины, чистая математика. Если вам очень-очень сильно нравится математика, то погуглите указанные словосочетания, чтивом на полгода будете обеспечены.

Пока же нас интересуют вещи гораздо проще. Поэтому мы назовем это просто — алгоритм управления движением 4-х колёсного робота. Разумеется речь идет об автоматическом управлении без участия человека.

Вот этот простой алгоритм записанный словами, для более сложных алгоритмов придется (хочется или нет) составлять блок-схемы.

Сейчас одновременно смотрите в исходник скетча RoboCar4W-1.ino.

Чем хорошо, что у нас 4 колеса и все ведущие? Мы можем выполнить (запрограммировать) несколько типов поворотов:

Во втором варианте программы, при управлении с Android-телефона безопасный режим, когда робот старается не допускать лобовых столкновений, может быть отключен, если в программе два раза нажать кнопку
Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

и включен обратно однократным её нажатием.

Важное примечание. Вся логика находится под управлением Arduino. Android здесь выступает просто как игровой пульт (без мозгов) от консоли, его задача — тупо передавать нажатия кнопок (т.е. команды) посредством Bluetooth в Arduino RoboCar4W.

Компоненты

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

Нет худа без добра, зато скетч стал немного проще.

Итак составные части проекта RoboCar4W, описание на английском дается для облегчения поиска на ebay и ему подобных:

Шасси, DC моторы и колеса приобретались сразу в комплекте и даже с инструкцией по сборке.

Распиновка

Аналоговые входы могут использоваться как цифровые выводы портов ввода/вывода. Выводы Arduino, соответствующие аналоговым входам, имеют номера от 14 до 19. Это относится только к выводам Arduino, а не к физическим номерам выводов микроконтроллера Atmega.

Рисовать не обязательно, можно просто свести все в таблицу. У меня получилось так.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Пины D4, D7, D8, D12 будут заняты, если используются любые DC моторы или шаговые.

Пины D9 (Servo #1 control), D10 (Servo #2 control) будут заняты, только если используются сервомоторы.

Сама по себе плата для управления моторами Motor Drive Shield L293D пины Arduino не занимает.

Пины питания 3.3 В, 5 В и «земля» дублируются на Motor Drive Shield в достаточном количестве. Поэтому об их нехватке не стоит беспокоиться.

Если все-таки хотите красиво нарисовать, то бесплатная программа Fritzing вам в помощь.

Питание

Это второй очень важный момент. От питания зависит очень многое. Например, серво-мотор при повороте вала на заданный угол начинает потреблять большой ток. При этом если серво подключен по питанию на 5 В Arduino, то происходит «просадка» по напряжению и вся остальная схема начинает глючить, а Arduino даже может перезагружаться при этом.

В любом случае, если в поделке используете моторы, то Motor Drive Shield необходим (или подобная ему схема).

Итак, имеем 4 мотора постоянного тока (DC), сервопривод, саму плату Arduino и несколько датчиков. Моторы самые прожорливые, а вот датчики могут успешно запитываться с разъемов самой платы Arduino, поэтому с ними все просто. Для удобства я свел всё хозяйство в одну таблицу.

Напряжение рекомендованное или типовое. Потребляемый токМаксимальное напряжениеЧем планируется питатьПримечания
Плата Arduino UNO R37 — 12V, 200mA (среднее)6 — 20«Крона 9V» Li-ion 650mAh, 8.4VРазъем с плюсом в центре
Сервомотор MG-9955—6 V, 0.1 — 0.3A (пиковое)4.8 — 7.2Аккумуляторы (5) шт. Ni-Mh 1.2V = 6VПитание только от отдельного источника. Если запитать вместе с Arduino, то будет глючить всё. Напряжения Ni-Mh аккумуляторов 4шт. * 1.2В = 4.8V не хватает. Некоторые утверждают, что данную серву не стоит использовать на 6 вольтах только 4,8
DC двигатели (4 шт.)6 — 8V, ток от 70mA до 250mA3 — 12аккумуляторы (5+3) шт. Ni-Mh 1.2V = 9.6VВы не сможете нормально запустить двигатели от 9В батареи, так что даже не тратьте время (и батареи)!
Motor Drive Shield L293Dне требуется4.5 — 36не требуется
Модуль Bluetooth HC-05063.3 V, 50 mA1.8—3.6С пина 3.3V платы Arduino
Ультразвуковой измеритель расстояния HC-SR045 V, 2 mA5С пина 5V платы Arduino

DC/DC преобразователя напряжения у меня не было в наличии. Крона 9V оказался не очень хорошим источником питания, просто у меня он уже был.

А вот от использования Li-ion аккумуляторов большой емкости я отказался. Во-первых, из-за высокой стоимости, во-вторых в китайских интернет-шопах легко нарваться на подделку. Точнее не «легко», а «всегда». Кроме этого Li-ion требует особого обращения, и он не безопасен.

Итак, как видим из таблицы, нам требуется 3 независимых источника питания:

Где ж столько набрать? Саму плату Arduino в любом случае надо питать от отдельного источника, т.к. при «проседании» напряжения, например от включения моторов, плата может перезагружаться или просто глючить. Здесь применяем аккумулятор форм-фактора «Крона 9В», причем разъем который будет подключаться к Arduino должен быть с «плюсом в центре».

Для сервомотора и 4-х DC моторов можно обойтись одним источником питания. Проблема только в том, что сервомотор рассчитан на напряжение 5-6В (максимум 7.2В) и ток 100 — 300мA (пиковое), а DC моторам требуется 6 — 8В (максимум 12В) и ток 250мА.

Для решения проблемы существуют DC-DC преобразователи, но у меня таких не оказалось. В итоге я применил свою «фирменную» схему соединения (безо всяких понижающих электронных схем, только экологически чистые напряжение и ток!): подключил 8 шт. аккумуляторов на 1.2V последовательно и сделал отводы в нужных местах, как показано на схеме.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

6В пошло на сервомотор, а 9.6 на DC моторы. Понятно, что аккумуляторы 1—5 будут испытывать повышенную нагрузку.

Для управления серво и DC моторами использовал 4-х канальный Motor Drive Shield на базе микросхемы L293D.

Сборка

Собрать готовое шасси небольшая проблема. Но не думайте, что без допиливания у вас всё сразу соберется. Поэтому приготовьте надфили.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Подключить нормально несколько моторов, сервомотор или шаговый напрямую к Arduino не удастся. Так как пины (выводы) Arduino являются слаботочными. Для решения проблемы существует дополнительный модуль управления приводами — Motor Drive Shield на базе микросхемы L293D, которая является одной из самых распространенных микросхем, предназначенных для этой цели. Чип L293D известен также как H-мост (H-Bridge).

Данная плата модуля управления приводами имеет следующие характеристики.

Motor Drive Shield требует небольшой доработки, чтобы можно было после него хоть что-нибудь подключить. Я подпаял сверху необходимые разъемы, получилось вот что.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Моторы могут быть подключены к дополнительному по отношению к плате Arduino источнику питания. Я рекомендую именно такой способ подключения. Для этого нужно снять, разомкнуть перемычку, как показано на картинке.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

В этом случае питание Arduino и питание моторов производится независимо друг от друга.

Светодиод на мотор-шилде светится при наличии питания для моторов, если он не горит, то моторы работать не будут.

Сервомоторов положение джампера питания не касается, они по прежнему будут запитаны от 5V Arduino. Так как сервомоторы обычно потребляют большой ток и если питания недостаточно, то всё устройство начинает глючить, в «лучшем» случае будет глючить только сервопривод — не будет поворачиваться на заданный угол, либо все время перед каждым поворотом поворачивать сначала в 0 градусов, а уже потом на заданный угол (и если будет успевать). Поэтому я рекомендую питать сервопривод также от дополнительного источника питания. Для этого придется немного переделать схему подключения: откусить плюсовой провод (обычно красный) от стандартного разъема и соединить его с плюсом источника питания напрямую.

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

При подключении Motor Drive Shield аналоговые пины не используются. Цифровые пины 2, 13 не используются.

Указанные ниже пины используются, только если подключены и используются соответствующие DC двигатели или шаговые двигатели (Stepper):

Эти пины будут заняты, если используются любые DC/steppers: D4, D7, D8, D12.

Указанные ниже пины будут заняты, только если используются соответствующие сервомоторы:

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Для начала работы с Motor Drive Shield необходимо скачать и установить библиотеку Adafruit AFMotor.

Пример кода для управления моторами:

DC мотор у меня начал крутиться только при указании скорости больше 100, если меньше — просто жужжит. Минимальную скорость вашего мотора вам придется определить экспериментально.

Для моторов, подключенных к M1 и M2 можно задать частоту: MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, MOTOR12_1KHZ. Наибольшая скорость вращения достигается при 64KHz эта частота будет слышна, меньшая частота и скорость на 1KHz но и использует меньше энергии. Моторы 3 и 4 всегда работают на 1KHz другие значения игнорируются. По умолчанию везде 1KHz.

После этого необходимо прогнать тест моторов. Скетч для тестирования можно взять здесь. В начале скетча измените номер мотора в строке (или в строках) типа:

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

Подключаем ультразвуковой измеритель расстояния HC-SR04 Ultrasonic Module. Распиновка выводов:

Время затрачиваемое ультразвуковым дальномером на измерения (определено опытным путем):

Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть фото Машина на радиоуправлении ардуино с плавным пуском двигателя. Смотреть картинку Машина на радиоуправлении ардуино с плавным пуском двигателя. Картинка про Машина на радиоуправлении ардуино с плавным пуском двигателя. Фото Машина на радиоуправлении ардуино с плавным пуском двигателя

Ультразвуковой датчик дальномер, в силу своей физической природы, а не потому что Китай, в некоторых случаях плохо определяет расстояние до препятствия:

Другими словами, для ультразвукового дальномера в идеале было бы отлично, если бы все препятствия имели вид твёрдой плоскости, перпендикулярной направлению излучения ультразвука.

Некоторые проблемы можно решить с помощью инфракрасного датчика расстояния. Но он тоже не идеален:

Хотя если установить эти дальномеры в паре, то эффективность их работы заметно повысилась бы.

Подключаем Bluetooth HC-05

Как видим из даташита основные пины «голого» HC-05:

Наш модуль припаян к плате Breakout/Base Board, где уже есть делитель напряжения, поэтому диапазон рабочих напряжений у него от 3.3В до 6В.

Подключаем наш Bluetooth модуль в сборе :

После подачи питания на модуль Bluetooth HС-05 на нем должен заморгать светодиод, что означает работоспособность блютуза.

Включаем bluetooth на мобиле, находим устройство с именем HC-05 и подключаемся, пароль 1234.

Для тестирования заливаем в Arduino простой скетч:

На Android телефон устанавливаем Bluetooth Terminal. Подключаемся к устройству HC-05 и наблюдаем на экране телефона бегущие строки с увеличивающимся счетчиком.

Чтобы модуль мог принимать AT-команды, нужно его перевести в соответствующий режим — для этого нужно установить вывод KEY (PIO11) в логическую 1. На некоторых Breakout/Base Board вместо вывода KEY есть вывод EN (ENABLE), который может или не может быть припаян к выводу на самом чипе. Это касается только чипов HC05. Вот как раз у меня вывод EN платы никуда не припаян. Поэтому его можно припаять отдельным проводом к выводу KEY(PIO11) чипа. Либо во время работы, чтобы перевести HC05 в режим AT-команд на пару секунд закоротить вывод чипа KEY(PIO11) на вывод питания Vcc. Для HC06 вывод KEY не нужен.

Программное обеспечение

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

В начале скетча измените номера моторов в строках типа:

Если заменить строку

то включится режим отладки.

В режиме отладки робот RoboCar4W реально ездить или крутить колесами не будет. Вместо этого активируйте монитор последовательного порта и там увидите как он «ездит» виртуально. Вместо реальной езды вперед в монитор последовательного порта будет писаться строка «Forward», вместо заднего хода с поворотом влево — «Turn Back L(eft)» и т.д. Датчик ультразвукового измерения расстояния тоже ничего не делает, вместо этого расстояния до препятствий генерируются программно и случайно.

Этот режим отладки удобен, если вы меняете алгоритм движения и вместо того, чтобы ловить машинку по комнате, просто проверяете всё на «холостом» ходу.

Скетч для ручного управления по блютуз скачать здесь. Скетч не имеет режима отладки, так как там всё прозрачно. Вы нажимаете кнопку — робот едет.

Источник

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

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