№4. Компас


На первом занятии мы узнали, что в микрокомпьютер microbit встроен компас. Попробуем создать программу, которая показывает стрелку в направлении севера на дисплее. Для начала создадим новый проект и назовем его compass.

Перед началом работы с компасом, его необходимо откалибровать. Поэтому сразу после включения устройства дадим команду калибровки компаса. Воспользуемся блоком «при начале» и добавим в него команду «откалибровать компас» из подраздела «дополнительно» раздела «ввод». Калибровку следует проводить так: держа перед собой устройство дисплеем вверх сделать полный оборот вокруг себя.

Теперь перейдем к основной части программы. Сделаем так, чтобы микрокомпьютер постоянно считывал направление севера с магнитного датчика и записывал это значение в переменную angle. Вытащим в рабочую область блок «постоянно».

Теперь создадим переменную angle (в переводе с английского означает «угол»).

Теперь внутри блока «постоянно» мы будем присваивать переменной angle положение компаса. Для этого воспользуемся блоками «задать для … значение» из раздела «переменные» и «компасный курс» из раздела «ввод».

Заметьте, что в виртуальном эмуляторе появилась стрелка и угол в градусах. Блок «компасный курс» считывает значение с магнитного датчика и передает число от 0 до 355, которое соответствует значению угла в градусах от севера. Угол отсчитывается по часовой стрелке, а 0 соответствует северу. Для обработки значения угла  воспользуемся блоком «если … то … иначе» из раздела «логика».

Теперь мысленно разобьем дисплей на 4 части, проведя диагонали. При таком разбиении стрелка должна показывать наверх при значениях угла меньше 45° либо больше 315°. Зададим это условие с помощью блока «или» и двух блоков сравнения. Блок «или» возвращает истину тогда, когда хотя бы одно из утверждений внутри блока истинно. В противоположность ему тажке существует блок «и». Он возвращает истину только лишь в том случае, когда оба утверждения внутри него истинны одновременно.

Теперь, после «то» добавим команду «показать светодиоды» и включением нужных светодиодов нарисуем стрелку вверх. Теперь при заданных значениях угла микрокомпьютер отобразит на дисплее стрелку вверх.

Теперь для того, чтобы разместить еще три стрелки, добавим два блока else if. Как это сделать, мы обсуждали в прошлом занятии.

Аналогично первой стрелке, создадим условия для остальных и вставим команды «показать светодиоды».

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

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

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