Система голосового управления

Материал из roboforum.ru Wiki
Версия от 08:57, 22 сентября 2009; Setar (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Внешний вид платы передатчика

Краткое описание

Система предназначена для дистанционного управления роботом при помощи голосовых команд (конечно, можно применять ее и для управления другими устройствами).

Основой системы является микросхема HM2007, которая может распознавать до 20 команд длительностью до 1.9 секунд, или до 40 команд длительностью до 0,96 секунд Для передачи команд на управляемый объект используется модуль радиоканала 2.4ГГц. Аналогичный модуль используется в качестве приемника. Передатчик питается от литий-ионного аккумулятора.

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

Принципиальная схема передатчика

Принципиальная схема передатчика

Основой системы является микросхема HM2007, к которой подключены электретный микрофон и микросхема статического ОЗУ. Для управления HM2007 и радиомодулем используется микроконтроллер ATMega32. Флэш-память микроконтроллера также хранит записанные образцы команд при отключении напряжения питания. Необходимое для питания HM2007 напряжение +5 вольт выдает DC-DC преобразователь 34063. При некоторых условиях в работе микросхемы HM2007 происходят сбои, и она перестает отвечать на команды. Вывести ее из этого состояния можно только отключив и вновь включив напряжение питания. Для этой цели предусмотрен ключ на транзисторе. При подключении радиомодуля к компьютеру через порт USB начинается зарядка АКБ под управлением MAX1555.

Программирование передатчика

Перед использованием передатчика должны быть записаны образцы команд. Для управления этим процессом можно использовать программу HyperTerminal, поставляемую в составе Windows.

Установка соединения

В первую очередь необходимо установить драйвер виртуального COM порта для связи через USB. Скачать драйвер можно здесь. Руководство по установке драйвера - здесь.

SpeechComSettings.PNG

После установки драйвера нужно запустить HyperTerminal. При создании нового соединения указать COM порт, созданный при установке драйвера. Параметры порта :

  • скорость - 19200 бит/с
  • биты данных - 8
  • четность - нет
  • стоповые биты - 1
  • управление потоком - Xon/Xoff

Необходимо также изменить параметры ASCII для подключения SpeechASCII.PNG

После настройки соединения, нужно включить питание передатчика. Будет произведен тест памяти, и передатчик перейдет в режим распознавания голосовых команд. Таким образом, при отсутствии подключения к компьютеру сразу после включения передатчик готов к распознаванию команд и передаче результатов по радиоканалу.

SpeechStartup.PNG

Чтобы перевести передатчик в режим управления с ПК, нужно нажать клавишу Enter, после чего произнести любую фразу в микрофон. Будет выдано сообщение :

+ Returned to command mode
>

Все команды состоят из одной буквы, некоторым командам требуется параметр в виде числа. Для получения списка команд, используется команда H

> h
      ==== Commands ====
d Download patterns to file
u Upload patterns from file
t [number] Train pattern [number]
r Recognize pattern
l [0/1] Set pattern length (0 = 0.96s, 1= 1.9s)
h or ? This help message
>

Запись образцов команд

Для записи образцов голосовых команд используется команда T, требующая параметр - номер записываемого образца. После ввода команды, нужно произнести в микрофон голосовую команду.

> t 1
+ Training pattern #1
+ Talk
+ Done
>

Проверка распознавания команд

Для проверки записанных образцов используется команда R. После ввода команды, нужно произнести в микрофон голосовую команду. Если команда распознана, будет выведено сообщение следующего вида :

> r
+ Recognition mode
+ Talk
+ Result : 1. Distance: 80
>

Result - это номер распознанного образца. Distance - степень соответствия, в диапазоне от 0 до 255. 0 означает полное соответствие, 255 - минимальное соответствие. Если команда не распознана, выдается сообщение ! No match

Установка длительности команды

Команда L служит для установки длительности голосовых команд. Параметр определяет длительность : 0 - 0,96 сек., 1 - 1,9 сек. При смене длительности команды, все записанные образцы должны быть стерты, поэтому выдается запрос:

? All patterns will be cleared. Continue? [y/n] >

При ответе Y все ранее записанные образцы будут стерты, и длительность команд будет изменена.

Запись образцов в файл

Команда D служит для записи образцов команд в файл для последующего восстановления. При смене прошивки контроллера, все записанные образцы команд будут уничтожены, поэтому перед перепрошивкой образцы можно сохранить в файл. Последовательность действий : в окне терминала нажать клавишу D, не нажимая Enter. После этого, из меню выбрать Передача => Запись протокола в файл ... и выбрать файл для сохранения, затем нажать Enter. Перед сохранением файл должен быть пуст или не существовать, так как HyperTerminal дописывает данные в конец файла. После завершения передачи файла (появляется приглашение > ), в меню выбрать Передача => Запись протокола в файл => Остановить

Восстановление образцов из файла

Команда U служит для восстановления образцов команд из файла. Последовательность действий : в окне терминала подать команду U. Будет выдано сообщение:

> u
+ Send file

Из меню выбрать Передача => Отправить текстовый файл ... и выбрать файл, ранее сохраненный с использованием команды D.

Возврат в режим распознавания

При подаче команды A происходит возврат в режим распознавания голосовых команд и передачи результатов по радиоканалу.

Программное обеспечение

В архиве содержатся :

  • в каталоге tx - исходные коды и скомпилированная прошивка (speech.hex и speech.eep) передатчика, а также документация к библиотеке для работы с микросхемой HM2007
  • в каталоге rx - исходные коды примера реализации премника

Прошивка

Справочная информация

Даташит HM2007

Дополнения к даташиту HM2007

HM2007 FAQ