sheen.bot-logo

← Insigte

Waarom jou micro:bit elke liewe les vra om die kompas te kalibreer

28 Sep. 2026·Sheen Robotics
Waarom jou micro:bit elke liewe les vra om die kompas te kalibreer

Die micro:bit forseer sy kalibrasie-minispeletjie omdat magnetometer-verplasings verdwyn wanneer krag afgeskakel word, terwyl skoolbanke met staalrame die plaaslike magnetiese veld onmiddellik versteur. Hier is hoe om dit in MakeCode en MicroPython reg te stel.

Die micro:bit vereis kalibrasie aan die begin van 'n les om twee redes wat saamval: die magnetometer se kalibrasiedata word slegs in vlugtige geheue (RAM) gestoor, wat uitgewis word sodra die bordjie ontkoppel word, en die looptydomgewing (runtime) staak uitvoering outomaties om die kalibrasieroetine te laat loop die eerste keer wanneer jou kode 'n peiling van 'n ongekalibreerde sensor versoek. In 'n skoolomgewing word dit vererger deur klaskamermeubels: standaard-skoolbanke met staalrame en nabygeleë rekenaartoerusting vervorm die plaaslike geomagnetiese veld, wat verseker dat enige ongekalibreerde lesing heeltemal onakkuraat is.

Waarom skoolbanke magnetometerlesings ontwrig

Die micro:bit gebruik 'n gekombineerde versnellingsmeter- en magnetometer-skyfie (soos die LSM303 of FXOS8700 op v1-bordjies, of die LSM303AGR op v2). 'n Magnetometer meet die sterkte en rigting van magnetiese velde langs drie ortogonale asse. Op 'n oop sportveld is die primêre veld wat gemeet word die Aarde se geomagnetiese veld (ongeveer 30 tot 60 mikrotesla).

In 'n standaard Suid-Afrikaanse klaskamer sit leerders egter by banke wat van sagtestaalpype gemaak is, dikwels direk bo gewapende betonvloerblaaie wat staalwapening (rebar) bevat. Nabygeleë skootrekenaars, monitors se kragbronne en laaikarre skep aktiewe elektromagnetiese velde. Dit veroorsaak twee tipes magnetiese vervorming:

  • Hardeyservervorming (hard iron distortion): Permanente magnete of gemagnetiseerde staalvoorwerpe naby veroorsaak 'n konstante afwyking wat die hele magnetiese sirkel weg van die oorsprong (0, 0, 0) verskuif.
  • Sagte-yservervorming (soft iron distortion): Ferromagnetiese materiale (soos die sagtestaal-bankraam) vervorm en druk die Aarde se magnetiese veldlyne saam, wat 'n metingsplot wat sferies behoort te wees in 'n asimmetriese ellipsoïed verander.

