Текст книги "Создаем робота-андроида своими руками"
Автор книги: Джон Ловин
Жанр: Зарубежная образовательная литература, Наука и Образование
сообщить о неприемлемом содержимом
Текущая страница: 10 (всего у книги 22 страниц)
start:
pot 3,255,b0 ‘Считывание показаний первого датчика
pot 4,255,b1 ‘Считывание показаний второго датчика
w2 = b0 * 3 ‘Умножение на весовой коэффициент
w3 = b1 * 2 ‘Умножение на весовой коэффициент
w4 = w2 + w3 ‘Сложение результатов
‘Установка пороговых значений
if w4 < 40 then feed ‘Много света. Питание
if w4 <= 300 then hunt ‘Света среднее количество. Охота
If w4 > 300 then snooze ‘Света мало. Спячка
‘Действия
feed: ‘Кормление
low 0
low 1
high 2
goto start:
hunt: ‘Охота
low 0
high 1
low 2
goto start:
snooze: ‘Спячка * не использовать ключ sleep *
goto start
Список необходимых частей для программирования микроконтроллера• компилятор PSIBASIC
• компилятор PSIBASIC Pro (включая CodeDesignerLit)
• программатор EPIC
• компилятор PICBASIC и программатор EPIC
• CodeDesigner любительская версия
• CodeDesigner стандартная версия
• 16F84-4 1 шт.
• кварцевый резонатор 4,0 МГц
• конденсатор 22 пФ 2 шт.
• конденсатор 0,1 мкФ
• конденсатор 100 мФ 12 В
• резистор 4,7 кОм 0,25 Вт
• резистор 470 Ом 0,25 Вт
• стабилизатор напряжения 7805
• светодиод миниатюрный
• плата макетная
• Набор для экспериментов PIC–LED-02 (Включает: PIC16F84 (1), кварц 4,0 МГц (1), конденсатор 22 пФ (2), резистор 10 кОм 0,25 Вт (1), регулятор напряжения 7805 (1), макетная плата (2,1" х 3,6", 270 монтажных отверстий)(1), резистор 470 Ом (8), миниатюрный светодиод (8), кнопка-выключатель (1), руководство по двоичному коду, логике и портам ввода/вывода А и В)
• Сервомотор с усилием 1,3 кгс
Список деталей для системы слежения за направлением источника света и демонстрационного нейрона• (2) CdS фотоэлемент
• (1) датчик изгиба (номинальное сопротивление 10 кОм)
• (2) конденсатор 0,22 мкФ
• (1) конденсатор 0,01 мкФ
• (4) транзистор NPN TIP 120 Darlington
• (2) резистор 10 кОм
• (б) диод 1N514
• (2) резистор 1 кОм
• двигатель с редуктором 4000:1
Детали можно заказать в:
Images Company
James Electronics
JDR MicroDevices
Radio Shack
Images SI, Inc.
39 Seneca Loop
Staten Island, NY 10314
(718) 698-8305
(718) 982-6145 (fax)
• (1) Макетная плата – Radio Shack PN# 276-175
• (1) конденсатор 0,1 мкФ – Radio Shack PN# 272-1069
• (8) Светодиод красный – Radio Shack PN# 276-208
• (8) Резистор 470 Ом – Radio Shack PN# 270-1115
• (1) Резистор 4,7 кОм – Radio Shack PN# 271-1124
• (8) Резистор 10 кОм – Radio Shack PN# 271-1126
• (1) Регулятор напряж. 7805 – Radio Shack PN# 276-1770
• (2) Выключатель 4 позиц. – Radio Shack PN# 275-1301
• Зажим батареи 9 В – Radio Shack PN# 270-325
Детали можно заказать в:
Radio Shack
James Electronics
JDR MicroDevices
Глава 7
Передвижной робот с голосовым управлением
Речь является идеальным способом управления и коммуникации в робототехнике. Схема устройства распознавания речи (УРР), которой будет посвящена эта глава, функционирует независимо от основного «интеллекта» роботы (ЦПУ). Этот факт является позитивным, поскольку ресурс ЦПУ робота не используется для решения задачи распознавания речи. Задача ЦПУ сводится к тому, чтобы время от времени опрашивать шины выхода устройства распознавания для обнаружения возможных поступивших речевых команд. Данный процесс может быть оптимизирован путем подключения одной из выходных шин устройства распознавания к шине прерываний ЦПУ. При этом распознаваемое слово вызовет прерывание, оповещая ЦПУ, что команда была произнесена. Преимущество использования прерывания в том, что при этом отпадает необходимость постоянного опроса состояния устройства распознавания, что, таким образом, экономит ресурс ЦПУ.
Другим преимуществом отдельного законченного блока устройства распознавания речи (УРР) является его программируемость. Вы можете запрограммировать и «научить» УРР распознаванию тех конкретных слов, которые вы предполагаете использовать в качестве команд. Легко создать интерфейс, сопрягающий УРР с ЦПУ робота.
Большинство сегодняшних систем распознавания речи, появляющихся на рынке, представляют собой специальное матобеспечение, требующее наличия рабочего компьютера (как правило, системы РС или совместимого) и звуковой карты. Система УРР в своей основе представляет собой программу, хотя для своей работы требует некоторого «железа» (звуковая карта). Такие программы функционируют обычно под платформой DOS или Windows, занимая при этом определенную часть памяти и ресурса ЦПУ, допуская в то же время одновременную работу других программ, таких как Word или Lotus. Одновременная работа программы УРР замедляет работу других программ, использующих данные программы УРР.
Распознавание речи используется не только в робототехнике, но находит множество применений вне ее. Распознавание речи найдет применение как способ управления роботами в виртуальной реальности (ВР), приборах, играх, инструментах и компьютерах. Данная технология обладает в долгосрочной перспективе очень хорошим потенциалом, поэтому компании развивают методы распознавания речи. Возможность управлять и отдавать команды компьютеру (или прибору) непосредственно голосом сделает процесс управления таким устройством гораздо более простым, эффективным и удобным. Такой тип управления голосом в своей основе позволит пользователю осуществлять параллельно и другие операции (т. е. при голосовой работе с компьютером или прибором глаза и руки остаются «свободными» для другой работы).
В этой главе мы рассмотрим три проекта построения устройств распознавания речи. Первый проект представляет собой собственно схему УРР. Второй проект посвящен интерфейсу, связывающему УРР с мобильным шасси, взятым от радиоуправляемой модели автомобиля. Наконец, в третьем проекте рассматривается плата универсального интерфейса для набора УРР.
Проект 1: Программируемая схема распознавания речи
Первым проектом является создание программируемой схемы распозна-, -т вания речи. Термин «программируемый» используется в том смысле, что вы T"7V можете запрограммировать устройство для распознавания 40 отдельных слов по вашему выбору. «Сердцем» устройства является единственная ИС типа HM2007 – ИС распознавания речи. ИС обеспечивает распознавание слов длиной 0,96 с или 1,92 с.
При длине слова 0,96 с и статической оперативной памяти (RAM) размером 8Кх8 возможно распознавание до 40 отдельных слов. Возможно включение опции распознавания более длинных слов длиной 1,92 с. Хотя при этом количество распознаваемых слов сокращается до 20, появляется возможность распознавания не только отдельных слов, но и коротких фраз. В нашем проекте мы будем использовать интервал распознавания 0,96 с, что образует библиотеку из 40 распознаваемых слов.
Обучение процессу восприятия речиМы принимаем собственные способности к распознаванию речи как нечто само собой разумеющееся. Однако процесс выделения речи одного человека в толпе собравшихся на вечеринке лежит далеко за пределами возможностей современных систем УРР. Такие системы, точно так же как и мы, сталкиваются с нелегкими задачами разделения сигналов и фильтрации посторонних шумов.
Для надежной работы устройства УРР расстояние от говорящего до микрофона УРР не должно превышать 30 см. При использовании УРР на подвижном шасси робота, мы включили две небольшие радиостанции типа Walkie-Talkie. Выход одной из радиостанций соединен с микрофонным входом УРР. Другая радиостанция используется для собственно подачи голосовых команд роботу. Такая конфигурация снимает проблему удаленности от УРР и снижает посторонние шумы.
Задача распознавания речи не совпадает с задачей «понимания» речи. Если компьютер способен реагировать на звуковую команду, то это не означает, что он ее «понимает». Будущие системы распознавания речи, возможно, приобретут возможности распознавания смысловых и интонационных оттенков значения слов, т. е. будут реагировать по типу «Делай то, что я подразумеваю, а не то, что я произношу». Тем не менее подобные системы – вопрос отдаленного будущего.
Распознавание речи в зависимости и независимо от говорящегоВ процессе распознавания речи можно выделить две задачи: распознавание речи для конкретного говорящего и независимо от него. Система распознавания речи «обучается» речью конкретного человека, который будет в дальнейшем ее использовать. Подобные системы способны запоминать значительное количество команд и распознавать их с вероятностью более 95 %. Недостатком такого подхода является то, что система достаточно точно распознает команды только того человека, который производил ее «обучение». Такой подход является наиболее распространенным для систем, основанных на использовании программного обеспечения персональных компьютеров.
Система, не зависящая от говорящего, «обучается» для понимания команд независимо от того, кто их произносит. По этой причине система должна иметь возможность адекватно реагировать на широкий спектр моделей речи, включая интонационное своеобразие и особенности произношения ключевых слов. В этом случае набор командных слов, как правило, значительно меньше, однако достижение необходимой точности реагирования и в этом случае возможно. Для промышленных целей чаще требуются именно системы распознавания, независимые по отношению к говорящему.
Наше УРР относится к системам, настроенным на речь конкретного человека. Мы можем сделать нашу систему отчасти «независимой» путем резервирования для каждого ключевого слова нескольких речевых моделей, каждая из которых программируется отдельно и занимает соответствующее место. Каждая из этих речевых моделей будет вызывать выполнение одной и той же команды.
Виды распознавания речиСистемы УРР имеют еще одно специфическое ограничение, которое относится к виду или стилю распознаваемой речи. Предполагается существование трех видов речи: раздельная, связная и непрерывная.
Раздельная речь
Системы УРР, оперирующие с раздельной речью, обрабатывают слова, которые произносятся раздельно. На сегодняшний день это наиболее распространенные системы УРР. В данном случае пользователю необходимо делать паузы между командными словами. В нашем устройстве РР будут использоваться как раз отдельные слова.
Связная речь
Связная речь занимает промежуточное положение между произнесением отдельных слов и непрерывным потоком речи. В этом случае пользователь может произносить группы слов в качестве команд. ИС HM2007 может быть установлена на распознавание слов или фраз длиной до 1,92 с. В этом случае словарь команд сокращается до 20 единиц.
Непрерывная речь
Непрерывный поток разговорной речи мы используем в повседневной жизни. Для УРР распознавание непрерывной речи представляет фантастически трудную задачу, поскольку в таком потоке слова проявляют тенденцию к слиянию. Например, фраза «Здравствуйте, как вы поживаете?» фонетически звучит как «Здраствуте, каквыпоживате». Подобные системы распознавания непрерывного потока речи уже появились на рынке и находятся в процессе постоянного развития.
Схемное решение УРРДемонстрационная схема выполнена на ИС HM2007, включенной в режим ручной моды. В данной моде для программирования ИС HM2007 используется микрофон и простейшая клавиатура.
Клавиатура
В качестве клавиатуры использована стандартная телефонная клавиатура, имеющая 12 нормально разомкнутых кнопок.
При включении питания ИС HM2007 осуществляет тестирование «бортовой» статической ОП. После завершения тестирования зажигаются цифры «00» на бортовом семисегментном индикаторе, зажигается красный светодиод, и устройство ожидает подачи команды.
Обучение
Нажмите «1» (на индикаторе загорится «01»), и светодиод погаснет. Затем нажмите «Т» (Training – обучение), и светодиод загорится снова.
Держите микрофон поближе ко рту и произнесите ключевое (обучающее) слово. Допустим, в качестве обучающего слова используется слово «компьютер». Произнесите «компьютер» в микрофон. Если устройство воспримет слово, то это вызовет мигание светодиода. Слово компьютер запрограммировано как слово под номером «01». Теперь если УРР «услышит» слово «компьютер», то оно отобразит число «01» на индикаторе.
Если диод не будет мигать после произнесения слова «компьютер», то либо попробуйте повторить это слово громче, либо начните сначала – наберите «01» а затем «Т».
Продолжайте введение образцов новых слов в УРР. Для второго слова нажмите «02» и затем «Т». Напомню, что устройство способно запомнить 40 слов. Понятно, что нет необходимости вводить все 40 слов. Введите необходимое вам количество слов и перейдите к следующему этапу.
Проверка функции распознавания
Произнесите одно из ранее запомненных слов в микрофон. На цифровом индикаторе должен высветиться соответствующий номер. Допустим, ключевое слово «директория» было введено под номером 25. Соответственно, произнесение слова «директория» должно вызвать зажигание цифры 25 на цифровом индикаторе.
Коды ошибок
• 55 = слишком длинное слово
• 66 = слишком короткое слово
• 77 = соответствующего слова не найдено
Очистка памяти
Вы можете удалять отдельные записи ключевых слов путем набора номера слова и кнопки CLR. Для полной очистки памяти необходимо набрать 99 и кнопку CLR.
Особенности ИС HM2007
ИС HM2007 для распознавания речи представляет собой однокристальную ИС КМОП-структуры высокой степени интеграции. В ИС имеется аналоговый вход, анализатор голоса, блок распознавания и блок контроля системных функций. ИС может использоваться самостоятельно или под управлением ЦПУ.
Характеристики
• Однокристальная ИС для распознавания речи КМОП-структуры высокой степени интеграции
• Распознавание речи конкретного источника
• Поддержка внешней ОП
• До 40 распознаваемых ключевых слов
• Максимальная длина слова 1,92 с
• Возможность подключения микрофона
• Возможность работы в ручной моде и под управлением ЦПУ
• Время реагирования менее 300 мс
• Напряжение питания 5 В
Конструкция устройства
Устройство РР можно изготовить на основе готового набора деталей, поставляемого Images Company (см. список деталей в конце этой главы). Принципиальная схема приведена на рис. 7.1. Монтаж деталей удобно осуществлять на печатной плате.
Рис. 7.1. Схема устройства распознавания речи
Припаяйте выводы клавиатуры к печатной плате согласно рис. 7.2. Клавиатура имеет семь проводников, которые соединяются с ИС HM2007 на печатной плате. Каждый вывод клавиатуры соотносится с соответствующим выводом ИС HM2007.
Рис. 7.2. Распайка клавиатуры для УРР
На рис. 7.3. изображено расположение деталей на печатной плате со стороны компонентов. На рис. 7.4 изображено УРР в сборе.
Рис. 7.3. Вид сверху расположения деталей на печатной плате
Рис. 7.4. Устройство РР в сборе
Устройство РР, независимое от говорящего
Демонстрационная схема УРР позволяет производить эксперименты по распознаванию речи как в зависимости, так и независимо от говорящего. Обычно система настраивается под конкретного человека в предположении, что он будет ее использовать.
Мы можем использовать другой способ и «обучить» систему реагировать относительно независимо от говорящего. Для достижения этой цели мы будем использовать четыре модели «обучения» для каждого командного ключевого слова.
Для упрощения последующей цифровой обработки сообщений используем следующую логику. Для обозначения ключевого слова мы будем использовать только первую цифру (младший разряд) на цифровом индикаторе.
Таким образом, модели «01», «11», «21» и «31» будут распознаваться как одно и то же ключевое слово. Поскольку учитывается только младший разряд, то во всех случаях распознаваемое слово будет обозначаться как «1». Аналогично, модели «04», «14», «24» и «34» будут соответствовать ключевому слову «4».
Проблемы могут возникнуть при распознавании кодов ошибок.
• 55 = слишком длинное слово
• 66 = слишком короткое слово
• 77 = соответствующего слова не найдено
В использованной логике эти коды будут интерпретироваться как ключевые слова «5», «6» и «7» соответственно. Для решения проблемы существуют два пути. Первый способ использует специальную логическую схему (см. рис. 7.5), которая выдает сигнал высокого уровня при появлении цифр 5, 6 или 7 в старшем разряде, который является сигналом блокировки. Такая схема выдает сигнал высокого уровня на линию при появлении цифр 5,6 или 7, который интерпретируется интерфейсом как сигнал запрета. Другой путь решения проблемы предполагает использование PIC микроконтроллера для чтения 8-разрядного кода с выхода УРР. Любое значение более 40 будет интерпретироваться как ошибка и соответственно игнорироваться. Мы не приводим здесь схемы интерфейса для PIC микроконтроллера, поскольку для любого, умеющего работать с PICBASIC программатором и PIC ИС (см. гл. 6), это не составит большого труда. В гл. 15 мы используем встроенный PIC в схеме УРР, используемого в устройстве управления рукой робота.
Рис. 7.5. Детектор ошибки на основе состояния старшего полубайта BCD
8-битный код на выходе ИС 74LS373 является кодом с фиксацией состояния. Этот код не представляет собой обычный байт (8 двоичных разрядов), но является двумя 4-битными двоично-десятичными кодами (полубайт). В таблице 7.1 приведено соответствие между двоично-десятичным кодом и стандартным двоичным числом.
Как вы можете заметить, до числа 10 двоичный и двоично-десятичный коды совпадают. На числе 10 в двоично-десятичном коде единица «перепрыгивает» в старший полубайт, а младший полубайт обнуляется. В простом двоичном коде подобная операция (перенесение единицы в старший полубайт и обнуление младшего) осуществляется на числе 16. Если вход компьютера настроен на чтение двоичных чисел, то при подаче двоично-десятичного кода возникнут ошибки.
Таблица 7.1
Проект 2: Схема интерфейса
Основой схемы интерфейса является дешифратор 4028. ИС 4028 считывает двоично-десятичный код логики низкого уровня с выхода ИС 74LS373, расположенной на плате УРР, и выдает соответствующие сигналы высокого уровня (см. таблицу соответствий 7.2).
Принципиальная схема интерфейса изображена на рис. 7.6. Входы A,B,C, и D ИС 4028 подключены к нижнему полубайту двоично-десятичного кода ИС 74LS373. Когда я разобрал радиоуправляемую модель автомобиля, то обнаружил несколько проводов, которые при подаче питающего напряжения обеспечивают основные функции движения. Робот-автомобиль имеет четыре режима движения: движение вперед, поворот направо, поворот налево и задний ход.
Рис. 7.6. Схема интерфейса переделанной модели автомобиля
Таблица 7.2. Таблица истинности ИС 4028
Каждый режим движения обеспечивается соответствующим включением двигателя или комбинации двигатель-соленоид. Управление включением может осуществляться с помощью NPN транзистора. К выходам ИС 4028, обозначенным Q1-Q4, подключены четыре транзистора, которые осуществляют необходимое управление.
Для наглядности иллюстрации на рис. 7.6 показан только один NPN транзистор, соединенный с выходом Q1 и управляющий работой двигателя. Модель радиоуправляемого автомобиля, которую я использовал, уже снята с производства. Тем не менее подойдет любая недорогая модель подобного радиоуправляемого автомобиля, поскольку они работают аналогично. Снимите схему радиоуправления с автомобиля. Останется провод управления работой двигателя, который для запуска двигателя должен быть соединен с источником питания или с землей. Повороты автомобиля обычно осуществляются недорогими соленоидами. Проверьте провода поворотных соленоидов для определения типа управления (подача напряжения питания или заземление).
Ручные станции Walkie-talkieУ компании Radio Shack имеется в продаже большой ассортимент недорогих ручных станций Walkie-talkie. Поскольку для нормальной работы УРР расстояние до микрофона не должно превышать 30 см, использование пары ручных станций Walkie-talkie позволит значительно увеличить радиус управления роботом-платформой, использующей УРР. Выход громкоговорителя станции соединен с выводом 46 ИС HM2007 через разделительный конденсатор С1, который блокирует протекание постоянного тока от станции.
Акустическая связьЕсли вы не хотите разбирать станцию и спаивать проводниками УРР и Walkie-talkie непосредственно, то можете попробовать использовать акустическую связь.
Для этой цели вы должны скрепить микрофон из набора УРР и громкоговоритель станции. Для уменьшения влияния посторонних шумов необходимо поместить микрофон и громкоговоритель в отдельную коробку.
«Обучение» и управление роботом-передвижкойПри использовании Walkie-talkie процесс «обучения» командным словам УРР, установленного на передвижной платформе, необходимо осуществлять также с использованием Walkie-talkie. Подключение интерфейса не нарушает работы бортового цифрового индикатора, поэтому он может быть использован для проверки точности распознавания записанных команд. Определите радиус действия станций Walkie-talkie. Не допускайте перемещений платформы за границы этого радиуса, в противном случае вы будете бежать за платформой, выкрикивая «стоп, стоп!» в микрофон станции. Управление роботом напоминает просто процесс общения и производит сильное впечатление.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.