На прошлом уроке, мы отработали создание и отладку скетча движения робота по квадрату и прямоугольнику, теперь рассмотрим движение по линии. В нашем роботе установлены три датчика линии, два электро-мотора, сервомотор, ультразвуковой дальномер. Для решения данной задачи нам потребуются кроме контроллера три датчика линии
и два электромотора. В общем алгоритм движения заключается в следующем:
- Если центральный датчик находится на линии, а боковые вне линии, то машинка едет прямо.
- Если левый датчик находится на линии, а правый вне линии, то машинка поворачивает налево (независимо от показаний центрального датчика)
- Если правый датчик находится на линии, а левый вне линии, то машинка поворачивает направо (независимо от показаний центрального датчика)
- Если правый и левый датчики находятся на линии (вне зависимости от показаний центрального датчика), то такое состояние является неопределённым, машинка начинает движение назад.
- Если все три датчика находятся вне линии, то такое состояние является неопределённым (потеря линии). то машинка сразу остановится.
Можно рассмотреть алгоритм управления с использованием "черного ящика" и таблицы состояний управляющих сигналов, где А,В,С сигналы аналоговых датчиков линий переведенные в дискретную форму 1 - есть линия, а 0 нет линии. М1, М2 электромоторы с фиксированной заданной частотой вращения, но 1 движение мотора вперед, а 0 соответственно назад.
Тогда логическая формула управления мотором примет вид:
M1 = noA&B&C or noA&B&noC or noA&noB&C, упростив получим - M1 = noA&C
M2 = A&B&noC or A&noB&noC or noA&B&noC, упростив получим - M2 = A&noC
Для перевода аналогового сигнала в дискретный, необходимо получить пороговые значения по достижению которого сигнал будет 1 или 0. Такое преобразование выполняется при сравнении полученного сигнала с пороговым после чего ему нужно присвоить значение 1 или 0.
Пороговые значения получаются калибровкой датчика - сравнением двух контрастных условий срабатывания. Такая операция может проводиться вручную, при отладки программы или автоматически если будет написан соответствующий алгоритм.
Пороговые значения получаются калибровкой датчика - сравнением двух контрастных условий срабатывания. Такая операция может проводиться вручную, при отладки программы или автоматически если будет написан соответствующий алгоритм.