Далее управление получает блок plot bar graf, добавленный из палитры Светодиоды.
В качестве параметра мы передаем этому блоку текущее значение ускорения, полученное от акселерометра. В параметра up toнужно указать максимальное значение, которое может вернуть акселерометр. Мы знаем, что это значение равно 1023.
Теперь загрузим программу в память микроконтроллера и оставим его плату спокойно лежать на столе. На экране будет картина, показанная слева на рис. 5.11.
Рис. 5.11. Гистограммы значений от акселерометра
Если потихоньку трясти плату микрокомпьютера, то вы увидите быстро меняющуюся гистограмму (средняя и правая картинка на рис. 5.11). Чем сильнее вы будете трясти плату micro:bit, тем больше будет высота линий, нарисованных на экране.
В качестве первого домашнего заданиядоработайте программу бросания костей BoxRover/ch05/microbit-Кости.hex (рис. 5.3). Сделайте так, чтобы через секунду после встряхивания на экране micro:bit по очереди показывалось два случайных числа (как будто мы бросаем две кости). При этом сначала должно показываться одно случайное число, потом символ ромбика, а затем – второе случайное число.
Решение вы найдете в файле BoxRover/ch05/microbit-Бросаем-кости.hex.
Вторым домашним заданиембудет сделать прототип пульта управления вашим марсоходом. Для управления движением ровера используйте кнопки A и B, а также жесты.
Результатом выполнения любой команды должно быть отображение кода команды на экране micro:bit. Вот список кодов команд:
0 – движение вперед при нажатии кнопки A или жесте «логотип вниз»;
1 – движение назад при нажатии кнопки B или жесте «логотип вверх»;
2 – поворот вправо при жесте «наклон вправо»;
3 – поворот влево при жесте «наклон влево»;
4 – останов при одновременном нажатии кнопок A и B или жесте «экран вверх»;
Пока вы получите только коды команд, но в дальнейшем эти коды будут отправляться по радио с пульта управления в ваш ровер, и будут использованы для управления его моторами.
Решение второго домашнего задания находится в файле BoxRover/ch05/microbit-Прототип-пульта.hex.
В этой главе мы познакомились с очень интересным устройством, расположенным на плате микроконтроллера micro:bit – акселерометром.
С помощью акселерометра вы научились обнаруживать и обрабатывать события, связанные с жестами – поворот платы микроконтроллера логотипом вверх или вниз, наклон вправо или влево, поворот монитором вверх или вниз, встряхивание, свободное падение, а также движение с ускорением в 3g, 6g и 8g.
Вы запустили программу, которая показывает стрелку, указывающую всегда вверх, независимо от положения платы микрокомпьютера. Кроме этого, вы познакомились со способом обнаружения невесомости и перегрузок, а также научились строить гистограмму значений ускорения.
В качестве домашнего задания вы сделали программу для игры в кости, а также прототип пульта управления моделью марсохода. Ваш пульт управления использует не только кнопки, расположенные на плате micro:bit, но и жесты.
6. Встроенный магнитометр
В детстве вы наверняка играли с магнитами и знаете, что они могут притягиваться и отталкиваться друг от друга. Магниты притягиваются к железу, но игнорируют алюминий, дерево и другие материалы, которые называются немагнитными.
У магнита есть северный и южный полюса. Если взять два магнита, то они будут притягиваться друг к другу разными полюсами и отталкиваться, если вы попытаетесь прижать их друг другу одинаковыми полюсами.
Наша планета Земля тоже представляет собой огромный магнит! И у нее тоже есть северный и южный магнитные полюса, которые, кстати, не совсем совпадают с географическими полюсами.
Для того чтобы ориентироваться на местности, до появления спутниковых систем позиционирования, таких как GPS и ГЛОНАСС, путешественникам приходилось пользоваться магнитным компасом и бумажной картой.
Стрелка компаса представляет собой магнит в виде стрелки. Один конец стрелки покрашен синей краской и всегда показывает на сервер, а другой – красной краской и смотрит на юг. С помощью компаса можно сориентировать карту таким образом, чтобы ее верхний край был направлен в сторону сервера. После этого, привязавшись к местности, можно будет понять, в какую сторону следует идти, чтобы не заблудиться.
Читать дальше