Оглавление
- 2Схема подключенияbluetooth-модуля к Arduino
- Работа проекта
- 1Описание модуля bluetooth HC-06
- Демонстрация работы
- 2Схема подключенияbluetooth-модуля к Arduino
- Подключение и настройка
- 4Сопряжение с bluetooth-устройством
- Схема подключения
- Схема и распиновка Bluetooth модуля
- Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android
- Настройка Bluetooth модуля HC-05/06
- 3Скетч для Arduinoдля работы по bluetooth
- Arduino Bluetooth Controller (HM-10 Module) – приложение на Android
- Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android
- 3Скетч для Arduinoдля работы по bluetooth
- Скетч
- Характеристики
- Часть 1. Соединение с компьютером (WIN7)
- Şimdi Daha Kolay Şekilde Android Telefon Üzerinden Bluetooth Modülü İle RGB LED Kontrolü Uygulamasını Yapalım
- Bluetooth модуль HC05
- Программа Bluetooth RC Car — управление роботом-машинкой со смартфона на Android
- Часть 1. Соединение с компьютером (WIN7)
- Заключение
2Схема подключенияbluetooth-модуля к Arduino
Подключим bluetooth модуль к Arduino по приведённой схеме
Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот
Схема подключения модуля bluetooth к Arduino
На выводе Status появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий – когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT) и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере.
В результате должно получиться примерно как на фотографии.
Bluetooth модуль подключён к Arduino
Работа проекта
Шаг 1. Соберите схему, приведенную на рисунке выше. Перед загрузкой кода программы в плату Arduino отсоедините контакты Rx и Tx. После загрузки программы снова их подсоедините.
Шаг 2. Скачайте по приведенной в начале статье ссылки приложение для смартфона под названием “Arduino Bluetooth Voice Controller”. Либо вы непосредственно можете скачать его со своего смартфона по его названию.
Шаг 3. Запустите скачанное приложение, у вас на смартфоне появится его экран, показанный на приведенном ниже рисунке. Кликните на “connect to Bluetooth device” (соединиться с Bluetooth устройством), выберите после этого свой Bluetooth модуль и затем проверьте подсоединился ли он к приложению или нет. Затем кликните на иконку микрофона и после этого вы можете передавать голосовые команды Bluetooth модулю HC-06.
Примечание: когда вы будете подключаться к Bluetooth модулю HC-06 в первый вам необходимо будет ввести пароль для подключения к модулю – используйте в качестве пароля 0000 или 1234.
Шаг 4. Передавая голосовые команды Bluetooth модулю HC-06, который затем транслирует их по последовательному порту связи плате Arduino, которая выполняет принятую команду по включению/выключению светодиодов. Список реализованных в программе команд и действия, которые при их поступлении следует выполнить, представлен в следующей таблице.
№ п/п | Команда | Действие |
1 | all LED turn on | включить оба светодиода |
2 | all LED turn off | выключить оба светодиода |
3 | turn on Red LED | включить красный светодиод |
4 | turn on green LED | включить зеленый светодиод |
5 | turn off red LED | выключить красный светодиод |
6 | turn off green LED | выключить зеленый светодиод |
Аналогичным образом, изменяя код программы, вы можете добавить в этот проект любые другие команды и, соответственно, добавить в схему любые другие устройства (электрическая лампочка, телевизор, кондиционер и т.д.), которыми вы хотите управлять с помощью голоса.
1Описание модуля bluetooth HC-06
Данный модуль работает на частоте от 2,40 ГГц до 2,48 ГГц и поддерживает спецификацию bluetooth версии 2.1+EDR: пониженное потребление энергии, повышенный уровень защиты данных и лёгкое соединение Bluetooth-устройств. Устойчивый приём с модулем гарантирован в пределах 10 метров.
Назначение выводов bluetooth-модуля HC-06
Назначение выводов bluetooth-модуля такое:
Вывод | Назначение |
---|---|
VCC и GND | «плюс» и «минус» питания модуля, поддерживаются напряжения от 3,6 до 6 вольт; |
TX и RX | передатчик и приёмник модуля; |
MCU-INT (Status, State) | вывод статуса; |
Clear (Reset) | сброс и перезапуск модуля, в данном случае осуществляется низким логическим уровнем. |
Последние два вывода могут быть не задействованы; часто можно встретить модули вообще без этих выводов.
Демонстрация работы
В следующий раз я планирую подключить к роботу ультразвуковой дальномер и реализовать алгоритм объезда препятствий.
Очень часто в ваших проектах возникает необходимость в дистанционном управлении или передачи данных с ваших телефонных гаджетов.
Один из самых популярных и распространенных методов обмена данными посредством Bluetooth.
Сегодня мы разберем простые примеры как можно подключить Bluetooth модуль к Arduino и настроить дистанционное управление с телефона.
Нам понадобится:
- Набор проводов ПАПА-МАМА
- HC-06 Bluetooth
Подключать Bluetooth модуль к микроконтроллеру Arduino удобнее всего с помощью проводков ПАПА-МАМА .
Arduino | Bluetooth |
---|---|
Pin 1 (TX) | RXD |
Pin 0 (RX) | TXD |
GND | GND |
5V | VCC |
Будьте внимательны, подключать подключать нужно TX
-> RXD
,RX
-> TXD
.
Теперь необходимо записать пробный код программы:
Во время загрузки скетча необходимо что бы Bluetooth модуль был отключен от микроконтроллера arduino. В противном случае скетч не запишется, потому что связь с Bluetooth модулем происходит по одному и томуже порту RX и TX, что и USB.
Int val;
int LED = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
// При символе «1» включаем светодиод
if (val == «1»)
{
digitalWrite(LED, HIGH);
}
// При символе «0» выключаем светодиод
if (val == «0»)
{
digitalWrite(LED, LOW);
}
}
}
После того как скетч записан и Bluetooth модуль подключен к Arduino, можно перейти к следующему шагу.
Подключение Bluetooth к телефону
Желательно в качестве источника питания для arduino использовать не USB, а внешний Блок питания на 9 В.
- Включаем Bluetooth на телефоне и ищем новые устройства
- Находим в списке расстройств «HC-06″
и подключаемся к нему. - Телефон спросит пин-код. необходимо ввести «1234
» или «0000
« - Ура. Устройство подключено.
Теперь нужно скачать bluetooth terminal на ваш телефон. Мы рассмотрим на примере платформы Android.
Вы можете установить разные bluetooth терминалы, как правило они отличаются только разными дизайнами, функционал от этого не меняется. Так же можно найти и терминал и для продуктов ios.
После того как мы установили терминал, запускаем его выбираем наш bluetooth модуль HC-06 и подключаемся к нему.
Пришло время попробовать проект в деле. Пишем в терминале цифру «0» и отправляем. Светодиод L который находится на плате arduino рядом с pin 13, должен погаснуть. Теперь отправим через терминал цифру «1» и светодиод L должен зажечься.
Демонстрация работы:
Домашняя работа:
- Изменить скетч так, что бы светодиод зажигался и потухал с помощью одной и той же команды например «G».
- Дописать скетч и научить его преобразовывать текстовые данные приходящие через блютус в цифровые и реализовать димер, зажигать светодиод с помощью ШИМ, на заданную яркость от 0 до 254 приходящую через bluetooth.
Вам необходимо дистанционно управлять вашей Arduino платой, обмениваться данными с другими bluetooth устройствами? Блютуз модули HC-05, HC06 помогут справиться с этой задачей.
В первой части статьи мы расскажем о том, как установить беспроводное соединение между Arduino и компьютером, а во второй части как установить соединение между Arduino и телефоном на платформе Android. .
Данная статья будет составной частью в дальнейшей сборке дистанционно управляемой машинки.
Компоненты для повторения (купить в Китае):
Модули HC-05/06 представляют из себя голые блютузы с дополнительной обвязкой.
А именно: установлены на подложку, на которой расположен стабилизатор с 5 на 3.3Вольта, светодиод, указывающий на состояние модуля (образовано соединение или нет), и конденсаторы на линиях питания. Также на плате установлен mosfet транзистор (Q1), который при надобности может разрывать цепь питания блютуза, тем самым отключая его, но в нашем обзоре это задействовано не будет.
С лицевой стороны модуль выглядит вот так
2Схема подключенияbluetooth-модуля к Arduino
Подключим bluetooth модуль к Arduino по приведённой схеме
Обратите внимание, что передатчик (Tx) Ардуино подключается к приёмнику (Rx) модуля, и наоборот
Схема подключения модуля bluetooth к Arduino
На выводе Status появляется высокий уровень, когда модуль сопряжён с другим bluetooth устройством, и низкий – когда не сопряжён. Можно считывать его значение, подключив к пину Arduino и назначив ему режим работы pinMode(pinStatus, INPUT) и таким образом узнавать состояние модуля. Но не на всех модулях индикатор статуса работает корректно, поэтому мы не будем его использовать в данном примере.
В результате должно получиться примерно как на фотографии.
Bluetooth модуль подключён к Arduino
Подключение и настройка
Bluetooth-модуль общается с управляющей платой по протоколу UART. Дополнительный сигнальный пин служит для перевода модуля в режим AT-команд.
Для работы с модулем удобно использовать Troyka Shield.
Если хотите избавиться от проводов —
возьмите Troyka Slot Shield.
SoftwareSerial
Некоторые платы Arduino прошиваются через пины 0 и 1 (Uno, Mega 2560, ADK и Iskra Mini). Перед прошивкой таких плат отключите Bluetooth-модуль от пинов RX и TX. Если необходимо одновременно работать с Bluetooth и подключать контроллер к компьютеру, подключите пины TX и RX к другим контактам управляющей платы.
Для примера подключим управляющие пины Bluetooth-модуля и — на и пин Arduino через Troyka Shield.
После включения Bluetooth HС-05 на нём замигает светодиод .
Bluetooth-модуль работает в двух режимах: «прозрачного UART» и управления AT-командами. В первом случае всё предельно просто — включаете модуль, подключаетесь к нему с компьютера или иного устройства и шлёте на этот порт данные. Второй режим предназначен для настройки модуля.
Режим AT-команд
Чтобы получить доступ к настройке модуля, его необходимо перевести в режим приёма AT-команд. Для входа в этот режим можно воспользоваться двумя методами:
Первый метод:
- Отключаем модуль от питания.
- Подаем на пин высокий уровень.
- Включаем модуль.
В этом варианте скорость обмена с модулем устанавливается в бод.
Второй метод
- Включаем модуль.
- Подаем на пин высокий уровень.
В этом случае скорость обмена с модулем будет равна скорости, установленной настройками. По умолчанию — 9600 бод.
После успешного перехода в режим AT-команд, светодиод начнет мигать раз в две секунды.
Bluetooth-модуль может работать в 3-х режимах:
- Master — в этом режиме модуль сам инициирует подключение к какому-нибудь Bluetooth-девайсу.
- Slave — самый распространённый режим. С ним мы можем подключиться к модулю сами. Например с телефона.
- Slave-loop — здесь модуль отправляет обратно все байты, которые ему прислали.
4Сопряжение с bluetooth-устройством
Теперь нужно добавить bluetooth-устройство в список доверенных устройств. Включаем Bluetooth на компьютере, идём в Параметры Устройства Bluetooth.
Если в области уведомлений при включении bluetooth на компьютере появилась иконка bluetooth, то можно кликнуть по ней правой кнопкой мыши и выбрать пункт Добавление устройства Bluetooth:
Добавление устройства Bluetooth
Убеждаемся, что наш bluetooth-модуль виден компьютеру. Выбираем его из списка и нажимаем кнопку Связать. В диалоговое окно вводим пароль по умолчанию 1234. При успешном добавлении устройство появится в списке с пометкой Сопряжено.
Сопряжение с bluetooth-устройством
Пароль по умолчанию для конкретного модуля может отличаться от «1234». Эту информацию должен предоставить изготовитель (продавец) модуля.
Если вы хотите подключиться к вашему модулю bluetooth со смартфона, то порядок действий аналогичный: включить bluetooth на смартфоне, обнаружить модуль, подключённый к Arduino, выполнить сопряжение с ним.
Схема подключения
Питание платы берётся от «Кроны» и подаётся на Arduino через пины VIN и GND. Также подаётся отдельно на драйвер двигателей через порты +12V и GND.
Blutooth модуль HC-06 получает питание в 3,3 вольта от Arduino. Если подключить к 5 вольтам, то тоже работает нормально. Выход RX модуля подключается к TX на Arduino, а TX — в RX, то есть наоборот.
На драйвере двигателей нужно снять две боковые перемычки — Enable. Пины под ними позволят нам управлять скоростью вращения двигателей. И эти пины подключаются к Arduino обязательно к ШИМ-портам (обозначенные знаком ~). На схеме это порты 3 и 5.
Питание моторов подаётся на Input драйвера от Arduino с портов 2 и 4, 6 и 7. А сами моторы подключаются к Output A и Output B драйвера.
Если после сборки и прошивки, вы подаёте на машинку сигнал двигаться вперёд, а оба колеса при этом вращаются в разных направления, то нужно поменять местами провода на одном из моторов в выходе Output.
Если при движении вперёд машинка едет назад, то нужно поменять местами провода Output обоих двигателей (хотя, кто знает, где у ней перед, а где зад…).
Если при повороте налево, машинка едет направо, то нужно поменять местами Output A и Output B.
Если подключить всё по схеме, то скетч переделывать не нужно будет.
Схема и распиновка Bluetooth модуля
HC05/06 Bluetooth модуль распиновка, схема
Для настройки модуля необходимо подключить к нему питание от 3,3 Вольт, кроме того необходимо подать 3,3 Вольта на порт 34 (см. фото выше). Прошивка осуществляется по последовательному порту, так как аппаратный последовательный порт у Ардуино (порты TX и RX) будет занят для отправки AT-команд с компьютера, то мы используем программный последовательный порт с помощью библиотеки SoftwareSerial.h.
Данная библиотека позволяет реализовать программный последовательный порт на любых цифровых выходах Ардуино. Для настройки Bluetooth модуля его следует перевести в режим отладки — необходимо подключить вывод 34 к 3,3 Вольтам, питание модуля при прошивке тоже идет от 3,3 Вольт. В качестве контактов программного последовательного порта будем использовать цифровые выводы 2 и 3 на Arduino UNO.
Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android
В своём скетче я реализовал следующие функции:
- Движение вперед
- Движение назад
- Разворот влево
- Разворот вправо
- Плавный поворот влево при движении вперед
- Плавный поворот вправо при движении вперед
- Плавный поворот влево при движении назад
- Плавный поворот вправо при движении назад
- Остановка
- Установка скорости 0%
- Установка скорости 10%
- Установка скорости 20%
- Установка скорости 30%
- Установка скорости 40%
- Установка скорости 50%
- Установка скорости 60%
- Установка скорости 70%
- Установка скорости 80%
- Установка скорости 90%
- Установка скорости 100%
В скетче использовал функции, чтобы не дублировать код при схожих событиях.
Настройка Bluetooth модуля HC-05/06
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- Bluetooth модуль HC-05/06;
- провода «папа-папа» и «папа-мама».
Настройка Bluetooth модуля с помощью AT-команд
Скетч для прошивки блютуз модуля Arduino
#include <SoftwareSerial.h> // подключаем библиотеку SoftwareSerial mySerial(2,3); // указываем пины tx и rx void setup() { pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); // включаем hardware-порт mySerial.begin(38400); // включаем software-порт Serial.println("start setting"); } 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-порт } }
Пояснения к коду:
В программе все предельно просто: при получении данных на аппаратном (встроенном) последовательном порту, данные отправляются в программный последовательный порт (на модуль). А при получении данных с модуля, они отправляются на аппаратный последовательный порт, то есть на монитор порта.
Настройка модуля через монитор порта Arduino IDE
Итак, чтобы изменить код доступа к Bluetooth-модулю, имя или другие характеристики, следует отправить следующие команды через монитор последовательного порта Arduino IDE (смотри скрин ниже). Также приведем пошаговую инструкцию, какие необходимо использовать AT команды для перепрошивки HC-05. А в конце статьи размещена более полная таблица at команд с небольшими пояснениями.
- узнаем версию прошивки модуля: AT+VERSION?
- узнаем режим работы модуля: AT+ROLE?
- узнаем имя Bluetooth-модуля: AT+NAME?
- задаем новое имя модуля: AT+NAME=ROBOT
- узнаем имя Bluetooth-модуля: AT+NAME?
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
- задаем новый пин-код доступа: AT+PSWD=0000
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
Обратите внимание, что при настройке модуля, в мониторе последовательного порта IDE Arduino следует выбрать пункт «NL & CR». После программирования модуля отсоедините вывод 34 от 3,3 Вольт и подключитесь к Bluetooth-модулю с телефона или планшета
Если при первом подключении блютуз модуля к Ардуино, у нас были стандартные настройки, то сейчас наш модуль имеет свое имя и новый пин-код.
Настройка bluetooth модуля на Android
Таким образом, мы можем использовать в одном месте сразу несколько bluetooth модулей, а чтобы не запутаться присвоить каждому свое уникальное имя. Также мы можем задать новый пин-код, чтобы защитить модуль от постороннего вмешательства. С помощью данной настройки модуля НС-05/06 мы можем получать данные с датчиков не только на мониторе порта, но и на любом Android — устройстве.
AT | OK | Тестовая команда |
AT+VERSION? | +VERSION: … | Узнать версию прошивки модуля |
AT+RESET | OK | Сброс настроек |
AT+ADDR? | +ADDR: … | Узнать адрес модуля |
AT+NAME? | +NAME:«name» | Узнать имя модуля, где «name» — имя Bluetooth-модуля |
AT+NAME=«name» | OK | Установить новое имя, где «name» — имя Bluetooth-модуля |
AT+PSWD? | + PSWD:«pin» | Узнать код доступа, где «pin» — код, по умолчанию 1234 |
AT+PSWD=«pin» | «pin» OK |
Установить новый код доступа к модулю, где «pin» — код доступа к Bluetooth-модулю |
AT+ROLE? | +ROLE:«param» | Узнать режим работы модуля, где «param» — режим: 0 — slave. К модулю может подключиться мастер; 1 — master. Модуль сам подключается к устройству. |
AT+ROLE=«param» | OK | Установить режим работы модуля, где «param» — режим |
3Скетч для Arduinoдля работы по bluetooth
Напишем такой скетч и загрузим в память Arduino:
const int ledPin = 13; // вывод встроенного светодиода char incomingbyte; // переменная для данных Bluetooth void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { // если порт доступен incomingbyte = Serial.read(); // считываем с порта данные switch(incomingbyte) { case '1': // если приходит "1" digitalWrite(ledPin, HIGH); // break; case '0': // если приходит "0" digitalWrite(ledPin, LOW); // break; } } }
Включаем собранную схему с Arduino и подключённым к нему bluetooth-модулем. Правильно подключённый модуль сразу входит в режим ожидания подключения, о чём будет свидетельствовать ритмично мигающий светодиод статуса.
Arduino Bluetooth Controller (HM-10 Module) – приложение на Android
Arduino Bluetooth Controller (HM-10 Module) представляет собой приложение для операционной системы Android, которое можно бесплатно скачать из Google Play Store. Это приложение обеспечивает простой и интуитивно понятный интерфейс для взаимодействия с Bluetooth модулем HM-10. В этом приложении можно создавать собственные кнопки и кастомизировать вид этого приложения под свои нужды. Мы создали в нем две кнопки для управления светодиодом, подключенным к плате Arduino.
Вначале скачайте это приложение из Google Play Store по этой ссылке (или можете сразу скачать его с помощью своего смартфона).
На главной странице этого приложения доступны такие функции как connect Device (подсоединить устройство), Search Icon (найти иконку), Delete Icon (удалить иконку), Device Status (состояние устройства), Send Text (передать текст), Add Template (добавить шаблон) и другие. Начните работу в этом приложении с поиска устройства – это можно сделать либо с помощью функции Search Icon, либо кликнув по трем точкам в верхнем правом углу приложения и выбрав connect Device.
После этого на экране приложения вы увидите все доступные для подключения устройства. Выберите среди них модуль HM-10.
После этого модуль HM-10 будет успешно подключен к вашему приложению и вы сможете видеть его состояние вверху экрана.
После этого вы сможете передать текст (строку) в модуль либо непосредственно из поля передачи текста, либо при помощи создания собственного (пользовательского) шаблона.
Для создания нового пользовательского шаблона (custom template) нажмите на иконку “+” в правом верхнем углу и после этого заполните необходимые параметры шаблона. “Name” – это будет название кнопки, поле “Text” будет использоваться для передачи текста (строки) на модуль HM-10, а “Description” – это будет описание кнопки.
Мы в нашем проекте создадим кнопку зеленого цвета для включения светодиода (LED ON). При нажатии этой кнопки на модуль HM-10 будет передаваться символ “N”, что будет приводить к включению светодиода, подключенного к плате Arduino. Аналогичным образом создадим кнопку красного цвета для выключения светодиода (LED OFF) – при ее нажатии на модуль HM-10 будет передаваться символ “F”.
После этого вы сможете увидеть в приложении две созданные вами кнопки – с их помощью вы сможете управлять светодиодом, подключенным к плате Arduino.
Скетч для управления роботом на Arduino по Bluetooth через смартфон на Android
В своём скетче я реализовал следующие функции:
- Движение вперед
- Движение назад
- Разворот влево
- Разворот вправо
- Плавный поворот влево при движении вперед
- Плавный поворот вправо при движении вперед
- Плавный поворот влево при движении назад
- Плавный поворот вправо при движении назад
- Остановка
Установка скорости 0%
Установка скорости 10%
Установка скорости 20%
Установка скорости 30%
Установка скорости 40%
Установка скорости 50%
Установка скорости 60%
Установка скорости 70%
Установка скорости 80%
Установка скорости 90%
Установка скорости 100%
В скетче использовал функции, чтобы не дублировать код при схожих событиях.
3Скетч для Arduinoдля работы по bluetooth
Напишем такой скетч и загрузим в память Arduino:
const int ledPin = 13; // вывод встроенного светодиода char incomingbyte; // переменная для данных Bluetooth void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { // если порт доступен incomingbyte = Serial.read(); // считываем с порта данные switch(incomingbyte) { case '1': // если приходит "1" digitalWrite(ledPin, HIGH); // break; case '0': // если приходит "0" digitalWrite(ledPin, LOW); // break; } } }
Включаем собранную схему с Arduino и подключённым к нему bluetooth-модулем. Правильно подключённый модуль сразу входит в режим ожидания подключения, о чём будет свидетельствовать ритмично мигающий светодиод статуса.
Скетч
Перед прошивкой обаятельно отключите питание у Blutooth модуля. Для этого надо просто отсоединить один из его проводов питания.
В скетче прописанные необходимые поясняющие комментарии.
Движение и остановка колёс осуществляется за счёт функций. А в дальнейшем нужные комбинации функций просто вызываются в нужных местах кода одной строкой. Получается просто и компактный код. Ниже фрагмент кода примером двух таких функций:
void rightWheelForward () { // Правое колесо вперёд. digitalWrite (motorRight1, LOW); digitalWrite (motorRight2, HIGH); analogWrite(enableRight, motorSpeed); } void leftWheelForward () { // Левое колесо вперёд. digitalWrite (motorLeft1, LOW); digitalWrite (motorLeft2, HIGH); analogWrite(enableLeft, motorSpeed); }
Со смартфона приложение по Bluetooth посылает сигналы в виде латинских букв (W, S, E и т.д.). В зависимости от пришедшей команды, с помощью оператора if, вызываются комбинации тех или иных функции. Если вы будете использовать другое приложение, не то, которое я предоставлю ниже, то оно будет посылать другие команды, другие буквы. Соответственно, придётся переписать их в скетче.
Например, когда по Bluetooth приходит ‘ W ‘ вызываются две функции rightWheelForward (); и leftWheelForward (); что заставит оба мотора крутится вперёд.
if (control == 'W') { // Ехать вперёд. rightWheelForward (); leftWheelForward (); }
А если приходит ‘E’, то вызываются функции rightWheelStop (); и leftWheelForward (); что заставит остановиться правый мотор и вращаться вперёд только левый, от чего машинка поведет вперёд вправо.
if (control == 'E') { // Повернуть направо вперёд. rightWheelStop (); leftWheelForward (); }
Есть три вида скорости, которые включаются, когда приходят команды ‘1’, ‘2’ и ‘3’. Скорость можно задавать от 0 до 250. На каждую и трёх команд в скетче прописаны скорости 120, 170 и 250, соответственно.
Если у вас уровень заряда аккумулятора уже на исходе, то при скорости 120 может не поехать или поехать, но не стабильно. Тогда лучше увеличить значение для первой скорости.
Скорость приходит в виде переменной motorSpeed в функцию analogWrite() и запускает двигатель с заданными оборотами.
Характеристики
Давайте подробнее разберёмся, какие характеристики имеет такой bluetooth модуль для ПК и различных проектов. Сами разработчики заявляют, что выдержали коммерческий стандарт в hc 05. Соответственно, для управления устройством будет достаточно специальной программы на смартфоне или компьютере, которая позволит отправлять и получать данные с датчика. Однако существует ограничение в области применения, ведь устойчивый сигнал, без использования усилителей, можно поймать лишь на 9 метрах от чипа
Учитывайте, что это сырые цифры, в которых во внимание не берутся преграды на пути волн
Сами hc чипы полностью совместимы с любыми адаптерами, что поддерживают SPP. На самой плате устройства размещается небольшая антенна, припаянная к верхнему слою в виде дорожки, похожей на змею. Характеристики девайса заявлены следующие:
- Активные частоты радиосвязи находятся в диапазоне 2.4-2.48 ГГц.
- Канал приспособлен к адаптивному переключению.
- Условная дальность связи – 10 метров, но в этой цифре не учитываются преграды и помехи.
- Максимальная скорость при обмене информацией – 115300 бод.
- Хранить чип можно в температурном диапазоне от — 40 до +85 градусов, а вот использовать – от -20 до +70.
- Для работы необходимо будет напряжение в 3.3 В, что мы рассмотрим чуть ниже.
Часть 1. Соединение с компьютером (WIN7)
Если в вашем компьютере нет встроенного блютуза, то можно воспользоваться . Найти его в салонах связи или на радио рынках не составит труда.
После установки драйверов на блютуз можно приступать к работе.
.
Действие 1
Идем в панель управления, щелкаем на иконку блютуза и выбираем «Показать устройства Bluetooth»
Через некоторое время компьютер произведет поиск и вы увидите ваш модуль (У вашего модуля может быть другое имя).
Выбираем второй вариант — «Введите код образования пары устройства»
Для HC-06 этот код 1234
Завершается все такой картиной.
А за ним еще одно
Первый этап настройки завершен
В случае, если вы забудете каким COM портом у вас определился блютуз, это всегда можно посмотреть выполнив следующие действия:
Действия
P.S. Или посмотреть в диспетчере устройств
. Действие 2
Для передачи данных можно использовать любой терминал. Я использовал простой и бесплатный «Termite «.
В качестве примера мы будем изменять состояние встроенного на плату Arduino светодиода «LED 13». Включаться он будет при приеме символа «W», а отключаться при «S». Приведенный ниже скетч нужно залить в плату Arduino. При заливке в плату необходимо отсоединить питание от блютуз модуля
, после заливки снова подсоединить.
пример программного кода:
setup
Serial
loop
Serial
Serial
// При символе «W» включаем светодиод
// При символе «S» выключаем светодиод
Termite
В настройках выбираем наш порт, скорость (9600).
Также модуль можно проверить и без Arduino просто замкнув выводы TX и RX. Termite отправляемые символы отмечает синим цветом, полученные зелеными. Т.е. если при закороченных выводах мы отправили и нам пришло тоже самое — значит что модуль работает исправно. На фото ниже это и продемонстрировано.
Şimdi Daha Kolay Şekilde Android Telefon Üzerinden Bluetooth Modülü İle RGB LED Kontrolü Uygulamasını Yapalım
Arduino ile Bluetooth protokolünün nasıl çalıştığını öğrendik. Şimdi de HC06 modülünü kullanarak RGB LED kontrolü uygulaması yapacağız.
Gerekli Malzemeler:
- Arduino UNO
- Breadboard
- HC06 Bluetooth Modülü
- RGB LED
- 3 adet 330Ω Direnç
- 40 Pin Ayrılabilen Erkek-Erkek Jumper Kablo
Hadi HC06 ile RGB LED kontrol ettiğimiz devremizi kuralım:
Arduino Bluetooth RGB Devresi
Arduino kodumuzu aşağıdaki gibi yazalım:
#include <softwareserial.h> int veri; //Bluetooth üzerinden okuduğumuz değişken. int kirmiziPin = 9; //RGB Ledin kırmızı bacağının takılacağı pin int yesilPin = 10; //RGB Ledin yeşil bacağının takılacağı pin int maviPin = 11; //RGB Ledin mavi bacağının takılacağı pin void setup() { Serial.begin(9600); //Seri haberleşmeyi başlatıyoruz. pinMode(kirmiziPin, OUTPUT); //Kırmızı pinini OUTPUT olarak ayarlıyoruz. pinMode(yesilPin, OUTPUT); //Yeşl pinini OUTPUT olarak ayarlıyoruz. pinMode(maviPin, OUTPUT); //Mavi pinini OUTPUT olarak ayarlıyoruz. } void loop() { if (Serial.available() & gt; 0) { //Seri haberleşmeden veri gelmesini bekliyoruz. veri = Serial.read(); //Seri haberleşmeden gelen veriyi okuyoruz. } if (veri == 'k') { //Seri haberleşmeden k harfi geldiğinde bu kısım çalışır. digitalWrite(kirmiziPin, LOW); digitalWrite(yesilPin, HIGH); digitalWrite(maviPin, HIGH); } else if (veri == 'y') { //Seri haberleşmeden y harfi geldiğinde bu kısım çalışır. digitalWrite(kirmiziPin, HIGH); digitalWrite(yesilPin, LOW); digitalWrite(maviPin, HIGH); } else if (veri == 'm') { //Seri haberleşmeden m harfi geldiğinde bu kısım çalışır. digitalWrite(kirmiziPin, HIGH); digitalWrite(yesilPin, HIGH); digitalWrite(maviPin, LOW); } else { //Seri haberleşmeden tanımlanmayan veri geldiğinde bu kısım çalışır. digitalWrite(kirmiziPin, HIGH); digitalWrite(yesilPin, HIGH); digitalWrite(maviPin, HIGH); } }
Belki de artık arduino ile araba yapabilecek seviyeye gelmişsindir, ne dersin? Denemek ister misin?
Bluetooth модуль HC05
Модуль HC05 представляет собой модуль Bluetooth связи, передающий принятую информацию по последовательному порту, специально спроектированный для осуществления беспроводной связи между микроконтроллерами. Bluetooth модуль HC05 позволяет работать как в режиме ведущего (master), так и в режиме ведомого устройства (slave), и переключаться между этими режимами. Его можно подключить с использованием последовательного порта, работающего со скоростью 9600 бод, что позволяет без проблем подключать его к большинству современных микроконтроллеров. Модуль HC05 работает от питающего напряжения 3.3V, но мы можем непосредственно подключать его к напряжению 5V, поскольку в его составе есть встроенный понижающий регулятор напряжения с 5V до 3.3V.
Программа Bluetooth RC Car — управление роботом-машинкой со смартфона на Android
В свой смартфон я установил программу Bluetooth RC Car. На мой взгляд — это лучшая софтинка для управления роботом-машинкой.
Программа позволяет передавать команды при нажатии на кнопки или реагировать на данные с акселерометра в смартфоне, регулировать скорость движения ползунком, включать передние и задние фонари, включать и выключать звуковой сигнал, включать и выключать сигнал “аварийка”.
Для работы программы требуется Android версии 2.3.3 или выше. Размер программы 3 мегабайта.
Список команд:
- F – вперед
- B – назад
- L – влево
- R – вправо
- G – прямо и влево
- I – прямо и вправо
- H – назад и влево
- J – назад и вправо
- S – стоп
- W – передняя фара включена
- w – передняя фара выключена
- U – задняя фара включена
- u – задняя фара выключена
- V – звуковой сигнал включен
- v – звуковой сигнал выключен
- X – сигнал “аварийка” включен
- x — сигнал “аварийка” выключен
- 0 – скорость движения 0%
- 1 – скорость движения 10%
- 2 – скорость движения 20%
- 3 – скорость движения 30%
- 4 – скорость движения 40%
- 5 – скорость движения 50%
- 6 – скорость движения 60%
- 7 – скорость движения 70%
- 8 – скорость движения 80%
- 9 – скорость движения 90%
- q – скорость движения 100%
Как вы видите, полигон для творчества вполне неплохой. Я бы еще добавил возможность раздельного включения правых и левых фонарей для передних и задних фар.
Жирным я выделил команды, поддержка которых уже реализована в скетче. Остальные я собираюсь использовать по другому назначению.
Принцип передачи команд: при нажатии на кнопку в программе, команда передается по Bluetooth один раз, а при отпускании кнопки сразу передается команда S-остановка.
Часть 1. Соединение с компьютером (WIN7)
Если в вашем компьютере нет встроенного блютуза, то можно воспользоваться . Найти его в салонах связи или на радио рынках не составит труда.
После установки драйверов на блютуз можно приступать к работе.
.
Действие 1
Идем в панель управления, щелкаем на иконку блютуза и выбираем «Показать устройства Bluetooth»
Через некоторое время компьютер произведет поиск и вы увидите ваш модуль (У вашего модуля может быть другое имя).
Выбираем второй вариант — «Введите код образования пары устройства»
Для HC-06 этот код 1234
Завершается все такой картиной.
А за ним еще одно
Первый этап настройки завершен
В случае, если вы забудете каким COM портом у вас определился блютуз, это всегда можно посмотреть выполнив следующие действия:
Действия
P.S. Или посмотреть в диспетчере устройств
. Действие 2
Для передачи данных можно использовать любой терминал. Я использовал простой и бесплатный «Termite «.
В качестве примера мы будем изменять состояние встроенного на плату Arduino светодиода «LED 13». Включаться он будет при приеме символа «W», а отключаться при «S». Приведенный ниже скетч нужно залить в плату Arduino. При заливке в плату необходимо отсоединить питание от блютуз модуля
, после заливки снова подсоединить.
пример программного кода:
setup
Serial
loop
Serial
Serial
// При символе «W» включаем светодиод
// При символе «S» выключаем светодиод
Termite
В настройках выбираем наш порт, скорость (9600).
Также модуль можно проверить и без Arduino просто замкнув выводы TX и RX. Termite отправляемые символы отмечает синим цветом, полученные зелеными. Т.е. если при закороченных выводах мы отправили и нам пришло тоже самое — значит что модуль работает исправно. На фото ниже это и продемонстрировано.
Заключение
В этой статье мы рассмотрели варианты подключения и работы с одними из самых распространенных Ардуино модулей Bluetooth HC05, HC06. Никаких особенных сложностей с этими модулями у вас быть не должно – просто подключайте его к пинам с аппаратным или программным UART, после чего используйте традиционные библиотеки (Serial для модуля, подключенного к 0, 1 пинам, SoftwareSerial в случае присоединения к другим).
Подключение Bluetooth к вашему Arduino-проекту может существенно увеличить ваши возможности по взаимодействию с другими устройствами. Вы сможете контролировать состояния датчиков и изменять параметры системы без перезагрузки контроллера. И. конечно же, вы сможете без проблем создать роботы и машинки на ардуино, управляемые через bluetooth со смартфона. Будем надеяться, что вы сможете сделать свой первый проект после прочтения этой статьи.