Compass¶
This module lets you access the built-in electronic compass. Before using, the compass should be calibrated, otherwise the readings may be wrong.
Warning
Calibrating the compass will cause your program to pause until calibration is complete. Calibration consists of a little game to draw a circle on the LED display by rotating the device.
Functions¶
-
microbit.compass.
calibrate
()¶ Starts the calibration process. An instructive message will be scrolled to the user after which they will need to rotate the device in order to draw a circle on the LED display.
-
microbit.compass.
is_calibrated
()¶ Returns
True
if the compass has been successfully calibrated, and returnsFalse
otherwise.
-
microbit.compass.
clear_calibration
()¶ Undoes the calibration, making the compass uncalibrated again.
-
microbit.compass.
get_x
()¶ Gives the reading of the magnetic force on the
x
axis, as a positive or negative integer, depending on the direction of the force.
-
microbit.compass.
get_y
()¶ Gives the reading of the magnetic force on the
x
axis, as a positive or negative integer, depending on the direction of the force.
-
microbit.compass.
get_z
()¶ Gives the reading of the magnetic force on the
x
axis, as a positive or negative integer, depending on the direction of the force.
-
microbit.compass.
heading
()¶ Gives the compass heading, calculated from the above readings, as an integer in the range from 0 to 360, representing the angle in degrees, clockwise, with north as 0.
-
microbit.compass.
get_field_strength
()¶ Returns an integer indication of the magnitude of the magnetic field around the device.
Example¶
"""
compass.py
~~~~~~~~~~
Creates a compass.
The user will need to calibrate the compass first. The compass uses the
built-in clock images to display the position of the needle.
"""
from microbit import *
# Start calibrating
compass.calibrate()
# Try to keep the needle pointed in (roughly) the correct direction
while True:
sleep(100)
needle = ((15 - compass.heading()) // 30) % 12
display.show(Image.ALL_CLOCKS[needle])