Лабораторная работа 20. Управление по bluetooth
Цель работы:
Знакомство с принципом передачи данных по Bluetooth-каналу, а так- же применение полученных знаний и навыков для работы с платформами по Bluetooth-каналу с помощью Bluetooth-модуля.
Теоретическая часть
Bluetooth — производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN). Bluetooth обеспечивает обмен информацией между такими устройствами, как персональные компьютеры, мобильные телефоны, гарнитуры и между другой техникой на надёжной, бесплатной, повсеместно доступной радиочастоте для ближней связи. Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10 м друг от друга (дальность сильно зависит от преград и помех), даже в разных помещениях.
Принцип действия основан на использовании радиоволн. Радиосвязь по протоколу Bluetooth осуществляется в ISM-диапазоне, который используется в различных бытовых приборах и беспроводных сетях. В Bluetooth применяется метод расширения спектра со скачкообразной перестройкой частоты (англ. Frequency Hopping Spread Spectrum, FHSS). Метод FHSS прост в реализации, обеспечивает устойчивость к широкополосным помехам, а применяемое оборудование имеет невысокую цену.
Согласно алгоритму FHSS, в Bluetooth несущая частота сигнала скачкообразно меняется 1600 раз в секунду. Последовательность переключения между частотами для каждого соединения является псевдослучайной и известна только передатчику и приёмнику, которые каждые 625 мкс синхронно перестраиваются с одной несущей частоты на другую. Таким образом, если рядом работают несколько пар приёмник-передатчик, то они не мешают друг другу. Этот алгоритм является также составной частью системы защиты конфиденциальности передаваемой информации: переход происходит по псевдослучайному алгоритму и определяется отдельно для каждого соединения. При передаче цифровых данных и аудиосигнала (64 кбит/с в обоих направлениях) используются различные схемы кодирования: аудиосигнал, как правило, не повторяется, а цифровые данные, в случае утери пакета информации, будут переданы повторно.
Протокол Bluetooth поддерживает не только соединение «point-to- point», но и соединение «point-to-multipoint».
Point-to-Point Protocol (рус. «Точка-точка» протокол) (PPP) — двухточеч- ный протокол канального уровня. Обычно используется для установле- ния прямой связи между двумя узлами сети, причём он может обеспе- чить аутентификацию соединения, шифрование и сжатие данных.
Point-to-Multipoint Protocol (рус. «Точка-многоточка» протокол) — это особый тип соединения, при котором осуществляется подключение вида «один-многим», предоставляя набор соединений от одного абонента с множеством других.
Bluetooth в Arduino позволяет объединять различные устройства по беспроводному каналу связи. Можно передавать сообщения от датчиков и контроллеров Arduino на Android устройства и наоборот, получать команды со смартфонов по Bluetooth, например, контролировать состояния датчиков и изменять параметры системы без перезагрузки контроллера или управлять роботами, созданными на базе Arduino-микроконтролле- ра, используя Bluetooth со смартфона.
Нередко в проектах возникает необходимость дистанционного управления или передачи данных с телефона или другого устройства. Одним из самых популярных и удобных способов является обмен данных через Bluetooth. Для связи Arduino-микроконтроллера и компьютера используется интерфейс UART (Serial). Так как любая плата Arduino имеет хотя бы 1 последовательный порт UART, для подключения Bluetooth модуля не требуются специализированные библиотеки и схемы.
Самыми популярными модулями являются устройства на основе чипа BC417 (Рисунок 20.1). Эта серия называется HC. Модули HC-05 и HC-06 могут быть и сервером соединения, и клиентом, они обладают широким набором АТ команд.
Рисунок 20.1. Внешний вид модуля HC-05
Для подключения к ПК потребуются модуль Bluetooth, Arduino-микроконтроллер, соединительные провода и компьютер. Скетч для управления микроконтроллером через смартфон и компьютер будет одинаковым, так как в обоих случаях данные в микроконтроллер буду поступать по протоколу UART.
Практическая часть
В данной лабораторной работе необходимо разработать программу, которая будет осуществлять работу платформы по Bluetooth каналу с помощью Bluetooth-модуля.
Замечание: Если Bluetooth-модуль подключен к UART0 контроллера, то при загрузке скетча нужно отключить Bluetooth-модуль, иначе будет появляться ошибка доступа к микроконтроллеру. Также нужно установить на смартфон или планшет, поддерживающий ОС Android, приложение для отправки данных на модуль. После установки приложения на устройство, нужно загрузить управляющую программу и подключить модуль к плате Arduino.
Схема подключения:
К данной рабочей программе используется следующая схема подключения (Рисунок 20.2). Для реализации проекта потребуются следующие компоненты: макетная плата (1 шт), светодиод (1 шт), резистор на 220 Ом (1 шт), Bluetooth-модуль (1 шт) и провода.
Рисунок 20.2. Схема подключения Bluetooth модуля к UART1 контроллера
После сборки схема имеет следующий вид (Рисунок 20.3):
Рисунок 20.3. Внешний вид схемы после сборки
Рабочая программа:
#define led_pin 12
// Объявление переменной val, в которую будет
// записано значение с bluetooth модуля
int val;
void setup()
{
Serial1.begin(9600);
pinMode(led_pin, OUTPUT);
}
void loop()
{
// Проверка поданных команд
if (Serial1.available())
{
val = Serial1.read();
// При значении «1» включается светодиод if (val == ‘1’)
{
digitalWrite(led_pin, HIGH);
}
if (val == ‘0’)
{
digitalWrite(led_pin, LOW);
}
}
}
Список дополнительных вопросов:
- Для чего нужен Bluetooth канал на контроллере?
- Какой интерфейс используется для связи контроллера и компьютера?
- Какие существуют Bluetooth модули?
- В чём особенность Bluetooth соединения?
- Как он работает?
- В каком диапазоне работает Bluetooth связь?
- Какой метод работы применяется в Bluetooth связи? Как он работает?
- Что такое point-to-point и point-to-multipoint протоколы?
Список дополнительных задач:
- Изменить программу так, чтобы передавать с устройства по Bluetooth значение яркости светодиода в процентах от максимальной.
- Подключить LCD экран и изменить программу так, чтобы информацию с устройства можно было по Bluetooth каналу переводить на LCD.
Center-nav