TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken

Dokumentation IOT-Module

Download aller Module


ADC121C021 12-bit Analog-Digital-Converter
Modul import: from adc121c021 import ADC121C02

Klasse ADC121C021
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
Modul import: from ads1x15 import ADS1015 oder ADS1115

Klasse ADS1015
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)

Klasse ADS1115
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
Modul import: from adxl345 import ADXL345

Klasse ADXL345

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)
Modul import: from bme680 import BME680

Klasse BME680
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)
Modul import: from bmx280 import BME280 oder BMP280

Klasse BME280
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
Modul import: from drv2605 import *

Klasse DRV2605
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)
Modul import: from ds3201 import DS3231

Klasse DS3231
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)
Modul import: from hmc5883 import HMC5883

Klasse HMC5883
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)
Modul import: from hp206c import HP206C

Klasse HP206C
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
Modul import: from mcp230xx import MCP23017 oder MCP23008

Klasse MCP23017
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

Klasse MCP23008
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
Modul import: from minimotor import *

Klasse MiniMotor
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

Klasse OxoRover
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)
Modul import: from mpl3115a2 import MPL3115A2

Klasse MPL3115A2
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)
Modul import: from oled import Oled

Klasse ADC121C021

Alle Zeichnungsoperation werden in einem Bildbuffer durchgeführt. Mit show() wird dieser dargestellt.
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)
Modul import: from oxo7seg import FourDigit

Klasse FourDigit
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
Modul import: oxorover import *

Anschlüsse der H-Brücke an GPIO: InA1: Pin 5, InA2: Pin 23, InB1: Pin 18, InB2: Pin 19

Klasse Motor
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

Klasse Gear
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
Modul import: from pcf857x import PCF8574 oder PCF8575

Klasse PCF8574
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


Klasse PCF8575
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