Dokumentation Calliope Mini
3.3V Spannungsversorgung externer Geräte: Maximal 100 mA
Modul import: from calliope_mini import *
Direkte Funktionsaufrufe
Funktion |
Aktion |
reset() |
startet das System neu (führt main.py aus) |
sleep(dt) |
hält das Programm während dt Millisekunden an |
temperature() |
gibt die Temperatur im Lagesensor in Grad Celsius zurück (als Float) |
Display
display |
Instanz des Displays |
Methoden:
set_pixel(x, y, value) |
setzt die Intensität des Pixels an der Position x, y. value ist im Bereich 0..9 |
get_pixel(x, y) |
liefert den Wert des Pixels an der Position x, y |
clear() |
löscht alle Pixels |
on()/off() |
schaltet den Display an/aus. Im ausgeschalteten Zustand stehen folgende Pins zusätzlich als I/O zur Verfügung: pin4, pin6, pin7, pin9 |
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 |
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) |
Beispiele:
display.show("A")
display.scroll("Hallo")
display.show([Image.HAPPY, Image.SAD])
Image
Image(str) |
erzeugt eine 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 Instanz mit 5x5 ausgeschalteten Pixels |
Methoden:
set_pixel(x, y, value) |
setzt die Intensität des Pixels an der Position x, y. value ist im Bereich 0..9 |
fill(value) |
setzt die Intensität aller Pixels auf den gleichen Wert (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 (rechts eingeschobene Spalten sind ausgeschaltet) |
shift_right(n) |
gibt ein Image-Objekt zurück, das um n Spalten nach rechts verschoben ist (links eingeschobene Spalten sind ausgeschaltet) |
shift_up(n) |
gibt ein Image-Objekt zurück, das um n Zeilen nach oben verschoben ist (unten eingeschobene Spalten sind ausgeschaltet) |
shift_down(n) |
gibt ein Image-Objekt zurück, das um n Zeilen nach unten verschoben ist (oben eingeschobene Spalten sind ausgeschaltet) |
copy() |
gibt einen Klone des Image zurück |
invert() |
gibt ein Image-Objekt mit invertieren Pixels zurück (new_value = 9 - value) |
crop(x, y, w, h) |
gibt einen Bildausschnitt der Breite w und Höhe h zurück. Die obere linke Ecke entspricht dem Pixel x, y des Originalbildes |
dest.blit(img, x, y, w, h, xdest, ydest) |
kopiert vom gegebenen img einen rechteckigen Bereich an der Position x, y mit Breite w und Höhe h in das Image dest an der Stelle xdest, ydest |
Operationen:
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:
- Image.HEART
- Image.HEART_SMALL
- Image.HAPPY
- Image.SMILE
- Image.SAD
- Image.CONFUSED
- Image.ANGRY
- Image.ASLEEP
- Image.SURPRISED
- Image.SILLY
- Image.FABULOUS
- Image.MEH
- Image.YES
- Image.NO
- Image.CLOCK12, Image.CLOCK11, Image.CLOCK10, Image.CLOCK9, Image.CLOCK8, Image.CLOCK7, Image.CLOCK6, Image.CLOCK5, Image.CLOCK4, Image.CLOCK3, Image.CLOCK2, Image.CLOCK1
- Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E, Image.ARROW_SE, Image.ARROW_S, Image.ARROW_SW, Image.ARROW_W, Image.ARROW_NW
- Image.TRIANGLE
- Image.TRIANGLE_LEFT
- Image.CHESSBOARD
- Image.DIAMOND
- Image.DIAMOND_SMALL
- Image.SQUARE
- Image.SQUARE_SMALL
- Image.RABBIT
- Image.COW
- Image.MUSIC_CROTCHET
- Image.MUSIC_QUAVER
- Image.MUSIC_QUAVERS
- Image.PITCHFORK
- Image.XMAS
- Image.PACMAN
- Image.TARGET
- Image.TSHIRT
- Image.ROLLERSKATE
- Image.DUCK
- Image.HOUSE
- Image.TORTOISE
- Image.BUTTERFLY
- Image.STICKFIGURE
- Image.GHOST
- Image.SWORD
- Image.GIRAFFE
- Image.SKULL
- Image.UMBRELLA
- Image.SNAKE
- Listen:
Image.ALL_CLOCKS, Image.ALL_ARROWS
Buttons
button_a |
Instanz des Buttons A |
button_b |
Instanz des Buttons B |
Methoden:
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 |
FarbLED
Methoden:
set_colors(r, g, b) |
setzt die drei Farbkomponenten r, g, b = 0..255 |
get_colors() |
liefert die drei Farbkomponenten als Tupel zurück |
FarbLEDs Callope mini 3
Modul import: from neopixel import *
Methoden:
LEDs[0] = (r, g, b) |
setzt bei der ersten LED die drei Farbkomponenten, r, g, b = 0..255 |
LEDs[1] = (r, g, b) |
setzt bei der zweiten LED die drei Farbkomponenten, r, g, b = 0..255 |
LEDs[2] = (r, g, b) |
setzt bei der dritten LED die drei Farbkomponenten, r, g, b = 0..255 |
LEDs.show() |
zeigt die gewählte Farben an allen LEDs an |
Accelerometer
accelerometer |
Instanz des Beschleunigungssensors |
Methoden:
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 Erdbeschleunigung von ungefähr 10 m/s^2 wird mitgezählt). x-Richtung: FarbLed-USB; y-Richtung: ButtonB-ButtonA; z-Richtung: Normale zum Board von vorne nach hinten |
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
Compass |
Instanz des Magnetfeldsensors |
Methoden:
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) |
Gyrometer
gyrometer |
Instanz des Drehzahlmessers |
Methoden:
get_x(), get_y(), get_z() |
gibt den aktuellen Wert der x, y oder z-Komponente des Winkelgeschwindigkeit |
get_values() |
gibt ein Tupel der x-, y- und z-Komponenten der Winkelgeschwindigkeit |
NeoPixel
(Modul import: from neopixel import *)
np = NeoPixel(pin, n) |
erzeugt eine 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-Tupels 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 sichtbar wird.
(Strips mit WS2812 LEDs unterstützt.) |
Methoden
:
clear() |
löscht alle Pixels |
show() |
zeigt die Pixels an. Muss bei jeder Änderung der Farbwerte aufgerufen werden, damit diese sichbar ist |
Modul music
(Modul import: from music import *)
Funktionen:
pitch(frequency, len, pin = 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: pin0). 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) |
spielt eine Melodie mit dem aktuellen Tempo.). pin definiert den Output-Pin am GPIO-Stecker (default: pin0). 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 |
Vordefinierte Melodien:
- ADADADUM - Eröffnung von Beethoven’s 5. Sinfonie in C Moll
- ENTERTAINER - Eröffnungsfragment von Scott Joplin’s Ragtime Klassiker “The Entertainer”
- PRELUDE -Eröffnung des ersten Prelude in C Dur von J.S.Bach’s 48 Preludien und Fugen
- ODE - “Ode an Joy” Thema aus Beethoven’s 9. Sinfonie in D Moll
- NYAN - das Nyan Cat Thema
- RINGTONE - ein Klingelton
- FUNK - ein Geräusch für Geheimagenten
- BLUES - ein Boogie-Woogie Blues
- BIRTHDAY - “Happy Birthday to You...”
- WEDDING - der Chorus des Bräutigams aus Wagner’s Oper “Lohengrin”
- FUNERAL - der “Trauerzug”, auch bekannt als Frédéric Chopin’s Klaviersonate No. 2 in B♭Moll
- PUNCHLINE - a lustiger Tonclip, nachdem ein Witz gemacht wurde
- PYTHON - John Philip Sousa’s Marsch “Liberty Bell”, ein Thema aus “Monty Python’s Flying Circus”
- BADDY - Filmclip aus "The Baddy"
- CHASE - Filmclick aus einer Jagdszene
- BA_DING - ein Signalton, der darauf hinweist, dass etwas geschehen ist
- WAWAWAWAA - ein trauriger Posaunenklang
- JUMP_UP - für Spiele, um auf eine Aufwärtsbewegung hinzuweisen
- JUMP_DOWN - für Spiele, um auf eine Abwärtsbewegung hinzuweisen
- POWER_UP - ein Fanfarenklang, der darauf hinweist, dass etwas erreicht wurde
- POWER_DOWN - ein trauriger Fanfarenklang, der darauf hinweist, dass etwas verloren gegangen ist
Modul radio:
(Modul import: from radio import *)
Computerkommunikation über Bluetooth
Funktionen:
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] |
Modul cpglow
(Modul import: from cpglow 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) |
setSpeed() |
setzt die Geschwindigkeit für die Bewegungen (0..100) |
show() |
macht den Leuchtkäfer an der aktuellen Position und für die nächsten Bewegungen sichtbar |
hide() |
macht den Leuchtkäfer für die nächsten Bewegungen unsichtbar |
clear() |
löscht alle eingeschalteten Pixels. Der Leuchtkäfer bleibt an der aktuellen Position (unsichtbar) |
showTrace(False/True) |
macht die Spur für die nächsten Bewegungen (Pixel an besuchten Stellen) sichtbar/unsichtbar |
setPos(x, y) |
setzt den Leuchtkäfer auf Position (x, y) |
getPos() |
gibt die aktuelle Position des Leuchtkäfers als Tupel zurück |
isLit() |
gibt True zurück, falls das Pixel an der Stelle des Leuchtkäfers eingeschaltet ist |
Modul callibot
Modul import:
from callibot 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) |
setLED(n) |
n= 1: schaltet beide LEDs ein, n = 0: schaltet beide LEDs aus
|
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 |
setLEDLeft(n)
setLEDRight(n)) |
Schaltet linke bzw. rechte LED ein (n=1) oder aus (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 callibormot (Motoren einzeln steuern)
Modul import:
from callibotmot import *
motL, motR |
Linker und rechter Motor |
motX.rotate(speed) |
Setzt den linken- bzw. rechten Motor in Bewegung mit der Rotationsgeschwindigkeit speed. Für speed > 0 vorwärts, für speed < 0 rückwärts, speed = 0 stopt die Rotation |
General Purpose I/O (GPIO)
Output: 5 mA maximal pro Anschluss 15 mA maximale Last (alle Anschlüsse zusammen)
pin0*, pin1*, pin2*, pin3*, pin18, pin21...pin30 |
Instanzen für allgemeines Digital-in/Digital-out oder Analog-in/Analog-out (PWM) |
pin4... pin15 |
Instanzen vordefiniert für LED display (display mode) |
pin16, pin17 |
Instanzen vordefiniert für Button A, B (button mode) |
pin19, pin20 |
Instanzen vordefiniert für I2C (i2c mode) |
Methoden:
read_digital() |
gibt 1 zurück, falls Pin auf logisch 1 (HIGH) ist; gibt 0 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; falls 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) (nur pin1, pin2, pin3, auf pin3 ist der Ausgang des Mikrofon-Verstärkers) |
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) |
set_pull(mode) |
setzt den Pullup/Pulldown-Widerstand. (mode: pinx.PULL_UP, pinx.PULL_DOWN, pinx.NO_PULL). Default: Pulldown-Widerstand) |