Я действительно начинаю любить своего Arduino в последнее время; пройдя основные уроки и даже сделав светодиодный куб, я был готов заняться чем-то гораздо более сложным. К счастью, речевой контроль над проектом Arduino на самом деле не так сложен, как я думал — вот три совершенно разных подхода, которые вы можете использовать.
Использование OSX Automator и Speakable Items
Один из способов сделать это — использовать существующие утилиты речевых команд, встроенные в OSX; Настройка пользовательских команд для запуска действий Automator проста. (Если вы не знакомы с Automator, загрузите наше бесплатное руководство в формате PDF для автоматизации вашего Mac!)
Что касается кода Arduino, мы используем строковый буфер, подробно описанный в этой ветке форума Arduino — это позволило нам искать точные слова в последовательной связи — без этого я нашел преобразования типов между числами, байтами и строками быть проблематичным. Вот полный код Arduino для прослушивания последовательных команд, хотя вам потребуется добавить свои собственные команды и оборудование для фактического управления устройствами, поскольку это выходит за рамки данного руководства по проекту Arduino. Если вы используете реле, помните, что они должны уметь справляться 120-240vAC. Кроме того, если вы новичок во всем этом, обязательно ознакомьтесь с руководством для начинающих Arduino.
Затем загрузите эту утилиту Arduino-serial, которая позволяет напрямую связываться с Arduino из командной строки или сценария оболочки. Поместите это в корень вашего пользовательского каталога, затем откройте сеанс терминала и введите:
make arduino-serial
скомпилировать пакет для вашей системы.
Использование этой утилиты довольно просто, но для наших целей начните с ввода
ls /dev/tty.*
чтобы выяснить, на каком порту ваш Arduino (USB). Затем, чтобы отправить команду, используйте:
./arduino-serial -b 9600 -p /dev/tty.usbmodemfd13411 -s lightsOn
замещать /dev/tty.usb~ с точным названием, которое вы нашли для вашего USB-порта, подключенного к Arduino. Обратитесь к исходной странице для большего количества примеров использования, включая получение возвращаемого значения, но это будет делать пока.
Одна вещь, которую я обнаружил, это то, что мне пришлось «запустить» Arduino, отправив команду, используя Arduino Serial Monitor Сначала все работало нормально. Если кто-нибудь знает, почему это так, я хотел бы услышать.
Далее откройте Automator и создать новый заявка. Найти Запустить сценарий оболочки действие, добавьте его и вставьте в последовательную команду, чтобы включить свет.
Сохранить это в библиотека / речь / произносимые предметы папка со словами, которые вы хотели бы запустить действие — в моем случае «светится».
Затем включите голосовые команды из доступность панель настроек.
Этот учебник с 2009 года
все еще актуально, но в основном вы хотите включить Глобальные произносимые предметы.
Вот демонстрация того, как все это работает.
Easy VR Shield (Аппаратное обеспечение)
EasyVR — это дополнительный аппаратный экран, который сначала кодирует предварительно записанные образцы речи, а затем использует аппаратное решение для их сопоставления с образцом. Настройка немного сложна, и каждая команда отвечает только на один голосовой отпечаток, но это наиболее полный выбор, если вы хотите, чтобы проект не зависел от компьютера. EasyVR Shield стоит 35 фунтов стерлингов от CoolComponents в Великобритании или 50 долларов США от SparkFun в США. Вот демонстрация работы щита вместе с процессом кодирования:
SiriProxy Via Ruby
Если у вас есть iPhone с поддержкой Siri, который был взломан, Siri Proxy — отличный способ использовать возможности распознавания голоса вашего телефона. SiriProxy — это приложение Ruby, которое прослушивает команды, которые распознаются и отправляются на серверы Apple; добавить способ общаться с Arduino, и у вас есть SiriProxy-Arduino. Единственным недостатком является то, что вам нужно загрузить специальный скетч в Arduino, который реализует API-интерфейс Ruby, так что вам придется либо это настроить, либо кодировать все в Ruby на стороне компьютера.
Вот вам и 3 уникальных способа управления любым проектом Arduino одним голосом. Попробуете ли вы озвучивать свои огни Как вы думаете, вы могли бы использовать эти идеи в другом проекте? Дайте нам знать об этом в комментариях!