
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

MicroDot - это самодельная «кнопка» Alexa, предназначенная для подключения к LattePanda или Raspberry Pi с установленным приложением Alexa Sample. Это небольшой динамик со светодиодами и сенсорной / речевой активацией, который идеально подходит для использования на рабочем столе или в автомобиле.
* LattePanda для этого проекта любезно предоставлен DFRobot
Шаг 1. Обзор системы

ЛАТТЕ ПАНДА
LattePanda - это небольшой (размером с Raspberry Pi) компьютер с Windows 10 со встроенным Arduino для взаимодействия с реальным миром. Это действительно здорово - и это хорошая замена Raspberry Pi - особенно если у вас (как и я) есть проблемы с освоением Linux.
Я установил приложение Alexa Sample на Panda и реализовал свой собственный механизм пробуждения на основе встроенного в Windows SDK распознавания речи.
МИКРОДОТ
MicroDot состоит из небольшого усилителя и динамика с сенсорной решеткой и сине-белой светодиодной матрицей. Изначально MicroDot был разработан для размещения на приборной панели в моей машине, чтобы обеспечить мое автомобильное решение Alexa (в сочетании с моим предыдущим проектом - автомобильной стереосистемой с поддержкой Alexa). Мне нужна была не только функция пробуждения, но и активация касанием, потому что Алекса будет трудно услышать мое слово пробуждения, когда музыка будет громкой! (После активации Panda отправит сигнал в стереосистему, чтобы уменьшить громкость, пока Алекса слушает / говорит).
RASPBERRY PI
Для тех, кто более свободно владеет «Raspberry Pi», я описал в конце этого руководства, как связать MicroDot с Rapsberry Pi 3.
Шаг 2: Схема MicroDot



