Проект №8 «Выключи, если сможешь»
В одной известной опере Чайковского звучит фраза:
«Что наша жизнь? Игра!».
Действительно, все любят поиграть. Особенно любят этим заниматься дети. Да и многие взрослые не против развлечься игрой во что-нибудь.
Робототехника на сей счет предоставляет весьма широкие игровые возможности. Очередной проект является их примером.
Конструкция
Данный проект посвящен получению навыков не столько по конструированию, сколько по программированию и функциональному использованию модулей. Поэтому конструкция остается такой же, как и в предыдущем проекте.
Алгоритм
Запускается игра «Выключи, если сможешь» кнопкой запуска на роботе (зеленый колпачок в собранной с предыдущего проекта модели).
После ее нажатия робот мигает обоими индикаторами 3 раза и начинает хаотическое движение. Суть игры состоит в том, что игрок пытается его остановить, нажимая на кнопку останова (белого цвета). Для того, чтобы робот остановился и игрок победил, необходимо нажать на кнопку останова 5 раз. При этом для усложнения игры алгоритм не предусматривает возможности нажать на кнопку 5 раз подряд. После каждого нажатия действует временная запретная зона в течение 1 секунды. Об этом свидетельствует синий индикатор, загорающийся на этот период.
Таким образом роботом подсчитывается количество нажатий и как только оно достигает 5, робот останавливается. Пока пятикратное нажатие не достигнуто — модель продолжает движение.
В базовом варианте контроллер исполняет заложенную в него программу последовательно шаг за шагом. И пока не выполнен предыдущий шаг, не может быть выполнен следующий. А для того, чтобы состоялась данная игра, необходимо, чтобы контроллер помимо основной последовательности шагов алгоритма регулярно с очень малыми промежутками времени выполнял проверку нажатия кнопки. Для решения такой задачи в программировании придуманы так называемые прерывания. Они означают, что контроллер постоянно прерывает исполнение основного алгоритма и выполняет действия, заложенные в этих прерываниях.
Как правило промежутки времени, через которые выполняются прерывания, составляют десятки миллисекунд. В алгоритме для данной игры прерывания вызываются с частотой 20 Гц (20 раз в секунду), что соответствует промежутку времени между прерываниями 50 миллисекунд.
Что касается хаотического движения робота, то оно организуется путем случайного переключения через случайное время между несколькими режимами движения: движение влево, движение вправо, движение вперед и движение назад.
Сборка
Изменение конструкции робота в данном проекте не предусмотрено, а значит и сборочных операций никаких нет.
Целью проекта является является знакомство с приемами программирования, основанными на прерываниях. Откройте программу для проекта и посмотрите как там реализуются данные приемы. Помочь в этом могут комментарии к блокам. Перед запуском робота загрузите ее в контроллер.
Программы для загрузки в контроллер по данному проекту можно скачать в двух вариантах по ниже указанным ссылкам:
- для среды программирования Студия Эвольвектор ,
- для среды программирования Arduino IDE.
Проверка робота в работе
Подключите к контроллеру питание и попробуйте выиграть у робота. Это не так легко, как кажется. Поведение робота должно укладываться в последовательность действий, показанных на алгоритмической схеме.
Написать отзыв
Ваше Имя:Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.
Оценка: Плохо Хорошо
Введите код, указанный на картинке: