Simpler Fahrroboter mit AVR

Page content

Im folgenden ist der Bau eines ganz simplen Fahrroboters beschrieben. Die Grundidee kommt von Ulrich Radigs Website.

Grundelemente sind:

  • AVR Board für die Steuerung
  • Zwei Servomotoren, die mittels “Servo Hacking” zu Getriebemotoren umgewandelt wurden.Dies ist z.B. unter http://www.electronicsplanet.ch/Roboter/Servo/hacking/dchack.htm detailliert beschrieben. Kostenpunkt einfache Servos 3-5 Euro pro Stück
  • Zwei Räder (z.B. von Conrad)
  • ein Tischtennisball
  • Getriebemotoransteuerung, z.B. mit L293.

Hardware

Die Grundplatte, die die Motoren, Platine etc. trägt wird aus einer Aluminiumplatte ausgesägt. Masse so wählen, dass die ganzen Bauteile auch auf die Grundplatte passen. Bei mir war 160x115mm passend.

Roboter, Grundplatte Roboter, ausgesägte Grundplatte

Die beiden Servomotoren haben Befestigungsbohrungen. Für diese passend können aus der Grundplatte Winkel herausgesägt werden. Danach können die Bohrungen passend ins Aluminium gebohrt werden.

Roboter, Motorbefestigungen Roboter, Grundplatte mit Motorbefestigungen

In obigem Foto sind die Servos bereits an der Grundplatte angeschraubt. Das Controllerboard ist ebenfalls mittels Abstandhalter befestigt. Die beiden vom Controller-Board abführenden Litzen sind RxD und TxD für die RS232-Steuerung.

Roboter, Drehen der Radgewinde Im Foto wird mittels eines Gewindebohrers ein M3-Gewinde in die Servoachse geschraubt. Um das Rad fest mit der Servomotorachse zu verbinden, ist eine Gegenmutter notwendig.

Rad mit M3-Schraube als Achse Die Räder müssen auf die Servoachsen geschraubt werden. Als Radachse können dann lange M3-Schrauben genommen werden.

Rad am Servo Im Bild ist das Rad am Servo angeschraubt und mit der Gegenmutter fixiert.

Tischtennisball als Radersatz Im vorderen Bereich wird der halbierte Tischtennisball mittig angeklebt.

Hier ist der Roboter fahrbereit. Ein Batteriehalter mit 4 Mignonakkus versorgt die Motoren mit Strom.

Die 9V Batterie versorgt das Controllerboard. Versuche mit einer gemeinsamen Batterie schlugen bei mir fehl, weil offensichtlich die Motoren die Spannung zu stark schwanken lassen. Der Controller wird dadurch öfter unabsichtlich resettet. Mit zwei getrennten Batterien funktioniert das ganze aber gut.

Das sichtbare schwarze Kabel beinhaltet die RxD und TxD-Leitung des AVR zu Fernsteuerung mittels Kabel. Ich habe ein etwa 5m langes Telefonkabel dafür zweckentfremdet. Die Lochrasterplatine enthält den Motorsteuerbaustein L293.

Software

Der Roboter wird über RS232 gesteuert. In einer simplen Schleife des Hauptprogramms werden User-Kommandos von RS232 gelesen. Diese werden in Motorsteuerkommandos umgesetzt. Die eigentliche Motorsteuerung erfolgt interruptgesteuert. Mit dem Interrupt wird eine Software PWM-Steuerung der Motoren realisiert. Jeder Motor ist (via L293) über drei Pins des AVR angeschlossen (Motor A, Motor B, Enable). Mittels der Beschaltung von A und B kann die Motorrichtung gesteuert werden. Mittels Modulation von Enable kann die Geschwindigkeit des Motors gesteuert werden. Der Interrupt wird 3000 Mal pro Sekunde aufgerufen.

Obwohl die Servos vom gleichen Hersteller und das gleiche Modell sind, laufen sie bei gleichen Eingangsdaten unterschiedlich schnell. Dies kann etwas durch die Ansteuerung ausgeglichen werden. Auf längeren Strecken wird der Roboter aber von selbst eine leichte Kurve fahren.