ct-Bot: Aufbau beendet

Nachdem ich eine Weile auf einen Ersatz für den defekten Liniensensor warten musste, konnte ich ihn vor einiger Zeit endlich ausgetauschen. Dazu habe ich mir eine Entlötsaugpumpe besorgt. Mit der ist es möglich flüssiges Lot aus den Lötstellen zu saugen. Genial, nicht wahr?

Die vier Lötstellen des Sensors waren jedoch trotzdem ziemlich schwer zu lösen und ich brauchte mehrere Anläufe. Nun ist der Austauschsensor eingelötet und funktioniert auf den ersten Blick wie er soll.

Die nächste Aufgabe stellte der Einbau der Maussensorplatine dar. Die Linse für den Maussensor sollte mit zwei Platinenstreifen an die Maussensorplatine gedrückt werden und mit zwei Schrauben befestigt werden. Dadurch hätte die Maussensorplatine jedoch um einige Millimeter höher unter dem Bot angebracht werden müssen. Im Vorfeld habe ich gelesen, dass das die Leistung des Maussensor negativ beeinträchtigt. Leicht nachvollziehbar, wenn eine optische Maus zum Vergleich herangezogen wird. Hält man sie einige Millimeter über der Unterlage, bewegt sich der Mauszeiger nur nur sprunghaft oder gar nicht.

Aus oben genanntem Grund habe ich nach Alternativen gesucht. Was ich im Haushalt finden konnte, war reißfestes Tape. Wie auf einem der Bilder zu erkennen ist, habe ich die Linse für den Maussensor mit diesem Tape anstatt der zwei Platinenstreifen befestigt. Dadurch konnte ich die Maussensorplatine um einige Millimeter tiefer unter dem Bot befestigen und hoffe im Ergebnis eine bessere Leistung zu erhalten.

Die zwei Sensorplatinen, an denen die Radsensoren und die Abgrundsensoren befestigt sind, wurden mit schwarzer Pappe zu den Aluträgern hin isoliert. Sie sollen Kurzschlüsse und damit auch verfälschte Werte der Sensoren vermeiden.

Nach dem Aufbau ist mir noch ein Fehler meinerseits aufgefallen. Das Batteriefach habe ich falsch verkabelt. Ein zweiter Versuch zeigte Wirkung und der Bot läuft jetzt auch mit Akkus.

P1010710.JPGP1010701.JPGP1010709.JPGP1010704.JPGP1010711.JPGP1010712.JPGP1010708.JPGP1010705.JPGP1010707.JPGP1010698.JPGP1010713.JPGP1010706.JPG

Was jetzt noch fehlt ist Zeit für den zweiten Teil: die Programmierung. Dazu muss aber zuerst einmal meine Abschlussarbeit für mein Studium fertig geschrieben sein.

ct-Bot: Testen und kleine Wartezeiten

Vor fast zwei Wochen habe ich den c’t-Bot das erste Mal komplett mit allen Teilen am Strom hängen gehabt und wie es sein sollte, drehten sich beide Räder in die entgegengesetzte Richtung. Gleich darauf habe ich die Sensoren überprüft. Zuerst ganz primitiv mit der Kamera. Die meisten Sensoren geben Infrarotlicht ab, was das menschliche Auge nicht, jedoch eine Digitalkamera sehen kann. Dabei ist mir bei einem Liniensensor (CNY70) eine Fehlfunktion aufgefallen. Die verbaute LED leuchtete nicht und auch mein Multimeter zeigte mir im Vergleich zum danebenliegenden zweiten Liniensensor sehr merkwürdige Werte an.

Weiterhin habe ich verschiedene Testprogramme auf den Bot überspielt, welche die einzelnen Sensoren überprüfen und die Ergebnisse über die auf der Hauptplatine verbauten LEDs bzw. ein Display ausgibt, wenn man denn eines hat. Dabei sind auch merkwürdige Erscheinungen zu Tage getreten, was den oben genannten Sensor angeht. Nach einem Tag voller Testen hatte ich erstmal genug vom Bot. Vor allem hat es auch eine ganze Weile gedauert bis ich den Programmieradapter soweit hatte, dass er die Testprogramme auf den Bot übertragen hatte. Zunächst habe ich es mit den Programmen von Atmel versucht. Das AVR Studio musste ich sogar in der neuen Version runterladen, da man den USB Treiber für den Programmieradapter nicht einzeln bekommt. Nein, man muss sich anmelden und ein knapp 100MB großes File runterladen, wenn man sich mit der älteren Version auf der mitgelieferten DVD nicht zufrieden gibt so wie ich. Das nenne ich benutzerfreundlich. Außerdem musste ich dann feststellen, dass dieses Programm für ein kurzes Überspielen zu groß und aufwändig ist. Das Flashen ist eher eine nette Dreingabe.
Schließlich habe ich mich doch für eine Kommandozeilenapplikation entschieden: avrdude. Da ich keine Lust auf Kompilieren hatte, musste ich mir wiederum WinAVR besorgen, denn avrdude ist dort integriert.

