Работа с кнопками на плате контроллера
Теория
Рассмотрим такой элемент как кнопка. На сегодняшний день, этот элемент можно встретить практически везде. Кнопки используют для включения или управления чем-либо, например для включения света в помещении, бытовую технику, или управления более сложными устройствами, такими как компьютер.
Также кнопки бывают двух типов:
- C фиксацией(тумблеры) - имеют два состояния(включенное и выключенное), которые переключаются повторным нажатием. При включенном тумблеры замыкают цепь, при выключенном размыкают;
- Без фиксации - замыкают цепь только при нажатии, и размыкают при отпускании.
Принцип работы кнопки достаточно прост, при нажатии кнопки происходит замыкание электрической сети и соединение контактов. Таким образом электрический ток проходит по цепи и запускает подключённые устройства.
В робототехнике кнопка позволяет управлять разными частями устройств. Например с помощью кнопки можно запускать моторы, светодиоды или даже целые подпрограммы.
Давайте на практике рассмотрим, как можно использовать кнопку для управления устройством. Для начала давайте рассмотрим включение светодиода с помощью нажатия на кнопку. Как вы знаете из предыдущих статей на плате есть несколько светодиодов. Также на плате есть 3 кнопки. Первая (верхняя на изображении) кнопка это кнопка Reset, которая перезапускает плату и программу. Вторая и третья кнопки являются программируемыми:
Практика
Теперь давайте создадим программу для включения обычного smd светодиода. Для начала нам нужно достать блок управления светодиодом:
Далее добавим блок условия, внутрь которого мы поместим блок управления светодиодом. Блок “Если то Иначе” находится в разделе “Управление”. Так же добавим блок управления светодиодом, во вторую часть условия, но со значением "Выключено", таким образом когда мы отпустим кнопку светодиод погаснет:
Далее нужно добавить начало программы, иначе она не запустится. Для этого достаем блок ‘Когда контроллер запущен” из раздела “События”, который запускает все последующие блоки при запуске контроллера:
Теперь добавим условие при котором будет срабатывать блок включения светодиода. Все условия имеют два состояния “TRUE” и “FALSE” и выглядят в форме шестиугольника, первое запускает все блоки внутри условия, второе же наоборот не дает им срабатывать.
В качестве условия будем использовать блок считывающий состояние кнопки, он находится в разделе “Контроллер” и называется “Кнопка SW1 нажата”:
Чтобы программа проверяла нажатие кнопки постоянно, а не один раз после запуска программы, нам нужно добавить блок всегда. В итоге получаем следующую программу:
Вместо “SW1” можно выбрать кнопки “SW2”, которые позволяют выбирать какая кнопка будет управлять включением светодиода. Аналогичным образом можно запустить пьезоэлемент или как его еще называют “пищалку”, не забываем указать частоту 50Гц. Для этого нужно заменить блок включения светодиода на “Включить звуковой сигнал”. Так же для этой программы достаточно блока "Если то", так как блок управления пьезоэлементом выключается автоматически:
Теперь давайте попробуем усложнить нашу программу. Теперь мы будем считать количество нажатий, и на каждое четное нажатие адресный светодиод будет загораться красным цветом, а на каждое нечетное зеленым. Для этого создадим переменную, можете назвать ее как угодно, я назову ее count. Чтобы создать переменную перейдем во вкладку переменные и нажмем кнопку создать переменную:
Далее, в появившемся окне, как мы помним, вводим название переменной. Теперь у нас появились новые блоки, давайте добавим блок изменения переменной внутрь нашего условия, так чтобы он срабатывал при нажатии на кнопку:
Теперь нужно добавить условие при котором у нас будет переключаться цвет адресного светодиода. Для этого из раздела “Управление” возьмем блок “Если - Иначе”:
В самом условии с помощью двух блоков из раздела “Оператор” мы создаем конструкцию в которой проверяем делиться ли число нацело. Для этого берем блок сравнения “ = 50” и внутрь первого значения вставляем блок “остаток от деления на ”.
Теперь в первое значение блока “остаток от деления на ” вставляем блок с созданной переменной count из раздела “Переменные”. А во второе значения вписываем число 2:
Теперь внутрь первой части блока “Если - иначе” вставляем блок управления адресным светодиодом и настраиваем на нужный цвет, в моем случае это красный. А во второй части блока “Если - иначе” настраиваем блок адресного светодиода на другой цвет, например зеленый:
В конце не забываем в условии после знака “=” вписать значение 0 либо 1. В итоге получается уже более сложная программа, которая считает количество нажатий и в зависимости от четности этого значения меняет цвет адресного светодиода, и не забываем всю эту программу поместить в блок "Всегда":
Теперь подключаем плату контроллера, загружаем программу и проверяем её.