Снова я вне дома, снова без семьи, и-нета, друзей и телевизора. А это значит, что нужно чем-то заполнять пустоту в мозгах.
Достал из чемодана своего IR-Rider'а, а пульт, под который он был запрограммирован, остался где-то там где я тогда работал. Тут же возникла мысль запрограммировать его для обучения "на лету" под любой пульт.
И если в прошлый раз я использовал девять кнопок пульта, чтобы реализовать движение в разных направлениях:
Надписи обозначают движение робота при нажатии на кнопки |
то сейчас, для удобства перепрограммирования я решил реализовать все эти движения с помощью только пяти кнопок:
Заглавные слова обозначают соответствующую кнопку на пульте |
Работа алгоритма примерно следующая:
При подаче питания пару секунд моргает светодиод D13, и система ждет нажатия кнопки на ИК пульте. Если в это время нажать кнопку (жать нужно кнопку СТОП), то система перейдет в режим перепрограммирования, светодиод перестанет моргать и робот сделает короткий рывок в перед. Перед каждым нажатием робот делает рывок в соответствующем направлении.
Затем нужно последовательно нажать кнопки: ВПЕРЕД, НАПРАВО, НАЗАД, НАЛЕВО.
После нажатия последней кнопки, робот делает движение вперед-назад.
Робот готов к работе.
Проверяем соответствие кнопок и движения робота, и, если все устраивает, нажимаем ПЯТЬ раз подряд кнопку СТОП. Коды кнопок записываются в постоянную память микроконтроллера.
Если при подаче питания (или после сброса) подождать пару секунд и не нажимать кнопки на пульте, то коды кнопок загружаются из постоянной памяти.
Код:
Комментариев нет:
Отправить комментарий