Motor shield arduino bluetooth

Блютуз Машинка Ардуино с двумя моторами

Машинка на Ардуино с управлением по Bluetooth с Android телефона — это очень простой, но интересный проект на микроконтроллере с использованием модуля Motor Shield. На этой странице вы найдете необходимые компоненты, для создания собственного авто, а также пошаговые инструкции по сборке схемы и программированию платы. Ссылки на скачивание приложения для смартфона Android и необходимых библиотек даны ниже.

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • моторчики постоянного тока
  • motor shield L293D
  • bluetooth модуль hc-06 или hc-05
  • светодиоды и резисторы
  • библиотека AFMotor.h и SoftwareSerial.h
  • приложение car.apk

Если у вас есть все необходимые детали (можно обойтись без светодиодов и резисторов), то рассмотрим, как сделать автомобиль на Arduino своими руками. Прежде всего, нужно припаять провода к контактам двигателя и закрепить их изолентой, чтобы провода не оторвались. Провода от двигателей должны быть подключены к клеммам M1 и M2 моторного шилда (в дальнейшем полярность можно изменить на противоположную).

Bluetooth машинка на Arduino с двумя моторами

Bluetooth машинка на Ардуино с двумя моторами

Порты TX и RX модуля Bluetooth будет удобнее припаять к аналоговым пинам A1 и A2 на плате расширения Motor Shield, чтобы каждый раз не отключать блютуз модуль от Ардуино при загрузке скетча. С помощью библиотеки SoftwareSerial.h на этих пинах создается программный порт коммуникации. Управление светодиодами фар автомобиля происходит через цифровой пин 2, а питание подключается через клемники на плате расширения.

Скетч для управления машиной Arduino по Bluetooth

#include "AFMotor.h" AF_DCMotor motor1(1); // подключаем мотор к клемме M1 AF_DCMotor motor2(2); // подключаем мотор к клемме M2 #include "SoftwareSerial.h" SoftwareSerial mySerial(A1, A2); // RX, TX #define LED 2 // пин подключения светодиодов int val; void setup() < Serial.begin(9600); pinMode(LED, OUTPUT); motor1.setSpeed(250); // максимальная скорость мотора motor1.run(RELEASE); motor2.setSpeed(250); // максимальная скорость мотора motor2.run(RELEASE); >void loop() < if (mySerial.available()) < val = mySerial.read(); if (val == f) < // едем вперед motor1.run(FORWARD); motor1.setSpeed(250); motor2.run(FORWARD); motor2.setSpeed(250); >if (val == b) < // едем назад motor1.run(BACKWARD); motor1.setSpeed(200); motor2.run(BACKWARD); motor2.setSpeed(200); >if (val == s) < // останавливаемся motor1.run(RELEASE); motor2.run(RELEASE); >if (val == l) < // поворачиваем налево motor1.run(FORWARD); motor1.setSpeed(100); motor2.run(BACKWARD); motor2.setSpeed(250); >if (val == r) < // поворачиваем направо motor1.run(BACKWARD); motor1.setSpeed(250); motor2.run(FORWARD); motor2.setSpeed(100); >if (val == 1) < digitalWrite(LED, HIGH); >if (val == 0) < digitalWrite(LED, LOW); >> >

Приложение для управления машиной с телефона

Приложение для управления машиной с телефона по Блютуз

После того как вы убедились, что устройство работает, установите приложение на смартфон или планшет. При первом подключении к модулю Bluetooth вам нужно выполнить сопряжение с Android (затем сопряжение будет происходить автоматически). Если у вас возникли проблемы с подключением и настройкой машинки, прочитайте статью подключение bluetooth модуля к Arduino или задайте вопрос в комментариях.

Читайте также:  Где поменять имя айфона блютуз

Заключение. Для этого проекта мы использовали модуль Motor Shield L293D, два колеса с шестеренками, плату Arduino, модуль HC-05 и два светодиода для фар. Управление осуществляется дистанционно через сигнал Bluetooth со смартфона или планшета. После сборки модели и установки программ вы сможете поворачивать автомобиль, двигать его вперед и назад, включать и выключать фары через приложение на смартфоне.

Источник

Простая Bluetooth машинка на Arduino

Широкое распространение и дешевизна платформы Arduino и различных робоплатформ позволило любителям создавать радиоуправляемые машинки на любой вкус. А широкое распространение смартфонов позволило использовать их в качестве контроллеров этих машинок. Главной проблемой для многих любителей Arduino является отсутствие опыта в программировании под Android. Сегодня я расскажу, как легко решить эту проблему, используя среду визуальной разработки android-приложений App Inventor 2.

Постройку любой машинки надо начинать с «железа», поэтому вкратце опишу, что использовал для своей машинки:
arduino nano
bluetooth module HC-05
Z-Mini Motor Sensor Shield L293D
2WD Motor Chassis
Конфигурация «железа» не играет большой роли в этом проекте, поэтому шасси, шилд и саму ардуино можно заменить на любые аналоги.

Теперь перейдем к созданию приложения для Android. App Inventor — среда визуальной разработки android-приложений, работает из браузера. Заходим на сайт, разрешаем доступ к своему аккаунту в Google, нажимаем кнопку «create» и создаем новый проект. В новом проекте методом «Drag and Drop» создаем 4 кнопки для выбора направления движения и одну для подключения к нашему bluetooth модулю. Примерно так:

image

Далее нажимаем на кнопку «Blocks» в правом верхнем углу и все тем же методом перетаскивания элементов создаем логику работы нашего android-приложения примерно вот так:

image

Теперь остается скомпилировать приложение, нажав на кнопку «Build».

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

Читайте также:  Можно ли заряжать наушники блютуз быстрой зарядкой

int val;
int IN1 = 4;
int IN2 = 7;
int EN1 = 6;
int EN2 = 5;

void setup()
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);

>
void loop()
if (Serial.available())
val = Serial.read();

// Задаём движение вперёд
if (val == ‘W’) // При нажатии клавиши «W»
// Выводы конфигурируются согласно работе Motor Shield’а
// Моторы крутятся вперед
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
>

// Задаём движение назад
if ( val == ‘S’)
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
>

// Задаём движение вправо
if ( val == ‘D’)
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
>

// Задаём движение влево
if ( val == ‘A’)
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
>

// Стоп режим
// При отпускании клавиш в программе в порт шлется «T»
if ( val == ‘T’) // При нажатии клавиши «T»
// Выводы ENABLE притянуты к минусу, моторы не работают
digitalWrite(EN1, LOW);
digitalWrite(EN2, LOW);
>
>
>

Итак, вот такая у меня получилась машинка:

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

image

P.S. Для тех, кто не сталкивался с разработкой приложений в App Inventor 2, я сделал более подробный гайд по разработке этого приложения (для просмотра нужно перейти на ютуб).

P.P.S. Сборник из более 100 обучающих материалов по ардуино для начинающих и профи тут.
Онлайн курс по ардуино на гиктаймс здесь.
UPD 1.02.2017: выложил приложение на play market.
Аналогичные проекты с другими шилдами здесь.

Источник

Робомобиль на базе Arduino Mega 2560 с Bluetooth управлением и автономным движением с объездом препятствий

Представляю свой проект робомобиля на Arduino. На просторах интернета есть масса подобных статей, наткнувшись на одну из них решил реализовать увиденное со своими изменениями в конструкцию и функционал. Реализованы следующие возможности: управление робомобилем по Bluetooth со смартфона; автономное движение робомобиля с объездом препятствий.

Для реализации нам понадобится:

Комплект: рама, моторы, колёса, крепления (Car Chassis Kit for Arduino — фото)
Arduino Mega 2560
Motor Control Shield for Arduino L293D
Сервопривод MG995
Ультразвуковой дальномер HC-SR04
Bluetooth модуль HC-05 JY-MCU
Active High Level Buzzer Alarm / Speaker Buzzer Module
Диоды для фар
Соединительные провода
Держатели для дальномера и Bluetooth модуля (делал сам)
Блок питания (я взял от кассового аппарата)
Приложение на Android для управления робомобилем по Bluetooth Arduino Bluetooth RC Car (фото, при подключении к Bluetooth модулю пин-код по умолчанию «1234»)

Подключение комплектующих

Читайте также:  Ноутбук dell как блютуз
Моторы Motor Shield L293D Фары Arduino Mega 2560
П.Л. М3 П.Л. «-» на GND, «+» на Pin 22
П.П. М4 П.П. «-» на GND, «+» на Pin 24
З.Л. М1 З.Л. «-» на GND, «+» на Pin 34
З.П. М2 З.П. «-» на GND, «+» на Pin 35
Дальномер HC-SR04 Arduino Mega 2560 Bluetooth HC-05 Arduino Mega 2560 Buzzer Arduino Mega 2560
Vcc 5V VCC 5V SIG Pin A9
Trig Pin 31 GND GND VCC Pin A8
Echo Pin 30 TXD Pin 50 GND GND
Gnd GND RXD Pin 51
Сервопривод MG995 Motor Shield L293D
тройная клема SERVO_2 (центральный провод «+» откусываем и запитываем напрямую от «+» Motor Shield — фото; при управлении по Bluetooth — клему снимайте, чтобы серва не дёргалась)

Процесс сборки

К моторам припаиваем провода, обратите внимание, на всех нижних контактах у меня чёрные провода, на верхних — красные, не перепутайте полярность при подключении к Motor Shield.

Крепим сервопривод к верхней части рамы, моторы к нижней, собираем раму, ставим колёса. Устанавливаем Motor Shield сверху Arduino Mega и крепим на раму, подключаем всё по схеме выше, заливаем соответствующий скетч (в конце статьи) — наслаждаемся.

Управление по Bluetooth — устанавливаете приложение на свой смартфон, запускаете, подключаетесь (Connect) к Bluetooth модулю (при необходимости вводите пин-код); управлять можно классическим способом по стрелкам (Buttons), а так же в меню программы можно выбрать Accelerometer и управлять с помощью наклонов смартфона.

Автономное движение с объездом препятствий — алгоритм следующий: дальномер измеряет расстояние впереди, если оно > 30 см (в скетче параметр const int vmindistance), то продолжаем двигаться вперед, если < 30 см, то: останавливаем моторы; крутим сервопривод на углы от 0° до 180° с шагом в 15° и измеряем расстояния на этих углах; заносим полученные значения в массив; поворачиваем сервопривод прямо на угол 90°; ищем в массиве позицию с максимальным значением данных; если это значение < 30 см, то едем назад, если >30 см, то проверяем какому углу поворота сервопривода оно соответствует и в зависимости от этого поворачиваем влево или вправо.

Источник

Оцените статью
Adblock
detector