Robo3

Ein einfacher Roboter mit einem Mikrocontroller und zwei Schrittmotoren, mit denen der Roboter umherfahren kann. Um den Roboter mehr Einsatzmöglichkeiten zu geben, wurden zusätzlich verschiedene Erweiterungen angebracht. Der MCU hat hierfür 7 freie digitale I/O Ports zur Verfügung. Zwei Ports werden von zwei Status LEDs belegt, so dass 5 Pins übrig bleiben. Die Materialkosten betragen ohne Akkus knapp 20€.

Daten

  • 4 NIMH AA Akkus zur Stromversorgung
  • ATMEL AT90S2313 Mikrocontroller mit 2KB Programm Speicher
  • Zwei Schrittmotoren, ähnlich denen, die in alten 5 1/2 Zoll Diskettenlaufwerken verwendet wurden
  • Räder: Zwei Deckel von Marmeladengläsern, Deckel mit rauem Klebeband umklebt, um Rutschen auf dem Boden zu vermeiden.
  • zwei LEDs zur Statusanzeige

Erweiterungen

Infrarot Empfänger
Mit Hilfe eines angeschlossenem IR Empfängers kann der Roboter befehle entgegennehmen. Der Vorteil ist, dass jede beliebige IR Fernbedienung (z.B. die eines Fernsehers) zur Steuerung benutzt werden kann. Zum Empfang wurde ein TSOP1738 Empfänger Baustein verwendet. Um die Zuverlässigkeit zu erhöhen, wurde ein weiterer TSOP1736 Empfänger parallel geschaltet.
Funkempfänger
Ein recht günstiger Funk Empfänger (ca. 15€) ermöglicht es direkt per RS232 Daten an den Roboter zu senden. Da der AT90S2313 einen Hardware RS232 Port besitzt, wird keine aufwendige Programmierung zur Dekodierung der Daten benötigt. Die Daten lassen sich bequem mit einem PC senden. Leider verhinderten hier die Motoren einen zuverlässigen Empfang, so dass nur empfangen werden konnte, während die Motoren abgeschaltet waren.
Taster
Zwei einfache Mikroschalter vorne am Roboter angebracht, ermöglichen es dem Roboter Hindernisse links und rechts zu erkennen. Je nach Programmierung, kann der auf diese entsprechend reagieren. Die Taster lassen sich im Gegensatz zu den vorherigen Erweiterungen auch nicht durch die Motoren stören. Prinzipiell ließen sich auch noch einige Taster hinten und unten am Roboter befestigen um Treppen oder Hindernisse beim rückwärts Fahren zu erkennen.

Bilder

Downloads

Wie immer, Verwendung auf eigenes Risiko und ohne Gewähr.
robo3-schaltplan.png Der Schaltplan
robo3-ir-remote.bas Steuert den Roboter per Infrarot Signal. Mit etwas Übung lässt er sich mit jeder beliebigen TV/Videorecorder/Stereoanlagen Infrarot Fernbedienung steuern. Steuerung: Eine Fernbedienungstaste eine bestimmte Zeit drücken und dann loslassen, wählt die Fahrtrichtung aus. Danach wieder eine Taste drücken sorgt dafür, dass die Fahrtrichtung beibehalten wird, bis die Taste erneut losgelassen wird. Benötigt Infrarot Empfänger.
robo3-funk-remote.bas Gibt dem Roboter per Funkbefehl die Drehrichtung und Geschwindigkeit der Motoren vor. Es muss ein entsprechendes Byte z.B. mit dem PC dauerhaft gesendet werden (PC Programm muss selbst geschrieben werden). Leider gibt es hier dass Problem, dass die Motoren den Funkempfänger stören und so die Befehle nicht immer korrekt empfangen werden. Benötigt Funkempfänger.
robo3-kursfahr.bas Per Funkempfänger werden Daten empfangen, welcher Motor wie lange in welche Richtung drehen soll und diese Daten dann im EEPROM des Controllers gespeichert. Wird ein Taster berührt, wird dann die einprogrammierte Strecke abgefahren. Sollte während des Fahrens einer der Taster von einem Hindernis berührt werden, wird die Fahrt abgebrochen. Es können bis zu 60 Motor Bewegungen abgespeichert werden. PC Programm zum Senden der Streckendaten muss selbst geschrieben werden. Benötigt Taster und Funkempfänger.
robo3-wandvermeider.bas Der Roboter fährt herum und versucht Hindernissen auszuweichen. Benötigt Taster.
robo3-wand-folger1.bas Der Roboter fährt geradeaus, sobald er auf einer Seite ein Wand findet, versucht er dieser zu folgen. Benötigt Taster.
ircrt-02.c Steuerung des Roboters mittels des Infrarot LCD. Benötigt Infrarot Empfänger.
rc5-drive_final1.zip Steuerung des Roboters mit Hilfe einer gewöhnlichen Infrarot Fernbedienung, die die Signale im RC5 Format sendet. Zusätzlich kann der Weg aufgezeichnet und wieder abgefahren werden oder eine automatische Fahrt eingestellt werden, bei der der Roboter entweder eine Wand folgt oder sich von ihr fern hält. In gewisser Weise enthält die Software also teilweise die Funktionen von den obigen Dateien robo3-ir-remote.bas, robo3-kursfahr.bas robo3-wandvermeider.bas und robo3-wand-folger1.bas. Benötigt Infrarot Empfänger, RC5 kompatible Fernbedienung und für manche Funktionen die Taster.

Probleme

Es gibt Probleme mit der Spannungsversorgung, da der Verbrauch der Motoren die Spannung zu stark fallen lässt und so dem Empfang des IR- und Funk- empfängers stark behindert. Für den Abfall der Spannung sind weniger die Akkus, sondern größtenteils die schlechten Kontakte zwischen Batteriehalter und Akkus verantwortlich. Dickere Leitungen und ein besserer Batteriehalter dürfte hier Abhilfe schaffen. Die Holzstäbe im vierten Bild wurden durch Kabel ersetzt, da sich die starren Holzstäbe im vorletzten Programmierbeispiel zu leicht in der Wand verhakten.

Grenzen des Roboters

Zum einen schließen die starken Störungen der Motoren gewissen Erweiterungen aus. Zum anderem bietet der Roboter nur begrenzt Raum und Kraft um größere und schwerere Erweiterungen aufzunehmen. Auch fährt der Roboter nur auf ebenem Untergrund zuverlässig den vorgegebenen Kurs. Nicht zuletzt verhindern die 2KB Programmspeicher komplexere Programme und fehlende A/D Ports verhindern Beispielsweise einen einfachen Anschluss von Lichtsensoren.

Wie programmiere ich den Mikrocontroller?

Eine kurze Einleitung gibt es Hier.