WordPress database error: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Управляем “Волшебным замком” по Bluetooth

Пропонована стаття розповідає про використання бездротового інтерфейсу блютуз для подачи команд управления устройством подсветки игрушечного “Волшебного замка” [1], В качестве “пульта управления” теперь можно использовать не только компьютер, на котором запущена терминальная програм­ма, але й будь-який смартфон з операційною системою Android. Устройство подсветки по-прежнему может работать как с посто­янно хранящимися в его памяти, так и с дистанционно загружае­мыми в неё программами световых эффектов.

В статье [1] описано несложное устройство подсветки игрушечного замка. Для организации дистанционного управления в нём использованы радиомодули диапазона 433 МГц. В качестве пульта управления применён компьютер, дополненный радиомодулем. Устройство можно модернизировать, заменив использованные в нём радиомодули недорогим Bluetooth-модулем. В этом случае пультом управления может стать практически любой “гаджет”, оснащённый интерфейсом Bluetooth. На пути творческой мысли “светоком-позитора” устраняется неудобное препятствие в виде подключённого к ноутбуку радиоблока.

Интерфейс Bluetooth разработан как беспроводная альтернатива проводному интерфейсу RS-232. В настоящее время он широко применяется для ор­ганизации взаимодействия различных радиоэлектронных устройств на не­больших расстояниях. Однако приёмопередатчик Bluetooth очень трудно из­готовить в радиолюбительских услови­ях. Но имеющиеся в продаже миниа­тюрные Bluetooth-модули промышлен­ного производства делают легко реша­емой задачу использования такого ин­терфейса в любительских разработках.

Наиболее дешев и прост в использо­вании модуль НС-06. Его описание мож­но найти в [2] — на китайском языке, но Google Chrome переводит вполне по­нятно, [3] — тоже на китайском, не под­даётся машинному переводу, но схемы подключения модуля понятны без пе­ревода, [4] — на английском языке. Мо­дуль представляет собой небольшую печатную плату с двумя микросхемами и печатной антенной. По периметру платы расположены контакты для под­ключения внешних цепей. Внешний вид модуля, его размеры и нумерация кон­тактов показаны на рис. 1.

Рис. 1

Рис. 1

Самый простой вариант подключе­ния модуля НС-06 к микроконтроллер­ной системе заключается в соединении его контактов 13 и 22 с общим прово­дом, контакта 1 (последовательного вы­хода ТХ) — с входом RXD микроконтрол­лера, а контакта 2 (последовательного входа RX) — с выходом TXD микроконт­роллера. Остаётся подать на контакт 12 напряжение питания 3,3 В. Всё взаимо­действие с радиосетью Bluetooth-мoдуль берёт на себя. Для контроля его со­стояния удобен контакт 24. На нём по­является непрерывный уровень логиче­ской единицы, когда связь установлена. Обычно сюда подключают светодиод.

По умолчанию последовательный интерфейс модуля настроен на ско­рость приёма и передачи информации 9600 Бод, посылку из стартового, вось­ми информационных без контроля чёт­ности и одного стопового разрядов. Для большинства задач этого достаточно, но при необходимости параметры можно изменить с помощью АТ-команд.

Схема блоку управління підсвічуванням замку показана на рис. 2. Она отлича­ется от приведённой в [1] лишь увели­ченным до четырёх числом контактов разъёма Х1 и изменённым их назначе­нием, а также наличием шестого канала подсветки (светодиода HL6). Его можно использовать, например, для подсвет­ки звезды на одной из башен замка.

Рис. 2

Рис. 2

Вместо модуля приёмника диапазо­на 433 МГц к разъёму Х1 присоединяют плату, собранную по схеме, показанной на рис. 3, где нумерация элементов продолжает начатую на рис. 2. Для по­лучения напряжения 3,3 В, питающего Bluetooth-модуль НС-06 (U1), применён интегральный стабилизатор напряже­ния DA1. Ограничиться стабилитроном здесь не удаётся, поскольку во время установления соединения модуль U1 может потреблять ток до 50 мА. Светодиод HL7 мигает, пока соединение не установлено и светит непрерывно, ког­да оно действует.

Рис. 3

Рис. 3

Уровни входных и выходных логиче­ских сигналов модуля НС-06 соответ­ствуют напряжению его питания. Но практика показала, что пониженного выходного уровня логической единицы модуля вполне достаточно для надёж­ного срабатывания входных цепей мик­роконтроллера, питающегося напряже­нием 4,5 В. Поэтому сигнал ТХ модуля подан непосредственно на вход RXD микроконтроллера. Но уровень логической единицы поступающего от микро­контроллера сигнала TXD значительно превышает напряжение питания моду­ля и может его повредить. Для пониже­ния этого уровня до безопасного значе­ния использован обычный резистивный делитель напряжения R7R8.

