"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

воскресенье, 17 декабря 2017 г.

Зона Ардуино: Алгоритм робота обходящего препятствия

На последнем уроке мы начали создания алгоритма управления движением робота, который должен по сигналу дальномера останавливался перед препятствием, с помощью поворота дальномера замерить расстояния препятствий и выбрать сторону поворота, после чего продолжить движение прямо.  
Алгоритм в общих чертах представляет замкнутый цикл состоящий из двух блоков - блока движения и логического блока поворота.
Блок движения мы отработали на предыдущих уроках и добились остановки робота перед препятствием, на время пока препятствие не будет устранено.
Логический блок поворота включает алгоритм определения дистанций, блок логики и блок поворота
Блок логики преобразует полученные дистанции в логические сигналы сравнивая с дистанцией остановки (D) и с исправленной (DO) при учете поворота дальномера. Данные дистанции вводится в блок начальных условий скетча. На выходе блока формируются  логические сигналы управления моторами (М1, М2) 
Блок поворота получив управляющие сигналы М1 и М2 запускают двигатели в ту или иную сторону и останавливают их только после того как дистанция будет превышать заданный порок
Работу моторов определяют логические функции со ставленые по логической таблице поведения. Для построения этой таблицы рассмотрим черный ящик(черный ящик это такое устройство о внутренним содержании которого, мы ничего не знаем, но знаем что подается на вход и что снимается с выхода) и зададим в правой части ожидаемые реакции моторов, где 1 вращение по часовой, а 0 вращение против часовой стрелке или вращение моторов в сторону обеспечивающих движение вперед и назад.   
По этой таблице составляются логические формулы управления моторами. Составление логических формул управления рассмотрим на следующем уроке