Download aller Module
Funktion | Aktion |
adc = ADC121C021(scl = Pin(22), sda = Pin(21), addr = 0x50) | erzeugt eine Sensorinstanz für einen ADC mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
adc.getValue() | gibt den aktuellen Wert zurück (0..2047 für 0..3V Eingangsspannung, max 3.3V) |
ADS1015 10-bit Analog-Digital-Converter, ADS1115 16-bit Analog-Digital-Converter
Funktion | Aktion |
adc = ADS1015(address = 0x48, scl = Pin(22), sda = Pin(21), gain = 1) | erzeugt eine Sensorinstanz für einen ADC mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard). gain = 1, 2, 4, 8, 16 |
adc.read(channel) | gibt den aktuellen Wert am gegebenen channel (0..3) zurück (gain = 1: 0..2024 für 0..4.096V Eingangsspannung, max. 3.3V) |
Funktion | Aktion |
adc = ADS1015(address = 0x48, scl = Pin(22), sda = Pin(21), gain = 1) | erzeugt eine Sensorinstanz für einen ADC mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard). gain = 1, 2, 4, 8, 16 |
adc.read(channel) |
gibt den aktuellen Wert am gegebenen channel (0..3) zurück (gain = 1: 0..32768 für 0..4.096V Eingangsspannung, max. 3.3V) |
ADXL345 Beschleunigungssensor
Funktion | Aktion |
acc = ADXL345(scl = Pin(22), sda = Pin(21), addr = 0x53) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
adc.getAccel() |
gibt den aktuellen Wert zurück (0..2047 für 0..3V Eingangsspannung, max 3.3V) |
BME680 Umweltsensor (Bosch)
Funktion | Aktion |
bme = BME680(i2C_address = 0x76, scl = Pin(22), sda = Pin(21), refresh_rate = 10) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
bme.getTemperature() |
gibt den aktuellen Wert der Temperatur zurück (degC) |
bme.getPressure() | gibt den aktuellen Wert des Luftdrucks zurück (hPa) |
bme.getHumidity() | gibt den aktuellen Wert der relativen Luftfeuchtigkeit zurück (%) |
bme.getAltitude() | gibt die aktuelle Höhe über Meer zurück (m) (Luftdruck auf Meereshöhe mit setSeaLevelPressure(p) angeben) |
bme.getGas() | gibt den VOC (Volatile Organic Compound) zurück |
bme.setSeaLevelPressure(p) | setzt den Luftdruck auf Meereshöhe (hPa) |
BME280 Umweltsensor, BMP280 Umweltsensor (Bosch)
Funktion | Aktion |
bme = BME280(i2C_address = 0x76, scl = Pin(22), sda = Pin(21)) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
bme.getValues() |
gibt ein Tupel mit Temperatur, Luftdruck und Luftfeuchtigkeit zurück (degC, hPa, %) |
Klasse BMP280
Funktion | Aktion |
bmp = BMP280(i2C_address = 0x77, scl = Pin(22), sda = Pin(21)) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
bmp.getValues() | gibt ein Tupel mit Temperatur, Luftdruck und Luftfeuchtigkeit zurück (degC, hPa, %) |
DRV2605 Haptic Motor Driver
Funktion | Aktion |
mot = DRV2605(scl = Pin(22), sda = Pin(21), addr = 0x5A) | erzeugt eine Driverinstanz für einen Driver mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
mot.playWaveform(n) |
spielt eine Ton mit gegebenem Index (1...120) |
DRV2605.HAPTIC_ALL = [DRV2605.HAPTIC_SHORT, DRV2605.HAPTIC_LONG, DRV2605.HAPTIC_VERY_LONG, DRV2605.HAPTIC_TWO, DRV2605.HAPTIC_THREE, DRV2605.HAPTIC_RATTLE1, DRV2605.HAPTIC_RATTLE2, DRV2605.HAPTIC_ULTRA_LONG] |
Liste mit allen Tonindizes (static constants) |
DS3231 Realtime Clock (RTC)
Funktion | Aktion |
rtc = DS3231(clk = Pin(22), dta = Pin(21)) | erzeugt eine Sensorinstanz für eine RTC mit i2C-Adresse 0x68, die an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
rtc.setDateTime(yy, mm, dd, h, m, s, w) | setzt Jahr, Monat, Tag, Stunde, Minute, Sekunde, Wochentag (üblich 0: Montag) |
rtc.getDateTime() |
gibt ein Tupel (yy, mm, dd, h, m , s, w) zurück |
HMC5883 Digitaler Kompasssensor (Honywell)
Funktion | Aktion |
hmc = HMC5883(address = 0x1E, scl = Pin(22), sda = Pin(21), gauss = 4.70, declination = (2, 13)) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard). gauss legt den Messbereich fest (Werte: 0.88, 1.30, 1.90, 2.50, 4.70, 5.60, 8.10). declination ist die aktuelle Deklination in (Grad, Minuten) |
hmc.axes() | liefert ein Tupel mit den x, y und z-Komponenten des Magnetfeldes (in Gauss, 100'000 Gauss = 1 Tesla) |
hmc.heading() | liefert das Azimut (in Grad, float) |
HP206C Umweltsensor (Seed)
Funktion | Aktion |
hp = HP206C(i2C_address = 0x76, scl = Pin(22), sda = Pin(21)) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
hp.readTemperature() |
gibt den aktuellen Wert der Temperatur zurück (degC) |
hp.readPressure() | gibt den aktuellen Luftdruck mit hoher Genauigkeit zurück (hPa) |
hp.readAltitude() | gibt die Höhe über Meer zurück (bei 1000 hPa auf Meereshöhe) |
MCP23017, MCP23008 GPIO Expander
Funktion | Aktion |
mcp = MCP23017(scl = Pin(22), sda = Pin(21), addr = 0x20) | erzeugt eine Sensorinstanz für einen Expander mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
mcp.write_digital(pin, value) | setzt den Pin mit gegebener Nummer auf LOW/HIGH |
mcp.write_pins(pins) | setzt mehrere Werte gleichzeitig. pins ist ein Dictionary mit {pinnummer : wert} |
mcp.read_digital(pin) | gibt den aktuellen Wert am Pin zurück |
mcp.read_pins(pins) | gibt eine Liste mit den aktuellen Werten zurück. pins ist eine Liste mit Pinnummern |
Funktion | Aktion |
adc = MCP23008(scl = Pin(22), sda = Pin(21), addr = 0x20) | erzeugt eine Sensorinstanz für einen ADC mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
mcp.write_digital(pin, value) |
setzt den Pin mit gegebener Nummer auf LOW/HIGH |
mcp.write_pins(pins) | setzt mehrere Werte gleichzeitig. pins ist ein Dictionary mit {pinnummer : wert} |
mcp.read_digital(pin) | gibt den aktuellen Wert am Pin zurück |
mcp.read_pins(pins) | gibt eine Liste mit den aktuellen Werten zurück. pins ist eine Liste mit Pinnummern |
DRV8830 H-Brücke für kontinuierliche Servomotoren
Funktion | Aktion |
mot = MiniMotor(scl = Pin(22), sda = Pin(21), addr = 0x60) | erzeugt eine Driverinstanz für einen Driver mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
mot.setSpeed(speed) | setzt die Drehzahl (im Bereich von etwa 50 bis 100, ungefähr bei 63 steht der Motor still, bei kleineren Werten läuft er rückwärts, bei grösseren vorwärts) |
mot.rotate() | schaltet den Motor ein |
mot.stop() | stoppt den Motor |
Funktion | Aktion |
rover = OxoRover(speed = 63) | erzeugt zwei MiniMotor-Instanzen an Adresse 0x60 und 0x62 und setzt Geschwindigkeitswert auf 63 (ungefähr Stillstand) |
rover.setSpeed(speed) |
setzt die Drehzahl (im Bereich von etwa 50 bis 100, ungefähr bei 63 stehen die Motoren still, bei kleineren Werten laufen sie rückwärts, bei grösseren vorwärts) |
rover.forward() | setzt Rover in Vorwärtsbewegung |
rover.backward() | setzt Rover in Rückwärtsbewegung |
rover.left() | setzt Rover in Linksdrehung (rechter Motor ini Vorwärtsbewegung, linker Motor in Rückwärtsbewegung) |
rover.leftArc() | setzt Rover auf Linksbogen (rechter Motor in Vorwärtsbewegung, linker Motor mit halbem Speed in Vorwärtsbewegung) |
rover.right() | setzt Rover in Rechtsdrehung (linker Motor in Vorwärtsbewegung, rechter Motor in Rückwärtsbewegung) |
rover.rightArc() | setzt Rover auf Rechtsbogen (linker Motor in Vorwärtsbewegung, rechter Motor mit halbem Speed in Vorwärtsbewegung) |
rover.stop() | stoppt beide Motoren |
MPL3115A2 Umweltsensor (NXP)
Funktion | Aktion |
mpl = MPL3115A2(i2C_address = 0x60, scl = Pin(22), sda = Pin(21)) | erzeugt eine Sensorinstanz für einen Sensor mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
mpl.getValues(seaLevel = None) | gibt ein Tupel mit Luftdruck (kPa), Höhe über Meer (m) und Temperatur (degC) zurück. seaLevel ist der Luftdruck auf Meereshöhe (in Pascal). Für None wird 100000 Pa gesetzt |
OLED-Display (128x64 Pixels, SSD1306 Driver)
Funktion | Aktion |
oled = Oled(scl = Pin(22), sda = Pin(21), tiny = False) | erzeugt eine Oledinstanz auf Adresse 0x3C, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard). tiny = True für Display mit nur 32 Zeilen |
oled.invert(invert) | invertiert die Farben weiss/schwarz |
oled.show() | zeigt den aktuellen Bildbuffer an |
oled.fill(color) | füllt den ganzen Display (color = 1: weiss, 0: schwarz) |
oled.pixel(x, y, color) | setzt einzelnes Pixel (color = 1: weiss, 0: schwarz) |
oled.scroll(dx, dy) | verschiebt das ganze Bild um dx, dy |
oled.text(string, x, y, color = 1) | stellt den Text beginnend bei x, y mit gegebener Farbe dar (color = 1: weiss, 0: schwarz) |
oled.line(x0, y0, x1, y1) | zeichnet Linie von (x0, y0) nach (x1, y1) |
oled.ellipse(xm, ym, a, b) | zeichnet Ellipse mit Mittelpunkt (xm, ym) und Halbachsen a, b |
oled.circle(xm, ym, radius) | zeichnet Kreis mit Mittelpunkt (xm, ym) und Radius radius |
oled.rectangle(xm, ym, a, b) | zeichnet Rechteck mit Mittelpunkt (xm, ym) und Länge/Breite a, b |
oled.fillRectangle(xm, ym, a, b) | zeichnet gefülltes Rechteck mit Mittelpunkt (xm, ym) und Länge/Breite a, b |
oled.image(filename) | zeichnet Bild aus einer Bilddatei im Format ppm, 128x64 (bzw. 128x32 für tiny), B/W |
Siebensegmentanzeige (4 Ziffern mit TM1637 Driver)
Funktion | Aktion |
disp = FourDigit(scl = 23, dio = 5, lum = 4) | erzeugt eine Displayinstanz für einen Display, der an den GPIO_Pins IO23 und IO5 angeschlossen ist. Standardhelligkeit 4 (0..9) |
disp.erase() | löscht den Display |
disp.show(text, pos = 0) | zeigt den Text beginnend an Position 0 (Ziffer ganz links) an. Der Text kann mehr als 4 Zeichen enthalten. text kann auch ein Integer sein |
disp.scroll(text) | zeigt den Text als Lauftext an |
disp.toRight() | verschiebt den Text um eine Stelle nach rechts |
dis.toLeft() | verschiebt den Text um eine Stelle nach links |
disp.start() | setzt den Text an die Startposition |
disp.setLuminosity(lum) | setzt die Helligkeit (0..9) |
disp.setColon(enable) | aktiviert/deaktiviert den Doppelpunkt |
OxoRover (2 Gleichstrommotoren über H-Brücke DRV8835
Funktion | Aktion |
mot = Motor(label, speed = 400) | erzeugt eine Motorinstanz mit label 'A' oder 'B' und setzt speed (0...1023) |
mot.setSpeed(speed) |
setzt die Drehzahl (0..1023) |
mot.getSpeed() | gibt die Drehzahl zurück |
mot.forward() | setzt den Motor in Vorwärtsbewegung |
mot.backward() | setzt den Motor in Rückwärtsbewegung |
mot.stop() | stoppt den Motor |
Funktion | Aktion |
gear = Gear( speed = 400) | erzeugt eine Gearinstanz (zwei Motoren) und setzt speed (0..1023) |
mot.setSpeed(speed) |
setzt die Geschwindigkeit (0..1023) |
mot.getSpeed() | gibt die Geschwindigkeit zurück |
mot.forward() | setzt den Rover in Vorwärtsbewegung |
mot.backward() | setzt den Rover in Rückwärtsbewegung |
mot.left() | setzt den Rover in Linksdrehung |
mot.leftArc(radius) | setzt den Rover auf Linksbogen mit ungefährem Radius (in cm, 10...100) |
mot.right() | setzt den Rover in Rechtsdrehung |
mot.rightArc(radius) | setzt den Rover auf Rechtsbogen mit ungefährem Radius (in cm, 10...100) |
mot.stop() | stopp dent Rover |
PCF8574 8-bit Port Expander, PCF8575 16-bit Port Expander
Funktion | Aktion |
pcf = PCF8574(scl = Pin(22), sda = Pin(21), addr = 0x38) | erzeugt eine Expanderinstanz für einen Expander mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
pcf.read_digital(pin) |
gibt den angelegten Wert am Pin (0..7) zurück (als Integer 0, 1) |
pcf.read_all() | gibt den 8-bit Wert aller Pins zurück (als Integer 0..255) |
pcf.read_all_inv() | gibt den bitweise invertieren Wert aller Pins zurück |
pcf.write_digital(pin, value) | setzt den Wert eines Ausgangspins (value = 0, 1) |
pcf.write_all(value) | setzt alle Pins auf den gegebenen Wert (untere 8 Bit des Integer) |
pcf.write_all_inv(value) | dasselbe, aber mit bitweise invertierten Wertigkeiten |
pcf.set_all() | setzt alle Pins auf HIGH |
pcf.clear_all() | setzt alle Pins auf LOW |
pcf.toggle(pin) | invertiert den bestehenden Wert am Pin |
Funktion | Aktion |
pcf = PCF8575(scl = Pin(22), sda = Pin(21), addr = 0x38) | erzeugt eine Expanderinstanz für einen Expander mit gegebener i2C-Adresse, der an IO21 und IO22 angeschlossen ist (defaults für Oxocard) |
pcf.read_digital(pin) |
gibt den angelegten Wert am Pin (0..15) zurück (als Integer 0, 1) |
pcf.read_all() | gibt den 16-bit Wert aller Pins zurück (als Integer 0..65535) |
pcf.read_all_inv() | gibt den bitweise invertieren Wert aller Pins zurück |
pcf.write_digital(pin, value) | setzt den Wert eines Ausgangspins (value = 0, 1) |
pcf.write_all(value) | setzt alle Pins auf den gegebenen Wert (untere 16 Bit des Integer) |
pcf.write_all_inv(value) | dasselbe, aber mit bitweise invertierten Wertigkeiten |
pcf.set_all() | setzt alle Pins auf HIGH |
pcf.clear_all() | setzt alle Pins auf LOW |
pcf.toggle(pin) | invertiert den bestehenden Wert am Pin |
Modul import: from radio import *
(nur Realmodus)
Klasse Radio
Funktion | Aktion |
radio = Radio(id, verbose = False) | erzeugt eine Instanz deer Klasse Radio mit id = "A" oder "B". Es wird noch keine Verbindung erstellt. Mit verbose = True werden Debuginformationen ausgeschrieben |
radio.on() | startet einen Verbindungsversuch mit dem Partner (nicht blockierend) |
radio.off() | beendet die Verbindung und gibt Ressourcen frei |
radio.send(msg) | sendet Messagestring. Dieser wird im Empfangsbuffer gespeichert |
radio.receive() | gibt ältesten Messagestring aus dem Empfangsbuffer zurück (leer, falls Buffer leer) |
radio.isConnected() | True, falls beide Partner verbunden sind |
radio.waitConnection() | wartet, bis die Partner verbunden sind |