Питают устройство от батареи GB1 из трёх элементов ААА общим напряже­нием около 4,5 В. Выключателя питания нет. Его отключают извлечением одного элемента из держателя.

Печатные платы для устройства уп­равления светодиодной подсветкой не разрабатывались. Оно собрано на двух фрагментах макетной платы навесным монтажом. Плата с микроконтроллером подобна использованной в [1]. Внешний вид второй платы, на которой смонтиро­ван модуль НС-06, показан на рис. 4. Следует отметить, что в интернет-мага­зинах можно приобрести готовую плату с модулем НС-06 и разъёмом, функцио­нально аналогичную описанной.

Рис. 4

Рис. 4

Пристрій підсвічування в зборі зображено на рис. 5, рядом со смартфо­ном, с которого ведётся управление. Собственного корпуса оно не имеет и помещается внутрь подсвечиваемой игрушки, как это описано в [1].

Рис. 5

Рис. 5

При безошибочном монтаже цифро­вые устройства, как правило, не тре­буют налаживания. Но проверить мик­роконтроллерную плату на отсутствие ошибок и замыканий необходимо. Это рекомендуется делать в следующем порядке. Не устанавливая в панель мик­роконтроллер и не подключая к разъёму плату с Вluetooth-модулем, присоеди­няют к устройству держатель элемен­тов питания и вставляют в него эти эле­менты. Проверяют наличие и поляр­ность напряжения 4,5 В между гнёзда­ми 10 и 20 панели микроконтроллера и на разъёме Х1. Поочерёдно замыкая гнездо 20 панели микроконтроллера с её гнёздами 9, 11 — 15 через резистор сопротивлением 100 Ом, проверяют включение каждого светодиода.

После устранения выявленных де­фектов можно, предварительно выклю­чив питание, установить в панель за­программированный микроконтроллер и подключить к разъёму Bluetooth-модуль. При включении питания устройст­во должно заработать.

Программа микроконтроллера DD1 подготовлена в среде разработки Algo­rithm Builder for AVR. Файл zmk03bt.hex следует загрузить в программную память микроконтроллера, а из файла ЕЕ_zmk03bt.hex — в его ЕЕРROМ. Кон­фигурация микроконтроллера должна быть запрограммирована в соответст­вии с рис. 6. Обратите внимание, что “галочками” на нём отмечены разряды, которые должны быть оставлены незапрограммированными.

Рис. 6

Рис. 6

В части управления светодиодами программа совпадает с описанной в [1], но отличается от неё организацией обмена информацией с внешним уст­ройством (компьютером или смартфо­ном). Первыми после включения пита­ния микроконтроллера выполняются программные процедуры инициализа­ции узлов микроконтроллера. Линии РВ0—РВЗ, PD5 и PD6 конфигурируются как выходы, а блок USART настраивается на работу со скоростью 4800 Бод, дли­ной посылки 8 разрядов без контроля чётности и с одним стоповым разрядом.

Как было отмечено выше, в исход­ном состоянии модуль НС-06 настроен на скорость приёма и передачи инфор­мации со скоростью 9600 Бод. Микро­контроллер DD1 успешно справляется с такой скоростью, когда принимает од­нобайтные команды управления. Но для загрузки световых эффектов в EEPROM эта скорость оказывается слишком большой, поскольку приём информа­ции идёт без её промежуточного хране­ния (буферизации) в ОЗУ микроконт­роллера. Там просто недостаточно для этого места. Чтобы избежать пропус­ков, достаточно понизить скорость до 4800 Бод.

Переключить Bluetooth-модуль на та­кую скорость можно с помощью АТ-команды AT+BAUD3. Однако в памяти про­грамм микроконтроллера ATtiny2313 недостаточно места для размещения такой процедуры вместе с основной программой. Поэтому специально раз­работана и приложена к статье про­грамма hc06from9600to4800, предна­значенная для перестройки модуля на скорость 4800 Бод. Её нужно временно загрузить в микроконтроллер и при подключённой плате с Bluetooth-модулем подать на устройство питание.

Программа проверит обмен инфор­мацией микроконтроллера с модулем НС-06 со скоростью 4800 Бод и, если всё нормально, включит светодиод HL1 и начнёт мигать светодиодом HL2. Если обмен со скоростью 4800 Бод не идёт, то программа попробует установить со­единение на скорости 9600 Бод и при благоприятном исходе переключит ско­рость работы последовательного ин­терфейса модуля на 4800 Бод. В этом случае будут включены светодиоды НL2 и НL3, а светодиод НL4 станет мигать.

