Unterbodenbeleuchtung

 Unterbodenbeleuchtung…? fragt sich sicher der ein oder andere. Inspiriert durch iRobots AVA Roboter fiel die Entscheidung, zwischendurch (um mal was zu bauen, was funktioniert ;-) ) eine RGB-Beleuchtung für den Roboter direcs1 zu entwickeln.


Quelle: http://www.botjunkie.com

Die Idee die dahintersteckt ist, verschiedene Zustände leicht signalisieren zu können; z.B. "rot=Hindernis" oder "grün=freie Fahrt". Zum Ansteuern von den ausgewählten RGB-LED-Streifen wurden sechs Optokoppler (4N33 813) auf die vorhandene Steuerplatine gelötet – gar nicht so einfach bei der Verkabelung:

  

Die Optokoppler sind erforderlich um die LEDs zu schalten, die direkt an 12V angeschlossen werden können:

   

Nun galt es, die flexiblen LED-Streifen – die übrigens bei Pollin bestellt wurden – auf der Unterseite des Roboters zu montieren. Durch die Klebestreifen, die an den Streifen bereits dran sind, ist dieses sehr simpel. Auch kann die Meterware ca. alle 10 cm einfach mit der Schere geteilt werden. Praktisch. Hier die Fotos dazu:

    

Nicht ganz so einfach gestaltete sich das Verlegen der Anschlusskabel für die LED-Streifen am Bot. Aber lösbar:

     

Nun noch das Ganze für den zweiten Streifen:

 

Und so sieht der erste Test aus:

        

Wie man sieht, sind hier alle Farbkombinationen möglich, wenngleich erst einmal nur die offensichtlisten genutzt werden sollen wie "grün=freie Fahrt" oder "rot=Hindernis". Praktisch dabei: Es wurden die PWM-Anschlüsse des Atmel-Boards genutzt, so dass hier auch verschiedene Helligkeiten möglich sind. An diesen Portbits waren früher einmal Servos angeschlosssen. Darum existiert auch noch jeglicher Code in der Software zur Ansteuerung, nur dass eben sich nicht Servos drehen, sondern LEDs heller oder dunkler werden.

Und so sieht das Ganze dann im Betrieb aus (hier leider nur Fotos, bei denen nur eine Seite beleuchtet ist):

      

Motor Fehlersuche Finale

Wie es aussieht, weisen die Motorcontrol-Boards einen Defekt auf. Hier wurde nun eines der Boards bereits gegen ein neues ausgetauscht. Und *tusch* hier das Ergebnis:

 

Motor Fehlersuche Teil 4 und 5

Im letzten Video zeigte sich, dass anscheinend immer 12 Volt bei den Motoren ankommen, zumindest per Messgerät gemessen. Nun erfolgt der gleiche Test erneut, also mit Betrachtung der Portbits über die 7-Segement-Anzeige (die offenbar immer okay sind). mit angeschlossenen Messgeräten aber zusätzlich mit angeschlossenen Motoren. Hier das Ergebnis:

Ofenbar verhält sich das Motorboard anders, wenn die Motoren anschlossen sind und schaltet die 12 Volt nicht immer / nicht mehr korrekt. Um nun noch als letzte Fehlerursache die Motoren auszuschließen, wurde als nächstes das Ganze noch einmal mit einem Motor im Austausch getestet – mit dem Scheibenwischermotor im Vordergrund:

Das Finale ist nah…

PS.: Leider war es im Video etwas dunkel und man erkennt die Spannungen auf den Messgeräten nicht wirklich. Sorry.

 

Motor Fehlersuche Teil 3

Als nächstes galt es festzustellen, ob vielleicht die 12 Volt nicht durch die Motorcontrol-Boards nicht korrekt „geschaltet“ werden. Dazu wurden nun je Motor ein Messgerät angeschlossen und parallel die Ports über die 7-Segement-Anzeige beobachtet. Aber seht selbst:

Das Ergebnis ist noch nicht wirklich erklärbar. Anscheinend funktionieren die Motorcontrol-Boards korrekt. Die Motoren an sich waren aber okay. Fortsetzung folgt…

Motor Fehlersuche Teil 2

Bei der weiteren Analyse wurde nun die 7-Segement-Anzeige zu Signalisierung der Portbits parallel zum Motorboard it den Motoren angeschlossen. Wie man sieht, werden die Bits korrekt gesetzt, aber trotzdem bleibt gelegentlich ein Motor stehen:

Fortsetzung folgt…

Meanwhile: Motor Fehlersuche 1

Wie bisher berichtet, trat in der Zwischenzeit immer noch das Problem auf, dass bei gleichzeitiger Ansteuerung aller vier Motoren (was natürlich immer der Fall ist, das es ja ein Allrad-Roboter ist) immer mal wieder eines der Räder sich nicht dreht. Das Phänomen stellte sich mit allen Motoren reproduzierbar aber immer an verschiedenen Rädern / Motoren und immer zu unterschiedlichen Zeitpunkten auf.

Um herauszufinden, ob die Bits auch richtig vom Microcontroller gesetzt werden, wurden kurzerhand zwei Sieben-Segement-Anzeigen „missbraucht“ um die verschiedenen Stati anzuzeigen. Dargestellt werden hier die vier PWM-Bits (oben und unten) sowie die zwei Bits pro Motor, also acht Segmente. Hier das Video zur Dokumentation dazu:

Wie man sieht, ist hier als erstes ein Fehler aufgezeigt, der bei der Umstellung auf die neuen seriellen Befehle kopiert wurde: Beim „vorwärts“ fahren, werden die gleichen Bits gesetzt wie beim „links“ fahren. Das wurde natürlich als erstes nach diesem Video beseitigt – zeigt aber auch wie praktisch eine einfache Analyse mit direkter Anzeigt mit einfachen LEDs hier schnell Ergebnisse bringt.

Hier noch mal die 7-Segment-Anzeige und die Bedeutung der Segmente im Detail:

 

Fortsetzung hier…

Austausch der Festplatte (HDD) gegen eine SSD – Vergleich der Bootzeiten im Video

Leider war die Festplatte auf dem Roboter kurz davor das zeitliche zu segnen – brachte sie doch in hohem Maße Fehlermeldungen. Da auf lange Sicht ohnehin geplant war, der Harddisk die hohen mechanischen Belastungen auf dem fahrenden Bot nicht zuzumuten, wurde diese nun gegen eine 2,5″ SSD namens „OCZ AGILITY 2“ ausgetauscht (Modell ACZSSD2-2AGTE60G). 60 GB sind für das Linux System mehr als ausreichend, so das dieses Größe gewählt wurde.

Interessant sind hierbei natürlich auch die nun extrem kürzeren Bootzeiten, der SSD. Um das einmal aufzuzeigen wurde ein kurzes Video gedreht, in dem das sehr schön zu erkennen ist:

Es handelt sich hierbei wohlgemerkt um ein Debian Squeeze out-of-the-box mit einigen zusätzlichen Programmen, mit einem Standard-Kernel