Hallo liebe Forenmitglieder,
nach Inbetriebnahme des Motion Kit 2 habe ich Probleme die Funkschnittstelle und den Ultraschallsesnor (USS) gemeinsam in einem Programm zu nutzen. Beide Komponenten für sich allein funktionieren. Ich konnte den USS nutzen, um z.B. durch das Labyrinth zu fahren und ich konnte die Fernsteuerung nutzen, um das Motion Kit über einen 2. Calliope aus der Ferne zu lenken.
Hier das Programm zur Fernsteuerung: Fernsteuerung_V3
Und hier das Programm des ferngesteuerten Motion Kits: Motion-Kit_Ferngesteuert_ohne_USS
Erweitert man aber z.B. das Programm des ferngesteuerten Motion Kits um z.B. eine Kollissions-Erkennungs-Komponente beim Vorwärtsfahren, (Motion-Kit_Ferngesteuert_mit_USS) verhält sich das Motion Kit völlig unvorhersagbar. Meistens fährt es immer oder gar nicht und ignoriert die Befehle, die über Funk kommen und es erkennt auch Hindernisse nicht mehr.
Es hilft auch nicht, z.B. die USS-Abfrage „>7“ in den „Dauerhaft-Block“ zu verlagern und in den Funktionen dann nur noch mit bereitgestellten Variablen zu arbeiten.
Die Ursachen kann ich mit meinen geringen Programmierkenntnissen nicht ermitteln und können sehr vielfältig sein (fehlerhafte Zusammenarbeit der SW-Erweiterungen des Motion Kits mit Funk, Speicherprobleme, Synch-Probleme bei parallelem Threading, Interface-Probleme bei gelichzeitiger Nutzung Funk und USS, …)
Hilfreich wäre, wenn sich die Ersteller der beiden Erweiterungen Funk und Motion Kit mal zusammen tun. Bis dahin würde ich vorschlagen, einen Hinweis im Arbeitsheft 2 als Fußnote auf den S.68/69 hinzuzufügen, dass die Nutzung von Funk und USS in einem gemeinsamen Programm nicht möglich sind.
Viele Grüße, Tim Gross
Probier’s mal damit:
Danke für den Tipp mit der Idee, die Anzahl des Sendens der über den Lagesensor ermittelten Zahl auf 2* pro Sekunde zu begrenzen (alle 400ms). Beim ersten Ausprobieren sah es fast so aus, als würde es funktionieren. Das Motion Kit fuhr zwar ein oder zwei Mal nicht an, funktionierte aber fast wie erwartet.
Beim weiteren testen trat aber ganz schnell der alte Zustand ein, dass das Motion Kit völlig undefiniert reagiert. Mein Eindruck ist, dass der USS nicht richtig initialisiert wird. Wenn man sich den Wert auf dem Calliope anzeigen lässt, steht er oft auf „-1“. Das passiert übrigens auch häufig, wenn man einen USS an einen Calliope V2 mit Grove Erweiterung anschließt. Dort kommt dann öfter als Entfernung „0“. M.E. hat der USS ein Problem auf dem Grove-Port mit der entsprechenden Grove Erweiterung. Hier gibt es irgendein Synch.- oder Initialisierungsproblem. Aber Danke noch einmal für Deine Hilfe.