Проект №8 «Выключи, если сможешь»

Проект №8 «Выключи, если сможешь»

В одной известной опере Чайковского звучит фраза:

«Что наша жизнь? Игра!».

Действительно, все любят поиграть. Особенно любят этим заниматься дети. Да и многие взрослые не против развлечься игрой во что-нибудь.

Робототехника на сей счет предоставляет весьма широкие игровые возможности. Очередной проект является их примером.

 

 

 

Конструкция

Данный проект посвящен получению навыков не столько по конструированию, сколько по программированию и функциональному использованию модулей. Поэтому конструкция остается такой же, как и в предыдущем проекте.

 

Алгоритм

Запускается игра «Выключи, если сможешь» кнопкой запуска на роботе (зеленый колпачок в собранной с предыдущего проекта модели).

После ее нажатия робот мигает обоими индикаторами 3 раза и начинает хаотическое движение. Суть игры состоит в том, что игрок пытается его остановить, нажимая на кнопку останова (белого цвета). Для того, чтобы робот остановился и игрок победил, необходимо нажать на кнопку останова 5 раз. При этом для усложнения игры алгоритм не предусматривает возможности нажать на кнопку 5 раз подряд. После каждого нажатия действует временная запретная зона в течение 1 секунды. Об этом свидетельствует синий индикатор, загорающийся на этот период.

Таким образом роботом подсчитывается количество нажатий и как только оно достигает 5, робот останавливается. Пока пятикратное нажатие не достигнуто — модель продолжает движение.

В базовом варианте контроллер исполняет заложенную в него программу последовательно шаг за шагом. И пока не выполнен предыдущий шаг, не может быть выполнен следующий. А для того, чтобы состоялась данная игра, необходимо, чтобы контроллер помимо основной последовательности шагов алгоритма регулярно с очень малыми промежутками времени выполнял проверку нажатия кнопки. Для решения такой задачи в программировании придуманы так называемые прерывания. Они означают, что контроллер постоянно прерывает исполнение основного алгоритма и выполняет действия, заложенные в этих прерываниях.

Как правило промежутки времени, через которые выполняются прерывания, составляют десятки миллисекунд. В алгоритме для данной игры прерывания вызываются с частотой 20 Гц (20 раз в секунду), что соответствует промежутку времени между прерываниями 50 миллисекунд.

Что касается хаотического движения робота, то оно организуется путем случайного переключения через случайное время между несколькими режимами движения: движение влево, движение вправо, движение вперед и движение назад.

 

Сборка

Изменение конструкции робота в данном проекте не предусмотрено, а значит и сборочных операций никаких нет.

Целью проекта является является знакомство с приемами программирования, основанными на прерываниях. Откройте программу для проекта и посмотрите как там реализуются данные приемы. Помочь в этом могут комментарии к блокам. Перед запуском робота загрузите ее в контроллер.

Программы для загрузки в контроллер по данному проекту можно скачать в двух вариантах по ниже указанным ссылкам:
- для среды программирования Студия Эвольвектор ,
- для среды программирования Arduino IDE.

Проверка робота в работе

Подключите к контроллеру питание и попробуйте выиграть у робота. Это не так легко, как кажется. Поведение робота должно укладываться в последовательность действий, показанных на алгоритмической схеме.

 

 

Написать отзыв

Ваше Имя:


Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо           Хорошо

Введите код, указанный на картинке: