CMUCam – Kommunikationsprobleme

Leider bereitet uns die CMUCam, die wir zur Detektierung der Hindernisse benutzen möchten, noch einige Schwierigkeiten. Bis jetzt war geplant, dass die Kamera über I²C ausgelesen wird. Problem dabei ist, dass sie gepollt werden muss, die muss also ständig gefragt werden, ob neue Daten zur Verfügung stehen. Wenn die Daten dann nicht schnell genug abgefragt werden, gehen Daten verloren. Halbwegs gut funktioniert hat das bis jetzt lediglich mit einem weiteren Scheduler Task, der alle 20ms (Kamera verarbeitet Bild mit 50Hz) die Kamera abfragt. Nun kommt der Scheduler aber aufgrund der vielen auszuführenden langsam in Bedrängnis – manchmal werden Tasks nicht komplett ausgeführt (wenn die Kamera zu viel Zeit für sich beansprucht) und bestimmte, teils wichtige Dinge (Encoder auswerten) werden vergessen. Deshalb wollen wir die Kamera nun über die serielle Schnittstelle auslesen. Hier sendet sie einfach alle Daten zum Roboter, sobald etwas detektiert wird. Hier können in einem Stapelspeicher die Daten dann auf die Verarbeitung warten. Anscheinend gibt es da aber noch ein paar Kommunikationsprobleme.

Wir wollen uns nun vorerst voll den Rescuekits und den Checkpoints widmen – die beiden Aufgaben haben gerade höhere Priorität. Danach sehen wir, wie es mit der Kamera weitergeht. :)