Die Verbindung der beiden Geräte erfolgt am einfachsten über einen I2C-Link, da beide Geräte über eine I2C-Schnittstelle verfügen. Dabei ist der EV3 ein I2C-Masters und der Arduino ein I2C-Slave. |
Für die physische Verbindung werden zwei Pull-up-Widerstände benötigt. Wenn Sie eine Standard-Lego Mindstorm Sensorkabel aufschneiden sehen Sie 6 Kabe, diel weiss, schwarz, rot, grün, gelb und blau (in dieser Reihenfolge) gefärbt sind. Um die folgenden Schaltpläne zu realisieren, können Sie jeder Art von Verbindungsmaterial (Klemmleiste, Lüsterklemme) oder Löten verwenden. |
Die zusätzlich benötigten Python-Module sind bereits in der Distribution von TigerJython enthalten. Der EV3 kann dabei im autonomen oder direkten Modus betrieben werden. Genauere Informationen finden Sie hier. |
Beispiel 1: I2C link zum Arduino Mit den Tasten UP bzw. DOWN wird ein Led ein und ausgeschaltet. Mit der Taste RIGHT wird derTemperaturwert, der mit einem Arduino-Temperatursensor gemessen wurde, zurückgehollt. |
# Ro15a.py from ev3robot import * robot = LegoRobot() sht = SHTSensor(SensorPort.S1) robot.addPart(sht) while not robot.isEscapeHit(): temp, humi = sht.getValues() print(temp) robot.drawString("Temp: " + str(temp), 0, 2) Tools.delay(1000) robot.exit() |
Programmcode markieren
|
Erklärungen zum Programmcode:
arduino = ArduinoLink(SensorPort.S1): erzeugt ein Arduino-Objekt am Port 1 | |
robot.addPart(arduino): arduino wird softwaremässig am EV3 angeschlossen | |
if robot.isDownHit(): wenn die Taste Down gedrückt wurde | |
v = arduino.getReplyInt(0): sendet 0 zum zum Arduino | |
msg = arduino.getReplyString(4): sendet 4 zum Arduino und erhält die Temperatrur zurück |