Включение и отключение устройств по Bluetooth с помощью Arduino (видео)

Включение и отключение устройств по Bluetooth с помощью Arduino (видео) Конструкторы
Содержание
  1. Шаг 3. начинаем собирать схему
  2. Вступление
  3. Шаг 1. что нам необходимо
  4. Режим Master
  5. 1 Настройка автоматического подключения к BT девайсу по фиксированному адресу
  6. Slave
  7. Slave Loop
  8. Прочее
  9. Аппаратная сборка
  10. Выбираем компоненты
  11. Где посмотреть
  12. Как связать всё по bluetooth
  13. Модуль bluetooth реле для умного дома и iot (4.25$)
  14. Мотор-редукторы
  15. Обзор модуля bluetooth hc-05
  16. Подключение
  17. Подключение bluetooth к телефону
  18. Приложение для android
  19. Пример использования
  20. Принцип включения выключении нагрузки по bluetooth с помощью arduino
  21. Принципиальная электрическая схема
  22. Программирование модуля bluetooth hc05
  23. Работа схемы
  24. Сервоприводы манипулятора
  25. Скетч
  26. Скетч для arduino дабы он работал с модулем bluetooth
  27. Соединяем bluetooth с управляющей платой
  28. Соединяем управляющую плату с моторами
  29. Схема подключения arduino с модулем bluetooth
  30. Траблы с заливкой программы в arduino
  31. Требования к оборудованию
  32. Удалённое управление
  33. Управление
  34. Управляем arduino через bluetooth hc-06, с компьютера или смартфона
  35. Установка apk в wear os
  36. Шаг 2. как это работает
  37. Шаг 5. как происходит процесс
  38. Электроника
  39. Этапы создания панели в bluetooth electronics:

Шаг 3. начинаем собирать схему

Схема в нашем уроке настолько проста и мала, что нам нужно сделать только несколько соединений:

  • Arduino Pins <-> Bluetooth Module Pins
  • RX (Pin 0) <-> TX
  • TX (Pin 1) <-> RX
  • 5V <-> VCC
  • GND <-> GND

Когда светодиод подключен к GND, минус должен быть подключен к контакту 13 на Arduino, а плюс – к контакту 13, через резистор 220 Ом – 1 кОм. В общем, на рисунке ниже все предельно ясно.

Внимание. Пожалуйста, не подключайте выходы Bluetooth RX к RX и TX к TX к выходам Arduino, иначе вы не получите никаких данных; RX означает “принимать”, а TX – “передавать”.

Вступление

Узнайте, как создать робота с манипулятором и управлять им с помощью мобильного устройства Android в этом пошаговом руководстве. Приложение создается с помощью App Inventor. Мы обсудим каждую часть проекта отдельно:

  1. Как управлять сервоприводами
  2. Как управлять мотор-редукторами с коммутаторами
  3. Как использовать модуль Bluetooth HC-05
  4. Как управлять роботом с помощью мобильного телефона.

Этот учебник должен предоставить всю необходимую информацию, чтобы сделать такого робота.

Шаг 1. что нам необходимо

Устройств

  • Модуль – Bluetooth Module HC 05/06
  • Плата – Arduino
  • Светодиод (LED)
  • Резистор – 220Ω
  • Android-устройство

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

  • Arduino IDE
  • Android Studio (на самом деле не нужна, так как вы найдете приложение для Android ниже).

Режим Master

Чтобы переключить модуль BT в этот режим, вам необходимо

1) Перевести модуль в режим приема AT команд, замкнув PIO11 на 3.3 V

3) Подключите UART модуля к COM порту следующим образом:


Baudrate = 38400

StopBits = 1

DataBits = 8


Parity = none

Свободные руки = нет

И отправьте туда команду:

AT ROLE=1rn

При успешном выполнении команды модуль отвечает следующим образом:

OKrn

3) Подключите PIO11 к GND (автоматический режим). Модуль в режиме ведущего устройства.

1 Настройка автоматического подключения к BT девайсу по фиксированному адресу

Для этого необходимо

Убедитесь, что модуль настроен на получение AT-команд (см. пункт 1)

Используйте следующую команду, чтобы переключить модуль в режим фиксированных адресов:

AT CMODE=0rn


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

AT BIND=27,13,bd95e4rn

B T-адрес моего ноутбука, например, “27,13,bd95e4”.

Теперь небольшой трюк, как быстро узнать адрес? Отправьте на модуль:AT RMAADrnПерейдите в автоматический режим (см. пункт 1), модуль должен быть в режиме Slave, подключитесь к модулю с устройством, BT-адрес которого вы хотите узнать, отключитесь, перейдите в режим AT-команд, отправьте команду:AT MRAD?rnПолучите на выходе нужный адрес в виде: 27:13:bd95e4.

3) Вернитесь в автоматический режим. Теперь модуль попытается установить соединение с устройством по адресу 27:13:bd95e4.

Slave

Для перехода в этот режим отправьте:

AT ROLE=0rn

Если CMODE!=1, то

AT CMODE=1rn

Slave Loop

AT ROLE=2rn

Если CMODE!=1, то

AT CMODE=1rn

Прочее

Испытательное оборудование:

AT

Перезагрузка:

AT RESET

Версия Версия

AT VERSION?

Сбросьте конфигурацию:

AT ORGL


Адрес модуля:

AT ADDR?

Имя модуля :

AT NAME=ElektroHabrrn

Получение имени устройства BT:

AT RNAME?<АДРЕС>rn


Чтобы поменять пароль, делаем так:

AT PSWD=1235

Настройки UART’a:

AT UART=Baudrate,StopBit,Parity,rn

Скорость передачи данных может быть: 9600, 19200, 38400, 57600, 115200, 230400, 460800.


Parity == 0 == none

PIO порты:

AT PIO=<номер порта>,<состояние 1/0>

B T не может управлять этими портами!

Чтобы удалить любой адрес, ранее подключенный к модулю B T: он запоминает адрес любого устройства, которое когда-либо было к нему подключено.

AT PMSAD =1234,56,abcdefrn

Чтобы удалить все адреса, выполните следующие действия:

AT RMAADrn


Чтобы посмотреть адрес наиболее часто подключаемого устройства, шлем модулю:

AT MRAD?rn

Чтобы узнать, есть ли поблизости устройство, которое модуль “запомнил”, положите гарнитуру на модуль:

AT FSAD=<adress>rn

Число единиц в памяти

AT ADCN?rn

Состояние модуля:

AT STATE?rn


Подключиться к какому-нибудь девайсу:

AT LINK=1234,56,abcdefrn

Автоматический выключатель:

AT DISC=<adress>rn

Это не все команды, с другими я еще не знаком.

В прилагаемом архиве находится программа для отправки AT-команд и спецификация на модуль. Программа на языке C# работает под Linux с установленным Mono.

Она должна быть зеркальной! На другой стороне платы находится дорожка заземления, тогда как металлизированные отверстия являются переходами. Имеются резисторы и керамические конденсаторы типоразмера 1206. PS: Почему TL431 и 2N3904? Очень хотелось протестировать этот модуль 🙂

Библиотека HC04 для диптрейсинга

Аппаратная сборка

На схеме ниже оборудование подключено, как показано на рисунке.

Подключите плату Arduino UNO к модулю Bluetooth HC-06.
Включение и отключение устройств по Bluetooth с помощью Arduino (видео)Будьте осторожны с этим шагом! Сначала отключите электропитание. Это будет работать как переключатель, поэтому удалите физический переключатель и подключите к контакту реле NC и COM и затяните винт.
Включение и отключение устройств по Bluetooth с помощью Arduino (видео)Будьте осторожны с этим шагом! Сначала отключите электропитание. Это будет работать как переключатель, поэтому удалите физический переключатель и подключите к контакту реле NC и COM и затяните винт.
Включение и отключение устройств по Bluetooth с помощью Arduino (видео)

Подключите IN1 вывод к GPIO13.

Выбираем компоненты


В прошлом мы с приятелями

Собственная прошивка для роботов Lego Mindstorms NXT, поддерживающая дистанционное управление роботом через bluetooth с коммуникатора Android. В наших экспериментах использовалась отладочная плата Olimex SAM7, содержащая ARM7, которая на этот раз могла выступать в качестве контроллера.

В качестве шасси мы используем корпус игрушечной машинки.

Мне нужен был модуль Bluetooth. Несмотря на то, что в то время он был относительно дорогим, я выбрал единственный модуль BTM-112, имевшийся на тот момент в магазине.

Кроме того, оказалось, что управление с платы не может идти непосредственно на двигатели; для этого нужен усилитель (подробнее об этом позже).

Сумма наших частей:

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

Где посмотреть


Весь код есть в открытом доступе.

Микропрограмма для карты Olimex –

Код Android приложения

Полная версия на сайте

Как связать всё по bluetooth

Подключите смарт-часы к модулю после установки.

Прежде чем использовать модуль HC-06 Bluetooth с приложением, его необходимо подключить к устройству Android.

На часах вы должны увидеть устройство HC-06.

Теперь проделайте следующие действия:

  1. Откройте настройки Bluetooth вашего устройства и выполните поиск новых устройств, убедитесь, что светодиод модуля HC-06 постоянно мигает (режим сопряжения).
  2. Выберите HC-06 (или вы увидите адрес, заканчивающийся на “C”, как показано на рисунках).
  3. Введите PIN-код “1234” и нажмите OK.
  4. Откройте приложение “Wear OS” и нажмите кнопку Bluetooth в верхней части экрана.
  5. Выберите “HC-06” из списка.
  6. Используйте переключатель на значке лампочки или встряхните часы, чтобы включить или выключить реле. Убедитесь, что ваш Arduino уже загружен с приведенным выше кодом.
  7. Нажмите на значок настроек, если вы хотите настроить калибровку встряхивания.

Вот как был создан этот проект:

Вот и все! Теперь через ваши умные часы вы можете управлять реле 5 В через Bluetooth.

Модуль bluetooth реле для умного дома и iot (4.25$)

🙂 arduino аля nano (контроллер, он же мозгг) 8266 (для вифи, для блюпопа НС-05-06) блок реле сколько душа пожелает remoteXY (аналог блинка, но лично мне проще и быстрее, хотя и платное и есть моменты) интернет (облако) и вы управляете своим домом как хотите и откуда хотите, хотите по блюпопу, хотите по эзернету, хотите в облаке.

Кстати об умных домах, подскажите замену MAX6675 (TO-92 так как датчик не влезает в отверстие, иначе давно бы DS18B20 поставили). Имею MAX6675, длинный шланг и к-пару, к паре вопросов нет т.к. на тм-902с все нормально, с 6675 показания моросят с дикой силой (вода закипает при 102 градусах, разбег термодатчика до -1 градуса), при этом моросит сам 6675 (замыкает вход и удивляется разбегу) показания сильно меняются при прогреве 6675 (см. компенсацию холодного спая, но длинный шланг дико уродует). Ожидаемый диапазон температур от 60 до 120, (85 до 100) с желаемой точностью -0. (1-5) градусов, стабильность

Мотор-редукторы


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

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

Мотор-держатель подключается к проводам после того, как они припаяны к моторам.


Моторы можно подключить к выводам «Мотор 1» и «Мотор 2» или «Мотор 3» и «Мотор 4». В данном случае моторы подключены к выводам «Мотор 1» и «Мотор 2», если подключите к 3 и 4, не забудьте внести изменения в коде.

Батарея подключается к специальному разъему на плате шины. Чтобы легко отключить питание, батарею можно подключить через разъем или припаять выключатель к проводу “питание”.

Два разъема предназначены для подключения сервоприводов непосредственно к моторной шине.

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

Обзор модуля bluetooth hc-05

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

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

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

Подключение

Датчики имеют шесть штырьков стандартного размера 2,54 мм:

Программирование модуля осуществляется через последовательный порт путем отправки AT-команд. При подаче на вывод KEY сигнала высокого уровня модуль переходит в режим программирования. Модули без выводов KEY имеют вместо них выводы EN:

В этом случае для входа в режим программирования на контакт 34 должен быть подан сигнал высокого уровня:

Для модуля к плате Arduino по последовательному порту будем использовать со сторону Arduino программный UART. Схема подключения на рисунке:


Получить должны примерно следующие:

В магазине 3DIY доступен широкий выбор датчиков и модулей Arduino.

Подключение bluetooth к телефону

Внешний 9-вольтовый источник питания предпочтительнее USB питания для arduino.

  1. Включите Bluetooth на телефоне и выполните поиск новых устройств
  2. Найдите устройство “HC-06” в списке мешающих устройств и подключитесь к нему.
  3. Телефон попросит вас ввести PIN-код. Введите “1234” или “0000”
  4. Ура. Устройство подключено.

Приложение для android

В этом проекте мы будем использовать бесплатное приложение “Bluetooth Electronics” из Google Play.

Начните с загрузки и установки приложения “Bluetooth Electronics” на свой смартфон. Приложение попросит включить ваши устройства Bluetooth. Разрешите ему это сделать. С помощью приложения вы можете выбрать одну из нескольких готовых панелей управления для систем управления на базе Arduino.

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

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

Красная и зеленая кнопки управляют работой двигателя. На панели также расположены ползунок и аналоговый диск для изменения скорости вращения двигателя.

Пример использования

Рассмотрим пример получения данных о влажности и температуре от датчика DHT11, подключенного к Arduino на устройстве Android (телефон, смартфон, планшет). Arduino получает данные от датчика DHT11 каждые 10 секунд и отправляет их на устройство Android через модуль HC05.

Нам понадобится следующее


Соберем схему, показанную на рисунке:

Мы понимаем

Мы загрузим скетч на плату Arduino (см. ниже), который получает данные о влажности и температуре от датчика DHT11 и выводит их на устройство Android через последовательный порт (аппаратный).


// подключение библиотеки DHT
#include "DHT.h"
// константы
#define DHTPIN 8           // пин подключения контакта DATA
#define DHTTYPE DHT11      // датчик DHT 11
#define INTERVAL_GET_DATA 2000  // интервала измерений, мс
// создание экземпляра объекта DHT
DHT dht(DHTPIN,DHTTYPE);
// переменная для интервала измерений
unsigned long millis_int1=0;
int pos=0;
//  подключение библиотеки SoftwareSerial.h
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // указываем пины rx и tx соответственно

void setup() {
   Serial.begin(9600);  // запуск последовательного порта
   mySerial.begin(9600);
   dht.begin();         // запуск DHT      
   Serial.println("start prg");
}

void loop() {
   if(millis()-millis_int1 >= INTERVAL_GET_DATA) {
      pos=1-pos;
      if(pos==0)  {
        // получение данных влажности c DHT11
        int humidity = dht.readHumidity();
        // вывод в монитор последовательного порта
        Serial.print("humidity=");Serial.println(humidity);
        mySerial.print("H=");mySerial.println(humidity);
      }
      else  {
        // получение данных влажности c DHT11
        int temp = dht.readTemperature();
        // вывод в монитор последовательного порта
        Serial.print("temperature=");Serial.println(temp);
        mySerial.print("T=");mySerial.println(temp);
      }
      // старт интервала отсчета
      millis_int1=millis();
   }
}


Проверим на Android-устройстве получение данных, отправляемых Arduino через bluetooth-модуль HC05. На Android-устройчстве установим программу Bluetooth Terminal. В программе установим соединение с модулем HC05 :

Вы можете видеть, как Arduino получает данные, используя модуль HC05:

Данные выводятся на монитор серийного порта Arduino:

Принцип включения выключении нагрузки по bluetooth с помощью arduino

Принцип очень прост. Вам необходимо устройство, на которое можно установить программу управления Android. Допустим, телефон или планшет. Затем вы берете Arduino и устройство Bluetooth, соединяете их вместе и устанавливаете программное обеспечение на Arduino. Вот и все.

Принципиальная электрическая схема

Эта схема построена всего из трех компонентов: Arduino NANO, модуля Bluetooth HC05 и транзистора Дарлингтона TIP122.

  • Модуль HC05 Bluetooth имеет четыре вывода: Vcc, GND, Tx и Rx. Контакт Vcc обеспечивает питание 5 В от платы Arduino, а контакт GND подключен к заземлению платы. Пины Tx и Rx подключены к контактам D4 и D5 Arduino соответственно.
  • ШИМ выходной пин D3 платы Arduino управляет 12 В двигателем с помощью транзистора TIP122. Этот вывод подключен к базе TIP122 через токоограничивающий резистор 330 Ом.
  • TIP122 используется для усиления тока, обеспечивая двигатель необходимым током. Двигатель подключен между коллектором транзистора и источником питания 12 В. Эмиттер TIP122 подключен к земле.

Программирование модуля bluetooth hc05

Используя последовательный порт, модуль может быть сконфигурирован в режиме программирования путем отправки AT-команд. На рисунке 5 модуль HC05 подключен в соответствии со схемой подключения. Подайте напряжение 3,3 В на контакт KEY модуля (или контакт 34 платы). Отправка AT-команд из Arduino IDE осуществляется через монитор последовательного порта.

include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // указываем пины rx и tx соответственно

void setup()  {
  pinMode(2,INPUT);
  pinMode(3,OUTPUT);
  Serial.begin(9600);
  mySerial.begin(38400);
  Serial.println("start prg");
}

void loop() {
  if (mySerial.available()) {
    char c = mySerial.read(); // читаем из software-порта
    Serial.print(c); // пишем в hardware-порт
  }
  if (Serial.available()) {
    char c = Serial.read(); // читаем из hardware-порта
    mySerial.write(c); // пишем в software-порт
  }
}

Когда скетч загружен, вы можете посылать AT-команды через монитор последовательного порта в Arduino IDE:

Работа схемы

С помощью приложения для Android схема управляет скоростью двигателя. Она посылает команды через Bluetooth для запуска или остановки двигателя и изменения его скорости.

Как только модуль HC05 получает эти команды, он передает их на Arduino NANO с помощью контактов Tx и Rx. Когда Arduino получает команды на запуск/остановку двигателя или изменение скорости его вращения, он использует ШИМ.

Ширина импульса 0 (0%) останавливает двигатель. 255 (100%) – это скорость, необходимая для работы двигателя на максимальной мощности. Если Arduino изменит ширину импульса на своем выводе D3, скорость двигателя изменится от минимальной до максимальной.

Кроме того, Arduino API передает изменение скорости вращения двигателя (от 0 до 100%) через модуль HC05 в приложение для смартфона. Затем оно отображает это значение скорости двигателя на аналоговом циферблате.

Сервоприводы манипулятора

Провода соединяют три сервопривода: красный (плюс питания), коричневый (земля) и желтый или оранжевый (управление).

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

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

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

Это контакты, к которым я присоединил сервоприводы:

gripperServo.attach(9);
elbowServo.attach(10);


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

Скетч

Используя программу Arduino IDE, программный код для Arduino пишется на языке С:

