Шрифт:
Рис. 6.1. Расположение магнитометра на плате micro:bit
Магнитометр micro:bit способен измерять интенсивность магнитного поля по трем пространственным осям (x, y, z). Он возвращает значения в микротеслах (мкТл).
Перед использованием необходимо выполнить калибровку магнитометра. К сожалению, эта процедура довольно длительная – вам нужно поворачивать и опрокидывать плату микроконтроллера до тех пор, пока на мониторе не будут гореть все светодиоды. Хотя калибровку можно запустить явным образом, она будет запущена автоматически в любом случае, если вы добавите в программу блоки магнитометра.
Обнаружение магнита
Давайте начнем изучение магнитометра с изготовления прибора для поиска магнитов и залежей железа. На рис. 6.2. показана программа, которая пригодится нам для такого прибора.
Рис. 6.2. Программа обнаружения магнитов
Код программы вы можете загрузить из файла BoxRover/ch06/ microbit-Детектор-магнитного-поля.hex (файл находится в архиве на сайте автора книги.
Эта программа записывает в созданную нами переменную сила_магнитного_поля значение интенсивности магнитного поля, полученное от блока сила магнитного поля в (мкТл) с параметром сила. Этот блок вы найдете в палитре Ввод еще.
Блок сила магнитного поля в (мкТл) в зависимости от выбранного параметра может возвращать значение силы магнитного поля по осям (x, y, z), или интенсивность магнитного поля, если задан параметр сила.
В бесконечном цикле наша программа показывает на экране micro:bit численное значение интенсивности магнитного поля в микротеслах. Если интенсивность превышает 100 мкТл, то на экране отображается значок галочки, если она меньше этого значения – экран стирается при помощи блока очистить экран.
Сразу после запуска программы на мониторе micro:bit в режиме бегущей строки появится надпись TILT TO FILL SCREEN, что можно перевести как «наклоняйте, чтобы заполнить экран», а затем – мигающая точка в центре экрана. Это означает, что нужно выполнить калибровку магнитометра.
Наберитесь терпения, поворачивайте и опрокидывайте плату микроконтроллера до тех пор, пока не загорятся все светодиоды на его экране. Если в процессе калибровки снова появится упомянутая выше надпись, дождитесь когда она будет полностью показана, а затем продолжите повороты и опрокидывания платы micro:bit.
Постарайтесь по возможность проводить калибровку вдали от магнитов и массивных металлических предметов, чтобы избежать их влияния на этот процесс.
Как только калибровка будет завершена, на экране micro:bit появится текущее значение интенсивности магнитного поля. Оказалось, что у автора этой книги на столе это значение равно примерно 42-44 мкТл.
Теперь возьмите любой магнит и медленно подносите его к плате micro:bit. Вы будете фиксировать увеличение значения интенсивности магнитного поля, измеренного магнитометром.
Если поднести магнит достаточно близко к микроконтроллеру, так что интенсивность магнитного поля превысит 100 мкТл, то на экране вслед за цифровым значением будет показан символ галочки.
Когда вы уберете магнит подальше, ваш micro:bit будет фиксировать обычное значение магнитного поля, типичное для вашей обстановки.
Проверьте, как влияют на показания вашего прибора магнитики с холодильника и другие магниты, которые вы найдете у себя дома.
Если поднести к плате micro:bit очень сильный неодимовый магнит, то прибор «намагнитится» и какое-то время будет показывать завышенное значение магнитного поля даже после того, как вы уберете магнит. Поэтому лучше не экспериментировать со слишком сильными магнитами.
Вы можете попробовать подносить к магнетометру различные металлические предметы, провода и катушки провода, по которым идет ток. Следите за тем, как это влияет на показания вашего магнитометра.
Делаем из micro:bit компас
При помощи магнитометра, встроенного в micro:bit, можно сделать программный компас. В палитре Ввод есть блок компасный курс, который возвращает значение от 0 до 359 градусов. Значение 0 соответствует направлению на север, значение 180 – направлению на юг.
Простейшая программа компаса показана на рис. 6.3 (файл microbit-Компас.hex).
Конец ознакомительного фрагмента.