ЧАСТИ
6 резисторов SMD 220R 2 резистора SMD 470R 1 конденсатор SMD 10 мкФ 1 модуль сенсорного датчика TTP223 (https://www.ebay.com/itm/192097635565) 1 модуль усилителя PAM8403 3 Вт (https://www.ebay.com/ itm / 221895096190) 1 линейный потенциометр для большого пальца 10K (https://www.ebay.com/itm/401105807680) 1 керамический конденсатор 50 пФ 3 синие светодиоды 3 мм 3 белых светодиода 3 мм 3 мм 1 динамик 1,7 дюйма 4 Ом 3 Вт 1 тонкий черный кабель от старые наушники 1 x тонкий черный удлинительный USB-кабель длиной 1 м *
СТРОИТЕЛЬСТВО
Печатная плата MicroDot была изготовлена методом утюга на тонере на односторонней плате толщиной 0,8 мм - при такой толщине ее можно грубо нарезать острыми ножницами, а затем легко отпилить. Сначала установите все компоненты для поверхностного монтажа.
К сенсорной поверхности сенсора необходимо подключить провод, поэтому нужно соскрести небольшую область, чтобы к ней припаять. Я обнаружил, что в исходном режиме датчик был слишком чувствительным - он работал нормально, но после установки в корпус он часто срабатывал ложно из-за близости к металлическому динамику. Я заземлил металлический динамик - это немного помогло, но в конце концов мне пришлось обратиться к таблице данных.
В таблице данных TTP223 указано, что вы можете настроить чувствительность, поместив конденсатор (от 0 до 50 пФ) между сенсорным датчиком и землей. Датчик нормально работал с конденсатором 50пФ. Вы можете увидеть его размещение на картинке в следующем разделе.
Для подключения MicroDot к Panda используются два кабеля: - тонкий черный кабель от старой пары наушников для подключения аудио; - тонкий кабель USB использовался для подключения к GPIO (сенсорный датчик / светодиоды). Вам понадобится кабель с 6 отдельными разъемами (5 внутренних + экран). * Помните, что некоторые дешевые USB-кабели не имеют отдельного заземляющего контакта / экрана, или эти два могут быть подключены внутри (проверьте это, прежде чем разрезать кабель, убедившись, что есть непрерывность между внешними металлическими частями вилки и розетки. вилки, и что между заземляющим контактом и внешними металлическими частями нет непрерывности).
Используйте соединения USB-кабеля: красный = + 5 В, экран = GND, черный = сенсорный датчик, белый = белые светодиоды, зеленый = синие светодиоды. Вместо того, чтобы просто отрезать мопсы и подключать проводку, вы можете сделать то же, что и я. оставьте вилки включенными, отрежьте один длинный участок и один короткий (скажем, 200 мм) и вставьте два конца кабеля вместе. Таким образом, блок съемный. Просто убедитесь, что вы не подключаете к нему никаких реальных USB-устройств и не подключаете его к обычному USB-порту!
Шаг 3: Построение MicroDot




НАПЕЧАТАННЫЕ ЧАСТИ 3D
В прикрепленном zip-файле есть четыре детали, напечатанные на 3D-принтере: 1. Основная оболочка MicroDot - напечатана черным PLA2. База MicroDot - напечатана черным PLA3. Светодиодное кольцо - напечатано из белого PLA (прозрачное или полупрозрачное может быть лучше для более равномерного рассеивания света) 4. Прокладка для печатной платы - любого цвета - между динамиком и печатной платой.
Болты и гайки М2 используются для прикручивания основания к корпусу. Три болта M2 нужно вплавить в пазы на внутренней стороне корпуса. Они довольно маленькие, и вам может потребоваться «припаять» их на место с помощью дополнительной нити накала.
СВЕТОДИОДНЫЙ Массив
Белый и синий светодиоды устанавливаются в матрицу поочередно, как показано на рисунках. Выводы загибаются под углом 90 градусов к нижней части светодиода, и выводы вплавляются в кольцо горячим паяльником (обратите внимание на полярность). Нижняя часть светодиодов опилена, чтобы они были плоскими по отношению к поверхности кольца.
Катоды светодиодов соединены вместе проволочным кольцом, и они подключаются к самому нижнему контакту разъема. Другие контакты заголовка должны быть чередующимися синими / белыми для каждого отдельного светодиода.
СОСТАВЛЯЕМ ВМЕСТЕ
Решетка была вырезана из настольного бумажного держателя (на фото) с припаянной к одному краю проволокой. Сначала он вставляется в корпус, а затем в светодиодную матрицу (она должна быть вставлена под углом, как показано на рисунке, с прорезью, совмещенной с одним из штырей для винтов). Далее идет динамик (оберните верхнюю часть тонкой лентой, чтобы изолировать ее от края печатной платы). Затем прокладка, и печатная плата просто сидит сверху. Прикрутите основание, чтобы все было вместе.
При подключении аудиокабеля к LattePanda я обнаружил, что мне нужно использовать фильтр контура заземления звука (https://www.ebay.com/itm/371801191297), чтобы получить хороший звук. Обратите внимание, что на фотографиях я использую аудиовыход своего видеоадаптера HDMI-VGA, но вполне нормально использовать встроенный аудиовыход.
Вам также понадобится usb-микрофон (https://www.ebay.com/itm/332148968227).
Шаг 4: ЛаттеПанда


НАСТРАИВАТЬ
Panda выпускается в моделях 2G / 32G и 4G / 64G с лицензией Windows 10 или без нее. Я использовал модель 2G / 32G с лицензией Windows 10:
Пожалуйста, ознакомьтесь с официальной документацией по настройке вашего LattePanda (https://docs.lattepanda.com) Здесь нет ничего слишком сложного, но обратите внимание на инструкции по включению вашей Panda (https://docs.lattepanda.com/ content / getStarted / powe…).
Мне показалось, что с первого раза все заработало (что приятно отличается от моего опыта с Raspberry Pi).
Важным моментом является то, что вам действительно нужно какое-то охлаждение для Panda. Я использовал несколько наклеенных радиаторов сверху и снизу (нижняя сторона становится особенно горячей).
На этой схеме подробно описаны входы и выходы Arduino: https://docs.lattepanda.com/content/hardware/inputs … Мы будем использовать массив из 3-х контактных разъемов с левой стороны для подключения к MicroDot (D9, D10 и D11), а также гнездо аудиовыхода.
Шаг 5: LattePanda - Установите пример приложения Alexa

СКАЧАТЬ
Приложение Alexa Sample доступно здесь:
github.com/alexa/alexa-avs-sample-app/
Нажмите кнопку «Клонировать» или «Загрузить» и загрузите файл в формате.zip.
Создайте каталог на диске c C: / ALEXA и извлеките содержимое zip-архива, чтобы заархивированный каталог с именем samples находился непосредственно в каталоге ALEXA (то есть C: / ALEXA / samples \…)
УСТАНОВКА
Официальные полные инструкции по установке в Windows находятся здесь:
github.com/alexa/alexa-avs-sample-app/wiki…
Есть несколько шагов, и это займет некоторое время, но я обнаружил, что с Windows все прошло гладко с первого раза.
Вам понадобится хороший текстовый редактор для редактирования некоторых файлов конфигурации (Блокнот не подходит, так как файлы имеют окончания строк в стиле Linux). Я использовал Notepad ++, который доступен здесь:
Несколько примечаний к официальным инструкциям:
Часть 3 - Зависимости
Моя Panda 64-битная, поэтому я загрузил все 64-битные версии, но если вы устанавливаете на 32-битную систему, вам нужно будет использовать 32-битные версии. Примечание: не смешивайте 32- и 64-битные версии зависимостей.
Ссылка, показанная для медиаплеера VLC, приведет вас к 32-битной версии. Чтобы получить 64-разрядную версию, перейдите по этой ссылке: https://www.videolan.org/vlc/download-windows.html и на кнопке загрузки щелкните стрелку, а затем - Установщик для 64-разрядной версии.
Для установки JDK я использовал версию: jdk-8u144-windows-x64 Для nodejs, которые я использовал: Установщик Windows (.msi) 64 бит Для Maven: apache-maven-3.5.0-bin.zip Для OpenSSL я использовал: Win64 OpenSSL v1.1.0f
Часть 5 - Метод аутентификации
Выберите 5a - сервер Nodejs. Если при запуске команды npm вы получаете сообщение об ошибке, вам необходимо добавить каталог nodejs в переменную среды path (это объясняется в инструкциях, как это сделать).
Часть 6 - Запуск примера приложения
При редактировании файла config.json установите для wakeWordAgentEnabled значение true, поскольку в следующем разделе мы будем устанавливать собственный механизм слова пробуждения (механизм слова пробуждения, включенный в пример приложения, работает только с Linux).
Если вы получаете сообщение об ошибке при выполнении команды mvn, вам необходимо добавить каталог maven / bin в переменную среды пути.
Когда вы запустите приложение, вы должны увидеть графический интерфейс, показанный на скриншоте. Когда вы нажмете на значок, вы сможете поговорить с Alexa. Это базовое приложение Alexa, но нам понадобится нечто большее!
Следующими шагами будет установка пользовательского механизма пробуждения, чтобы вы могли просто сказать «Alexa» для активации, а также иметь возможность использовать сенсорный датчик через вход Arduino. Нам также нужно сделать так, чтобы приложение запускалось автоматически при запуске и загоралось несколько светодиодов, когда Alexa слушает и говорит.
Шаг 6: LattePanda - Установите пользовательский движок WakeWord

WAKEWORD ENGINE
Механизм WakeWord позволяет разбудить Alexa по произнесенному слову (обычно «Alexa»), вместо того, чтобы нажимать кнопку. В примере приложения есть два варианта движка WakeWord: сенсорный или KITT. AI. Однако реализация для них в примере приложения работает только для Linux. Оба эти движки также подчиняются определенным лицензионным требованиям.
Здесь я реализую настраиваемый движок слова пробуждения, основанный на собственном SDK распознавания речи Windows 10. Таким образом, это также не требует каких-либо дополнительных лицензионных требований.
УСТАНОВИТЬ ЗАВИСИМОСТИ
Microsoft Speech Platform - среда выполнения (версия 11) https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32-разрядная версия) или x64_SpeechPlatformRuntime / SpeechPlatformRuntime.msi (64-разрядная версия)
Платформа Microsoft Speech Platform - языки времени выполнения (версия 11)
Мой собственный движок WakeWord был написан на C # в Visual Studio 2017. Я предоставил здесь окончательный исполняемый файл, а также исходный код. Если вы хотите скомпилировать его самостоятельно, то вам также понадобится это:
Microsoft Speech Platform - комплект для разработки программного обеспечения (SDK) (версия 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32-разрядная версия) или x64_MicrosoftSpeechPlatformSDK / MicrosoftSpeechPlatformSDK / MicrosoftSpeech 64 бит)
Поместите WakeWordPanda.exe (и alexa_run.bat) в каталог ALEXA. Эта программа выполняет следующие задачи: - Прослушивает слово пробуждения "Alexa" - Контролирует сенсорный датчик ввода - Управляет СИНИМ и БЕЛЫМ светодиодами
Обратите внимание, что я разработал это на другом компьютере с Windows 10, поэтому мне не нужно было устанавливать Visual Studio на LattePanda, так как я не хотел использовать гигабайты. Я подключил Arduino Uno с установленной StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) к компьютеру разработчика, чтобы я мог также разрабатывать с входами / выходами Arduino. Исходный код Visual Studio также прилагается, если вы хотите изменить и / или скомпилировать его самостоятельно.
ИЗМЕНИТЬ КЛИЕНТА JAVA
Клиенту Java нужно добавить в код несколько дополнительных строк. Это необходимо для правильной работы светодиодов:
Когда Alexa слушает, в движок WakeWord отправляется сигнал PAUSE_WAKE_WORD_ENGINE. Я использовал этот сигнал, чтобы узнать, когда включить СИНИЙ (светодиод прослушивания Alexa). При получении сигнала RESUME_WAKE_WORD_ENGINE синий светодиод гаснет, а БЕЛЫЙ (светодиод, говорящий с Alexa) включается. Дополнительный код отправляет еще один сигнал RESUME_WAKE_WORD_ENGINE, когда Алекса перестает говорить, чтобы движок WakeWord знал, когда выключить белый светодиод.
Перейдите к: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs и откройте AVSController.java в текстовом редакторе. Скопируйте код из прикрепленного файла Extra_Code.txt. Его нужно вставить в двух местах:
1. В функции public void onAlexaSpeechFinished () сразу после оператора: loadedDirectiveThread.unblock ();
2. В функции private void handleAudioPlayerDirective (директива Directive) непосредственно перед оператором: player.handleStop ();
Я также изменил назначение сигнала CONFIRM, чтобы движок WakeWord знал, ответила ли Алекса. Это необходимо для отмены 5-секундного тайм-аута, который произойдет, если нет ответа. Скопируйте код из Extra_Code2.txt и вставьте в одно место:
1. В функции public void onAlexaSpeechStarted () сразу после оператора loadedDirectiveThread.block ();
Теперь вам нужно перекомпилировать Java-клиент. Откройте командную строку и перейдите к C: / ALEXA / samples / javaclient. Введите: mvn install, чтобы перекомпилировать.
Если вы запустите Companion Service и приложение Java Alexa, как раньше, а затем дважды щелкните WakeWordPanda.exe, подождите, пока он подключится, и тогда вы сможете активировать Alexa, сказав «Alexa».
МИКРОДОТ
Если вы подключите USB-кабель MicroDot к LattePanda, как показано на схеме, и подключите аудиокабель, теперь он должен быть полностью функциональным. Произнесение слова пробуждения или прикосновение к решетке должно активировать Alexa, и должны загореться синие светодиоды. При ответе Alexa должны загореться белые светодиоды.
НАСТРОЙКА АВТОМАТИЧЕСКИЙ ЗАПУСК
Вместо того, чтобы вводить все команды вручную для запуска всего, вы можете использовать сценарий alexa_run.bat. Это будет ждать подключения к Интернету, а затем вызывать отдельные модули (сопутствующий сервис, Java-клиент, механизм пробуждения).
Последний шаг - сделать так, чтобы все запускалось автоматически при запуске:
1. Щелкните правой кнопкой мыши auto-run.bat и выберите создать ярлык. 2. Нажмите ctrl + R и введите shell: startup. Это откроет папку автозагрузки 3. Перетащите созданный вами ярлык в папку автозагрузки.
Теперь Alexa будет автоматически запускаться при запуске (инициализация после запуска занимает около 30 секунд).
Шаг 7: MicroDot для Raspberry Pi


(Если вы хотите использовать Raspberry Pi 3 вместо LattePanda).
СКАЧАТЬ
Загрузите пример приложения Alexa отсюда:
Нажмите кнопку «Клонировать» или «Загрузить» и загрузите файл в формате.zip. Разархивируйте так, чтобы папка alexa-ava-sample-app оказалась на рабочем столе.
УСТАНОВКА
Следуйте официальным полным инструкциям здесь (примечание: настройте так, чтобы папка alexa-ava-sample-app на рабочем столе):
github.com/alexa/alexa-avs-sample-app/wiki…
Есть много руководств, как сделать это с Raspberry Pi в сети. Я устанавливал это пару раз на Raspberry Pi, и ни разу это не прошло так гладко, как установка на WIndows 10 (неудивительно - Linux получает меня каждый раз). Основные проблемы, с которыми я столкнулся:
1. Правильная работа звука и микрофона. См. Здесь https://github.com/alexa-pi/AlexaPi/wiki/Audio-set …, если у вас тоже есть эти проблемы.
2. Проблемы с версией JDK. См. 4.3 в официальных инструкциях и примечание в файле pom.xml, в котором говорится о переопределении версии при выполнении команды mvn exec: exec (т.е. мне пришлось добавить этот переключатель -Dalpn-boot.version = 8.1.6.v20151105). Обратите внимание, что эта команда включена в мой сценарий запуска (alexa_startup.sh).
3. Заставить работать механизм слов пробуждения Sensory (https://github.com/Sensory/alexa-rpi)
Как только вы сможете запустить все это с помощью ручных команд, как указано в инструкциях, продолжайте установку MicroDot.
ПОДКЛЮЧЕНИЕ МИКРОДОТ
Вы не можете напрямую подключить MicroDot к GPIO, потому что он потребляет слишком большой ток. Вам потребуются: 2 транзистора 2N3904 для управления светодиодами, резисторы 1x2K2 и 1x3K3 для понижения напряжения сенсорного датчика до 3,3 В (MicroDot будет питаться от источника питания 5 В). См. Прилагаемую схему. Возможно, вы захотите сделать для этого печатную плату, но я только что установил эти компоненты на задней стороне 8-контактного розетки.
ИНДИВИДУАЛЬНЫЙ ДВИГАТЕЛЬ (СЕНСОРНЫЙ)
Разархивируйте содержимое прикрепленной zip-папки в папку alexa-avs-sample-app. Есть два файла: wake.py - скрипт на Python, который представляет собой настраиваемый (сенсорный) механизм пробуждения для MicroDot alexa_autostart.sh - скрипт для запуска всего. Щелкните правой кнопкой мыши свойства и выберите «Выполнить: кто угодно» на вкладке разрешений.
Вам понадобится установленный python для запуска механизма пробуждения. Вам также понадобится библиотека GPIO (https://makezine.com/projects/tutorial-raspberry-p…). Она уже должна быть установлена в последней версии Raspbian.
Чтобы запустить все, введите в терминал: cd / home / pi / Desktop / alexa-avs-sample-appsudo./alexa_startup.sh
НАСТРОИТЬ АВТОЗАПУСК
Чтобы настроить автоматический запуск Alexa при загрузке, откройте терминал и введите:
cd /home/pi/.config/lxsession/LXDE-pisudo nano автозапуск
и добавьте строку и сохраните:
@ / home / pi / Desktop / alexa-avs-sample-app / alexa_autostart.sh
Перезагрузитесь, и приложение Alexa должно запуститься автоматически.
Рекомендуемые:
Автоматизированная садовая система, построенная на Raspberry Pi для улицы или дома - MudPi: 16 шагов (с изображениями)

Автоматизированная садовая система, построенная на Raspberry Pi для улицы или дома - MudPi: Вы любите садоводство, но не можете найти время для его ухода? Возможно, у вас есть комнатные растения, которые немного хотят пить или вам нужен способ автоматизировать гидропонику? В этом проекте мы решим эти проблемы и изучим основы
Индивидуальный органайзер для переплетных листов для коллекционных карточек или мелких деталей: 7 шагов

Пользовательский органайзер для переплетных листов для коллекционных карточек или мелких деталей: я искал лучший способ хранения моих электронных компонентов, потому что до сих пор я использовал органайзер для ящиков для организации своих резисторов и небольших конденсаторов, но у них недостаточно ячеек для хранения каждого значения в другой камере, так что у меня было немного ва
Док-станция для автомобильной подставки для iPhone или IPod Touch: 14 шагов

Iphone Car Stand Doc for IPhone или IPod Touch: удерживающая система для iPhone или iPod Touch в автомобиле. Использует предметы, которые есть у вас дома, покупайте только липучку (3 доллара), зеленая концепция! Не найдя скрытой поддержки на рынке, характерной для iPhone, я решил сделать ее сам. (Подробнее
Ремешок для ноутбука - для дивана или кровати: 5 шагов

Ремешок для ноутбука - для дивана или кровати: это то, что я сделал после нескольких месяцев напряжения шеи, глядя на свой ноутбук, сидя на диване. Это действительно работает, только если вы сидите, как я, когда на диване, откинувшись назад, положив ноги на журнальный столик … Но это также
Сигнализация для мобильного телефона для мотоцикла, автомобиля или чего угодно: 7 шагов (с изображениями)

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