Deutsch English |
Modul mbrobot / mbrobot_plus / mbrobot_plusV2
Modul import:
from mbrobot import * / from mbrobot_plus import *
/ from mbrobot_plusV2 import *
Funktion | Aktion |
forward() | setzt den mbRobot in Vorwärtsbewegung |
delay(ms) | bleibt ms Millisekunden im glichen Zustand |
backward() | setzt den mbRobot in Rückwärtsbewegung |
left() | setzt dem mbRobot in eine Linksdrehung (ein Motor vorwärts, der andere rückwarts drehend) |
right() | setzt dem mbRobot in eine Rechtsdrehung (ein Motor vorwärts, der andere rückwarts drehend) |
leftArc(radius) | setzt den mbRobot auf eine Linkskurve mit gegebenem Radius (in cm, approx.) |
rightArc(radius) | setzt den mbRobot auf eine Rechtskurve mit gegebenem Radius (in cm, approx.) |
stop() | stoppt die Bewegung |
setSpeed() | setzt die Geschwindigkeit für die Bewegungen (0..100) |
setPID(1) [nur mbrobot_plus] | reduziert die Geschwindigket, der Roboter bewegt sich langsamer (im Schritttempo) |
setPID(0) [nur mbrobot_plus] | PID wird ausgeschaltet, Roboter bewegt sich mit geg. Geschwindigkeit |
calibrate(offset, differential, areScaling) | kalibriert Motoren, fallsr Roboter nicht geradeaus fährt offset: minimal Power der Motoren (-10 bis 50) differential: regelt Links- bzw. Rechtsdrall (-150 bis 150), bei Linsdrall < 0, bei Rechtsdrall > 0 arcScalling: regelt den Radius bei leftArc() und rightArc() (-50 bis 50), falls Radius zugross > 0, falls Radius zu klein < 0 |
setServo(port, angle) | dreht den am Port S1 oder S2 (bzw. P1 oder P2) angeschlossenen Servomotor an die gegebene Winkelposition. (0 <= angle <= 180) |
setLED(n) | n= 1: schaltet beide LEDs ein, n = 0: schaltet beide LEDs aus Beim mbRobot_plus sind verschiedene Farben möglich (1:rot, 2:grün, 3:gelb, 4:blau, 5:pink, 6:cyan, 7:weiss) |
setAlarm(n) | n= 1: schaltet ein Pipston ein, n = 0: schaltetden Pibston aus |
getDistance() | liefert die Distanz (in cm, ungefähr im Bereich 2..200) gemessen mit dem Ultrasonic-Sensor (255: Fehlmessung) |
motL.rotate(speed) | dreht den linken Motor mit Geschwindigkeit speed -255..255, 0 um zu stoppen |
motR.rotate(speed) | dreht den rechten Motor mit Geschwindigkeit speed -255..255, 0 um zu stoppen |
irLeft.read_digital(), irRight.readDigital() | Infrarotsensoren liefern 1, falls helle Unterlage; 0, falls dunkle Unterlage |
ledLeft.write_digital(n), ledRight.write_digital(n) | schaltet LEDs ein (n = 1) oder aus (n = 0) |
setLEDLeft(n), setLEDRight(n)) | Schaltet linke bzw. rechte LED des mbRobots_plus ein (n = 1, 2, 3, 4, 5, 6, 7) oder aus (n = 0), bei mbRobot_plusV2 nur n = 1 und n = 0 |
setServo(port, angle) | Dreht den am Port S1 oder S2 (bzw. P1 oder P2) angeschlossenen Servomotor an die gegebene Winkelposition. (0 <= angle <= 180) |
playTone(freq., duration | Speit den Tone mit der gegebenen Frequenz während der gegebener Zeit ab. |
Modul import: from microbit import *
Direkte FunktionsaufrufeFunktion | Aktion |
reset() | startet das System neu (führt main.py aus) |
sleep(t) | hält das Programm während dt Millisekunden an |
temperature() | gibt die Temperatur in Grad Celsius zurück (als Float) |
display | Objektreferenz (Instanz) |
set_pixel(x, y, value) | setzt die Intenistät des Pixels an der Position x, y. value ist im Bereich 0..9 |
clear() | löscht alle Pixels |
show(str) | schreibt str auf dem LED-Display aus. Enthält dieser mehrere Zeichen, so werden diese in Laufschrift angezeigt, die auf dem letzten Zeichen stehen bleibt |
show(img) | zeigt das img auf dem LED-Display. Ist img grösser als 5x5 pixels, so wird der Bereich x, y = 0..4 angezeigt. Ist img kleiner als 5x5 pixels, sind die fehlenden Pixels ausgeschaltet |
show(list_of_img, delay = 400, loop = False, wait = True, clear = False) | zeigt alle Images der Liste nacheinander an. Falls loop = True ist, wird die Anzeigesequenz endlos wiederholt. Für wait = True ist die Methode blockierend, andernfalls kehrt sie zurück und die Anzeige erfolge im Hintergrund. delay ist die Anzeigezeit pro Bild in Millisekunden (default: 400). Für clear = True wird die Anzeige nach dem letzten Bild gelöscht |
scroll(str) | zeigt str als Laufschrift. Das letzte Zeichen verschwindet (blockierende Methode) |
scroll(str, delay = 150, loop = False, wait = True, monospace = False) | zeigt str als Laufschrift. Falls loop = True ist, wird die Anzeigesequenz endlos wiederholt. Für wait = True ist die Methode blockierend, andernfalls kehrt sie zurück und die Anzeige erfolge im Hintergrund. delay ist die Anzeigezeit pro Spalte in Millisekunden (default: 150) |
button_a | Objektreferenz (Instanz) des Buttons A |
button_b | Objektreferenz (Instanz) des Buttons B |
is_pressed() | gibt True zurück, falls der Button beim Aufruf gedrückt ist; andernfalls False |
was_pressed() | gibt True zurück, falls der Button seit dem letzten Aufruf (oder dem Start des Programms) gedrückt wurde. Ein erneuter Aufruf gibt False zurück, bis der Button wieder gedruckt wird |
Image(str) | erzeugt eine Objektreferenz (Instanz). str hat das Format 'aaaaa:bbbbb:ccccc:ddddd:eeeee:', wo a eine Zahl im Bereich 0..9 ist, welche die Intensität des Pixels angibt. a sind die Werte für die erste Zeile, b für die zweite, usw. |
Image() | erzeugt eine Objektreferenz (Instanz) mit 5x5 ausgeschalteten Pixels |
set_pixel(x, y, value) | setzt die Intenistät des Pixels an der Position x, y. value ist im Bereich 0..9 |
fill(value) | gibt ein Image-Objekt zurück, bei dem alle Pixel den gegebenen Wert haben (value = 0..9) |
get_pixel(x, y) | gibt die Intensität des Pixels an der Position x, y |
shift_left(n) | gibt ein Image-Objekt zurück, das um n Spalten nach links verschoben ist |
shift_right(n) | gibt ein Image-Objekt zurück, das um n Spalten nach rechts verschoben ist |
shift_up(n) | gibt ein Image-Objekt zurück, das um n Zeilen nach oben verschoben ist |
shift_down(n) | gibt ein Image-Objekt zurück, das um n Zeilen nach unten verschoben ist |
copy() | gibt einen Klone des Image zurück |
invert() | gibt ein Image-Objekt mit invertieren Pixels zurück (new_value = 9 - value) |
image_new = image * n | gibt ein Image-Objekt zurück, bei dem alle Pixel-Intensitäten mit dem Faktor n multipliziert sind |
image_new = image1 + image2 | gibt ein Image-Objekt zurück, bei dem die Intensitäten der Pixel von image1 und image2 addiert wurden |
Vordefinierte Objekte:
Beispiel: display.show(Image.SMILE)
pin0, pin1, pin2, pin8, pin12, pin16 | Instanzen für allgemeines Digital-in/Digital-out |
pin0, pin1, pin2 | Instanzen für Analog-in/Analog-out (PWM) |
pin3, pin4, pin6, pin7, pin9, pin10 | Instanzen vordefiniert für LED display (display mode) |
pin5, pin11 | Instanzen vordefiniert für Button A, B (button mode) |
pin13, pin14, pin15 | Instanzen vordefiniert für SPI (spi mode) |
pin19, pin20 | Instanzen vordefiniert für I2C (i2c mode) |
read_digital() | gibt True zurück, falls Pin auf logisch 1 (HIGH) ist; gibt False zurück, falls Pin auf logisch 0 (LOW) ist (Pulldown 10 kOhm) |
write_digital(v) | falls v = 1, wird der Pin auf logisch 1 (HIGH) gesetzt; fals v = 0, wird der Pin auf logisch 0 (LOW) gesetzt (max. Strom: 5 mA) |
read_analog() | gibt Wert des ADC im Bereich 0..1023 zurück (Eingangsimpedanz: 10 MOhm) |
write_analog(v) | setzt den PWM Duty Cycle (v = 0..1023 entsprechend 0..100%) (max. Strom: 5 mA) |
set_analog_period(period) | setzt die PWM-Periode in Millisekunden |
set_analog_period_microseconds(period) | setzt die PWM-Periode in Mikrosekunden (> 300) |
accelerometer | Objektreferenz (Instanz) |
get_x(), get_y(), get_z() | gibt die Beschleunigung in x-, y- oder z-Richtung zurück (int, Bereich ca. -2047 bis +2048, entsprechend ungefähr -20 m/s^2 bis +20 m/s^2, die Erdgeschleunigung von ungefähr 10 m/s^2 wird mitgezählt). x-Richtung: ButtonA-ButtonB; y-Richtung: Pin2-USB; z-Richtung: Normale zu Board |
get_values() | gibt ein Tupel mit den Beschleunigungen in x-, y- oder z-Richtung zurück (Einheit wie oben) |
current_gesture() | gibt die aktuelle Geste zurück. Folgende Gesten werden erkannt: " up", " down", " left", " right", " face up", " face down", " freefall", " 3g", " 6g", " 8g", " shake" |
compass | Objektreferenz (Instanz) |
calibrate() | startet eine blockierende Kalibrierungsroutine, die für genaue Messungen nötig ist. Man muss den micro:bit in verschiedenen Richtungen schief stellen, so dass der blinkende Punkt die Randpixel erreicht und diese anzündet. Erst wenn eine Kreisfigur erstellt ist, fährt das Programm weiter |
is_calibrated() | gibt True zurück, falls der Sensor kalibriert wurde |
clear_calibration() | setzt den Sensor auf den nicht-kalibrierten Zustand zurück |
heading() | gibt den aktuellen Winkel des micro:bit zur Nordrichtung (Grad, int) |
get_x(), get_y(), get_z() | gibt den aktuellen Wert der x, y oder z-Komponente des Magnetfeldes an der Stelle des Sensors zurück (int, Mikrotesla, keine Kalibrierung nötig) |
get_values() | gibt ein Tupel der x-, y- und z-Komponenten des Magnetfeldes an der Stelle des Sensors zurück (int, Mikrotesla, keine Kalibrierung nötig) |
np = NeoPixel(pin, n) | erzeugt eine Neopixel Objekt (Instanz) mit n Neopixels, die an den gegebenen Pin angeschlossen sind. Jeder Pixel wird durch seine Position adressiert (beginnend bei 0) und seine Farbe wird durch eine Zuweisung eines RGB-Tubels bestimmt, z.B. np[2] = (0, 100, 255) setzt Pixel # 2 auf Rot = 0, Grün = 100, Blue = 255. show() muss aufgerufen werden, damit die Änderung sichbar wird. (Strips mit WS2812 LEDs unterstützt.) |
show() | zeigt die Pixels an. Muss bei jeder Änderung der Farbwerte aufgerufen werden, damit diese sichbar ist |
clear() | löscht alle Pixels |
Modul music
Modul import: from music import *
Funktionen:
set_tempo(bpm = 120) | setzt die Anzahl Beats pro Minute (default: 120) |
pitch(frequency, len, pin = microbit.pin0, wait = True) | spielt einen Ton mit gegebener Frequenz in Hertz während der gegebenen Zeit in Millisekunden. pin definiert den Output-Pin am GPIO-Stecker (default: P0). Falls wait = True, ist die Funktion blockierend; sonst kehrt sie zurück, während der Ton weiter spielt (bis die Abspieldauer erreicht ist oder stop() aufgerufen wird) |
play(melody, pin = microbit.pin0, wait = True, loop = False) | spielt eine Melodie mit dem aktuellen Tempo.). pin definiert den Output-Pin am GPIO-Stecker (default: P0). Falls wait = True, ist die Funktion blockierend; sonst kehrt sie zurück, während die Melodie weiter spielt (bis die Abspieldauer erreicht ist oder stop() aufgerufen wird). Falls loop = True, wird die Melodie endlos erneut abgespielt |
stop(pin = microbit.pin0) | stoppt alle Sound-Ausgaben am gegebenen GPIO-Pin (default: P0) |
Bemerkungen:
Eine Melodie ist eine LIste mit Strings in folgendem Format: ["note:dauer", "note:dauer",...]
note in musikalischer Notation: c, d, e, f, g, a, h mit optionaler Octavezahl (default: 1): z.B.. c2, d2, ... und optionalem Versetzungszeichen (Halbtonkreuz): c#, d#,... oder c#2, d#2,...
dauer in Anzahl Ticks (optional, defaut: 1)
Vordefinierte Melodien:
Modul radio:
Modul import: from radio import *
Computerkommunikation über Bluetooth
on() | schaltet die Bluetooth-Kommunikation ein. Verbindet mit einem micro:bit mit eingeschaltetem Bluetooth |
off() | schaltet die Bluetooth-Kommunikation aus |
send(msg) | sendet eine String-Message in den Messagebuffer des Empfängerknotens (First-In-First-Out, FIFO-Buffer) |
msg = receive() | gibt die älteste Message (string) des Messagebuffers zurück und entfernt sie aus dem Buffer. Falls der Buffer leer ist, wird None zurückgegeben. Es wird vorausgesetzt, dass die Messages mit send(msg) gesendet wurden, damit sie sich in Strings umwandeln lassen [sonst wird eine ValueError Exception ("received packet is not a string") geworfen] |
send_bytes(msg_bytes) | sendet eine Message als Bytes (Klasse bytes, e.g b'\x01\x48') in den Messagebuffer des Empfängerknotens (First-In-First-Out, FIFO-Buffer) |
receive_bytes() | gibt die älteste Message (bytes) des Messagebuffers zurück und entfernt sie aus dem Buffer. Falls der Buffer leer ist, wird None zurückgegeben. Zum Senden muss send_bytes(msg) verwendet werden (und nicht send(msg)) |
Modul mbglow:
Modul import: from mbglow import *
makeGlow() | erzeugt einen sichtbaren Leuchtkäfer mit Position (0, 0), Richtung Norden, Spur sichtbar. Koordinatensystem: -2 <=x <=2 (+ nach rechts), -2 <= y <= 2 (+ nach oben). (0, 0) auf mittlerem Pixel |
forward() | bewegt den Leuchtkäfer um einen Schritt vorwärts |
back() | bewegt den Leuchtkäfer um einen Schritt rückwärts |
left(angle) | dreht die Bewegungsrichtung um 45 Grad-Schritte nach links (angle = 45, 90, 135, 180, 215, 270, 315) |
right(angle) | dreht die Bewegungsrichtung um 45 Grad-Schritte nach rechts (angle = 45, 90, 135, 180, 225, 270, 315) |
setPos(x, y) | setzt den Leuchtkäfer auf Position (x, y) |
getPos() | gibt die aktuelle Position des Leuchtkäfers als Tupel zurück |
setSpeed() | setzt die Geschwindigkeit für die Bewegungen (0..100) |
clear() | löscht alle eingeschalteten Pixels. Der Leuchtkäfer bleibt an der aktuellen Position (unsichtbar) |
showTrace(False) | macht die Spur für die nächsten Bewegungen (Pixel an besuchten Stellen) unsichtbar, bei True wieder sichtbar |
isLit() | gibt True zurück, falls das Pixel an der Stelle des Leuchtkäfers eingeschaltet ist |
Modul time
Modulimport: import time
Funktion | Aktion |
time.time() |
Gibt die aktuelle Zeit in Sekunden an |
Modul sht
(Sensirion Temperatur- und Luftfeuchtesensor am I2C-Port)
Modul import: import sht
sht.getValues() | gibt ein Tupel mit Temperatur (in Grad Celsius) und Luftfeuchtigkeit (in Prozent) zurück |
Modul sgp
SGP30 Air Quality Sensor (Co2-Sensor am I2C-Port)
Modul import: import sgp
sht.getValues() | gibt ein Tupel mit CO2-Konzentration (in ppm) und TVOC (Total Volantile Organic Compunds) zurück. Der Sensor wird auf CO2=400 kalibriert, Bei Werten höber als 1000 ist die Luftqualität schlecht und eine Lüftung dringend notwendig. I2C-Adresse (SGP30: 0x58) |