Worum es hier geht

Dieses Blog dokumentiert Fortschritte und Rückschläge der Entwicklung meines ersten Roboterprojektes. Ich habe dem Projekt den Namen vehikel[eins] gegeben - mit mehr oder weniger Hintersinn. Das Vehikel ist als fahrender Roboter konzipiert, der sich mittels einer Kamera visuell orientieren können soll. Die eigentliche Bildverarbeitung findet auf einem PC statt, der Roboter wird deshalb per Funk mit einem Computer in Verbindung stehen. Ich verkneife mir, allzu übermütige Pläne darüber zu schmieden, was im Detail mein Vehikel später visuell leisten können soll. Ich bin in erster Linie von der Idee eines Systems fasziniert, das mit Hilfe selbst gewonnener visueller Informationen in der realen Welt halbwegs sinnvoll agiert - mit der Welt interagiert. Alles noch etwas undurchsichtig? Ja... :)

Der aktuelle Stand

Ich habe das Projekt in drei Etappen aufgeteilt. Die erste Etappe bestand in der mechanischen Realisierung einer motorisierten Plattform für alle späteren Aufbauten. Diese Etappe wurde erfolgreich abgeschlossen. Daraus hervorgegangen ist ein dreirädriges Vehikel, dessen zwei Vorderräder unabhängig über ein Getriebe von jeweils einem Schrittmotor angetrieben werden. Das Hinterrad stellt sich passiv auf die aktuelle Bewegungsrichtung ein. In der zweiten Etappe des Projektes ging es darum, die Elektronik des Vehikels und der Basisstation zu entwickeln. Auch wenn ich noch an Details arbeite, ist diese Etappe in dem Sinne abgeschlossen, dass die gesteckten Ziele erreicht wurden. Der zentrale Mikrocontroller des Vehikels ist ein ATMEL AVR Mega32, die Firmware dafür entwickle ich mit der BASCOM IDE von MCS. Die Schrittmotoren werden durch eine Treiberelektronik auf Basis der Bausteine L297 und L298 angesteuert. Eine Funkverbindung zwischen Vehikel und PC wird mittels eines dazu entwickelten Interfaces hergestellt, das bidirektional mit dem PC über RS-232, mit dem Vehikel per Funk im 433 MHz Band kommuniziert. Die Funkstrecke wurde auf Grundlage der RFM12 Module von HopeRF realisiert. Vorne auf dem Vehikel ist eine mittels Servo bewegliche Funkkamera installiert. Die Kamera unterhält eine eigene Funkstrecke mit ihrem Empfängermodul, das mit PC-Interface und Netzteil die Basisstation bildet. Die am Vehikel befindliche Sensorik kann je nach konkretem Versuch variieren, zur Zeit ist vorne ein SRF05 Ultraschallmodul als Echolot installiert, an den Seiten vorne und hinten befinden sich Infrarot-Abstandssensoren. Die dritte Etappe ist diejenige, die für mich die unberechenbarste ist (aber deshalb auch besonders spannend), denn dabei steht die Implementierung eins visuellen Verhaltens im Mittelpunkt. Mittlerweile habe ich die ersten kleinen "Erfolge" in diesem Bereich zu verzeichnen.

Zum Aufbau dieser Seite


Unterhalb dieses Abschnittes sind die Tagebucheinträge chronologisch angeordnet, der aktuellste steht oben. Es werden nur die jeweils jüngsten acht Einträge auf dieser Seite angezeigt, ältere kann man an ihrem unteren Ende aufrufen. Man kann einen Eintrag kommentieren, in dem man auf "comments" unter dem entsprechenden Posting klickt.

Samstag, 22. September 2007

Ultraschall

Das Ultraschallmodul zur Abstandsmessung ist mittlerweile da, montiert, angeschlossen und in Funktion. Die mechanische und elektrische Integration war denkbar simpel. Ich verwende das SRF05 Modul von Devantech [link], in Deutschland vertrieben durch robotikhardware.de [link]. Die Fotos zeigen, wie ich das Modul angebaut habe: es ist auf eine Lochrasterplatine geschraubt, in die Platine sind rechts und links oben zwei Elemente einer doppelreihigen Buchsenleiste gelötet. Auf der Hauptplatine befinden sich als Gegenstücke entsprechend zwei gewinkelte Pfostenstecker. Über die Kontakte der einen Seite ist das Ultraschallmodul elektrisch mit der Hauptplatine verbunden. Da das Modul leicht und keinerlei mechanischen Belastungen ausgesetzt ist, ist dies eine praktikable Befestigung, ich kann das Modul somit einfach abziehen. Sollte ich doch mal den Akku wechseln wollen, wäre das von Vorteil, dieser ist nämlich (ohne Rumgeschraube) nur von vorne zugänglich. Wie ich das Antwortsignal des Moduls softwareseitig auswerte, wird man in Bälde dem Quellcode entnehmen können. Schonmal in Kürze: der Objektabstand wird von dem Ulstraschallmodul in der Länge eines Antwortpulses kodiert. Also löse ich bei jedem Flankenwechsel dieses Signals einen Interrupt aus, und messe mit Timer0 des AVR (ja, ist nur ein 8 Bit Timer, reicht aber an Genauigkeit für meine Zwecke) den Abstand zwischen den Interrupts (d. i. Flankenwechseln). Erfreulicherweise verhält sich das Modul einigermaßen linear, sodass ich die gemessene Zeit schlicht über einen (empirisch ermittelten) Faktor in den Abstand umrechnen kann. Das Ergebnis verschicke ich dann per Funk an die Basis. Funktioniert prima.

Keine Kommentare:

Malte Ahlers 2007-2008