This instructables show how to use micro:bit to make a simple digital compass.
Step 1: Get a Micro:bit
If you not yet have a micro:bit, you may get a micro:bit here: https://microbit.org/resellers/
Step 2: Optional: Battery Holder
If you want to make the digital compass portable, you may consider get a battery holder.
Any 3V battery holder with JST connector should be ok. The battery can be CR2032, 2 x AAA batteries, 2 x AA batteries, etc.
Step 3: Optional: 3D Printed Cover
I feel direct view the SMD LED light is not so comfort, so I have made a 3D printed cover diffuse the light and make every LED like a perfect square pixel :>
If you also like the pixels, you can download and print the cover here:
Step 4: How Does Digital Compass Work?
micro:bit have a magnetic field sensor, just like a normal compass needle, it can sense the magnetic field produced inside Earth. micro:bit library translate the field value into 360 degrees relative to north.
micro:bit have 5 x 5 LED matrix, it is good enough to show an arrow in 8 directions. (North, NE, East, SE, South, SW, West, NW)
Step 5: Note on the Magnetic Field Direction
Please reminded that the magnetic field sensor and the LED are placed on different side of the PCB. So when you look at the LED side the magnetic field reading is flipped. Or you can treat the reading is counter-clockwise start from North.
Step 6: Angle Mapping
The input is a 360 degrees value and the output is 8 directions arrow, here is the angle mapping:
23 - 68 NW 68 - 113 West 113 - 158 SW 158 - 203 South 203 - 248 SE 248 - 293 East 293 - 338 NE Others North
Step 7: MakeCode
Here is my sample block code:
Simply download and copy to micro:bit drive to run.
If you are not yet familiar with using micro:bit please read the official quick start guide first:
Step 8: Calibrating the Micro:bit Compass
If you are first time using the micro:bit magnetic field sensor, the LED matrix will scroll the words TILT TO FILL SCREEN.
Please follow the support page video to calibrating the micro:bit compass:
Step 9: Happing Coding!
micro:bit compass is just a very simple example, micro:bit have much more can be done.
Let’s explore more ideas here: