Считается , что человек получает до 90% информации об окружающей среде через слуховой и зрительный каналы. Планшет тоже имеет свои «глаза» и «уши», в качестве которых выступают, соответственно, видеокамера и микрофон. Более того, у планшета есть «рот» (громкоговоритель), генерирующий звуки, а также «лицо» (экран дисплея), способное подавать разнообразные световые сигналы.
Микроконтроллер состоит из пластмассы и кремния, поэтому в чистом виде на свет и звук он не реагирует. Но если к нему добавить светозвуковые сенсоры и излучатели, то вполне можно организовать двустороннюю связь с планшетом. Именно об этом пойдет речь дальше.
Планшет в качестве светового генератора
Как известно, источниками света в планшетах и смартфонах с Android являются:
- Светодиодный фонарик;
- Фотовспышка камеры;
- Экран дисплея.
Фонарики, в основном, встраиваются в мобильные телефоны. В планшетах они встречаются редко. Фотовспышка применяется чаще, но в целях экономии энергии ее ставят далеко не во все аппараты. Более того, на форумах люди жалуются, что постоянное использование вспышки в качестве генератора световых сигналов приводит к выходу ее из строя или к резкому снижению светоотдачи.
В запасе остается дисплей, без которого планшет физически не может выполнять свои функции. Технология изготовления матрицы дисплея и ее параметры особого значения не имеют, ведь на любом экране можно сформировать полностью белое (лог.1) или полностью черное (лог.0) поле. Чередуя эти «единицы» и «нули», можно удаленно передавать сообщения и управляющие команды.
De рис.43 показана схема связи планшета с Arduino через оптический канал. Фототранзистор BL1 принимает световой поток с экрана и в зависимости от передаваемой команды увеличивает или уменьшает сопротивление между коллектором и эмиттером. МК анализирует сигнал с аналогового порта А5, после чего включает или выключает светодиод «L» на плате Arduino.
Предложим, что командой включения будет одна короткая световая вспышка. Генерировать ее можно следующими способами:
- Ручным нажатием (приложение «Фонарик», автор Slim Gears);
- Голосовым управлением (приложение «Disco Light™ LED Фонарик», автор Guro Labs);
Ручное нажатие требует определенной сноровки, поскольку планшет надо повернуть в сторону Arduino и пальцем с тыльной стороны точно попадать на кнопку управления в центре экрана.
Голосовой ввод команд удобнее и практичнее. Пользователь говорит в микрофон планшета короткое слово , например, «Включить». Планшет анализирует громкость звука (не его содержание!) и формирует яркое белое поле экрана при каждом превышении определенного звукового порога. Получается своеобразный преобразователь звука в свет, работающий как ждущий мультивибратор.Чтобы система давала меньше ложных срабатываний, «крейсерское» расстояние от фототранзистора BL1 до экрана планшета должно быть не более 5 см. На аппаратном уровне специально применяется низкочувствительная схема эмиттерного повторителя, а на программном уровне вводится следящий фильтр в скетче Arduino (листинг 5) для компенсации медленных колебаний освещенности.
С той же целью в используемом приложении «Disco Light» (рис.44) в закладке настроек надо подобрать оптимальную чувствительность микрофона «Microphone sensitivity2, а также продолжительность световой вспышки «AGC averaging». Критерий достаточности – четкое срабатывание голосовых команд при удалении от планшета на 0,5-1,5 м.
Планшет в качестве светового приемника
Принимать световой поток в планшетах и смартфонах с Android можно двумя способами:
- Через датчик освещенности;
- Через видеокамеру;
Датчик освещенности содержит фоточувствительный элемент, сигнал с которого позволяет автоматически регулировать яркость изображения на экране дисплея при изменениях внешнего светового потока. Такой датчик имеется далеко не во всех планшетах. Выяснить его присутствие можно в приложении «Sensor Box for Android», автор Imoblife Inc (рис.45). Сам датчик обычно не виден снаружи и располагается на лицевой стороне корпуса за черным стеклом. Его местоположение определяется экспериментально, закрывая рукой разные места корпуса и следя за показаниями датчика Light Sensor в люксах.
Второй вариант – видеокамера, причем не фронтальная, а тыловая. Ее объектив направляется на удаленный светодиод, который в свою очередь подключается к МК и генерирует световые вспышки. Передаваемая команда шифруется изменением количества посылок. Но здесь возникает вопрос – где найти такое «умное» приложение для Android, которое бы распознавало образы и могла переводить их в строгую числовую форму?
Задача упрощается, если в качестве световых посылок использовать код Морзе. Тогда видеоизображение можно проанализировать приложением «Морс Переводчик», автор Netigen Tools. Основное назначение программы – организация удаленной связи между двумя планшетами через фотовспышки.
Одну из них можно с успехом заменить достаточно ярки светодиодом. Глазок видеокамеры наводится на него с расстояния 5-10 см через рамку с зумом. Предварительно проводится калибровка Calibrate, затем пуск кнопкой Start (рис.46).
На стороне МК используется плата STM32F4Discovery и встроенный в нее светодиод красного цвета. Генерируемые им буквы «CQ» азбуки Морзе высвечиваются на планшете в виде надписей: «с — – — -», «q — — – —».
За основу программной части (листинг 6) взят похожий проект [5], но для другого типа МК. В строке 5 регулируется длительность одной «точки» в миллисекундах для достижения стандартной скорости светового семафора 5,7 или 10 слов в минуту. Здесь под одним «словом» традиционно понимается 5 букв PARIS и один пробел, что в азбуке Морзе составляет ровно 50 тактов. Длительность одного такта рассчитывается по формуле DOY [mc] = 1200 / N [слов в минуту] = 1200 / 5 = 240мс.
Для справки, один такт в азбуке Морзе – это «точка», 3 такта – «тире». Пауза между «точками», «тире» – один такт, между буквами в сове – 3 такта, пробел между словами – 7 тактов.
Планшет в качестве звукового генератора
Существует целый класс приложений для Android, которые можно условно назвать «Генераторы звуковых частот» (табл.10). Среди них для управления внешними устройствами подходят те программы, в которых отдельными сенсорными кнопками на экране дисплея генерируется сигналы разных частот.На стороне МК звуковые сигналы принимаются микрофоном и в простейшем случае программно разделяются по частоте. Если низкая частота, то лог.0, если высокая частота – лог.1.
Для улучшения помехоустойчивости и скрытности связи рекомендуется перейти в более высокий диапазон 15-20 кГц, который иногда называют «почти ультразвук». Такие сигналы обычно используют для отпугивания комаров, грызунов и других животных (табл.11, http://www.lsu.edu/deafness/HearingRange.html).
Истинно ультразвуковые сигналы от 20 кГц и выше планшеты не генерируют, скрывается достаточно низкая частота дискретизации ЦАП 44,1 или 48 кГц.
De рис. 47 приведена схема подключения электронного микрофона ВМ1 к Arduino. Устройство улавливает звуковые сигналы от планшета и передает их в компьютер через виртуальный СОМ-порт.
На высоких частотах микрофон обладает пониженной чувствительностью, поэтому применяются два ОУ DA1.1, DA1.2 с большим коэффициентом усиления.
Резистором R3 выставляется уровень лог.1 на входе D8 Arduino в отсутствии звука. Сама линия порта выбрана не случайно. Через нее организуется программный подсчет импульсов по таймеру-счутчику1 в модуле захвата AVR-контроллеров [6].
Los листинге 7 приведен скетч для Arduino, рассчитанный на прием двух тональных звуковых сигналов с частотами 12 и 16 кГц. На мониторе компьютера про их появлении будут наблюдаться соответствующие надписи (строки 30,31).
В строках 22-29 проводится троекратная проверка данных. Это позволяет отсекать ложные измерения, т.е. на хлопки, шум и громкие разговоры в помещении устройство никак не реагирует. В планшете сигналы а-ля «почти ультразвук» генерируются антимоскитными приложениями, например, «Mosquito sound», автор Aoi Nakanishi. На экране высвечиваются 12 кнопок с надписями от 9 до 20 кГц. Чтобы отправить сигнал в Arduino, надо нажать кнопки 12 и 16 кГц, не забыв при этом выставить на максимум общую громкость звука в планшете и придвинуть поближе динамик к микрофону.
Не надо удивляться, если некоторые излучаемые ВЧ-сигналы будут почти не слышными. Ларчик открывается просто, виной всему матушка-природа и особенности человеческого слуха. В приложении «Mosquito sound» в закладен Help приводятся ориентировочные цифры максимальных частот, которые слышат люди разного возраста (рис.48). Получается, что эту программу, кроме всего прочего, можно использовать и для тестирования «слуховой молодости».
Планшет в качестве звукового приемника
Вычислительные возможности планшета находятся на уровне компьютера. Следовательно, ему ничего не стоит произвести расчет спектра звукового сигнала и определить частоту основной гармоники в режиме реального времени.
Измеренную частоту можно использовать для условной индикации некоторой аналоговой величины. К примеру, на рис. 49 показана схема, в которой выходной сигнал пьезоизлучателя НА1 изменяется по частоте в зависимости от положения движка переменного резистора R1. Чем ближе к общему проводу GND средний вывод R1, тем ниже частота, и на оборот. Резистор имитирует работу датчика напряжения , температуры, влажности, освещенности.
На стороне планшета запускается одна из программ, анализирующих спектр сигнала, например, «Spectral Audio», автор Tim Tiw. Число в герцах, характеризующее частоту максимальной гармоники, активируется к показу кнопкой Peak On (рис.50). Далее гармоника динамично перемещается по шкале в зависимости от принимаемого микрофоном звука. Искомая величина, пусть это будет напряжение, рассчитывается по формуле , где К – переводной коэффициент.
Los листинге 8 показан кетч генератора звука для Arduino. В строке 9 происходит масштабирование измеренного на линии А5 напряжения. Диапазон 0-1023 условных АЦП-единиц преобразуется в полосу частот 2000-5069 Гц с коэффициентом М=3. Для картинки, изображенной на рис.50, напряжение на входе А5 Arduino вычисляется по формуле = ((3725-2000)*5)/(3*1024) = 2.8 В.
Полоса частот 2-5 кГц выбрана не случайно. Именно здесь находится максимум АЧХ пьезоизлучателя НА1. Но, в чистом виде сигнал «пьезопищалки» содержит множество дополнительных гармоник. Иногда их амплитуда больше, чем основная гармоника. Следовательно, для того, чтобы анализатор спектра хаотично не перескакивал с одной частоты на другую, в схему был добавлен резистор R2, который демпфирует гармоники и значительно очищает картинку.
Кстати, данная электрическая схема и методика измерений подходят для снятия АЧХ различных типов пьезоизлучателей, сравнения их по параметрам и определения резонансной частоты по максимальной громкости звучания в децибелах.
Bibliografía
- Рюмик С. Микроконтроллеры STM32. Барьер 5/ Сергей Рюмик // Радиоаматор – 2012. – №7-8. – С. 53-57.
- Шаройко А. Таймеры-счётчики Arduino / Андрей Шаройко https://sites.google.com/site/vanyambauseslinux/arduino/tajmery-sceetciki-arduino.
Архив к статье (Descargar)
Autor: Сергей Рюмик, г. Чернигов
Fuente: Радиоаматор №10, 2014