LEGO Spike Prime-Farb­sen­sor: die klei­ne Diva

Der Farbsensor des LEGO Education Robotik-Sets SPIKE Prime liefert nicht immer und auf Anhieb die Messwerte, die man erwartet. Hier fassen wir mögliche Ursachen und Lösungsansätze zusammen.
Ein SPIKE Prime-Fahr­ge­stell mit zwei nach unten gerich­te­ten Farb­sen­so­ren und dem Ultraschallsensor

Wer mit dem LEGO Edu­ca­ti­on SPIKE Prime Robo­tik-Bau­satz arbei­tet, befasst sich frü­her oder spä­ter mit dem Farb­sen­sor. Ob für die Farb­er­ken­nung beim Bau eines Sor­tier­ro­bo­ters, die Mes­sung des reflek­tier­ten Lichts bei der pro­por­tio­na­len Lini­en­ver­fol­gung oder die Steue­rung eines Robo­ters anhand far­bi­ger Mar­kie­run­gen auf einem Wett­be­werbs-Park­our – der Farb­sen­sor hat einen brei­ten Einsatzbereich.

In unse­ren AGs sto­ßen wir dabei jedoch immer wie­der auf das Pro­blem, dass der Sen­sor nicht zu funk­tio­nie­ren scheint bzw. ver­meint­lich unge­naue oder feh­ler­haf­te Mess­wer­te lie­fert. Eini­ge Bei­spie­le dafür:

  • Der Sen­sor misst das reflek­tier­te Licht bei einem wei­ßen oder hell­grau­en Unter­grund mit 20 bis 25%. Zu erwar­ten wäre ein Wert über 70%.
  • Far­ben wer­den nicht kor­rekt oder gar nicht erkannt.
  • Ein pro­por­tio­na­ler Lini­en­ver­fol­ger fährt gera­de­aus, obwohl sich der Farb­sen­sor voll­stän­dig über oder neben der Linie befin­det und daher die Fahrt­rich­tung kor­ri­gie­ren sollte.

Ohne uns lang über tech­ni­sche Zusam­men­hän­ge oder Hin­ter­grün­de aus­zu­las­sen, wol­len wir hier eini­ge Punk­te zusam­men­stel­len, die – hof­fent­lich – bei der Feh­ler­su­che helfen:

Abstand des Farb­sen­sors zu Boden oder Objek­ten anpassen

Laut der Infor­ma­ti­on in den „Tech­ni­cal Spe­ci­fi­ca­ti­ons“ zum Farb­sen­sor (Online-Abruf über die­sen Link) ist die „Opti­mal rea­ding distance: 16 mm (depen­ding on object size, color, and sur­face)“. Das ent­spricht etwa der Höhe von zwei Lego-Bau­stei­nen über­ein­an­der. Ach­ten Sie also dar­auf, dass z. B. ein nach unten gerich­te­ter Farb­sen­sor nicht zu hoch und nicht zu nied­rig befes­tigt ist.

Übri­gens: Lego selbst hat die­se Vor­ga­be bei der Bau­an­lei­tung für das „Erwei­ter­te Fahr­ge­stell“ nicht berück­sich­tigt und den Farb­sen­sor zu nied­rig ein­ge­plant. Hier muss man also korrigieren.

Rich­ti­gen Sen­sor-Modus wählen

Im Dash­board der LEGO Spike-App kann man den Arbeits­mo­dus des Farb­sen­sors wäh­len: „Farb­er­ken­nung“ oder „Stär­ke des reflek­tier­ten Lichts“. Hier soll­te man den Modus nut­zen, der für den jewei­li­gen Ein­satz am bes­ten geeig­net erscheint. Laut der Infos in den LEGO-Tuto­ri­als ermög­licht etwa der Refle­xi­ons-Modus „höchs­te Prä­zi­si­on“.

Inter­es­sant zu wis­sen: Auch im Modus „Reflek­tier­tes Licht“ erkennt der Sen­sor wei­ter­hin Far­ben, Dadurch kön­nen Anwen­dun­gen wie die pro­por­tio­na­le Lini­en­ver­fol­gung und Manö­ver anhand von Farb­mar­kie­run­gen kom­bi­niert werden.

Mess­wer­te kon­trol­lie­ren, Farb­sen­sor kalibrieren

Diver­se Fak­to­ren kön­nen die Mess­wer­te des Farb­sen­sors ins­be­son­de­re im Modus „Reflek­tier­tes Licht“ beein­flus­sen, z. B. die Licht­ver­hält­nis­se (viel / wenig Umge­bungs­licht, Licht­tem­pe­ra­tur) oder die Beschaf­fen­heit der Ober­flä­che (matt / glänzend).

Vor dem Ein­satz des Sen­sors soll­te man daher tes­ten, wel­che Wer­te er für rele­van­te Far­ben misst, und den eige­nen Code dar­auf anpas­sen (kali­brie­ren). So kann eine schwar­ze Linie statt der erwar­te­ten 0% reflek­tier­ten Lichts tat­säch­lich 10 – 15% lie­fern; ein wei­ßer Unter­grund wird bei gerin­ger Beleuch­tung dann mit 80% statt 100% gemes­sen. Die­se Mess­wer­te las­sen sich am ein­fachs­ten über das Dash­board der SPIKE-App ablesen.

Nutzt man die Sen­sor­wer­te für mathe­ma­ti­sche Ope­ra­tio­nen, berück­sich­tigt man die Abwei­chun­gen bei der Berech­nung (der noch beim SPIKE-Vor­gän­ger vor­han­de­ne Kali­brie­rungs-Pro­gram­mier­block ist bei SPIKE ent­fal­len): Zeigt bei einer pro­por­tio­na­len Lini­en­ver­fol­gung etwa die schwar­ze Linie einen Mess­wert von 10% reflek­tier­tes Licht und der hel­le Unter­grund 70%, trägt man als Ziel­wert (Lini­en­kan­te: 50% schwarz, 50% weiß) statt der in in vie­len Tuto­ri­als genann­ten „50“ eben eine „40“ ein.

Ein inter­es­san­tes Video dazu gibt es über die­sen Link auf You­tube.

Farb­er­ken­nung prüfen

Selbst mit der Farb­er­ken­nung hat der Farb­sen­sor manch­mal so sei­ne Pro­ble­me: So unter­schei­det er nicht immer zuver­läs­sig zwi­schen Dun­kel­blau und dem hel­le­ren Blau der Spike-Motoren.

Wäh­rend man in die­sem Fall etwa mit Python die RGB-Wer­te von Far­ben und im Code ver­wen­den kann, sind die Mög­lich­kei­ten bei der Pro­gram­mie­rung mit den Text­blö­cken, wie sie die meis­ten Ein­stei­ger nut­zen, sehr ein­ge­schränkt. Hier bleibt eigent­lich nur die Mög­lich­keit, sich auf klar unter­scheid­ba­re Far­ben zu beschränken.

Zusam­men­fas­sung

Die genann­ten Ansät­ze umfas­sen die nach unse­rer Erfah­run­gen häu­figs­ten Schwie­rig­kei­ten beim Ein­satz des Farb­sen­sors. Es han­delt sich also um „Ers­te Hilfe“-Maßnahmen. Bei spe­zi­fi­schen Pro­ble­men bie­ten natür­lich das Inter­net bzw. Foren oder Com­mu­ni­ties wie Red­dit oder Face­book-Grup­pen Hilfe.

Wir wün­schen auf jeden Fall viel Erfolg mit SPIKE Prime!