Технология Bluetooth, которую начала разрабатывать в 1994 году шведская фирма «Ericsson», первоначально предназначалась не для мобильных устройств, а для монорельсовой дороги с вагончиками. Тем не менее, сейчас многие планшеты поддерживают интерфейс Bluetooth, позволяя обмениваться данными на расстоянии 10-20 м. На практике такая связь обычно осуществляется в режиме «точка-точка», где одной из «точек» вполне может стать MК, дополненный специальным модулем Bluetooth. Особенности подобного соединения и будут рассмотрены в настоящей публикации.
Union royale
Итальянский король Ардуин и датский король Харальд I Синезубый правили в разные века и в разных странах. Но, удивительный факт, судьба свела их вместе в нынешнее время, увековечив в нарицательных названиях популярных электронных устройств.
В частности, от короля Ардуина произошло название микроконтроллерной платформы Arduino, а от «темнозубого» датского правителя – наименование интерфейса Bluetooth, что в переводе с английского обозначает «синий зуб». Логотипом Bluetooth (Fig.51 ) служит фигура, сочетающая в себе две скандинавские руны: Hagall – аналог латинской «Н» и Berkanan – аналог латинской «В».Беспроволочное соединение планшета и Arduino через Bluetooth возможно в пределах помещения или здания. Сфера применения такой системы – управление объектами на расстоянии, а также прием телеметрической информации. В связи с этим рассматриваются 2 задачи:
- во-первых, научиться управлять с планшета различными исполнительными устройствами (реле, светодиодами, оптронами), подключенными к портам Аrduino;
- во-вторых, научиться индицировать на экране планшета параметр с какого-либо датчика (фотодиода, терморезистора, акселерометра), подключенного к Arduino.
Но, прежде чем приступить к практическим экспериментам, надо четко представлять физику процессов и терминологию.
Le principe de fonctionnement
В стандартной системе Bluetooth содержатся два или более приемопередатчика, работающих на частоте 2400…2483 МГц в нелицензируемом диапазоне ISM. Вся полоса частот разбивается на 79 канальных интервала шириной 1 МГц. Передатчик «перепрыгивает» с одной канальной частоты на другую по псевдослучайному закону 1600 раз в секунду. Соответствующим образом подстраивается и приемник на удаленной стороне.
О конкретном законе изменения частоты оба устройства договариваются заранее в начале каждого сеанса. Такая технология называется FHSS (Frequency-Hopping Spread Spectrum). Понять друг друга могут только те устройства, которые настроены на один и тот же псевдослучайный шаблон. Для посторонних приборов передаваемые данные будут обычным шумом.
Спецификация Bluetooth
Под спецификацией в данном случае подразумевается свод рекомендуемых параметров. Разрабатываются спецификации Bluetooth группой фирм «Bluetooth Special Interest Group» (сокращенно «Bluetooth SIG» <http://www.bluetooth.com>), a затем оформляются в виде международных стандартов IEEE 802.15.
La Tableau 12 приведена хронология появления спецификаций Bluetooth. Все они имеют обратную совместимость друг с другом, за исключением абсолютно древних версий 1.0 и 1 .OB. Это означает, например, что изделия со спецификациями v2.0 и v4.0 будут успешно устанавливать связь, но на низкой скорости не более 2,1 Мбит/с и с потерей некоторых функций, характерных для v4.0.
Класс Bluetooth по мощности
Класс устройства определяет потенциальную дальность связи, исходя из выходной мощности передатчика:
- класс 1 – до 100 мВт (+20 дБм), 10-100 м;
- класс 2 – до 2,5 мВт (+4 дБм), 1-10 м;
- класс 3 – до 1 мВт (0 дБм), до 1 м.
Реальные цифры выходной мощности могут отличаться от рекомендуемых. Например, к классу 2 формально относят устройства с мощностью +6…7 дБм, хотя иногда их записывают в неофициальный класс 1,5.
Изделия классов 1 и 3 в основном применяются в промышленном и медицинском оборудовании. Для бытовых нужд чаще используется класс 2.
Важный нюанс. Дальность связи в метрах – величина ориентировочная, округленная для удобства запоминания. Здесь не учитывается чувствительность приемника, которая в современных моделях достигает -95…-99 дБм, что позволяет в 2-8 раз увеличить реальный радиус действия на открытой местности, особенно при низкой скорости передачи информации.
Profil Bluetooth
Каждое Bluetooth-устройство поддерживает определенный набор так называемых профилей. Это стандартизированные алгоритмы для передачи цифровых данных, музыки, поддержки клавиатуры, мыши, принтера, доступа к ISDN и т.д. Перечень профилей позволяет легко определить потенциальные возможности изделия.
Для передачи цифровых данных оба устройства на ближней и дальней стороне должны обязательно поддерживать профиль SPP (Serial Port Profile). В такой системе образуются виртуальные СОМ-порты, через которые стандартными способами принимаются и передаются байты на скорости 1200… 115200 бод и более.
Следует правильно понимать, что профиль SPP относится только к цифровой информации. Воспроизводить музыкальные файлы не получится, поскольку для этого требуются профили HFP/HSP или A2DP (Advanced Audio Distribution Profile). Можно провести аналогию с одинаковым языком общения, которым должны владеть оба собеседника.
Профили, как правило, жестко записываются в память модулей Bluetooth, что позволяет снизить их стоимость. Но в отдельных случаях возможно самостоятельное перепрограммирование функций.
Чип, модуль, адаптер или шилд?
На сегодняшний день в мире насчитывается около 3 миллиардов Bluetooth-устройств. Понятно, что в каждом из них есть своя «сердцевинка», которую обобщенно называют модулем Bluetooth. Правда, под этим термином разные люди понимают разные вещи. Чтобы не запутаться в терминологии, применяют классификацию.
Конструктивно различают:
- чипы Bluetooth;
- модули Bluetooth;
- адаптеры Bluetooth;
- шилды Bluetooth.
Чип Bluetooth – это микросхема в BGA- или LQFP-корпусе, внутри которой находятся: радиотракт, контроллер DSP, ОЗУ, интерфейсные схемы. В более поздних разработках чипы Bluetooth содержат интегрированную Flash-память, аудиокодек и даже FM-радио.
Чип Bluetooth «на коленке» разработать нельзя, требуется научная база. Выпуском чипов занимаются достаточно солидные фирмы, хотя их аналоги уже освоили китайские производители:
- CSR (Cambridge Silicon Radio, Англия) – линейка BlueCore4: ВС41В143А, ВС41С671 А, ВС417143В;
- Broadcom (США) – ZV4301, ВСМ2ххх;
- Texas Instruments (США) – СС2500…СС2567.
Модуль Bluetooth – это узел, собранный на печатной плате, где распаяны: чип Bluetooth, кварцевый резонатор, мелкие резисторы и конденсаторы, полосковая антенна, металлический экран (может отсутствовать), микросхема Flash-памяти (может отсутствовать). Края печатной платы содержат перфорированные отверстия, залитые припоем, что делает их похожими на почтовые марки (Fig.52).Изготавливают модули Bluetooth на автоматизированных линиях, приспособленных к пайке шарикообразных выводов микросхем. Известные фирмы:
- Bluegiga Technologies (Финляндия) – WT11, WT12, WT32, BLEIxx;
- LM Technologies (Англия) – LM07x, LM400, LM780;
- Sena Technologies, Inc (Корея) – Parani-BCD100/110/210;
- Guangzhou HC Information Technology Co. (Китай)-HCxx (Tableau 13);
- JNHuaMao Technology (Китай) – HMxx (Tableau 14).
Адаптер Bluetooth – это узел, состоящий из модуля Bluetooth, элементов индикации, сопряжения, коммутации, питания. Конструктивное исполнение может быть бескорпусное на плате (ris.53) или в защитном корпусе (Fig.54).
Отличительной особенностью адаптеров являются разъемы, через которые подводятся необходимые интерфейсные сигналы. Это главное визуальное отличие их от модулей Bluetooth.
Шилд Bluetooth – это специализированный адаптер Bluetooth, «заточенный» под посадочное место конкретного микроконтроллерного изделия. Повышенный интерес для радиолюбителей представляют шилды, устанавливаемые в контактные гнезда Arduino (Fig.55).
Le choix de la base d'élément
Первые эксперименты с интерфейсом Bluetooth желательно проводить на такой аппаратуре, чтобы риск получения отрицательного результата был минимальным. Дело новое, интерфейс известен лишь понаслышке, тонкости не изучены, поэтому надо быть уверенным в исправности «железа» и отсутствии подводных «электрических» камней.
Чип Bluetooth запаять в домашних условиях проблематично, следовательно, модуль Bluetooth должен быть покупным. Но его хорошо бы приобрести не отдельно, а вместе с адаптером или еще лучше – в составе шилда. Таким образом, на стороне МК вырисовывается связка «Arduino – Шилд Bluetooth».
На стороне планшета каких-либо изысков не требуется, но версия Android должна быть не ниже 2.0, чтобы поддерживалась библиотека Bluetooth. Если планшет не имеет «синего зуба», то его легко добавить в систему дешевым «донглом», который вставляется в разъем USB напрямую или через USB-OTG кабель (ris.32-35, Ракурс 5).
Connexion sans fil Bluetooth
De ris.56 показана схема подключения шилда «Bluetooth Shield 2.2» фирмы «ITead Studio» к Arduino-UNO с разрисовкой внутренностей. Комплект документации можно скачать по адресу <http://imall. iteadstudio.com/im 12041701O.htmI>. Выбор шилда продиктован реалиями современных интернет-магазинов, а также свободной доступностью примеров программирования [7].
Модуль НС-05, применяемый в шилде, поддерживает спецификацию V2.0+EDR, класс 2 по мощности и простую систему АТ-команд согласно <http://robocraft.ru/files/datasheet/HC-05.pdf>. Его замена «один к одному» – НС-03, но можно использовать НС-04, НС-06 в slave-режиме или осуществить для них «пластическую операцию» по смене профиля <http://radiokot.ru/circuit/digital/pcmod/ 39/>. Кроме того, похожими свойствами и системой команд обладает модуль НС-07 <http:// www.avislab.com/blog/hc-07/>.
Модули Bluetooth общаются с микроконтроллером через канал UART с использованием сигналов RX, ТХ. Доступны два режима работы:
- настройка параметров через АТ-команды;
- режим трансивера, при котором он отдает и получает данные из эфира.
Одновременно в двух режимах модуль работать не может. Переключение между ними аппаратное, т.е. на определенный вывод чипа Bluetooth надо подать лог.0 или лог.1. В ардуиновском шилде Bluetooth (Fig.55) для этой цели поставлен движковый переключатель с маркировкой CMD (режим управляющих команд) и DAT (режим приема и передачи данных по воздуху).
Порядок действий.
1) Запрограммировать Arduino скетчем «Мигающий светодиод» («Файл-Примеры-0.1 Basics-Blink»). Это необходимо, чтобы гарантированно освободить от нагрузки линии аппаратного UART. Другой вариант – временно соединить перемычкой контакты /RES и GND Arduino, что переводит все порты МК в Z-состояние.
2) Запустить на компьютере терминальную программу «Тега Term-4.84» <http://ttssh2.source-forge. jp/>. Можно использовать и другие «терми-налки», но не «Terminal by Bray». Установить в настройках скорость 38400 бод, режим 8-N-1, добавить передачу символов CR+LF в конце строки и локальное эхо (Fig.57).3) Установить на шилде джамперы D0-RX, D1-TX, как показано на Fig.55, и переключатель в положение CMD. Подать питание на Arduino, при этом должен загореться светодиод PWR шилда и медленно (2 с + 2 с) замигать светодиод Status. Если светодиод мигает быстро, то нажать на шилде кнопку сброса Rst.
4) Ввести в терминальной программе команды согласно Tableau 15. При отсутствии откликов подобрать скорость связи, возможно, что она была изменена кем-то ранее при тестировании. Худший вариант – это подмена модуля НС-05 аналогичными модулями НС-04, НС-06 (по внешнему виду не отличишь). Ничего страшного, но начальную скорость придется установить 9600 бод и имя модуля будет «linvor».5) Переставить на шилде переключатель в положение DAT, нажать кнопку сброса Rst, наблюдать быстрое мигание светодиода. Шилд готов к работе с внешним планшетом в режиме заворота данных.
6) Включить в планшете канал Bluetooth (в целях экономии энергии его часто выключают), провести поиск близлежащих устройств. То из них, которое имеет название «Н-С-2010-06-01», и является искомым. Активизировать с ним связь, ввести пароль «1234», дождаться сообщения «Авторизовано».
7) Запустить в планшете терминальную программу, поддерживающую связь по Bluetooth, например, «Bluetooth Terminal», автор Juan Zambrano или «SENA BTerm Bluetooth Terminal». Нажать сенсорную кнопку Connect, после чего светодиод шилда должен изменить мигание, выдавая по две короткие вспышки каждые 2 с. Ввести с клавиатуры планшета какой-либо текст, нажать кнопку Send и наблюдать, как он возвращается обратно без искажений. Шилд Bluetooth в данном случае выступает в качестве короткозамкнутой перемычки на втором конце связи.
Télécommande ON LED
Переставить на шилде движковый переключатель в положение CMD. В программе «Тега Term» ввести команду AT+ROLE=0. После этого модуль Bluetooth перейдет из режима заворота в режим «slave». Планшет будет выступать «мастером» и инициировать соединение, но его лидерство не принципиально, поскольку связь по UART все равно получается двунаправленной.
Снять шилд с Arduino (чтобы он не конфликтовал по цепям RX, ТХ) и запрограммировать скетч согласно листингу 9. Кстати, программа очень похожа на листинг 3 (Ракурс 5), что не удивительно, учитывая использование канала UART.Переставить на шилде переключатель в положение DAT, а джамперы в положение D0-TX, D1-RX. Вставить обратно шилд в Arduino. Запустить в планшете приложение «Bluetooth Terminal» и установить связь по Bluetooth. Отправить последовательно символы <1>, <0> и наблюдать за включением и выключением светодиода «L» на плате Arduino (ris.58).
Le transfert d'information à la plaque
Поскольку связь двухсторонняя, то не составит труда выполнить и обратную задачу – переслать в планшет результаты измерения какой-либо аналоговой величины и проконтролировать ее в терминальной программе. В скетче надо использовать функции «analogRead( )» для АЦП и «Serial.println( )» для отправки данных в планшет (листинг 10).
Littérature
7. Bluetooth-модуль НС-05 / «burjui», 2011, <http://robocraft.ru/blog/electronics/587.html>.
Дополнительные материалы к проекту (Télécharger)
Auteur : Sergey Рюмик, Tchernigov
Source : Радиоаматор №11/12, 2014