Джон Ловин - Создаем робота-андроида своими руками
Для любой температуры мы можем найти группу, в температурный интервал которой она попадает. В некоторых случаях температура может попасть в две пересекающиеся группы. Четкая принадлежность к группе может быть определена по отклонению значения от среднего по группе.
Идея групповой или интервальной классификации может быть расширена на многие другие вещи, такие как ориентирование, скорость или рост. Давайте используем понятие роста для еще одного примера. Если мы построим график роста 1000 людей, его форма будет напоминать первую кривую на рис. 6.28. Мы можем использовать этот график для формирования групп людей маленького, среднего и высокого роста. Если мы применим жесткое решающее правило считать всех ниже 170 см людьми низкого роста и всех выше 180 людьми высокого роста, то график примет форму 2 на рис. 6.28. Такое правило считает рост 178 см «средним», хотя в действительности человек такого роста находится ближе к группе «высоких» (от 180 см и выше).
Рис. 6.28. Группировка людей по росту на основании различных правил
Вместо правил жесткой «быстрой» логики, обычно используемой в компьютерах, человек, как правило, использует более «мягкую», неточную логику или нечеткую логику. Для введения нечеткой логики в компьютер мы определим сами группы и степень принадлежности к группе. Таким образом, человек ростом 178 см почти не будет принадлежать группе людей среднего роста (слабое присутствие) и уверенно принадлежать группе высокого роста (сильное присутствие).
Нечеткая логика представляет собой альтернативу оцифрованному графику, представленному под номером 3 на рис. 6.28. График, оцифрованный с высоким разрешением, позволяет измерять рост с такой же точностью. Какова причина применения нечеткой логики вместо использования оцифрованной модели? Дело в том, что методы нечеткой логики требуют более простых форм математического обеспечения и функций научения.
Для моделирования нечеткой логики в PIC микроконтроллере для групп необходимо создать численные интервалы значений. Этим мы займемся в следующем проекте.
Устройство нечеткой логики – система слежения за направлением источника света
Сейчас мы приступим к изготовлению устройства – системы слежения за направлением источника света, использующего принцип нечеткой логики. Система отслеживает направление на источник света, применяя нечеткую логику.
Для конструкции системы слежения нам потребуются два CdS фотоэлемента, которые представляют собой светочувствительные резистивные датчики (см. рис. 6.29). Сопротивление такого элемента изменяется пропорционально интенсивности светового потока, падающего на чувствительную поверхность фотоэлемента. В условиях темноты элемент имеет наибольшее сопротивление.
Рис. 6.29. Электрические характеристики CdS фотоэлемента
В продаже имеется много различных типов CdS фотоэлементов. Выбор подходящего элемента основывается на темновом сопротивлении элемента и сопротивлении светового насыщения. Термин «сопротивление светового насыщения» означает минимальное сопротивление элемента, которое перестает уменьшаться при повышении уровня освещенности, т. е. становится насыщенным. Я использую CdS фотоэлементы, имеющие темновое сопротивление порядка 100 кОм и сопротивление светового насыщения порядка 500 Ом. При средних условиях освещенности сопротивление варьирует в пределах 2,5-10 кОм.
Для проекта потребуется два CdS фотоэлемента. Необходимо проверить каждый элемент по отдельности, поскольку внутри элементов одного типа наблюдается разброс параметров, что потребует изменения коэффициента шкалирования. Для команды pot я использовал емкость 0,022 мкФ и параметр множителя шкалы 225.
Принципиальная схема устройства изображена на рис. 6.30. CdS фотоэлементы подключены к шине порта В (физические номера выводов 8 и 9).
Рис. 6.30. Схема системы слежения за источником света
Фотоэлементы закреплены на небольшой пластине из пластика или дерева (см. рис. 6.31). Для выводов фотоэлементов в пластине просверлены небольшие отверстия. С обратной стороны к выводам подпаяны проводники, соединенные с выводами PIC микроконтроллера.
Рис. 6.31. Конструкция блока датчиков
Для закрепления вала редуктора двигателя просверлено отверстие от 2,4 мм до 3 мм. Вал редуктора пропущен через отверстие в блоке датчиков и закреплен клеем (см. рис. 6.32).
Рис. 6.32. Фотография блока датчиков, закрепленных на редукторе двигателя
Работа системы слежения показана на рис. 6.33. При одинаковом освещении обоих датчиков, их соответствующие сопротивления примерно одинаковы. В пределах ±10 единиц PIC программа считает их одинаковыми и не включает устройство поворота. Иными словами, образуется группа «одинаковости» с размахом 20 единиц. Подобная группа и есть группа нечеткой логики.
Рис. 6.33. Работа блока датчиков в зависимости от направления на источник света
Когда один из датчиков попадает в зону тени, т. е. разность показаний датчиков превышает диапазон 20 единиц, PIC микроконтроллер запускает двигатель, поворачивающий блок сенсоров в сторону источника света (т. е. равной освещенности датчиков).
Управление двигателем постоянного токаДля поворота блока датчиков в сторону источника света устройство использует двигатель постоянного тока с редуктором (см. рис. 6.34). Коэффициент замедления редуктора 4000:1. Вал редуктора имеет скорость примерно 1 оборот в минуту. При повторении конструкции для поворота блока датчиков рекомендуется использовать двигатель с редуктором, имеющим подобные характеристики.
Рис. 6.34. Фотография конструкции устройства слежения в сборе
Блок датчиков прикреплен (приклеен) к валу редуктора двигателя. Двигатель через редуктор может поворачивать блок по часовой стрелке или против часовой стрелки в зависимости от направления тока, протекающего через двигатель.
Для обеспечения реверсирования направления вращения двигателя необходимо устройство, обеспечивающее протекание тока в обоих направлениях. Для этой цели мы используем мостовую схему. В мостовой схеме используются четыре транзистора (см. рис. 6.35). Рассмотрим каждый транзистор как простой ключ, как показано в верхней части рисунка. Схема названа мостовой, поскольку транзисторы (ключи) включены нее в виде моста.
Рис. 6.35. Работа мостовой схемы и ее устройство
При замыкании ключей SW1 и SW4 двигатель вращается в одном направлении. При замыкании ключей SW2 и SW3 двигатель вращается в противоположном направлении. Если ключи разомкнуты, то происходит остановка двигателя.
Управление мостом осуществляется с помощью PIC микропроцессора. Мостовая схемы включает в себя четыре NPN транзистора типа 120 Darlington, четыре диода типа 1N514 и два резистора 10 кОм 0,25 Вт. Вывод 0 подключен к транзисторам Q1 и Q4. Вывод 1 подключен к транзисторам Q2 и Q3. Сигналами на выводах 0 и 1 открываются соответствующие транзисторы и двигатель вращается по или против часовой стрелки соответственно данным блока датчиков. Обратите внимание на правильность подключения резисторов 10 кОм, в противном случае схема не будет работать.
Транзисторы TIP 120 Darlington изображены на схеме как обычные NPN транзисторы. Во многих схемах моста в «верхней» части используются транзисторы PNP проводимости. Сопротивление PNP транзисторов немного выше. Таким образом, если мы используем только NPN транзисторы, то КПД устройства несколько увеличится.
ДиодыДля предотвращения выбросов напряжения, которые могут привести к сбросу или зависанию PIC микропроцессора, используются защитные диоды, включенные между эмиттером и коллектором каждого транзистора (от Q1 до Q4). Эти диоды гасят всплески напряжения, возникающие при включении и выключении обмоток двигателя.
Программа на PICBASIC имеет следующий вид:
‘Программа нечеткой логики для системы слежения
start:
low 0 ‘Низкий уровень шины 0
low 1 ‘Низкий уровень шины 1
pot 2,255,b0 ‘Чтения показаний фотоэлемента 1
pot 3,255,b1 ‘Чтение показаний фотоэлемента 2
if b0 = b1 then start ‘Если показания равны, то ничего не делать
if b0 > b1 then greater ‘Если больше, то насколько
if b0 < b1 then lesser ‘Если меньше, то насколько
greater: ‘Процедура больше
b2 = b0 – b1 ‘Определение разницы показаний
if b2 > 10 then cw ‘Внутри границ? Если нет, перейти на cw
goto start: ‘Если внутри границ, измерять снова
lesser: ‘Процедура меньше
b2 = b1 – b0 ‘Определение разницы показаний
if b2 > 10 then ccw ‘Внутри границ? Если нет, перейти на ccw
goto start: ‘Если внутри границ, измерять снова
cw: ‘Поворот блока по часовой стрелке
high 0 ‘Включить мост
pause 100 ‘Вращение 0,1 с
goto start ‘Новая проверка
сcw: ‘Поворот блока против часовой стрелки