OBJECTIFS DE CETTE SECTION |
Cette section montre comment mesurer le champ magnétique à l’aide du compas intégré au micro:bit. |
CALIBRATION DU SENSEUR |
Program: from microbit import * compass.calibrate() while True: print(compass.heading()) sleep(300) |
EXEMPLES |
Einen Kompass erstellen
Eigentlich müsstest du bei den Bereichsgrenzen auch auf die Gleichheit testen. Da der Sensor aber nur ganzzahlige Werte zurückgibt, kannst du darauf verzichten. Program: from microbit import * if not compass.is_calibrated(): print("Perform calibration please!") compass.calibrate() while True: h = compass.heading() print(h) if h > 22.5 and h < 67.5: display.show(Image.ARROW_NW) elif h > 67.5 and h < 112.5: display.show(Image.ARROW_W) elif h > 112.5 and h < 157.5: display.show(Image.ARROW_SW) elif h > 157.5 and h < 202.5: display.show(Image.ARROW_S) elif h > 202.5 and h < 247.5: display.show(Image.ARROW_SE) elif h > 247.5 and h < 292.5: display.show(Image.ARROW_E) elif h > 292.5 and h < 337.5: display.show(Image.ARROW_NE) else: display.show(Image.ARROW_N) sleep(10) Minen suchen
Dann berechnest du den Betrag aus diesen drei Komponenten und skalierst ihn so, dass du einen Helligkeitswert zwischen 0 und 9 erhältst. Program: from microbit import * while True: b = compass.get_field_strength() z = min(9, int(b / 500000)) # brightness display.set_pixel(2, 2, z) sleep(10) Wasserstand messen
Program: from microbit import * import music state = "ok" while not button_a.was_pressed(): b = compass.get_field_strength() print(b) f = int(b / 100000) print(f) if f >= 15 and state != "high": state = "high" print("->high") elif f >= 8 and f < 15 and state != "ok": state = "ok" print("->ok") elif f < 8 and state != "low": state = "low" print("->low") if state == "high": music.pitch(2000, 100) elif state == "low": music.pitch(500, 100) sleep(500) |
NOTA BENE |
Der Magnetfeldsensor kann im Zusammenhang mit Magneten oder zur Bestimmung der Himmelsrichtung als Kompasssensor verwendet werden. In dieser Anwendung muss er vor der ersten Verwendung kalibriert werden. |
À TOI DE JOUER |
|