#include<SoftwareSerial.h>
SoftwareSerial bt_ser(4,5);
char c[6];
int i=0,speed_value=150,send_value;
bool fan_on_flag = false;
void setup()
{
  Serial.begin(9600);
  bt_ser.begin(9600);
  analogWrite(3,0);
  Serial.println("DC Motor speed control using android app");
}

void loop()
{
   while(bt_ser.available())
     {
       if(bt_ser.available()>0)
       {
         c[i] = bt_ser.read();
         Serial.print(c[i]);
         i  ; 
       }
       if(c[i-1]=="N")
        {
          analogWrite(3,speed_value);
          fan_on_flag = true;
          i=0;
        }
       if(c[i-1]=="F")
        {
          analogWrite(3,0);
          fan_on_flag = false;
          i=0;
        }
       if(c[i-1]=="#")
          {
            speed_value = (c[1]-48)*100 (c[2]-48)*10 (c[3]-48)*1;
            send_value = map(speed_value,100,255,0,100);
            if(fan_on_flag) analogWrite(3,speed_value);
            Serial.print(speed_value);
            Serial.print("t");
            Serial.println(send_value);
            bt_ser.print("*D");
            bt_ser.print(send_value);
            bt_ser.print("*");
            i=0;
          }          
     }  
 }

Скетч для arduino дабы он работал с модулем bluetooth

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

int val;
int LED = 13;
int LED1 = 11;
void setup()
{
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);
}
void loop()
{
  if (Serial.available())
  {
    val = Serial.read();
    // При символе "1" включаем светодиод 13
    if (val == '1')
    {
      digitalWrite(LED, HIGH);
    }
    // При символе "0" выключаем светодиод 13
    if ( val == '0')
    {
      digitalWrite(LED, LOW);
    }  
    // При символе "2" выключаем светодиод 11    
    if (val == '2')
    {
      digitalWrite(LED1, HIGH);
    }
    // При символе "0" выключаем светодиод 11
    if (val == '3')
    {
      digitalWrite(LED1, LOW);
    }
  }
}


Что касается назначения переменных, у нас есть два светодиода на контактах 11 и 13. Используя Serial.begin(9600), мы подключаем наш Bluetooth. Затем необходимо найти программу, которая может управлять Bluetooth.

Соединяем bluetooth с управляющей платой

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

В программном компоненте нет ничего сложного. При подключении модуль пишет строку типа “CONNECT RE:MO:TE:BT:MA:CC xxx rn”, а при отключении – “DISCONNECT xxx rn”. Роль драйвера заключается в отслеживании потока символов и, если соединение активно, передаче его управляющему приложению.

Соединяем управляющую плату с моторами

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

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

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

Схема в основном функционально проста, один двигатель работает как мотор, второй – как руль (он имеет фиксацию на определенный угол поворота). Для управления каждым двигателем необходимо подать напряжение на соответствующие ножки управления (положительное напряжение, отрицательное напряжение или нулевое напряжение).

Благодаря плавному взаимодействию приложения Android состояние двигателей изменяется при превышении установленного порогового значения.


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

Схема подключения arduino с модулем bluetooth

В первую очередь мы обратим внимание на физическое подключение, а затем на программное обеспечение. Начнем с подключения. Arduino UNO и Bluetooth-модуль HC-06 или 05 должны быть подключены следующим образом. На схеме управляющие цепи не подключены. Так Bluetooth-модуль HC-06 подключается непосредственно к Arduino.

Если у вас есть управляющие выходы 11 и 13, как в нашем случае (см. статью ниже), то они, конечно, будут подключены только к источнику питания или к светодиоду. Важно, чтобы при соединении модулей RX одного устройства передавался на TX другого и наоборот. Помните об этом!

Траблы с заливкой программы в arduino

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

Включение и отключение устройств по Bluetooth с помощью Arduino (видео)

Теперь то же самое на видео…

Требования к оборудованию

Нам нужны некоторые аксессуары:

  1. Arduino Uno
    Включение и отключение устройств по Bluetooth с помощью Arduino (видео)
  2. Реле 5в
    Включение и отключение устройств по Bluetooth с помощью Arduino (видео)
  3. HC-06 Bluetooth модуль
    Включение и отключение устройств по Bluetooth с помощью Arduino (видео)
  4. Любые часы Wear OS
    Включение и отключение устройств по Bluetooth с помощью Arduino (видео)

Удалённое управление

Как и было обещано, он управляется с помощью коммуникатора Android.

В прошлом разработанном нами приложении для Android (которое управляло LEGO Mindstorms NXT через Bluetooth) использовался акселерометр для определения наклона коммуникатора и посылались соответствующие команды на NXT, когда коммуникатор наклонялся. Следовательно, самым простым решением было бы встроить протокол управления машиной в существующее приложение.

Теперь мы можем “летать” на нашей плате, хотя моторы еще не подключены, так что движение будет отображаться через светодиоды, встроенные в плату (видео, к сожалению, нет, это была только фотография), но прогресс все еще есть, и это дает нам надежду.

Управление

Очень важно сначала узнать, как робот будет реагировать на команды. Модуль Bluetooth передает данные на устройство Android (смартфон, планшет) с помощью приложения App Inventor. Предположим, что робот подключен к нашему мобильному приложению через Bluetooth, первое, что нам нужно сделать, это убедиться, что мобильное приложение посылает команды роботу.

Управляем arduino через bluetooth hc-06, с компьютера или смартфона

Устройство с поддержкой Bluetooth позволяет осуществлять беспроводной обмен данными между различными устройствами на небольших расстояниях. Китайские производители разработали ряд Bluetooth-модулей, которые можно использовать для этих целей, самые популярные из них – HC-05 и HC-06. Некоторое время назад я приобрел на Aliexpress HC-06, который я буду использовать для проведения дальнейших экспериментов и подключения к его китайскому аналогу Arduino.

HC-06

Сам модуль Bluetooth. В таком виде он может быть впаян непосредственно на плату различных устройств. Среди 34 выходов имеются: UART-разъемы для подключения к компьютеру, передача звука PCM (импульсно-кодовая модуляция), аналоговые входы и выходы, контактные соединения с USB-разъемом и SPI-интерфейсом, а также общие порты. В действительности не все эти контакты доступны, звуковые выходы (5-8), аналоговые входы и выходы (9, 10), а также разъем USB (15, 20) недоступны.

H C-06 основан на чипе BC417 (BlueCore4-External device), который поддерживает Bluetooth V2.0. Он также оснащен кварцем с частотой 26 МГц и 8 МБ флэш-памяти. Питание осуществляется от напряжения 3,3 В.

HC-06

Для своих конструкций удобнее всего использовать модуль с макетной платой, на которой выведены необходимые контакты для подключений, а так же имеется стабилизатор напряжения, который позволяет питаться от 5 вольт.
При покупки подобных модулей, можете столкнуться с различными их маркировками. По сути это одно и то же устройство, отличающееся прошивкой, которая определяет режим модуля (master / slave).

HC-05

В отличие от HC-06, HC-05 функционирует как ведущий или ведомый. С помощью AT-команд можно установить эти режимы. Кнопка ввода AT-команд расположена на плате модуля. Режим ведущего устройства позволяет модулю самому обнаружить такое устройство и организовать с ним связь. В модуле HC-06 существует только один фиксированный ведомый режим.

Существуют также модели HC-03 и HC-04, но они производятся для промышленного использования.

Обозначение выводов платы HC-06.

HC-06

STATE – проверка состояние модуля. На этом контакте дублируется сигнал, который отображает встроенный на плате светодиод. Если он очень быстро мигает, значит модуль находится в активном состоянии. В режиме установления связи ток составляет 30-40 мА. Когда модуль устанавливает связь с другим устройством, светодиод просто горит. В режиме передачи данных ток составляет 8 мА.
RX – получение данных.
TX – передача данных.
GND – подключается к земле.
5V – питание 5 Вольт
EN –  включение / выключение модуля. Если на этот контакт подать логическую 1 (5 вольт),  модуль выключится, если подать логический 0 или не подключаться к этому контакту, модуль будет работать.

Имя и пин-код по умолчанию для HC-06 – это “HC-06” и “1234”.

Подключите модуль к компьютеру и используйте терминальную программу для ввода AT-команд. Для этого можно использовать адаптер USB – COM с TTL-уровнями. Подойдет адаптер PL2303HX, CH340G или аналогичный. На этом этапе на компьютере уже должен быть установлен драйвер для USB-адаптера.

HC-06 UART

Для подключения контактов можно предпринять следующие шаги:

После подключения сборки к компьютеру красный светодиод на плате модуля Bluetooth начнет быстро мигать. Для ввода AT-команд можно использовать любую терминальную программу; я использую для этого Arduino IDE.

Arduino IDE

Установите номер виртуального COM-порта, подключенного к USB-адаптеру, в моем случае это COM44. Откроется окно Serial Port Monitor.

Arduino IDE

Когда устройство правильно подключено, введите “AT” заглавными буквами, ответом будет “OK”. Скорость связи по умолчанию – 9600 бод.

Чтобы проверить версию прошивки, введите команду “AT VERSION”, в моем случае ответ был “OKlinvorV1.8”.

Вы можете изменить имя нашего Bluetooth модуля (по умолчанию HC-06), набрав “AT NAMEyyy”. Где yuu – произвольные латинские символы. В моем примере я ввел “AT NAMEfox”, ответ был OKsetname.

С помощью команды “AT PINxxxxx”, где “xxx” – набор произвольных цифр, можно изменить пин-код (по умолчанию 1234). Ответом будет “OKsetPIN”.

