Создаем робота-андроида своими руками
Шрифт:
Интерфейс должен опознавать коды ошибок и не смешивать их с командами под номерами 5, 6 и 7. Для этого используется схема, состоящая из двух ИС И-НЕ типа 4011, включенных по схеме логических И и ИЛИ (как показано на рис. 7.8), которая обнаруживает коды ошибок 55, 66 и 77.
Соединение с платой УРР
Плата УРР имеет 9 отверстий под пайку, соединяющих ИС 74LS373 и 7448 для подключения схемы интерфейса (см. рис. 7.8). Восемь шин представляют 2 четырехбитных двоично-десятичных кода, девятая шина – земляная. Имеется контактная площадка красного светодиода. К этой площадке припаивается проводник, который является запускающим входом платы интерфейса.
Принцип работы устройства
Прежде
Ток через светодиод используется для запуска интерфейса (реакция на слово). Для формирования импульса запуска используется компаратор, подключенный к катоду светодиода. Опорное напряжение составляет 3,64 В и формируется резистивным делителем 5,6 кОм и 15 кОм.
Выход компаратора имеет нормально высокий уровень. При поступлении импульса амплитудой 4,5 В с катода светодиода, на выходе компаратора формируется отрицательный импульс запуска. В качестве компаратора использован ОУ типа 741.
Процесс распознавания речи занимает до 300 мс. Во время этой задержки состояние двоично-десятичных выходов сохраняется неизменным. Если интерфейс работает слишком быстро, то он завершит обновление информации на выходе до появления входной информации, содержащейся в двоично-десятичных кодах.
Для предотвращения этого явления мы обеспечиваем задержку отрицательного импульса запуска, используя две ИС таймеров типа 555 (или одну ИС типа 556), включенных по схеме одновибратора. Отрицательный импульс с выхода компаратора запускает первый одновибратор, который выдает импульс длиной 470 мс, подаваемый на вход второго одновибратора. Второй одновибратор генерирует импульс длиной 220 мс.
Импульс длиной 470 мс предоставляет более чем достаточно времени для обновления выходов двоично-десятичного кода. Задний отрицательный фронт этого импульса запускает второй одновибратор, который выдает положительный импульс продолжительностью 220 мс. В это время происходит обновление выходов интерфейса при условии, что детектор кодов ошибок имеет высокий логический уровень на выходе.
Выход второго одновибратора (импульс 220 мс) соединен с одним из входов логического элемента И. Другой вход соединен с двумя другими логическими элементами (ИЛИ-НЕ и ИЛИ), которые образуют детектор кодов ошибок. Детектор кода ошибок соединен со старшим полубайтом двоично-десятичного кода. При наличии кода, соответствующего цифрам 5, 6 или 7 на входе детектора, он выдает низкий логический уровень на выходе. Для остальных цифр детектор имеет высокий выходной уровень. В этом случае позитивный импульс с выхода второго одновибратора запускает интерфейс для принятия младшего полубайта двоично-десятичного кода.
Высокий логический уровень на выходе детектора кода ошибок в комбинации с положительным импульсом с выхода второго одновибратора вызывает появление высокого уровня на выходе логического элемента И, что разблокирует ИС 74LS373. Когда ИС 74LS373 разблокирована, то код, содержащийся в младшем полубайте двоично-десятичного кода, поступает с ИС и записывается в ней. Четыре выхода ИС 74LS373 соединены с входами двоично-десятичного дешифратора 4028.
С другой стороны, если на выходе детектора кода ошибок присутствует сигнал низкого уровня, что происходит при наличии цифр 5, 6 или 7 в старшем разряде, то соответствующий выход элемента И имеет низкий уровень. В этом случае, при наличии положительного импульса от второго одновибратора на втором выводе логического элемента И, его выход по-прежнему имеет логически низкий уровень, тем самым ИС 74S373 блокируется, и информация младшего разряда не поступает на дешифратор 4028.
Таким путем, детектор кода ошибок отделяет числа 55, 66 и 77 от команд под номерами 5, 6 и 7.
При прохождении двоично-десятичного кода через ИС 74LS373, он поступает на вход дешифратора 4028. Дешифратор считывает данный код и выдает сигнал высокого уровня на соответствующей шине выхода (с номерами от 0 до 9).
Усовершенствование выхода интерфейса
Выходы
Первоначально имеется возможность активировать любое количество выходов без риска сброса уже включенных. Затем та же самая команда может быть использована для включения нагрузки (при первом произнесении) и затем ее выключения (при следующем произнесении). Таким образом, вместо использования пары команд для включения/выключения устройства (например: включить свет/выключить свет) возможно использование единственной команды, которая в «четный» раз выключает устройство (свет-свет). В некоторых случаях это позволяет удвоить список допустимых команд.
На рис. 7.9 показана схема триггера на ИС 4013. Каждая ИС содержит два триггера. Входы триггеров соединены непосредственно с выходами ИС 4028.
Рис. 7.9. Половина триггера 4013 для запоминания сигнала. Соединяется непосредственно с выходом ИС 4028, изображенной на рис. 7.8, и предназначена для сохранения включенного состояния схемы при включении следующей команды
На рис. 7.10 изображена одна схема и два фрагмента схем присоединения к выходу триггера для управления нагрузками различных типов. На части А изображен Дарлингтоновский NPN транзистор, управляющий резистивной нагрузкой в цепи постоянного тока. Подобная схема может быть использована для управления электромагнитным реле, как показано в В. Реле, соответственно, может управлять цепями постоянного или переменного тока. В части С выход 4013 соединен с оптопарой, управляющей симистором.
Рис. 7.10. Данные схемы могут быть подключены к интерфейсу, чтобы обеспечить управление схем с помощью УРР. В схеме на позиции А в качестве ключа используется триггер, управляющий Darlington транзистором. В позиции В транзистор заменен реле, что позволяет управлять сильноточными резистивными или индуктивными нагрузками постоянного и переменного тока. Схема на позиции С, объединенная с триггером позиции А позволяет осуществить гальваническую развязку между силовыми и управляющими цепями, управляя при этом включением нагрузки переменного тока
Работа устройства
Схема УРР первоначально «обучается», как описано выше. После соеди нения с интерфейсом, любая команда вызовет свечение светодиода или какую-то реакцию устройства в зависимости от того, что присоединено к вы ходам двоично-десятичного дешифратора 4028.
Улучшение процесса распознавания
Существует набор приемов для улучшения и оптимизации процесса распознавания. Прежде всего это выбор слов-команд. Избегайте омонимов и сходно звучащих слов, например, таких как спать, брать, встать, класть. Для оптимизации распознавания используйте максимально различные по звучанию слова. Во многих случаях полезно использовать синонимы или слова, имеющие приблизительно тот же смысл. Например, вместо слова «спать» используйте «дремать» или «уснуть». Вместо «брать» используйте «захватить» или «поднять». Вместо «встать» – «подняться». Слово «класть» можно заменить на «положить». Небольшие филологические изыскания помогут справиться с этой проблемой.