Wanneer die micro:bit vars aanskakel, is sy interne kalibrasiematriks leeg. Sodra 'n reël kode vir compass heading of compass.heading() vra, kyk die micro:bit-looptydstelsel of daar 'n geldige kalibrasiematriks bestaan. As niks gevind word nie, vries dit jou skrip en loods die verpligte kantelroetine ('n sirkel teken of die 5x5 LED-matriks volmaak) om die kompenserende verplasings vir harde en sagte yser te bereken.

Die kragsiklus-probleem in die klaskamer

Omdat die versteklooptydstelsel kalibrasiedata slegs in RAM stoor, verdwyn die verplasings elke keer wanneer 'n leerder hul micro:bit van 'n USB-poort ontkoppel of 'n batterypak aan- en afskakel. As jou les behels dat 30 leerders herhaaldelik kode wysig, dit via USB flits en laat loop, herlaai die bordjie met elke flits. Dit ontketen tot dertig kalibrasiereekse per leerder in 'n enkele periode van 45 minute.

Erger nog: as 'n leerder die kalibrasie voltooi terwyl hulle die micro:bit op borshoogte in die lug rondswaai, en die bordjie dan weer 5 sentimeter van 'n staalbankpoot neersit, verander die magnetiese veld drasties. Die micro:bit besef nie outomaties dat die basislyn verskuif het nie, tensy die looptydstelsel 'n volslae ongeldige veldvektor bespeur, wat lei tot onakkurate peilings of wisselvallige kompasnaalde.

Omseil en beheer van kalibrasie in MakeCode

In Microsoft MakeCode bevat die blokkie compass heading (°) 'n ingeboude kontrole: as die magnetometer ongekalibreer is, roep dit input.calibrateCompass() outomaties op. Jy het drie maniere om hierdie gedrag te bestuur, afhangend van jou lesdoelwitte.

1. As absolute peiling NIE nodig is nie: Gebruik eerder die versnellingsmeter

As jy basiese toevoere, kantelkontroles of eenvoudige rigting onderrig (bv. om 'n karretjie links of regs te stuur), het jy byna seker nie die magnetometer nodig nie. Onderwysers gebruik dikwels compass heading wanneer hulle eintlik kanteling (pitch/roll) of giering (yaw) wil meet. Deur rotation (pitch/roll) of acceleration te gebruik, vermy jy die kompas-substelsel heeltemal en aktiveer jy nooit 'n kalibrasieskerm nie.

2. Kalibreer een keer eksplisiet in `on start`

As jou projek werklik 'n kompas vereis (soos oriëntering of navigasie), roep die kalibrasie eksplisiet binne die on start-blok op eerder as om toe te laat dat dit onverwags tydens die programloop aktiveer:

input.calibrateCompass()

Gee leerders opdrag om op te staan, die micro:bit weg van hul liggame te hou en die kantelroetine in die oop lug te voltooi voordat hulle gaan sit. Dit voorkom dat die kalibrasiespeletjie die hooflogikablus tydens toetsing onderbreek.

Kalibrasiebestuur in MicroPython

In MicroPython het jy baie meer fyn beheer oor die sensor se lewensiklus. Jy kan die kalibrasiestatus nagaan, nie-interaktief kalibreer, of selfs voorafbepaalde verplasings invoer.

Voorkoming van die blokkerende kalibrasieskerm

By verstek sal 'n oproep na compass.heading() in MicroPython die kalibrasieroetine laat begin as compass.is_calibrated() False terugstuur. Jy kan onverwagte blokkering voorkom deur die status eksplisiet na te gaan:

import compass

if not compass.is_calibrated():
    compass.calibrate()

while True:
    heading = compass.heading()
    # Project logic here

Handmatige verskaffing van kalibrasiedata

As jou leerders in 'n vaste laboratoriumuitleg werk en jy die kantelspeletjie tydens herhalende koderingsiklusse heeltemal wil uitskakel, kan jy die basislynverplasings een keer bepaal, dit na nie-vlugtige berging (die micro:bit se interne flitslêerstelsel) skryf, en dit tydens aanskakeling laai. MicroPython bied laevlaktoegang via compass.get_field_strength() en kalibrasiekonfigurasiemetodes om die verplasingswaardes direk in te stel, wat die kantelreeks heeltemal oorslaan.

Praktiese klaskamerprotokol

Om 'n robotika- of koderingsklas vlot te laat verloop sonder om tien minute te verloor terwyl bordjies gekantel word:

  • Hou bordjies weg van bankrame: Handhaaf minstens 15 tot 20 cm spasie tussen die micro:bit en enige staalbene, bankhegstukke of monitorstaanders.
  • Moenie plat op die tafel kalibreer nie: As 'n micro:bit gekalibreer word terwyl dit op 'n staalbank rus, kalibreer dit volgens die bank se magnetiese afwyking. Die oomblik as die leerder dit optel om rond te loop, sal die peiling verkeerd wees. Kalibreer altyd op heup- of borshoogte in die oop lug.
  • Evalueer of jy werklik absolute Noord benodig: Vir 80% van inleidende klaskameruitdagings—soos lynvolging, hindernisvermyding of kantelbeheerde speletjies—is die magnetometer die verkeerde sensor. Gebruik eerder die traagheidsmeeteenheid (versnellingsmeter).

Vir gestruktureerde robotikamodules, hardewareverwysingsontwerpe en lesstelle wat gekonfigureer is vir Suid-Afrikaanse klaskamertoestande, verken die onderriggidse op Sheen Canvas of kyk na ons professionele ontwikkelingswerkswinkels op Sheen Academy.

#microbit#magnetometer#makecode#micropython#robotika-onderrig

Meer Insigte