Если в итоге индикация иная, значит, модуль настроен неправильно либо не­исправен. Полный перечень состояний светодиодов в результате работы про­граммы hc06from9600to4800 приведён в таблиці. При неудаче можно попро­бовать подключить модуль к компьюте­ру и воспользоваться для его настройки терминальной программой. Можно так­же разобраться в исходном тексте про­граммы hc06from9600to4800 и, изме­нив его соответствующим образом, ус­тановить требуемый режим работы модуля НС-06.

0К статье прилагается также програм­ма hc06from9600to4800, которая воз­вращает модулю НС-06 исходную ско­рость обмена 9600 Бод и может приго­диться читателям, которые захотят ис­пользовать в других конструкциях мо­дуль, работающий в устройстве управ­ления подсветкой.

По окончании настройки Bluetooth-модуля не забудьте вернуть в микрокон­троллер рабочую программу. После ини­циализации микроконтроллера она про­изводит опрос наличия принятой инфор­мации в буфере приёмника USARТ. Каждый принятый байт “эхом” отсылает обратно. В зависимости от значения этого байта программа выполняет со­ответствующую команду, в том числе и загрузку новой программы управления светодиодами в ЕЕРRОМ.

Собственно управление светодио­дами происходит в процедуре обработ­ки запросов прерываний от таймера 0 микроконтроллера. Период повторения прерываний 625 мкс позволяет реали­зовать широтно-импульсное управле­ние питанием светодиодов, не исполь­зуя ШИМ-контроллер.

Смена режима управления подсвет­кой замка происходит при обработке каж­дого шестнадцатого прерывания от тай­мера с помощью отдельной процедуры. В ней же перебираются программы све­товых эффектов, хранящиеся как в памяти программ микроконтроллера, так и в его ЕЕРRОМ. Все скоростные парамет­ры исполнения световых эффектов и число повторений каждого эффекта также отслеживаются в этой процедуре.

Рассмотрим принимаемые устройст­вом команды. Почти все они (за исключе­нием А и С) состоят из одного символа.

А — загрузка в ЕЕРRОМ наборов световых эффектов. Команда и сопро­вождающая её информация подробно описаны в [1]. Формат кодов управле­ния светодиодами оставлен без измене­ний, так что методика разработки на­бора световых эффектов сохранена поч­ти полностью. Отличия небольшие — следующие за буквой А шесть шестнадцатеричных цифр не анализируются устройством и могут быть любыми, не требуется и дополнять подготовленный файл произвольными символами для достижения им необходимой длины.

У — запрос текущего состояния уст­ройства. В ответ на него оно посылает строку “Mode: XX”, где XX может прини­мать следующие значения: 00 — испол­няемый в момент приёма команды све­товой эффект бесконечно повторяется; 01 — поочерёдно исполняются все све­товые эффекты, хранящиеся в памяти программ микроконтроллера и в его EEPROM; 02 — поочерёдно исполняют­ся эффекты только из памяти про­грамм; 03 — поочерёдно исполняются световые эффекты только из EEPROM.

З — в ответ на эту команду возвра­щается содержимое EEPROM микро­контроллера (шесть строк по 20 бай­тов). Это позволяет прочитать коды загруженных в EEPROM световых эф­фектов. Далее их можно скопировать в текстовый редактор, внести необходи­мые изменения, дополнить преамбулой (как подробно описано в [1]) и снова загрузить в EEPROM по команде А.

N — переключение режима. Включа­ется следующий режим работы, код нового режима (такой же, как в команде В) возвращается в ответ на команду.

Про — гашение всех светодиодов. В ответ на команду передаётся строка OFF.

Р — остановка исполнения эффекта. Светодиоды “застывают” в одном со­стоянии. В ответ на команду передаёт­ся строка “Pause”.

S — запуск исполнения светового эффекта. В ответ на команду передаёт­ся строка “Run”.

1—6 — переключение состояния со­ответствующего светодиода. Указан­ный командой светодиод HL1—HL6 включается, если был выключен, или вы­ключается, если был включён. В ответ на команду передаётся строка Channel: XX, где XX — шестнадцатеричное число, значение каждого разряда двоичного представления которого соответствует состоянию светодиода, номер которого на единицу больше номера разряда (начиная с младшего нулевого). Единица в разряде означает, что светодиод включён, ноль — выключен.

Все остальные символы игно­рируются. После выполнения лю­бой команды устройство посыла­ет строку “Zmk03bt”, приглаша­ющую к вводу следующей коман­ды.

Робота з пристроєм і термінальної програмою

После подачи питания устройство начинает исполнять световые эффекты, хранящиеся в памяти программ и в EEPROM микроконтроллера. Память программ содержит набор из пяти све­товых эффектов: резкое переключение светодиодов от HL1 до HL4 и обратно, плавное переключение этих же свето­диодов в прямом направлении, такое же обратное переключение, одновремен­ное плавное мигание всех светодиодов. В EEPROM в исходном состоянии загру­жены два световых эффекта: поочерёд­ное ступенчатое изменение яркости всех светодиодов и быстрое мигание всех светодиодов. Набор эффектов в EEPROM можно изменить командой А.

Во время исполнения устройством световых эффектов его Bluetооth-модуль работает в режиме ожидания уста­новления соединения. Это показывает мигание светодиода HL7.

Чтобы связаться с устройством уп­равления подсветкой, на смартфоне включают режим обнаружения Bluetooth-устройств. В списке найденных должно появиться устройство с именем “НС-06”. Далее потребуется ввести пароль (по умолчанию для НС-06 это цифры “1234”). Используя смартфон и планшет с операционной системой Android, команды можно подавать с по­мощью любой из нескольких десятков терминальных программ для Bluetooth, имеющихся на Google Play. Мне наибо­лее понравились следующие:

Terminal for Bluetooth (URL: https://play.google.com/store/apps/details?id=nextprototypes.bluetoothterminal) - хорошо работает с буфером, позволяет сохранять наработанное в файле (имен­но эта программа запущена на смарт­фоне на фото рис. 5);

S2 Terminal for Bluetooth Free (URL: https://play.google.com/store/apps/details?id=jp.side2.apps.btterm) - имеется функция передачи файла, но… за деньги;

Bluetooth Sériai Port Terminal (URL: HTTPS://грати.Google.з/магазин/додатки/details?id=com.ucconnect.ucbtadapter_hex) — есть файловый менеджер и текстовый редактор.

Для установления соединения уст­ройства управления подсветкой с на­стольным компьютером или ноутбуком нужно воспользоваться настройками Bluetooth на панели управления его операционной системы. После установ­ления соединения следует запустить терминальную программу (в Windows ХР она входит в комплект поставки, для других ОС нужно установить любую из бесплатных), сообщив ей номер обра­зованного в результате установления соединения по Bluetooth виртуального СОМ-порта. Номер и параметры этого порта можно увидеть в свойствах Bluetooth-соединения.

Об успешно установленном соеди­нении сигнализирует непрерывное све­чение светодиода HL7 на плате с Bluetooth-модулем. Теперь в терминальной программе можно вводить описанные выше команды и получать ответы на них. Пример протокола работы терми­нальной программы представлен на рис. 7.

Рис. 7

Рис. 7

Особенность команды А в том, что её не нужно вводить с клавиатуры. Этот символ должен содержаться в начале текстового файла подготовленной с помощью текстового редактора про­граммы световых эффектов. Поэтому, например, в программе HyperTerminal (Windows ХР) нужно воспользоваться пунктом “Отправить текстовый файл…” в меню “Передача”, указав подготовленный, как описано в [1], текстовый файл. На смартфоне придётся ско­пировать содержимое подготовлен­ного файла в буфер обмена, а затем вставить содержимое буфера в поле ввода терминальной программы.

На этапе отладки устройства или модификации программы мик­роконтроллера удобно, отказав­шись от Bluetooth, воспользовать ся прямым подключением устройства к USB-порту компьютера стандартным кабелем. Для этого вместо платы с Bluetooth-модулем к разъёму Х1 основ­ной платы подключают переходник, схема которого показана на рис. 8. Такое подключение удобно ещё и тем, что не требует установки элементов питания в устройство (питание поступа­ет от компьютера). Для установления связи с устройством точно так же, как было описано ранее, используется тер­минальная программа, например, для Windows ХР — HyperTerminal.

Рис. 8

Рис. 8

В заключение нужно сказать, что описанное устройство способно доста­вить творческое удовольствие, прежде всего, детям. Им, да и взрослым, будет интересно придумать свою компози­цию “бегущих огней”, а затем в течение пары минут воплотить её в реальность и увидеть своими глазами. Причём для создания новой композиции достаточ­но обычного смартфона.

ЛІТЕРАТУРА

  1. ПахомовА. “Волшебный замок”, уп­равляемый по радио. — Радио, 2014, № 11, с. 50—53.
  2. НС-06 Bluetooth module. — URL: http://wavesen.com/probig.asp?id=24 (10.04.15).
  1. URL: http://wavesen.com/mysys/db_picture/news3/20141016121031101.pdf (10.04.15).
  1. HC-06 Module Data Sheet. — URL: http://silabs.org.ua/bc4/hc06.pdf (10.04.15).

Завантажити програми для мікроконтролера

Автор: А. ПАХОМОВ, г. Владимир

Джерело: Радио №6, 2015

адмін

Залишити коментар

Your email address will not be published. Required fields are marked *