Команда “AT BAUDx”, где x – значение от 1 до 9, может быть использована для изменения скорости передачи данных (по умолчанию – 9600).

1 – 1200
2 – 2400
3 – 4800
4 – 9600
5 – 19200
6 – 38400
7 – 57600
8 – 115200
9 – 230400

Допустим, если ведём команду «AT BAUD8», где 8 — скорость 115200 бод, в ответ возвратится «OK115200».

Подключение HC-06 к устройству Arduino.

Пример 1. Мы заполним Arduino скетчем, который включает и выключает светодиод, припаянный к выводу 13 Arduino, через модуль Bluetooth.

Arduino led

Если на плате нет этого светодиода, подключите его к контакту 13 схемы, можно использовать любой резистор от 220 Ом до 1 кОм.

Arduino HC-06

Arduino обесточивается, а HC-06 подключается. Вывод RX Arduino подключается к выводу TX модуля (вывод 1 платы UNO), а вывод TX подключается к выводу RX. Источник напряжения 5 В и GND подключается к соответствующим выводам Arduino.

Arduino HC-06

Конструкция собрана. Подав питание на Arduino, вы должны увидеть быстрое мигание светодиода на HC-06.

Использование HC-06 для управления Arduino с помощью компьютера.

Я приведу пример с использованием Windows XP. Любой USB-адаптер Bluetooth должен быть подключен к компьютеру, и драйверы должны быть установлены.

Bluetooth

Я использовал такой переходник.

Bluetooth

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

Bluetooth

Выберите меню “Добавить устройство Bluetooth”, щелкнув правой кнопкой мыши на значке.

Bluetooth

Перед нажатием кнопки “Далее” убедитесь, что флажок “Устройство установлено и готово к обнаружению” установлен.

Bluetooth

Наш модуль Bluetooth появится в списке обнаруженных устройств под новым именем. Выберите его и нажмите Далее.

Bluetooth

Введите пин-код модуля в следующем окне и выберите пункт “Использовать ключ доступа.”. В отличие от значения по умолчанию, я изменил его на “9999”. Нажмите “Далее”.

Bluetooth

Bluetooth успешно подключился к компьютеру, что видно в соответствующем окне. Примечание: При подключении двух устройств Bluetooth на компьютере будут созданы два новых виртуальных COM-порта (которые будут отображаться в диспетчере устройств), один для исходящих данных, другой для входящих. Исходящие данные должны проходить через порт, в данном случае COM45.

Я снова воспользуюсь Arduino IDE, чтобы открыть терминальную программу. В настройках выберите последовательный порт, который будет использоваться для исходящего трафика (у меня COM45) и откройте “Serial Port Monitor”, чередуя команды “1,0”. Когда команда “1”, светодиод загорается, когда команда “0” – гаснет.

Мобильный контроль Arduino через HC-06.

Большинство современных смартфонов уже оснащены Bluetooth. Остается только установить программу-терминал. В частности, я использовал Lumia 640 DS под управлением Windows Mobile 10. В качестве терминальной программы я использую “BT Terminal”. Как программу, вы можете использовать “Bluetooth Terminal” на Android-смартфонах.

Для того чтобы пользователи смартфонов от Apple могли использовать Bluetooth-модули HC-05 и HC-06 (Bluetooth V2.0), им потребуются адаптеры с технологией BLE (Bluetooth low energy), спецификация Bluetooth 4.0. Ярким примером является HM-10.

Bluetooth

Сопрягаем HC-06 с блютузом смартфона.

1. В «Параметрах» смартфона выбираем пункт «Устройства».
2. Далее «Bluetooth и другие устройства».
3. Включаем ползунком блютуз смартфона и нажимаем на «плюс в квадрате» для поиска и добавления нового Bluetooth-устройства, в нашем случае  HC-06.

Bluetooth

4. В разделе «Добавить устройство» выбираем «Bluetooth».
5. Смартфон произведёт поиск Bluetooth-устройств находящихся в округе и отобразит их имена. В моём примере найден модуль HC-06, который я переименовал в «fox».

Bluetooth

6. Необходимо ввести пин-код устройства, которое мы хотим подключить, а затем нажать кнопку “Подключить”.

BT Terminal

Установите и запустите терминальную программу “BT Terminal”. В списке появится модуль HC-06, подключенный к смартфону, выберите его.

BT Terminal

Вы можете вводить команды и отправлять их, нажимая на кнопку. Когда вы попеременно вводите “1” и “0”, светодиод на выводе 13 будет либо загораться, либо гаснуть.

Пример 2. Давайте подключим три светодиода к Arduino и проверим, как модуль HC-06 Bluetooth будет управлять ими.

Arduino leds

Если вы используете другие выводы, вам нужно будет указать их в скетче. Светодиоды подключены к контактам 9, 11 и 13.

int data;
int LED1 = 9;
int LED2 = 11;
int LED3 = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
}
void loop()
{
if (Serial.available())
{
data = Serial.read();
if (data == ‘1’)
{
digitalWrite(LED1, HIGH);
}
if ( data == ‘2’)
{
digitalWrite(LED1, LOW);
}
if (data == ‘3’)
{
digitalWrite(LED2, HIGH);
}
if ( data == ‘4’)
{
digitalWrite(LED2, LOW);
}
if (data == ‘5’)
{
digitalWrite(LED3, HIGH);
}
if ( data == ‘6’)
{
digitalWrite(LED3, LOW);
}
}
}

При заполнении скетча модуль HC-06 должен быть отключен от Arduino, поскольку и компьютер, и Bluetooth используют UART. На одном UART Arduino не может работать с несколькими устройствами.

Попробуйте скетч в действии, запустив программу терминала. Управление светодиодами означает, что есть три светодиода для управления, каждый из которых может быть включен и выключен. Таким образом, вы получаете 6 команд. (1), (3) и (5) включают 1, 2 и 3 светодиода соответственно. 2, 4, 6 – выключить). Вы можете вводить цифры по отдельности или в комбинации. Зажечь первый, погасить второй, а затем зажечь третий.

Пример 3. В статье “Подключение силовой нагрузки к Arduino через релейный модуль” мы подключили релейный модуль к Arduino. Давайте подключим релейный модуль к Arduino и протестируем управление нагрузкой через Bluetooth. У нас получится так называемая “умная розетка”. Релейные модули способны управлять различными нагрузками (лампочки, насосы, вентиляторы).

Arduino smart house

Этот пример будет проиллюстрирован ниже.

Установка apk в wear os

Загрузите файл apk для приложения smartwatch.

Если вы хотите установить приложение на smartwatch с помощью ADB через Wi-Fi, выполните следующие шаги:

Шаг 2. как это работает

Обычно мы выполняем этот шаг в самом конце, но чтобы вы понимали, куда мы движемся, посмотрите на этот промежуточный шаг. Мы также подготовили видеоурок по этим шагам.

Шаг 5. как происходит процесс

Модуль HC 05/06 работает через последовательный канал связи. Приложение Android последовательно отправляет данные на модуль Bluetooth при нажатии определенной клавиши. Bluetooth на другом конце принимает данные и отправляет их на Arduino через TX-соединение модуля Bluetooth (RX-соединение Arduino).

В плату загружен код Arduino для проверки полученных данных и их сравнения. При получении “1” светодиод включится, а при получении “0” – выключится. Наблюдайте за полученными данными с помощью монитора последовательного порта.

Электроника


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

То, что я использую как шасси, выглядит следующим образом:

MotorShield для Arduino позволяет управлять мотор-редукторами, установленными на нашем шасси. Он не будет работать, если вы подключите мотор-редукторы непосредственно к плате Arduino. Поскольку такие моторы потребляют не менее 80 мА, максимальный ток, который может обеспечить порт или контакт Arduino, составляет 30 мА.

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

Используя L293D, можно одновременно управлять двумя коллекторными двигателями. На плате имеется два таких драйвера, а именно: всего можно управлять до 4 коллекторных двигателей. Драйвер позволяет задавать направление вращения и скорость вращения для каждого двигателя.

Подобный экран предназначен для установки на некоторые платы Arduino, такие как Uno или Mega. Вы можете использовать контакты Arduino, припаяв сверху штекер PLS.

Он устанавливается на Arduino следующим образом:


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

Этапы создания панели в bluetooth electronics:

  1. Выберите зеленую кнопку. Затем перейдите в правый угол экрана и отредактируйте свойства кнопки следующим образом:
  • Press Text : N
  • Release Text :
  1. Выберите мелкий или средний размер шрифта и наберите “Двигатель работает”.
  2. Выберите красную кнопку и измените ее свойства следующим образом:
  • Press Text : F
  • Release Text :
  1. Выберите мелкий или средний размер шрифта и введите “Engine stopped”.
  2. Выберите самый большой курсор в параметрах курсора и измените его свойства следующим образом:
  • Минимальное значение : 100
  • Максимальное значение : 255
  • Выберите “Отправлять при изменении ползунка”
  • Строка начинается с : *
  • Строка заканчивается : #
  1. Перейдите к параметрам индикатора и выберите аналоговый циферблат. Отредактируйте его свойства следующим образом:
  • Символ усиления : D
  • Min текст : 0
  • Max текст : 100
  • Min значение : 0
  • Max значение : 100
  • Все остальные значения оставлены по умолчанию
  1. Напишите все остальные тексты, такие как “min”, “max”, “обороты двигателя”, “спидометр” и т.д.

Вот и все! Приложение для Android готово к управлению оборотами двигателя.

Смотрите про коптеры:  Изготовление гусеницы для вездехода своими руками
Оцените статью
Радиокоптер.ру
Добавить комментарий