Создаем робота-андроида своими руками
Шрифт:
Как правило, отдельные нейроны нейронной сети имеют единственный порог (положительный или отрицательный). Если значение превышает пороговое, то нейрон активируется. В нашем случае выходной сигнал сравнивается с несколькими пороговыми значениями и попадает, таким образом, в соответствующую группу.
Вместо того чтобы рассматривать группы выхода как диапазоны численных значений, воспользуемся геометрической интерпретацией. Рассмотрим группы как группы круга, квадрата и треугольника соответственно. При накоплении значения «на нейроне» его выходом будет служить геометрическая форма, а не численное значение. Выходные нейроны (светодиоды) могут быть собраны в матрицы соответствующей формы. При попадании сигнала в определенную группу загорается соответствующая матрица.
В нашем случае каждый из уровней выхода нейрона мы будем относить к трем группам характерного «поведения»: спячке, охоте и кормлению, которые отражают основные типы поведения «выживания» для робота «охотника за светом». Выбор типа «поведения» основывается на текущем уровне освещенности. При низком уровне освещенности робот-охотник прекращает охоту и поиски пищи (света). Включается режим сна или спячки. При средних уровнях освещенности робот «охотится» и выискивает места с наибольшим уровнем света. При высоких уровнях освещенности «охотник» останавливается и «питается», подзаряжая солнечные батареи.
В этой главе мы не будем изготовлять полную модель робота-охотника, лишь ограничимся использованием светодиодов как индикаторов типа соответствующего поведения (см. рис. 6.37). Можно обозначить светодиоды как «спячка», «охота» и «питание». Каждый из светодиодов зажигается в зависимости от интенсивности светового потока, принимаемого CdS фотоэлементами.
Рис. 6.37. Схема основной нейронной цепочки
Программа на PICBASIC имеет следующий вид:
‘Демонстрация работы нейрона
‘Установка параметров
low 0 ‘Светодиод 1 «спячка» выключен
low 1 ‘Светодиод 2 «охота» выключен
low 2 ‘Светодиод 3 «питание» выключен
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. Одновременная работа программы УРР замедляет работу других программ, использующих данные программы УРР.