Wie oben erwähnt, liefert Atmel mit dem AVR Studio seinen eigenen USB Treiber für den Programmieradapter mit. Um avrdude benutzen zu können, ist jedoch libusb nötig. Beide Treiber gleichzeitig installiert zu haben, ist keine gute Idee. Sie stören sich anscheinend erheblich. So kam es auch, dass ich noch einige Neustarts über mich ergehen lassen musste. Zeitweise erkannte ein Testprogramm den Adapter am USB Port, jedoch konnte avrdude ihn nicht finden.

Zunächst müssen auf dem ATmega32 die Fuse Bits gesetzt werden. Das ist nötig um im Controller bestimmte Einstellungen zu setzen. Im schlimmsten Fall könnte der Controller nach Überspielen eines Programms nicht mehr reagieren. Mit avrdude werden die Fuse Bits mit dem Programmieradapter (AVR ISP mkII) wie folgt gesetzt:

avrdude -c avrispmkII -P usb -p m32 -U lfuse:w:0xFF:m -U hfuse:w:0xD1:m -v

Hier werden das low fuse und high fuse Byte entsprechend gesetzt. Danach können Programme mit diesem Befehl übertragen werden:

avrdude -c avrispmkII -P usb -p m32 -U flash:w:"<dateiname>.hex":i

Hier wird also die Datei <dateiname>.hex in den Flashspeicher geschrieben. Das :i gibt an, dass es sich um eine Datei im Intel Hex Format handelt.

Seitdem habe ich den Bot erstmal wieder zusammengepackt und mich bei Segor gemeldet wegen meinem defekten Liniensensor. Mir wurde sofort geantwortet und nach Auschließen eines Fehleinbaus wird mir nun ein Ersatz zugeschickt. Sehr schön Segor! :)

Links:

ct-Bot: Kabel schnippeln - Fortsetzung

Im letzten Beitrag hatte ich schon erwähnt, dass alle mitgelieferten Kabel zu lang waren. Das hat sich heute geändert, denn ich habe mich der überaus spannenden Aufgabe gestellt die Kabel auf Länge zu schneiden und an die richtigen Stellen zu löten. Dabei haben mir AC/DC, Metallica und die Hosen Gesellschaft geboten.

Die zwei Sensorplatinen und die Mausplatine wurde mit je einem Kabelstrang bestehend aus zehn Adern bestückt. Dabei wird das schwarze Kabel an Pin eins auf der Platine angelötet. Alle weiteren Kabel sollen laut c’t in “einer üblichen Zählweise - im Zick Zack” (Kabelbaum) verlötet werden. Ich hatte natürlich nicht wirklich eine Ahnung, was damit gemeint ist, höchstens eine Vermutung. Glücklicherweise wird es im Wiki von ctbot.de (Die Verkabelung des Bot) besser und bebildert erklärt. Damit war es nur eine Frage der Zeit, bis ich die drei Platinen mit Kabeln versorgt hatte. Das Prinzip war immer das selbe.
Beide Motoren werden durch je einen Kabelstrang mit zwei Kabeln angeschlossen. Hierbei wird das braune Kabel mit dem Pluspol verbunden.
Am Schluss musste noch das Batteriefach, bestehend aus einem Segment für drei Batterien und einem für zwei, verklebt und verlötet werden. Die fünf Batterien sollen später in Reihe hängen. Deshalb verbindet man den Pluspol des einen Segments mit dem Minuspol des anderen. Das habe ich mit einem kleinen Stück Kabel gemacht anstatt die vorhandenen Lötlaschen direkt zu nutzen. Das soll zuverlässiger funktionieren. Anschließend musste nur noch das braune Kabel des Kabelstrangs mit dem Pluspol eines Segments und das schwarze Kabel mit dem Minuspol des anderen Segments verbunden werden.

Im Großen und Ganzen war es das (nun wirklich) mit Lötarbeiten, wenn denn im Anschluss alles funktioniert. Was jetzt noch folgt, ist der komplette Aufbau und das anschließende Hoffen, dass alles wie gewünscht läuft. Morgen mehr.

