Mein Roboter

Übersicht

  1. Allgemein
  2. Funktionen
  3. Bilder
  4. Software

Allgemein

Nachdem ich mich etwas in die Microprozessoren eingearbeitet hatte, wollte ich ein Ding bauen, was den armen Chip mal ein bisserl fordert. Im Internet habe ich schnell ein kleines Vorbild gefunden: Dizzy. Allerdings soll mein Roboter (natürlich) besser werden. Schliesslich hat sich die Technik schon ein bisserl weiterentwickelt.

Deshalb will ich noch zusätzlich eine Dockingstation machen, mit der der Roboter Daten über Infrarot austauscht. Diese wiederum ist an einen PC (oder Psion) über eine COM-Schnittstelle angebunden. Somit kann der Roboter vom Terminal aus programmiert werden. Dazu habe ich eine kleine Skriptsprache geschrieben.

Funktionen:

Ausstattung:

  • 2 Motoren, zum auf der Stelle wenden, vor- und rückwärtsfahrt möglich
  • 4 * 1,2V NiCd AAA(Micro) Zellen zur Stromversorgung.
  • Sensorik:
    • Lichtsensor (aus Polaroidkamera: Erfasst normales Tageslicht)
    • Radar (ebenfalls aus Polaroidkamera. Für Abstände von 50cm bis einige Meter)
    • Infrarotsensor + Infrarotsendediode. Zur nahen Abstandsbestimmung und zum auffinden der Ladestation, sowie zur Übertragung der Infrarot-Daten
    • 2 Wegsensoren an den Rädern (aus alter Maus). Damit kann man punktgenau fahren
    • Spannungsüberwachung. Zum feststellen des Ladezustandes
    • Spannungsüberwachung der vorderen Metallleiste
  • Funktionen:
    • "geht" bei Dunkelheit schlafen.
    • bemerkt Hunger und lädt sich wieder auf, Ladeelektronik
    • flieht, wenn man ihn anschubst
    • kann über IR-Fernbedienung gesteuert werden
    • lässt sich von einem Terminalprogramm über die Ladestation programmieren, dass er kleine Skripte abarbeitet
    • evtl.: Kann IR-Fernbedienungen aufnehmen und wiedergeben: Kann also z.B. den Fernseher konsequent ausschalten :)
    • evtl.: Misst den Raum aus, und berträgt die Daten zur Ladestation

Ausstattung Lade/Dockingstation:

  • IR-Diode zum Datentransfer und als "Leuchtturm"
  • IR-Empfängermodul zum Datenempfangen
  • Statuslampen: Zeigen Modus an, und ob gesendet wird.
  • Verbindung zum PC/Psion über COM-Schnittstelle, eingebautes Terminalproramm
  • Spannungsversorgung über 2* 3,6V LiION-Akkus aus altem Laptopakku
  • Strombegrenzungselektronik für Roboter

Bilder:

Dockingstation mit Roboter

Ein Bild von der Gesamtanordnung. Die hübsche Alufolienscheibe wird hoffentlich irgendwann ersetzt.
Die Deckel der Geräte sind übrigens eine alte Packung Röstzwiebeln, sowie eine "Frischhaltedose" (also ein Tupperverschnitt halt).

Dockingstation

Hier die Ladestation auf einem Testboard aufgebaut. Die Dinger sind unglaublich praktisch, vor allem, wenn man nicht mal einen Simulator benützt. übrigens sind die mit den vorgedruckten blau/roten Linien wirklich besser (und dreimal so teuer).

Roboter

Der Roboter.
Das Bild ist schon älter. Mittlweile sind noch weitere Bauelemente dazugekommen.
Ich versuche kurz das Zeugs darauf zu beschreiben:
Hinten links steht der Infrarot-Empfänger. Der kommt nachher natürlich noch woanders hin. Vorne links ist eine Röhre, in der der IR-Empfänger für die Lichtschranke steht. Daneben rechts die IR-Diode, dann der Helligkeitssensor. An IC's sieht man den ATMEL, und den Motortreiber. Das weiße sind DIP-Schalter für die Modis und um ihn auszuschalten, direkt dahinter ist noch ein Piezolautsprecher, der so nervtötend laut ist, dass ich ihn etwas gedämpft habe. Vorne sieht man gut den Kupferdrahtbügel, mit dem später der Strom aus der Ladstation geholt wird.

Roboteroffen

Hier der Roboter nochmal mit geöffnetem Gehäuse. Die kleine Extraplatine kommt direkt aus der Polaroidkamera mit dem Sonar.

Roboter von vorne

Und weil's so schön ist gleich nochmal von vorne. Die zwei Löcher sind für die Sendediode und die Fotodiode für das IR. Das normale Umgebungslicht sowie die IR-Daten kommen durch das Plastik durch.

Roboter von unten Hier das Ding von unten. In der Mitte die Batterien, direkt daneben die Wegaufnehmer und dann die Kugellager, weil die Wegaufnehmer nicht wirklich stabil sind. Dann sieht man noch die Motoren (aus CD-Roms) und den Kupferbügel, der die Masse zur Ladestation bildet. Neuerdings hat er vorne auch noch einen Stahlbügel, damit er nicht immer umkippt.
Roboterplatinenunterseite

Hier die Unterseite der Platine. Ich habe zwar prinzipiell nichts gegen das selberätzen von Platinen, aber ich weiß genau, dass ich keine 28 Löcher so in Reihe bohren kann, dass der Chip nachher noch reinpasst. Deshalb habe ich mich für Lochrasterplatinen entschieden. Natürlich mit dem Nachteil, dass das ganze krass unübersichtlich wird - Aber solange es funktioniert, bin ich glücklich damit.
Übrigens: Der Kupferdraht ist natürlich nicht unisoliert. Der Lack verbrennt automatisch beim Löten zu giftigen Dämpfen :) Immerhin hatte ich bis jetzt trotz excessiven quetschen, drücken, rumwerfen ... noch keinen einzigen Kurzschluss.

Dockingstation

Dies ist die geöffnete Ladestation. Das blaue sind die Laptopakkus, die sonst drauf liegen. Das tolle Silberdingens unten drin ist zum besseren reflektieren der IR-Strahlung und eigentlich wirkungslos. Übrigens ist es aus einer Rettungsdecke gemacht.

Psion mit Bild vom Programm

Das Terminalprogramm kann wie schon gesagt auch auf einem Psion oder sonstwas mit serieller Schnittstelle laufen. Leider hat der Psion einen so kleinen Anschluss unten, dass ich ihn lieber über seine Dockingstation angeschlossen habe.


Und hier die Schaltpläne der Dinger. Bei Klick auf die Schaltpläne werden diese vergrößert.
Man beachte, dass ich dies als Student im 6.Semester gemacht habe - die Vorverstärker sind tw. so gebaut, weil ich wissen wollte was passiert wenn...--nicht weil ich verstanden hätte was wirklich passiert.

Software

Die Software von dem Roboter hat mich vermutlich genauso viel Zeit gekostet, wie die Hardware. Ich will sie also niemand vorenhalten, wobei der Witz natürlich darin besteht, selbst die ganzen Fallen der Programmierung zu finden. Ich habe alles auf englisch dokumentiert, weil es dann wenigstens ein paar mehr Leuten helfen kann.

Der Quellcode ist mit doxygen dokumentiert. Ein sehr praktisches Utility, das einfach eine Doku aus dem Quelltext "kompiliert" und sie dann (unter anderem) als HTML-Dateien auf die Platte schreibt. Der Sourcecode ist also schön im Webbrowser betrachtbar.

Quellcode des Roboters: Ich habe relativ sauber programmiert (also im Vergleich zu früher), weil das Debuggen mit C ohne vernünftigen Debugger doch recht zeitraubend ist.

Quellcode der Station.

Wen es frustet alle Dateien einzeln anzuschauen kann sie hier natürlich auch komplett haben.

Ach ja: Wie AndiZ. schon festgestellt hat: Ich habe zu viel Zeit :)

Leo