PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Problem



basteluwe
14.02.2014, 18:57
Ich arbeite mich durch die Beispielprogramme meiner M256 WiFi und bin bis zum Programm 09-Move gekommen.
Hier klemmt es. Die Beispiele davor waren OK (glaube ich)
Auf der Base läuft das Slave Programm. Wenn ich auf der M256 das 09-Move starte, zeigt das LCD zwar "MOVE FWD" an, er bewegt sich aber nicht! Auf der Base leuchtet die gelbe LED (PWRON) dauerhaft. Im Networkterminal wird dieser Fehler angezeigt:
27509

Was mach ich falsch?

Uwe

Dirk
14.02.2014, 20:10
Hi Uwe,

wenn du das Programm über den WiFi Loader startest, wird das Slave-Programm auf der Base nicht mit gestartet, daher der Fehler.

Du must also das Ganze mit dem Start/Stop Taster auf dem RP6 starten.

basteluwe
14.02.2014, 21:11
Hi Uwe,

wenn du das Programm über den WiFi Loader startest, wird das Slave-Programm auf der Base nicht mit gestartet, daher der Fehler.

Du must also das Ganze mit dem Start/Stop Taster auf dem RP6 starten.
Jepp, genau das war es, Danke!

Uwe

basteluwe
15.02.2014, 11:56
Nur noch mal eine Frage zum Verständnis:
Ist das immer so, dass wenn die Base als Slave und die M256 als Master läuft, die beiden Programme gemeinsam vom Start/Stop Taster auf der Base (also dem Slave) gestartet werden oder ist das nur bei diesem Beispiel so programmiert?
Ich hab mich schon gewundert, dass auf dem M256 kein Start/Stop Taster ist. Bisher hab ich die M256 Beispiele immer vom Loader aus gestartet.

Gruß Uwe

Dirk
15.02.2014, 12:38
Die eigentliche Startprozedur läuft nach einem kurzen Signal am SDA-Pin ab.

Vielleicht hilft das hier (https://www.roboternetz.de/community/threads/61779-Start-Stop-Taster-%C3%9Cberbr%C3%BCcken) zur Erklärung?

SlyD
16.02.2014, 16:50
Hallo,

normalerweise sollten immer alle Controller gestartet werden wenn einer davon startet (Signal über den I2C Bus wird von allen Bootloadern beim start gesendet / empfangen).
Also auch wenn das Programm vom RobotLoader aus gestartet wird.
Ist das nicht so läuft irgendwas verkehrt.

(wenn die PowerON LED dauerhaft leuchtet ist das Programm gestartet)

Eventuell ist die Pause am Anfang in einem der Programme (unterschiedliche Versionen?) zu kurz oder zu lang und der Bus dann noch nicht bereit...

MfG,
SlyD

basteluwe
17.02.2014, 19:10
Hallo,

normalerweise sollten immer alle Controller gestartet werden wenn einer davon startet (Signal über den I2C Bus wird von allen Bootloadern beim start gesendet / empfangen).
Also auch wenn das Programm vom RobotLoader aus gestartet wird.
Ist das nicht so läuft irgendwas verkehrt.

(wenn die PowerON LED dauerhaft leuchtet ist das Programm gestartet)

Eventuell ist die Pause am Anfang in einem der Programme (unterschiedliche Versionen?) zu kurz oder zu lang und der Bus dann noch nicht bereit...

MfG,
SlyD
Na nun bin ich ja geplättet! Ich hab es eben ausprobiert und jetzt geht der Programmstart tatsächlich sowohl vom Taster auf der Base als auch vom Startbutton im WiFi Loader.
Brat mir einer einen einen Storch! Keine Ahnung warum das erst nicht ging (muß wohl das Alter sein).
Danke SlyD für die Erklärung.

Gruß Uwe

basteluwe
18.02.2014, 19:26
Man soll sich nicht zu früh freuen!
Ich hab jetzt noch mal ausführlich getestet und irgendwas ist trotz allem komisch bzw. nicht wie es soll:
Zwar starten die Programme jetzt vom Button auf der Base als auch vom WiFi Loader, aber je nachdem von wo sie gestartet werden, reagieren sie unterschiedlich!!!
Nach dem Start von der Base läuft das Programm wohl so wie es ursprünglich soll: Der Robby fährt fröhlich umher, ACS ist aktiv (die LED zappeln) und er weicht Hindernissen aus und auch die Bumper reagieren.
Nach Start vom WiFi Loader tut er "beinahe" das gleiche, nur das ACS scheint nicht aktiv!? Die entsprechenden LEDs zeigen keine Action und er weicht auch nicht aus. Die Bumper gehen aber!
Fakt ist, die installierten Programme reagieren unterschiedlich, je nachdem ob Start von der Base oder vom WiFi Loader. Die Programme sind unverändert im Originalzustand.
Der Loader ist Version 2.5a
Die Programme sind aus dem Ordner "RP6_Examples_20120725"
Auf der Base läuft "RP6Base_I2CSlave" und auf der M256 "Example_09_Move"

Irgendwelche Ideen?

Gruß Uwe