I2C Fehler in Makecode oder im Mini?

#1

Nach meinen Fehlschlägen mit der I2C-Steuerung des maqueen von dfrobot habe ich mir einen Logicanalyzer gekauft und für den microbit und den mini folgenden Code compiliert und aufgespielt:

input.onButtonPressed(Button.A, () => {
let buf = pins.createBuffer(3);
buf[0] = 0x00; // Motor1
buf[1] = 0x00; // Direction Clockwise
buf[2] = 255;  // Speed
pins.i2cWriteBuffer(0x10, buf);
led.toggle(2, 2)

})

Auf dem Microbit kam folgendes raus


auf dem Mini das:

Also kein Wunder dass der mit dem Mini nicht fährt.
@joern.alraun liegt es an makeCode, am Mini oder an mir?

#2

Hallo @klmi
das liegt dann wohl an dir. :grinning:

Die Bilder entsprechen beim mini doch dem Programm – oder sind die etwa vertauscht?
Läuft das Auto denn mit diesem Code auf dem microbit?
Hast du mit dem makecode.calliope.cc kompiliert?

Beste Grüße
Jörn

#3

Die Bilder stimmen so. Das Programm wurde jeweils für microbit (oben) und mini (unten) compiliert. Ich hab jetzt noch nicht so viel über I2C gelesen aber inzwischen glaube ich auch dass der Mini den korrekten Code erzeugt. Der Microbit scheint nach der Setupkommunikation gleich das Endsignal zu schicken während der Mini brav die Codes überträgt. Dummerweise fährt aber das Fahrzeug nur mit dem Signal vom microbit. Das ist ja auch unverhältnismäßig lang auf low. Vielleicht entspricht das Fahrzeug nicht genau den I2c Spezifikationen! Wenn ich mehr Zeit hab teste ich nochmal. Demnächst bekomme ich das Robotikboard von Kitronik (mit 4 Motoren und 6 Servos) welches auch über I2C läuft, das werde ich auch mal testen. Das Adafruit crickit läuft ja auch probemlos über I2C!
Erstmal danke für dein Schauen und Tschüss!

PS: Ich weiß, dass Problem sitzt immer vor dem Computer :laughing:

1 Like
#4

Roboticsboard läuft!
https://youtu.be/582I0-MQPyc

2 Like
#5

Konnte das Problem lösen! Auch Knobloch hatte wohl das Problem und den Mini zusätzlich mit Strom versorgt. So läuft der Callibot ähm Maqueen. Wobei Knobloch die ausgereiftere Version komplett über I2C bietet. Nur die Blöcke sind hässlicher. Werde meine Maqueens für die Schule jetzt umbauen.

#6

Hallo zusammen,
ich bin vom Knotech-Team und hoffe es ist ok, dass wir uns als Firma hierzu kurz melden und das Rätsel auflösen. Die zusätzliche Stromversorgung ist es nicht :slightly_smiling_face:
Wir umgehen die fehlerhafte Kommunikation zwischen Calliope und dem Maqueen Board über I2C indem wir das Maqueen-Board mit unseren eigenen Firmware patchen. Es liegt an einem I2C-Adressenkonflikt. Die Motoren auf dem Maqueen-Board und eine Hardwarekomponente des Calliope nutzen dieselbe I2C-Adresse. Standardmäßig wird die Hardwarekomponente beim Start des Calliope initialisiert.

4 Like