Робототехника: практическое введение для детей и взрослых - страница 22
Что касается акселерометра, встроенного в micro:bit, то там применяется три пластины, что дает возможность измерять ускорение по всем трем осям координат.
Согласно документации, акселерометр micro:bit может измерять ускорение в диапазоне от -2g до 2g. При этом возвращаются положительные и отрицательные значения в тысячных долях g, с диапазоном от 0 до 1024.
Обнаружение жестов
Одно из самых интересных применений акселерометра micro:bit – это обнаружение жестов. Это поворачивание платы микроконтроллера логотипом вверх или вниз, наклон вправо или влево, поворачивание монитором вверх или вниз, встряхивание, свободное падение, а также движение с ускорением в 3g, 6g и 8g.
Когда вы совершаете с платой микроконтроллера описанные выше действия, создаются соответствующие события. Их можно обрабатывать в блоке по жесту из палитры Ввод. Список доступных жестов показан на рис. 5.2.
Рис. 5.2. Жесты в микрокомпьютере micro:bit
Расскажем, как вы можете обрабатывать жесты от акселерометра в своих программах.
Бросаем кости
Самое простое что можно придумать с жестами – это сделать игру в кости. Когда вы встряхиваете плату своего micro:bit, на его экране высвечивается случайное число от 0 до 6. Конечно, это упрощенный вариант игры, так как тут мы «бросаем» только одну кость.
Программа игры в кости показана на рис. 5.3.
Рис. 5.3. Программа обработки события встряхивания
Когда микроконтроллер обнаруживает, что его начали трясти, он создает событие на жест встряхивание. Обработчик этого события показывает на экране случайное число в диапазоне от 0 до 6.
Эта программа находится в файле BoxRover/ch05/microbit-Кости.hex архива, который можно скачать с сайта автора книги по адресу http://frolov-lib.ru/books/boxrover/.
Отслеживаем ориентацию платы micro:bit в пространстве
Когда вы работаете со смартфоном, то независимо от его положения в пространстве просматриваемая страница поворачивается таким образом, что вы никогда не видите ее вверх ногами. Акселерометр, встроенный в смартфон, позволяет все время держать на контроле положение экрана смартфона, отслеживая повороты экрана.
Давайте создадим такую программу для micro:bit, которая будет рисовать стрелку, показывающую вверх независимо от того, как вы держите плату микроконтроллера.
Эта программа показана на рис. 5.4.
Рис. 5.4. Программа для отслеживания положения платы micro:bit в пространстве
Как видите, программа обрабатывает шесть жестов. Это поворот платы микроконтроллера логотипом вверх, вниз, наклон вправо или влево, а также расположение платы экраном вверх и экраном вниз.
Каждый раз, когда возникает событие, связанное с тем или иным жестом, программа при помощи блока показать стрелку направлением рисует стрелку таким образом, что она всегда показывает вверх.
Если вы кладете контроллер горизонтально на стол экраном вверх, на экране будет нарисован квадрат большого размера. Если же вы перевернете плату контроллера экраном вниз, то увидите на экране квадрат маленького размера.
Все возможные варианты показаны на рис. 5.5.
Рис. 5.5. Изображение на экране контроллера зависит от его расположения в пространстве
Программа находится в файле BoxRover/ch05/microbit-Жесты.hex.
Обнаружение невесомости и перегрузок
Если ваш микроконтроллер micro:bit находится в космосе, или просто упал со стола, то возникнет событие от жеста свободное падение.
На рис. 5.6 показана очень простая программа, которая может обнаружить состояние невесомости.