Читаем Робототехника: практическое введение для детей и взрослых полностью

В микрокомпьютере micro:bit версии 1.5 есть три кнопки. Одна из них расположена с обратной стороны устройства и предназначена для его сброса. На рис. 3.2 эта кнопка находится в правом верхнем углу, между разъемом микро-USB и разъемом питания.

Рис. 3.2. Кнопка сброса находится на обратной стороне платы micro:bit

Две другие кнопки находятся на лицевой стороне платы микроконтроллера (рис. 3.3). Именно эти две кнопки, обозначенные как A и B, представляют для нас основной интерес.

Рис. 3.3. Программируемые кнопки A и B на лицевой стороне платы micro:bit

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

В микроконтроллере micro:bit версии 2 добавлена еще одна кнопка – сенсорная. Ее роль теперь играет логотип, который раньше представлял собой простой рисунок, расположенный над матрицей светодиодов (рис. 3.3). Теперь этот логотип превратился в сенсорную кнопку.

В конце этой главы будет приведена программа, работающая с сенсорным логотипом.

Если вы создаете дистанционно управляемую модель марсохода (ровера), то сможете использовать кнопки, например, для управления движением. Используйте одну из этих кнопок, например, для включения движения вперед, другую – для включения заднего хода. Одновременное нажатие кнопок пригодится, например, для экстренной остановки моторов ровера.

<p>Задаем действия при нажатии кнопок</p>

Для того чтобы проверить действие кнопок на практике, добавьте в новый проект из палитры Ввод три блока кнопка нажата (рис. 3.4).

Рис. 3.4. Блоки для обработки событий от кнопок

Текст программы можно загрузить из архива, он записан в файл BoxRover/ch03/microbit-кнопки-влево-и-вправо.hex.

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

Наша программа выполняет очень простые действия. Если нажать кнопку A, то программа нарисует на экране микроконтроллера стрелку, направленную на запад. Нажатие кнопки B приведет к тому, что будет нарисована стрелка, направленная на восток. И, наконец, если нажать обе кнопки одновременно, на экране будет нарисован значок сердечка (рис. 3.5).

Рис. 3.5. Значки появляются при нажатии соответствующих кнопок

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

Для перехвата события создается так называемый программный хандлер (handler), или обработчик. Для одного события может быть создан только один обработчик.

Таким образом, вы можете создать только один обработчик для кнопки A, один – для кнопки B, и один для события, которое возникает при одновременном нажатии обеих кнопок.

Устройство, создающее событие, мы будем называть генератором событий. Как вы увидите дальше, помимо кнопок в микроконтроллере micro:bit существуют и другие генераторы событий, например, связанные с передачей данных по радио или через последовательный интерфейс UART.

<p>Счетчик нажатий кнопок</p>

Нашей следующей программой, работающей с кнопками A и B, будет несложный счетчик. Сразу после запуска значение счетчика будет равно нулю. При нажатии кнопки A значение счетчика увеличивается, а при нажатии кнопки B – уменьшается.

Программа счетчика показана на рис. 3.6 (файл BoxRover/ch03/microbit-Счетчик.hex).

Рис. 3.6. Программа счетчика нажатий кнопок

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

В блоке при начале задается исходное значение счетчика Counter, равное нулю. После этого текущее значение счетчика показывается на экране в блоке показать число.

Когда нажимается кнопка A, блок изменить увеличивает значение Counter на единицу. Вслед за этим новое значение счетчика выводится на экран. Аналогично, при нажатии кнопки B значение счетчика нажатий уменьшается, и на экран выводится уменьшенное значение (рис. 3.7).

Рис. 3.7. Текущее значение счетчика нажатий отображается на мониторе

Обратите внимание, что если числовое значение превысит 9, числа будут показываться на экране micro:bit в режиме бегущей строки. Режим бегущей строки будет включен и для отображения отрицательных чисел.

Перейти на страницу:

Похожие книги

Диверсант (СИ)
Диверсант (СИ)

Кто сказал «Один не воин, не величина»? Вокруг бескрайний космос, притворись своим и всади торпеду в корму врага! Тотальная война жестока, малые корабли в ней гибнут десятками, с другой стороны для наёмника это авантюра, на которой можно неплохо подняться! Угнал корабль? Он твой по праву. Ограбил нанятого врагом наёмника? Это твои трофеи, нет пощады пособникам изменника. ВКС надёжны, они не попытаются кинуть, и ты им нужен – неприметный корабль обычного вольного пилота не бросается в глаза. Хотелось бы добыть ценных разведанных, отыскать пропавшего исполина, ставшего инструментом корпоратов, а попутно можно заняться поиском одного важного человека. Одна проблема – среди разведчиков-диверсантов высокая смертность…

Александр Вайс , Михаил Чертопруд , Олег Эдуардович Иванов

Фантастика / Прочее / Самиздат, сетевая литература / Фантастика: прочее / РПГ