batteriefach.jpgkabel_sensorplatine_geloetet_1.jpgkabel_mausplatine_geloetet_2.jpgkabel_sensorplatine_geloetet_3.jpgmotor_ngeloetet.jpgkabel_mausplatine_geloetet_1.jpgkabel.jpgkabel_sensorplatine_geloetet_2.jpgmotor_geloetet.jpgkabel_sensorplatine_leer.jpg

ct-Bot: Aufbau der Mechanik

Die Lötarbeiten hatte ich ja schon zum großen Teil beendet. Gestern ging es ein wenig ans Basteln: die Mechanik musste aufgebaut werden.
Zur Mechanik des Bots gehören zwei Räder und deren Motoren, zwei Encoderscheiben, mit denen je ein Optokoppler feststellen kann ob, in welche Richtung und wie weit der Bot gefahren ist, zwei Motorenflansche, an denen die Motoren montiert werden, die Grundplatte, einen Gleitfuß und drei Träger.
Zunächst habe ich die Motoren mit je drei Schrauben an den Motorenflanschen befestigt und anschließend die Gummis auf die Räder gezogen. Danach können die Räder über die Motorwelle geschoben und mit einer Nabenschraube befestigt werden. Beim ersten Mal habe ich natürlich glatt vergessen die Encoderscheiben auf die Rückseiten der Räder zu kleben und durfte die Räder nochmal von den Motorwellen ziehen. Das war bei einem Rad gar nicht so einfach, weil es sich nicht von der Motorwelle lösen ließ.
Den Gleitfuß schraubt man von unten an die Grundplatte. Der Roboter wird später von den Rädern “gezogen” und sein Hinter schleift eben auf diesem Gleitfuß. Anschließend müssen die Motorenflansche mit den daran befestigten Rädern mit je zwei Schrauben an der Grundplatte befestigt werden. Zu guter letzt werden die Träger von unten mit der Grundplatte verbunden. Dabei muss man darauf achten, dass man sie in der richtigen Richtung befestigt, weil die Sensorplatinen und zwei Abstandssensoren daran befestigt werden. Oben auf die Träger kommt später die Hauptplatine. Danach konnte mein Bot schon einmal manuell, von der Hand getrieben, einige Runden drehen. ;)

Da ich nicht darauf warten wollte, dass ich eventuell eine Entlötpumpe von irgendwoher bekomme und hier in der Nähe leider auch kein Elektronikfachgeschäft ist (komischerweise nur Baumärkte), habe ich mich dazu entschlossen einen kleinen Fehler, den ich an der rechten Sensorplatine begangen habe, nur mit dem Lötkoben bewaffnet “auszulöten”. Ich habe die Infrarot LED angewinkelt angelötet, was auf diesem Bild der c’t so erscheint. Meine rechte Sensorplatine sah so aus. Als ich die Platine probehalber zwischen Träger und Rad liegen hatte, wurde mir schnell klar, dass ich da wohl Mist gebaut hatte. Auch Fotos von anderen Botbauern bestätigten mir das. Also habe ich mich eine halbe Stunde mit dieser LED beschäftigt, habe es letztenendes geschafft sie richtig anzubringen und hoffe nun inständig, dass sie noch funktionsfähig ist.

Leider sind die mitgelieferten Kabel nicht auf den Bot zugeschnitten und allesamt zu lang. Das hieß Kabel abschneiden, Hüllen am Ende entfernen und wieder verzinnen. Gestern hatte ich nicht mehr viel Lust dazu und habe nur die beiden Sensorplatinen mit einem Teil der Kabel bestückt. Dabei musste man ziemlich aufpassen, weil diese Kabel die Abstandssensoren mit den Sensorplatinen verbinden und die Abstandssensoren zueinander seitenverkehrt an die Träger angebaut werden. Das bedeutet also, dass auch seitenverkehrt gelötet werden musste. Was ich meine, wird sicher in späteren Fotos klar, wenn der Bot aufgebaut ist.

grundplatte_raeder_seite.jpgsensorpatinen_kabel1.jpgraeder_o_enc_scheiben.jpgmechanikteile.jpgraeder_m_enc_scheiben.jpgmotoren_flansche_raeder.jpggrundplatte_unten.jpgsensorplatine_rechts.jpggrundplatte_raeder_vorne.jpgmotoren_flansche.jpggrundplatte_besetzt.jpggrundplatte_raeder_hinten.jpggrundplatte_oben.jpg

