Чтение онлайн

на главную - закладки

Жанры

Робототехника: практическое введение для детей и взрослых
Шрифт:

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

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

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

Счетчик нажатий

кнопок

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

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

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

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

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

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

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

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

Проверка состояния кнопки

Предыдущие программы выполняли какое-либо действие, когда мы нажимали кнопки. Но есть и другая возможность – в процессе своей работы программа может проверять текущее состояние кнопок, и в зависимости от результатов проверки изменять свое поведение.

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

Код программы показан на рис. 3.8. Вы найдете эту программу в файле microbit-Вселенная-кнопка-А.hex.

Рис. 3.8. Программа работает только при нажатой кнопке A

Здесь

мы добавили в постоянно блок если. В качестве условия в блок если мы вставили проверку кнопка нажата. Эта проверка находится в палитре Ввод.

Давайте усложним нашу программу. Пусть теперь звезды зажигаются и гаснут, если кнопка A не нажата, и перестают зажигаться и гаснуть, когда мы нажимаем кнопка A.

Для кнопки B тоже найдется работа. Каждый раз когда мы будем ее нажимать, процесс зажигания и угасания звезд должен замедляться.

Новый вариант программы показан на рис. 3.9, файл microbit-Вселенная-на-паузе.hex.

Рис. 3.9. Новая версия программы управления звездами

В блоке при начале мы задаем в переменной задержка начальное значение задержки, равное 0. При нажатии на кнопку B мы увеличиваем значение задержки на 50 мс.

В блоке постоянно мы использовали цикл если иначе. Как он работает?

В теле условия если ничего нет, поэтому если кнопка A нажата, то никакие блоки не выполняются и бесконечный цикл работает вхолостую. Но если кнопка A не нажата, то в дело включается тело иначе. Здесь у нас находится блоки, управляющие переключением звезд, а также блок паузы.

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

Сенсорная кнопка в виде логотипа

В micro:bit версии 2 появилась сенсорная кнопка в виде логотипа (рис. 3.10). Ее можно нажимать, дотрагиваясь пальцем.

Рис. 3.10. Логотип стал сенсорной кнопкой

Для работы с сенсорной кнопкой в виде логотипа в палитре Ввод, в разделе micro:bit (V2) появились блоки on logo и logo is pressed (рис. 3.11).

Рис. 3.11. Блоки для работы с сенсорной кнопкой в виде логотипа

Блок on logo получает управление, если дотронуться до логотипа пальцем. С помощью блока logo is pressed можно проверить, нажат логотип в настоящее время, или нет.

На рис. 3.12 мы показали простейшую программу microbit2-Сенсорный-логотип.hex, реагирующую на нажатие логотипа.

Поделиться:
Популярные книги

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Варяг

Мазин Александр Владимирович
1. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Варяг

Черный дембель. Часть 4

Федин Андрей Анатольевич
4. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 4

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку

Бесприданница

Барох Лара
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Бесприданница

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Архил...? Книга 2

Кожевников Павел
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...? Книга 2

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6