считает их одинаковыми и не включает устройство поворота. Иными словами, образуется группа «одинаковости» с размахом 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: ‘Поворот блока против часовой стрелки
high 1 ‘Включить мост
pause 100 ‘Вращение 0,1 с
goto start: ‘Новая проверка
При работе система слежения поворачивается вслед за перемещением источника света. Если оба CdS фотоэлемента освещены примерно одинаково, то поворота не происходит. Для проверки работы устройства закройте пальцем один из CdS датчиков. Это должно вызвать включение двигателя и поворот вала редуктора.
Если вал вращается в направлении, противоположном заданному, то поменяйте либо входные проводники датчиков, либо выходные проводники управления мостовой схемой, но не
Устройство системы слежения с нечеткой логикой имеет двоичный выход. Двигатель может находиться в трех состояниях: выключено и вращение по и против часовой стрелки. Во многих случаях требуется плавное (градуальное) изменение выходного сигнала. Допустим, вы проектируете устройство управления двигателем лифта. Необходимым условием в данном случае будет постепенное, а не резкое ускорение или остановка лифта (двигатель не должен просто включаться и выключаться).
Возможно ли подобное изменение схемы нашего устройства? Да, конечно. Вместо простого включения двигателя, мы можем запитывать его сигналом ШИМ, который управляет скоростью его вращения.
В идеале скорость вращения двигателя должна быть пропорциональна разнице показаний (сопротивлений) двух CdS датчиков. Большая разница будет приводить к большей скорости вращения. По мере вращения датчика и приближения его к положению равновесия скорость вращения двигателя будет динамически изменяться.
Такая программа управления выходом может быть иллюстрирована графиками, разбиениями на группы и принадлежностью к группе в терминах нечеткой логики. В данном случае использование подобной программы для системы слежения является избыточным.
В целях эксперимента вы можете использовать команды pulsout и pwm для управления скоростью вращения двигателя.
При помощи простой программы мы можем превратить датчики нечеткой логики (CdS фотоэлементы) в нейронные датчики. Нейронные сети представляют собой обширную область, мы же ограничимся одним небольшим примером. Для тех, кто решил углубленно изучить строение нейронных сетей, я рекомендую собственную книгу
Для создания нейронного датчика мы возьмем численные значения каждого датчика, умножим их на соответствующие весовые коэффициенты и суммируем результирующие величины. Полученный результат