Kurzes Zwischenfazit: Der Aufbau macht wirklich Spaß. Was aber sehr nervt und viel Zeit kostet, ist die teilweise lückenhafte und auch schlechte Dokumentation seitens der c’t. Manchmal ist einfach kein Roter Faden zu erkennen und mehr Fotos vom Aufbau wären wünschenswert gewesen. Ohne viele andere Quellen mit wirklich guten Fotos von ambitionierten Botbauern wäre ich bis jetzt wohl oft gescheitert und hätte bestimmt mehr als nur eine LED falsch angebracht.

ct-Bot: Grobe Lötarbeiten beendet

Nachdem ich mich vor zwei Tagen an die drei kleinen Platinen gemacht habe, bin ich kurzer Hand zur wesentlich komplexeren Hauptplatine übergegangen.
Beim Besetzen der Platine hat es sich als vorteilhaft erwiesen mit den kleinen Komponenten zu beginnen. Das habe ich auch gemacht. Deswegen waren die ersten Teile, die von mir aufgelötet worden sind einige kleine Kondensatoren und Dioden. Bis auf einen Optokoppler wird die Platine auf der Teileseite bestückt. Der Optokoppler muss auf die Lötseite der Platine, da er später als Klappensensor prüft, ob die Klappe des Transportfachs offen oder geschlossen ist und nach unten zeigt. Erst danach habe ich die Sockel eingelötet, auf die später die ICs gesetzt werden. Übrigens sehr praktisch, wenn mal einer kaputt geht, dann muss man nicht erst zum Lötkolben greifen und die zig Beinchen wieder frei machen. Über dem oben erwähnten Optokoppler wird auch ein Sockel eingesetzt. Deswegen muss der Optokoppler auch unbedingt vor diesem eingesetzt werden! Dann kamen noch ein Quarz und eine Spule, die übrigens wie ein dickerer Widerstand aussieht (noch nie gesehen), rauf.
Zwischendurch habe ich schon gemerkt, dass meine Augen angefangen haben zu brennen. Der Rauch vom Löten stieg mir ins Gesicht. Ich habe mich an mein erstes (Studien-) Praktikum erinnert. Dort hatte jeder Arbeitsplatz einen Lüfter, der den Rauch abgesogen hat. Sehr komfortabel. Als erstes fiel mir ein kleiner Handventilator ein, den ich noch hatte und mit zwei Gummibändern an einer Pappschachtel befestigt habe. Sehr spartanisch und vor allem laut und klapprig. Mein zweiter Versuch endete damit, dass ich einen alten PC Gehäuselüfter nahm und ein kleines Netzteil, dass ich noch in den Kisten meiner alten, ferngesteuerten Autos rumliegen hatte, benutzte um ihn anzutreiben. Dabei blieb ich auch und hatte von da an keine brennenden Augen mehr. :)
Das war mein Montag.

hauptplatine_dioden_kond.jpghauptplatine_sockel.jpghauptplatine_rueckseite.jpglueftung2.jpghauptplatine_leer.jpglueftung1.jpg

Am Dienstag folgten die restlichen Teile. Das waren eine Menge Widerstände, Transistoren (drei Beine sind manchmal ziemlich fies), ein IR Empfänger und ein Spannungsregler, LEDs und zwei lichtempfindliche Widerstände (quasi die Augen des Roboters), Stiftleisten, Schalter und ein Potenziometer, der den Displaykontrast regelt, wenn ich mir denn mal ein Display besorge. Im Großen und Ganzen also nichts besonders spannendes, trotzdem eine Menge Arbeit, die mich bestimmt weitere vier Stunden gekostet hat. Ich will ihn ja hübsch machen.

hauptplatine_arbeitsplatz.jpghauptplatine_fertig_hinten.jpghauptplatine_fertig_vorne.jpg

Nachdem die Hauptplatine voll besetzt war, habe ich gestern Nacht noch einen Spannungstest gemacht. Dazu habe ich ein Gleichspannungsetzteil mit sechs Volt an die Strombuchse gehangen, den Schalter SW2 (der große rote) nach rechts gelegt (linke Stellung wäre Stromeingang vom Akkupack) und an der Leiste J3 (links neben dem Taster) die Spannung gemessen. Zwischen den Pins eins und drei sollten dabei fünf Volt anliegen, zwischen den Pins zwei und drei die Eingangsspannung. Mein Voltmeter zeigte mir die richtigen Spannungen an. Ich war zufrieden und ging ins Bett.

Links: