Während in der Technik fast ausschließlich Räder zur Fortbewegung eingesetzt werden, so bewegen sich in
der Natur viele Landtiere mit mindestens zwei Beinen. Der Grund dafür liegt auf der Hand: Beine lassen sich
flexibel an die Umgebung anpassen und versagen auch in unebenem Gelände nicht.
Die Steuerung des komplexen Laufapparates verläuft – wie auch beim Menschen – nahezu unbewusst. Zur Ko-
ordination der Beine und Orientierung im Gelände stehen Tieren dabei eine Vielzahl hoch entwickelter Sinne
zur Verfügung. Gerade diese Sinne und die nachfolgende Interpretation lassen sich in der Technik jedoch nur
schwer nachbilden. Daraus ergibt sich zwangsläufig ein Defizit in der Fähigkeit zur Orientierung und Bewe-
gungssteuerung einer künstlichen Laufmaschine.
Ich bin davon überzeugt, dass man längerfristig das Problem der Umwelterfassung und -interpretation bei Ro-
botern lösen wird. Daraus werden sich dann gänzlich neue Anwendungsgebiete für Roboter eröffnen, da es
nicht mehr notwendig ist, die gesamte Umgebung des Roboters fest einzuprogrammieren.
Zu Beginn der Entwicklung neuer “Sinne” für einen Laufroboter muss zunächst eine Basis geschaffen werden,
auf die dann neue Sensoren und Software aufbauen können. Einen solchen grundlegenden Roboteraufbau habe
ich als Projekt entwickelt und in dieser Arbeit dokumentiert. Der Gedanke einer flexiblen Plattform, die sich in
jeder Hinsicht gut erweitern lässt, ist durch die gesamte Arbeit hindurch zu finden.
Neben dem Hauptziel, eine Plattform zu entwickeln, soll mit dieser Arbeit auch die generelle Machbarkeit eines
solchen komplexen Projektes überprüft werden. Die zu bestätigende These ist also, wie gut – bei vorausgesetz-
ten, begrenzten zeitlichen und materiellen Ressourcen – ein solcher Roboter entwickelt werden kann.
Inhaltsverzeichnis
1 Einleitung
2 Konzept
3 Mechanik
3.1 Entwicklungsziele
3.2 Ablauf der Planung
3.2.1 Verwendete CAD-Entwicklungswerkzeuge
3.2.2 Auswahl der Antriebsart
3.2.3 Auswahl der verwendeten Materialien . .
3.2.4 Befestigung der Servos
3.2.5 Konstruktion des ersten Beinabschnittes .
3.2.6 Konstruktion des zweiten Beinabschnittes
3.2.7 Konstruktion des Fußabschnitts
3.2.8 Konstruktion des Fußes
3.2.9 Konstruktion des Körpers
3.3 Erster Prototyp
3.3.1 Änderungen
3.4 Ablauf des Baus
3.4.1 Nachbearbeitung der Aluminiumteile . .
3.4.2 Füße
4 Elektronik
4.1 Allgemeine Entwicklungsziele
4.2 Überblick
4.3 Mainboard
4.3.1 WLAN
4.4 Servoboard
4.4.1 Beschaltung der Sensoren an den Beinen
4.5 Powerboard
4.6 Grundlagen der Platinenlayouts
5 Software
5.1 Positionierung der Servos
5.2 Bewegungsinterpreter
5.3 Protokolle
5.3.1 Protokoll des Hauptcontrollers
5.3.2 Protokoll des Servocontrollers
5.4 Überblick
5.4.1 Hauptcontroller-Software .
5.4.2 PC-Software
6 Fazit
6.1 Abschließende Bewertung
6.2 Ausblick
7 Verzeichnisse
Literaturverzeichnis
Tabellenverzeichnis
Abbildungsverzeichnis
Glossar
A Bilder
B Abbildungen und Materialien
B.1 Mechanik
B.2 Elektronik
B.3 Software
1 Einleitung
Während in der Technik fast ausschließlich Räder zur Fortbewegung eingesetzt werden, so bewegen sich in der Natur viele Landtiere mit mindestens zwei Beinen. Der Grund dafür liegt auf der Hand: Beine lassen sich flexibel an die Umgebung anpassen und versagen auch in unebenem Gelände nicht. Die Steuerung des komplexen Laufapparates verläuft - wie auch beim Menschen - nahezu unbewusst. Zur Koordination der Beine und Orientierung im Gelände stehen Tieren dabei eine Vielzahl hoch entwickelter Sinne zur Verfügung. Gerade diese Sinne und die nachfolgende Interpretation lassen sich in der Technik jedoch nur schwer nachbilden. Daraus ergibt sich zwangsläufig ein Defizit in der Fähigkeit zur Orientierung und Bewegungssteuerung einer künstlichen Laufmaschine.
Ich bin davon überzeugt, dass man längerfristig das Problem der Umwelterfassung und -interpretation bei Robotern lösen wird. Daraus werden sich dann gänzlich neue Anwendungsgebiete für Roboter eröffnen, da es nicht mehr notwendig ist, die gesamte Umgebung des Roboters fest einzuprogrammieren. Zu Beginn der Entwicklung neuer “Sinne” für einen Laufroboter muss zunächst eine Basis geschaffen werden, auf die dann neue Sensoren und Software aufbauen können. Einen solchen grundlegenden Roboteraufbau habe ich als Projekt entwickelt und in dieser Arbeit dokumentiert. Der Gedanke einer flexiblen Plattform, die sich in jeder Hinsicht gut erweitern lässt, ist durch die gesamte Arbeit hindurch zu finden.
Neben dem Hauptziel, eine Plattform zu entwickeln, soll mit dieser Arbeit auch die generelle Machbarkeit eines solchen komplexen Projektes überprüft werden. Die zu bestätigende These ist also, wie gut - bei vorausgesetz- ten, begrenzten zeitlichen und materiellen Ressourcen - ein solcher Roboter entwickelt werden kann. Die Arbeit geht zunächst in Kapitel 2 auf die zugrunde liegende Konzeption des Roboters ein. In den folgen- den drei Kapiteln wird der Roboter, aufgeteilt in die Teile Mechanik (Kapitel 3), Elektronik (Kapitel 4) und Software (Kapitel 5) näher beschrieben. Während in den Kapiteln über die Elektronik und Software nur der aktuelle Entwicklungsstand beschrieben wird, so geht Kapitel 3 exemplarisch genauer auf die eigentliche Ent- wicklung der Mechanik ein. In Kapitel 6 wird die Arbeit im Sinne der einleitend gesetzten Ziele bewertet und anschließend auf das mögliche Vorgehen in der weiteren Entwicklung des Roboters eingegangen.
2 Konzept
Der entwickelte Laufroboter besitzt aufgrund der stabileren Schwerpunktlage des Roboters beim Laufen1 sechs Beine. Die Anordnung der Beine ähnelt dabei der eines Käfers, da an jeder Seite des Roboterkörpers drei Beine angebracht sind.2
Jedes der Beine ist an drei Drehachsen beweglich gelagert und kann an diesen Stellen von je einem Motor bewegt werden. Der Vorteil der Verwendung von drei statt zwei Drehachsen (oder Freiheitsgraden) pro Bein besteht darin, dass das Bein in beliebiger Höhe immer senkrecht aufgesetzt werden kann und zudem der Roboter seitlich laufen kann.
Der erste, direkt am Servo befestigte Motor dreht das gesamte Bein vor und zurück, während der zweite und dritte Motor die Höhe des Beins verändern können. An den ersten Motor ist der erste Beinabschnitt angeschlossen, der die ersten beiden Motoren verbindet. Der zweite Beinabschnitt verbindet wiederum die zweite und dritte Drehachse, wobei der letzte Motor am dritten Beinabschnitt befestigt ist und mit dem Fuß endet.3 Die Bewegung jedes Motors kann über einen eigenen Sensor überwacht werden.4
Um die Bewegungen der Motoren so zu koordinieren, dass eine Laufbewegung entsteht, ist eine Mikrocontroller- und damit Software-basierte Ansteuerung notwendig. Da die 18 Motoren des Roboters alle gleichzeitig ange- steuert werden müssen, empfiehlt es sich, die Elektronik und Software des Roboters dezentral aufzubauen. Das bedeutet, mehrere vernetzte Mikrocontroller einzusetzen, die in der Lage sind, bestimmte Funktionen selbst- ständig auszuführen und somit die nächst höhere Hierarchieebene zu entlasten. Zur Kontrolle zweier Beine verwende ich immer eine eigene Mikrocontroller-Schaltung (Servocontroller) für die Ansteuerung der Moto- ren und die Auswertung der Sensoren.5
Besonders in Hinblick auf die Rechenleistung, die für eine spätere Auswertung von Sensordaten und darauf aufsetzende Navigation benötigt wird, ist schnell ersichtlich, dass Rechenkapazität außerhalb des Roboters in Form von herkömmlichen PCs verwendbar sein muss. Die Verbindung aller an der Steuerung beteiligten Komponenten übernimmt dabei der zentral positionierte Hauptcontroller.6 Er koordiniert den gesamten Datenverkehr und wird später auch für eine Weiterleitung der zur Navigation dienenden Sensordaten sorgen. Um Hauptcontroller und auf dem PC laufende Software ständig abgleichen zu können und zur selben Zeit die Mobilität nicht durch ein Kabel zu verlieren, ist eine Funkverbindung notwendig.7 Die Hierarchie der an der Steuerung des Roboters beteiligten Komponenten ist in Abbildung 6 graphisch dargestellt.
Das verwendete Konzept zur Steuerung des Roboters ist zwar um einiges komplexer als eine Steuerung durch einen zentralen Steuercomputer. Besonders im Hinblick auf eine spätere Erweiterung des Roboters ist die Ver- wendung hierarchisch organisierter, spezialisierter Mikrocontroller jedoch von großem Vorteil, da Erweiterun- gen nur Änderungen an wenigen Teile erfordern und sich so die oberen Ebenen der Hierarchie leicht ersetzen lassen.
3 Mechanik
3.1 Entwicklungsziele
Die Mechanik ist die Basis aller in den folgenden Kapiteln beschriebener Elemente des Roboters. Zu Beginn der Entwicklung der Mechanik gab ich mir einige nachfolgend beschriebene Ziele vor. Wichtig bei der Entwicklung der Mechanik war mir eine hohe Funktionalität bei gleichzeitig einfach gehal- tener Konstruktion. Wichtigster Bewertungsfaktor für die Konstruktion war das Gewicht, denn die Mechanik inklusive der Motoren machen einen beträchtlichen Teil des Gesamtgewichts des Roboters aus. Daher galt es, möglichst viel Gewicht durch eine geeignete Konstruktion und durch leichte Materialien einzusparen, denn der gesamte Roboterkörper muss von den Motoren gehalten werden. Ein hohes Gewicht zieht also auf jeden Fall die Verwendung stärkerer Motoren nach sich, die dann wiederum das Gewicht sowie die Kosten erhöhen. Während der Konstruktionsphase musste daher immer die Waage zwischen Gewicht, Motorkraft und auch den Kosten gehalten werden.
Damit das Drehmoment der Motoren nur geringfügig durch Reibung an den Lagern vermindert wird, sollten die Gelenke des Roboters gut gelagert werden. In diesem Zusammenhang muss auch die Länge der Beine günstig gewählt werden, da jeder Beinabschnitt einen Hebel am Motor darstellt und so die Hebekraft der Beine bestimmt. Andererseits läuft ein Roboter mit längeren Beinen schneller. Ein Kompromiss zwischen der Hebekraft des Beins sowie der Laufgeschwindigkeit musste daher gefunden werden.
Nicht zu vergessen ist auch eine für den Laufbetrieb ausreichende Stabilität der Gesamtkonstruktion. Auf der anderen Seite sollte die Konstruktion einfach gehalten werden, um die Kosten durch die Verwendung ausgefallener Materialien und komplizierter Materialbearbeitungsverfahren nicht in die Höhe zu treiben.
3.2 Ablauf der Planung
3.2.1 Verwendete CAD-Entwicklungswerkzeuge
Um den Roboter vor dem Bau vollständig planen zu können, bedurfte es einer dazu geeigneten CAD-Software, mit der das Modell auch im dreidimensionalen Raum entwickelt werden konnte. Für den gesamten Planungsvorgang der Robotermechanik verwendete ich die Software “Becker CAD/Caddy++”. Sie ist einfach zu bedienen und reicht für die Komplexität des Projekts aus. Für die Erstellung der Dokumentation importierte ich die Pläne in die Demoversion der Software “TurboCad 12”, da diese mit besseren Funktionen zur Erstellung hochauflösender Bilder ausgestattet ist.
3.2.2 Auswahl der Antriebsart
Bevor mit der eigentlichen Konstruktion begonnen werden konnte, musste der Roboter grob dimensioniert werden, angefangen bei den Beinen. An erster Stelle stand die Auswahl einer geeigneten Antriebsart, da diese
3 MECHANIK
zusammen mit der Beinlänge das maximale Gewicht und damit die Größe des Roboters bestimmt. Recht schnell konnte ich mich dabei für die im Modellbau verwendeten Stellmotoren, die sogenannten Servos, entscheiden. Diese bieten einige Vorteile gegenüber anderen Antrieben8. In der folgenden Auflistung sind die wichtigsten Vorteile der Modellbauservos zusammengestellt:
- kompakte Einheit, in der der eigentliche Motor, die Motoransteuerung sowie ein Getriebe intergriert sind
- einfache Ansteuerung über ein einfach zu erzeugendes PWM-Signal9
- hohe Stellkraft bei geringer Größe und Gewicht
- sehr gutes Preis-Leistungs-Verhältnis
Zur Berechnung des benötigten Haltedrehmoments in Abhängigkeit von Beinlänge und Gewicht bin ich davon ausgegangen, dass der Laufalgorithmus den Roboter zu jedem Zeitpunkt auf drei Beinen stehen lässt. Diese drei Beine müssen also das gesamte Gewicht des Roboters tragen können. Die Servos, die an den mittleren Beinabschnitt zu beiden Seiten anschließen, haben die größte Haltekraft aufzubringen. Daher ist die Länge des mittleren Beinabschnitts als der kritischste Parameter der Konstruktion anzusehen. Weiterhin bin ich davon ausgegangen, dass die Gewichtskraft des Roboters genau senkrecht auf den Hebel des zweiten Servos einwirkt. Aus diesen Vorgaben ließ sich eine einfache Formel entwickeln:
Abbildung in dieser Leseprobe nicht enthalten
Anhand dieser Formel konnte ich nun einen Servo auswählen und hatte dabei immer das jeweilige Maximal- gewicht der Roboterkonstruktion in Relation zur Beinlänge im Blick. Als minimale Haltekraft für den Servo habe ich einen Wert von 50N cm festgesetzt. Pro Servo wollte ich außerdem nicht mehr als 15 Euro ausge- ben, da ich für den gesamten Roboter insgesamt 18 Servos benötigte. Wichtig war mir zudem, dass die Servos kugelgelagert sind. Diese Vorgaben schränkten die Anzahl der verwendbaren Servotypen schon erheblich ein. Im Internet informierte ich mich nun über die in Frage kommenden Servos und entschied mich für den Typ C5077 von Graupner.10 Dieser Typ besitzt eine Stellkraft von 50N cm und eine um 10 bis 20 Prozent größere Haltekraft11. Zudem ist es einfach kugelgelagert und wiegt dabei 37g. Bei einer auf 6cm festgelegten Länge des zweiten Beinabschnitts ergibt sich dann eine maximale Masse von mmax ≥ 2, 5kg für den gesamten Roboter.
3.2.3 Auswahl der verwendeten Materialien
Um die in Abschnitt 3.1 dargestellten Entwicklungsziele erreichen zu können, beschränkte ich mich schon in einem frühen Stadium der Planung auf einige wenige, für die Konstruktion verwendete Materialien:
- Aluminiumplatten, 1, 5mm Stärke
- Kunststoffplatten, 4mm Stärke
- Quadratisches Aluminiumvierkantrohr12, Wandstärke 1, 5mm, Seitenlänge 23, 5mm
- Gewindestangen, Durchmesser 4mm, Verwendung vor allem als Drehachse und Verbindung zwischen zwei Platten.
3.2.4 Befestigung der Servos
Ein kleiner Nachteil der Modellbauservos ist, dass die Drehachse nur auf einer Seite des Gehäuses herausge- führt ist. Um jedoch eine einseitige Lagerung der Beine zu verhindern, musste die Servoachse auf der achsen- losen Seite des Servos verlängert werden. Diese Verlängerung der Servoachse sollte dabei so gestaltet werden, dass sich die Konstruktion für jeden der Roboter-Servos verwenden lässt. Als Ansatz für die Befestigung einer weiteren Achse am Servo wählte ich die Bodenplatte des Gehäuses, die mit vier langen Schrauben am Ser- vo befestigt ist. Die ursprüngliche Platte des Servos sollte durch eine dünne Metallplatte ersetzt und mit den Schrauben des Servos befestigt werden. Über die neue Platte kann dann der Servo befestigt und ein Drehlager angebracht werden. Die Abstände der vier für die Befestigung benötigten Bohrungen maß ich dabei an einem zuvor gekauften Beispiel-Servo.
Allerdings wird mit dem Entfernen der Bodenplatte und dem damit verbundenen Öffnen des Servos die Elek- tronik unisoliert freigelegt. Diese steht zudem stellenweise leicht über das Gehäuse heraus. Daher musste die Metallplatte einerseits zur Servoelektronik hin isoliert und andererseits genügend Freiraum für die überstehen- den Teile der Elektronik geschaffen werden. Die Isolation sollte durch eine zu diesem Zeitpunkt noch nicht näher bestimmte Plasikfolie zwischen Servo und Metallplatte erfolgen.13 Durch möglichst großflächige Aus- schnitte in der Metallplatte sollte Platz für die überstehenden Elektronikteile geschaffen werden.
Um den mit der ersetzten Metallplatte verschraubten Servo nun an anderen Teilen des Roboters befestigen zu können, musste die Metallplatte über die Abmessungen des Servos hinaus überstehen. Für die eigentliche Befestigung wurden dann zwei Löcher in den überstehenden Teilen der Metallplatte vorgesehen. Das Aussehen der Platte ist Abbildung 11a im Anhang auf Seite 47 zu entnehmbar.
Mit der Befestigung einer alternativen Bodenplatte am Servo war jedoch das Problem der Anbringung eines Lagers noch nicht gelöst. Wichtig war mir, dass auch für die Halterung des Kugellagers nur die am Anfang festgelegten Materialien14 verwendet werden. Das Kugellager selbst sollte über den Modellbauhandel bezogen werden, da dieser Kugellager in den benötigten Größen anbietet. Da die Kugellager selbst keinerlei Möglichkeit zur Verschraubung bieten, war es naheliegend, den Servo zwischen zwei Platten in einer geeigneten Bohrung zu fixieren. Günstig ist dabei der Umstand, dass die Stärke von 4mm einer Kunststoffplatte genau der Höhe eines üblichen Kugellagers entspricht. Das Kugellager lässt sich somit in eine geeignet große Bohrung in ei- ne Kunststoffplatte einpassen. Die genaue Position des Kugellagers wurde wieder durch Nachmessen an dem Beispiel-Servo ermittelt. Die Achse des Kugellagers muss dabei mit der des Servos eine Drehachse bilden. Die Form der als Halterung des Kugellagers verwendeten Kunststoffplatte ist im Anhang als Abbildung 11b zu finden.
Um das Kugellager in der Bohrung zu fixieren, war eine weitere Platte notwendig, die das Kugellager nach oben hin festhalten kann. Als Material für diese Platte wird auch Kunststoff verwendet. Für die Fixierung des Kugellagers auf der Seite des Servos kam die bereits vorhandene Platte aus Aluminium zum Einsatz. Da jedoch in dieser Platte großflächige Ausschnitte für die Servoelektronik vorgesehen waren, entschied ich mich dafür, die Auflage des Kugellagers als knapp bemessene Zunge zu gestalten, sodass weiterhin viel Fläche in der Aluminiumplatte ausgespart werden konnte.
Die für die Befestigung der alternativen Servo-Bodenplatte verwendeten Schrauben besitzen jedoch überstehende Schraubenköpfe. Für diese Schraubenköpfe mussten in der das Kugellager haltenden Kunststoffplatte daher noch vier Bohrungen angebracht werden.
Alle am Servo anzubringenden Platten für das Kugellager werden über die Befestigungslöcher der Bodenplatte aus Aluminium befestigt. Dafür werden Schrauben mit M3-Gewinde und Muttern in 3mm durchmessenden Bohrungen verwendet. Das so geschaffene zweite Lager am Servo kann nun eine 4mm durchmessende Gewindestange drehbar lagern.
3.2.5 Konstruktion des ersten Beinabschnittes
Nachdem ein Weg gefunden war, die Servos zu befestigen, konnte nun mit der Konstruktion des ersten Beinab- schnittes begonnen werden. Dieser sollte die ersten beiden Servos mit um 90 Grad gegeneinander verdrehten Drehachsen verbinden. Dazu eignete sich am besten ein quadratisches Vierkantrohr (Breite: 23, 5mm), in das die Servos eingebettet werden konnten. Im Sortiment der Firma Alfer befindet sich ein solches Vierkantrohr aus Aluminium, dessen innere Kantenlänge nur wenig größer ist als die Breite der verwendeten Servos.15 Daher war es naheliegend, das Alurohr mit einem Ausschnitt zu versehen, in den dann die Servos eingebaut werden. Der Servo kann dann über seine ersetzte Bodenplatte am Aluminiumträgerrohr befestigt werden.
Die Breite des Ausschnitts wurde gleich der Innenbreite des Alurohrs (21mm), die Länge gleich der Länge eines der verwendeten Servos gesetzt (40mm). Für den mittleren Beinabschnitt wurden in einem 12cm langen Aluminiumvierkantrohr zwei solcher Ausschnitte vorgesehen. Die zwei Ausschnitte sind wie die Drehachsen um 90 Grad zueinander verdreht. Jeder Ausschnitt geht dabei jeweils immer durch zwei gegenüberliegende Seiten des Rohrs. Um die Servos verschrauben zu können, haben die Ausschnitte einen Abstand von 1cm zum jeweiligen Ende des Aluminiumvierkantrohres. In der Mitte des Rohres wurde ebenfalls für jeden Servo ein 1cm breiter Bereich für die Verschraubung vorgesehen. Daraus ergibt sich, dass die beiden Ausschnitte einen Abstand von 2cm zueinander besitzen. Für die Gesamtlänge des Rohrs ergibt sich also ein Wert von 12cm, wenn man zu der doppelten Länge eines Servos noch viermal einen Zentimeter für die Verschraubung addiert.
3.2.6 Konstruktion des zweiten Beinabschnittes
Der zweite Beinabschnitt hat die Aufgabe, den zweiten und dritten Servo über ihre Drehachsen zu verbinden. Wie bereits zuvor festgelegt, sollen die parallelen Drehachsen dabei einen Abstand von 6cm besitzen. Der zweite Beinabschnitt muss dabei einen möglichst großen Bewegungsspielraum für beide verbundenen Servos garantieren können. Aus der Geometrie des in Abschnitt 3.2.5 entwickelten ersten Beinabschnittes ergibt sich über den Satz des Pythagoras folgender Mindestabstand zur Drehachse des Servos, wenn sich dieses zusammen mit dem Aluminiumrohr frei bewegen können soll:
Abbildung in dieser Leseprobe nicht enthalten
Alle Teile des zweiten Beinabschnittes müssen daher einen Mindestabstand von 23, 2mm zu den Drehachsen der Servos besitzen. Dabei bin ich davon ausgegangen, dass der dritte Servo analog zum ersten und zweiten Servo befestigt werden wird, das heißt in einem quadratischen Vierkantrohr.16
Für die Verbindung der Servos bot es sich an, auf jeder Seite des Beins an der Drehachse eine Platte aus Kunststoff zu befestigen. Die Drehachse des Servos sollte auf der einen Seite über eine im Zubehör des Servos enthaltenen Befestigungsscheibe und 4 M3-Schrauben mit der Kunststoffplatte verbunden werden, auf der anderen Seite über eine mit Muttern befestigte Gewindestange.
Für eine größere Stabilität des zweiten Beinabschnitts sollten die beiden Platten zusätzlich noch untereinander verbunden werden. Dabei entschied ich mich aus folgenden Gründen für eine Verbindung an zwei Punkten:
1. Eine Verbindung an mehr als einem Punkt sorgt für wesentlich mehr Stabilität. Andererseits ist es schwie- rig, bei möglichst kleinen Abmessungen des zweiten Beinabschnittes mehr als zwei Verbindungspunkte zu finden. Obwohl man mit drei, ein Dreieck aufspannenden Verbindungspunkten eine sehr hohe Stabi- lität erreichen könnte, ist es schwierig, geeignete Positionen für diese Punkte zu finden.
2. Eine Verbindung an nur einem Punkt, der idealerweise auf der Verbindungsgerade der Servodrehachsen liegen sollte, ist problematisch, da die Bedingung des Mindestabstandes (Gleichung 3.2) von der Ser- vodrehachse aufgrund des kleinen vorgegebenen Drehachsenabstandes nur knapp eingehalten werden könnte.
Die Verbindung der Platten untereinander erfolgt über M4-Gewindestangen und Muttern.
3.2.7 Konstruktion des Fußabschnitts
Die Konstruktion des Fußabschnitts lehnt sich stark an die Konstruktion des ersten Beinabschnitts an. Es wird ebenso ein 12cm langes Aluminiumvierkantrohr als Grundkörper verwendet. Da jedoch der Fußabschnitt nur ein Servo mit dem Fuß verbindet, ist auch nur ein Ausschnitt für den dritten Servo notwendig. Der Rest des Aluminiumrohrs bleibt unausgeschnitten. Die Positionierung des dritten Servos innerhalb des Rohres erfolgte wieder analog zum ersten Beinabschnitt.
3.2.8 Konstruktion des Fußes
Den Fuß hatte ich zum Zeitpunkt der Erstellung der CAD-Pläne noch nicht geplant. Als Ziel für eine zukünftige Entwicklung konnte ich jedoch festhalten, dass der Fuß möglichst halbkugelförmig geformt und aus einem rutschfesten Material sein sollte. Da ich in den Fuß jedoch eine Sensorik integrieren wollte, die das Aufsetzen des Fußes melden kann, diese jedoch noch nicht weiter spezifiziert wurde17, habe ich den Fuß erst später gebaut.18
3.2.9 Konstruktion des Körpers
Nachdem die Beine genau konstruiert waren, konnte ich mit der Konstruktion des Roboterkörpers beginnen. Dabei werden die Beine nur über die Drehachsen des jeweiligen ersten Beinservos am Körper befestigt. Ana- log zum zweiten Beinabschnitt sollten die Servos auch wieder über zwei parallele Platten des Roboterkörpers befestigt werden. Der Roboterkörper musste also für eine zweiseitige Lagerung der Servodrehachsen aus zwei parallelen Ebenen bestehen.
Als Material für den Körper wählte ich Aluminiumplatten. Die Grundform für beide Platten des Körpers ist ein 48cm-langes Rechteck, das sechs Laschen besitzt, an denen die Drehachsen der Beine befestigt werden können. Die Drehachsen der Servos haben in Längsrichtung einen Abstand von 20cm, während der Abstand in der Breite 18cm beträgt.
Während die Grundformen der beiden Roboterkörperebenen gleich sind, so verfügt die untere Aluminiumplatte über wesentlich größere Ausschnitte zur Gewichtseinsparung. Um trotzdem eine stabile Verbindung zwischen der stabilen oberen und der labileren unteren Platte zu erreichen, ist eine größere Anzahl an Verbindungs- punkten notwendig. Wie schon beim zweiten Beinabschnitt werden die Platten an den Verbindungsstellen mit Gewindestangen und Muttern verbunden. Über die vielen Verbindungspunkte stabilisiert die obere Platte des Roboterkörpers die untere und sorgt so für eine stabile Befestigung der Beine bei gleichzeitig geringem Ge- wicht.
In beiden Platten sind sehr viele Befestigungslöcher vorgesehen, die einer späteren Anbringung der Elektronik
und Sensorik dienen sollen. Zuletzt sind die Ecken der rechteckigen Grundform großzügig abgerundet.
3.3 Erster Prototyp
Nachdem die erste Konstruktionsphase der Robotermechanik abgeschlossen war, musste ich feststellen, ob die zugrundeliegenden Ideen auch in der Realität haltbar sind. Daher entschied ich mich, vom kompliziertesten Teil des Roboters, dem Bein, einen Prototypen anzufertigen.
Ich wollte diesen Prototyp wie den späteren vollständigen Roboter nicht per Hand aussägen, da dies die genauen CAD-Pläne ungenau und ungleich umgesetzt hätte. Daher musste ich nach einer Möglichkeit suchen, die erforderlichen Teile maschinell auszuschneiden. Im Internet informierte ich mich über mögliche Methoden, vorerst nur die benötigten Kunststoff- und Aluminiumplatten auszuschneiden. Dabei kam ich auf drei anwendbare Möglichkeiten: CAD-Fräsen, Laserschneiden und Wasserstrahlschneiden.
Nun suchte ich in der Region nach Dienstleistern, die entsprechende Maschinen besitzen. Dabei kam ich auf die Firma “Webitec” in Bensheim, die das Wasserstrahlschneiden als Dienstleistung anbietet. Ich fragte dort an, ob mich die Firma unterstützen und die benötigten Teile schneiden kann. Ich erhielt von dieser Firma jedoch keine Antwort.
Ich suchte also nach einer anderen Firma in der Region, die in der Lage ist, die Teile zu schneiden. Im Internet stieß ich auf die Firma “Seeger Lasertechnik“19 in Lorsch. Der Geschäftsführer war bereit, mich zu unterstützen und die Teile kostenlos zu schneiden. Die Maschinen der Firma sind außerdem imstande, in die Aluminium- vierkantrohre Ausschnitte zu schneiden. Somit konnten alle Teile des Roboters von dieser Firma angefertigt werden.
Für den Bau eines ersten Bein-Prototypen habe ich die CAD-Pläne an Seeger Lasertechnik geschickt. Dort wurden meine Pläne für die Steuerung des Laserschneiders aufgearbeitet und anschließend ausgeschnitten. Die fertigen Teile habe ich dann zusammengesetzt und dabei einige Fehler in der Konstruktion entdeckt. Die zur Behebung dieser Fehler durchgeführten Änderungen an den Plänen sind in Abschnitt 3.3.1 beschrieben.
3.3.1 Änderungen
Beim Bau des Beinprototypen habe ich verschiedene Änderungen in die endgültigen Roboter-Pläne eingebracht. Diese sind im Folgenden aufgelistet:
- Kabelausführungen an den Servos
Während der Anbringung des zusätzlichen Lagers am Servo fiel mir auf, dass das Kabel des Servos nicht herausgeführt werden kann. Daher brachte ich in die mittlere Kunststoffplatte am Servo einen Ausschnitt an, der es erlaubte, das Kabel aus dem Innenraum des Servos herauszuführen.
- Ersetzen von Kunststoff durch Alu
Berechnet man die Dichte pro Flächeneinheit der verwendeten Materialien Aluminium (1, 5mm dick) und Kunststoff (4mm dick), so erhält man für Aluminium einen geringfügig kleineren Wert. Daher ent- schied ich mich, auch die Kunststoffplatten des zweiten Beinabschnitts aus Aluminium zu bauen.
- Aussparungen zur Gewichtsreduktion
Da ich an den für die Servos ausgeschnitten Aluminiumvierkantrohren gemerkt habe, dass diese sehr stabil sind, konnte ich zu den Ausschnitten für die Servos weitere zur Gewichtsreduktion hinzufügen. Auch in die Teile des zweiten Beinabschnittes konnte ich Aussparungen einfügen.20
- Befestigungslöcher an den Füßen
Obwohl die genaue Konstruktion der Füße vor dem Bau noch nicht feststand, sollte die Integration des noch zu spezifizierenden Fußes einfach möglich sein. Zu diesem Zweck wurden im dritten Beinabschnitt einige Befestigungslöcher vorgesehen.
- Befestigungen für Drehdecoder
Während des Aufbaus des Beinprototypen konnte ich den einzusetzenden Drehdecoder21 näher spezifi- zieren, da ich den Typ der Lichtschranke bestimmt habe. Nun entschloss ich mich, die Lichtschranke auf eine kleine Aluliniumplatte zu kleben, welche dann wiederum mit der am Servo befestigten Kunststoff- platte verschraubt werden konnte. Diese Konstruktion konnte für alle Servos angewendet werden.22
3.4 Ablauf des Baus
Nach dem Übernehmen der in Abschnitt 3.3.1 beschriebenen Änderungen in das CAD-Modell wurden die Ein- zelteile des kompletten Roboters von der Firma ”Seeger Lasertechnik“ ausgeschnitten. Bis auf das Ausschnei- den waren sie jedoch noch nicht weiter bearbeitet. Daher wird im Folgenden beschrieben, wie ich die Teile nach dem Ausschneiden bearbeitet habe. Auch der in der Planung fehlende Fuß wurde nach dem Ausschneiden der Teile gefertigt.
3.4.1 Nachbearbeitung der Aluminiumteile
Vor allem die Aluminiumteile bedurften noch weiterer Bearbeitung, da sie noch scharfe Kanten besaßen sowie durch die Bearbeitung zerkratzt waren. Daher schliff ich sie mit Schleifpapier immer feiner werdender Körnung ab.
Zum Zeitpunkt der Konstruktion hatte ich noch keinen Weg gefunden, die am Servo befestigte Bodenplatte aus Aluminium gegen die Servoelektronik zu isolieren.23 Daher experimentierte ich mit verschiedenen Arten von Kunststofffolie, bis ich auf die Idee kam, Laminierfolie zu verwenden. Diese Folie ließ sich einfach unter Wärmeeinwirkung an das Aluminium der Bodenplatte anbringen, ohne dass weiterer Klebstoff notwendig ist. Nach der Bearbeitung der Einzelteile habe ich den Roboter mit den passenden Schrauben zusammengebaut. Dabei habe ich teilweise auch Kunststoffschrauben anstatt Metallschrauben verwendet, wenn keine sehr große Zugbelastbarkeit der Gewinde erforderlich war. Die Kunststoffschrauben haben dabei den Vorteil, dass sie leichter sind.
3.4.2 Füße
Die ausgeschnittenen Teile des Roboters enthielten noch keine Bauteile für den Aufbau der Füße, da dieser noch nicht näher geplant werden konnte.24 Größtes Problem war das Finden einer geeigneten Konstruktion des des Fußes, die es ermöglichte, einen Schalter zu integrieren.
Gelöst habe ich das Problem durch Herstellung von sechs Kunststoffhalbkugeln, aus deren Mitte eine Gewindestange ragt. Als Gussform für den Kunststoff benutzte ich einen Steckschaum für Blumen, in den ich eine Kugel mit 2, 5cm Durchmesser halb eindrückte. In diese Form hängte ich dann eine 6cm lange Gewindestange und goss Polyurethan-Gießharz in die Form. Nach Aushärtung des Kunststoffes habe ich die Halbkugel noch abgeschliffen sowie durch Lufteinschlüsse entstandene Löcher ausgebessert.
Für die Gewindestangen der Halbkugeln fertigte ich aus einem Aluminiumvierkantrohr Halterungen25, die den Fuß mit einem kleinen Spiel beweglich lagern. Wird der Fuß auf den Boden aufgesetzt, so drückt die Gewindestange auf einen kleinen Taster26, dessen Signal an den Servocontroller weitergeleitet wird. Nach dem Anheben des Fußes drückt eine Feder den Fuß wieder in Ausgangsstellung.
4 Elektronik
4.1 Allgemeine Entwicklungsziele
Obwohl die Aufgabenbereiche der für den Roboter zu entwickelnden Schaltungen sehr unterschiedlich sind, gestalten sich die allgemeinen Anforderungen an die Schaltungen für den Einsatz in einem auf Mobilität ausge- legten Roboter sehr ähnlich. Es lassen sich daher zu Beginn der Entwicklung einige allgemeine Ziele definieren. Die Elektronik soll möglichst leistungsfähig gestaltet werden, um vor allem ausreichende Ressourcen für die auf Basis der Elektronik entwickelte Software bereitstellen zu können. Außerdem soll die Möglichkeit späterer Erweiterungen vorhanden sein.
Auf der anderen Seite sollen die entwickelten Schaltungen keine überflüssigen Komponenten enthalten. Daraus folgt, dass vorgefertigte, auf einen breiten Einsatzbereich zugeschnittene Schaltungen27 nicht verwendet werden können, sondern auf die konkrete Einsatzsituation zugeschnittene Schatungen eingesetzt werden. Da die Elektronik die Mobilität des Roboters nicht einschränken sollte, legte ich besonderen Wert auf einen leichten, kleinen und kompakten Aufbau. Dabei sollten die Platinen so aufgebaut werden, dass sie sich gut in die vorhandene Robotermechanik integrieren lassen. Das heißt vor allem dass sie entsprechend dimensioniert sind und passende Befestigunglöcher besitzen.
4.2 Überblick
Die gesamte Elektronik ist in drei Aufgabengruppen eingeteilt, die jeweils als getrennte Schaltungen und damit auf getrennten Platinen aufgebaut sind. Die erste und komplexeste Schaltung, aufgebaut auf dem sogenannten Mainboard, hat die Aufgabe, alle elektrischen Komponenten des Roboters über geeignete Schnittstellen miteinander zu verbinden, mit einem externen Computer zu kommunizieren sowie ein einfaches Benutzerinterface breitzustellen. Da alle diese Aufgaben nur mit Hilfe einer komplexen Softwaresteuerung gelöst werden können, ist der Hauptbestandteil dieser Schaltung ein leistungsfähiger Mikroprozessor, der auch in der Lage ist, relativ komplexe Aufgaben wie die Ausführung einer Gehbewegung auszuführen.28
Die zweite Schaltung dient der Sicherstellung der Stromversorgung des gesamten Roboters und ist auf dem Powerboard aufgebaut. Dabei wird die von einem Akku bereitgestellte Spannung in verschiedene Einzelspannungen zur Versorgung der Elektronik und Servos umgewandelt. Die Spannungsversorgungen lassen sich vom Mainboard aus schalten und getrennt überwachen.29
Während Mainboard und Powerboard beide nur in einfacher Ausführung aufgebaut sind, werden jeweils zwei gegenüberliegende Beine von einem sogenannten Servocontroller, aufgebaut auf dem Servoboard, angesteuert.
Auch diese Schaltung enthält einen Mikroprozessor, der mit dem Mainboard kommunizieren kann, die Signale zur Ansteuerung der Servos generiert und die Sensoren des Beins überwacht.30
Zum Verschaffen eines Überblicks über die teils komplexen Schaltpläne befinden sich neben den vollständigen Schaltplänen auch Übersichtspläne im Anhang. Diese Pläne stellen die wichtigen Schnittstellen und Datenverbindungen der Schaltungen vereinfacht dar.
4.3 Mainboard
Als wichtigstes Bauteil der Hauptplatine stand die Auswahl des Mikroprozessor an erster Stelle der Entwick- lung der Hauptplatine. Hier sollte ein leistungsfähiger Prozessor eingesetzt werden, an den ich folgende Anfor- derungen stellte:
- 32-Bit Systemarchitektur mit guter Unterstützung für Rechenoperationen auch mit Fließkommazahlen
- Möglichkeit der Speichererweiterung (Programm- und Arbeitsspeicher) über einen herausgeführten, par- allelen Bus
- Mindestens eine serielle Schnittstelle (UART), einen I2C-Bus Controller sowie ein SPI-Interface
- Einfache Programmierung über die serielle Schnittstelle
Im Bereich der 32-Bit Prozessoren ist der ARM7-Prozessorkern, der von vielen Firmen in Lizenz von ARM eingesetzt wird, am weitesten verbreitet. Es existieren zahlreiche Mikrocontroller, die den ARM7-Kern zu- sammen mit verschiedener Peripherie verwenden. Eine bekannte und nicht nur im Hobbybereich beliebte Mi- krocontrollerfamilie ist die LPC2000-Reihe der Firma Philips. Die Gehäuse dieser Reihe befinden sich mit 0, 5mm Pinabstand bereits im kritischen Bereich für die nicht-professionelle Verwendung, sind allerdings auch mit zahlreichen integrierten Funktionen ausgestattet. Auf meiner Suche nach einem konkreten Controller der LPC2000-Reihe bin ich auf die Seite Ulrich Radigs gestoßen, der auf dem LPC229431 eine abgespeckte Version des Linux-Kernel laufen lässt.32 Ich entschied mich auch aufgrund der guten Dokumentation ebenfalls diesen Typ einzusetzen.
Aufgrund der Fülle der auf der Platine anzubringenden Teile sowie die Anzahl der Pins des Mikrocontrollers (144) entschied ich mich gleich zu Anfang, das Mainboard in mindestens zwei Einzelplatinen aufzuteilen und diese über Stecker zu verbinden. Aus diesem Grund habe ich alle Komponenten des Boards in zwei Gruppen eingeteilt:
1. In der ersten Gruppe befindet sich der Mikroprozessor inklusive Takterzeugung sowie ein kleiner linearer Spannungswandler, der die für den Prozessorkern benötigte 1, 8V Gleichspannung bereitstellt. Außerdem ordnet das Layout des sogenannten Cpuboards die ungeordnet aus dem Mikrocontroller herausgeführten Signale nach Sinn- bzw. Interfacegruppen.
2. Das Cpuboard wird auf die größere zweite Platine aufgesteckt und erhält so Verbindung zu allen anderen Komponenten des Mainboards und damit zum gesamten Roboter.
Die Schaltpläne des Cpuboards und des Mainboards sind im Anhang als Abbildung 18 (Seite 53) und 17 (Seite 52) zu finden, während Abbildung 14 auf Seite 50 den Übersichtsplan enthält.
Besonders die prozessornahe Schaltung wurde weitestgehend von Ulrich Radig übernommen. So sorgt der Schwingquarz Q1 (15MHz) zusammen mit den Kondensatoren C1 und C2 für die Bereitstellung einer Taktfre- quenz für den Prozessor und seine Peripherie. Der regelbare Spannungswandler IC2 vom Typ LM31733 wird über die Widerstände R4 und R5 auf eine Ausgangsspannung von 1, 8V eingestellt. Die erfolgreich eingestellte Spannung kann dann über die Lötbrücke SJ1 an den Prozessor angelegt werden. Der Spannungswandler selbst wird über die auf dem Mainboard generierte Versorgungsspannung von 5V gespeist. Der Prozessor besitzt einen negierten34 Reseteingang, der über den Widerstand R1 (10kΩ) auf logisch “1” gezogen wird. Über den Schalter RESET lässt sich nun der Reseteingang des Mikrocontrollers an Masse legen, was das Zurücksetzen des Prozessors bewirkt.
In den Speicher des Controllers wurde von Philips eine Bootloader-Software für die serielle Schnittstelle fest einprogrammiert. Diese lässt sich nach jedem Neustart des Prozessors über den negierten Eingang EINT1 aktivieren. Diser Eingang ist analog zum Reseteingang beschaltet. Die Kondensatoren C4 bis C10 haben die Aufgabe, die Versorgungsspannungen des Controllers zu glätten.
Neben den bereits genannten Bauteilen befindet sich noch eine Reihe von Steckverbindern auf der Mikrocontrollerplatine, die viele der aus dem Controller herausgeführten Signale weitergeben und sie dabei nach Gruppen ordnen. Auch der komplette, 32 Bit breite Datenbus, der 24 Bit breite Adressbus sowie 10 dazugehörige Steuerleitungen des Prozessors werden an die Hauptplatine weitergegeben. Es besteht die Möglichkeit, an diesen Bus weiteren Speicher anzuschließen.
Die von der Prozessorplatine weitergegebenen Signale werden nun über entsprechende Steckerpartner auf dem Mainboard entgegengenommen. Die Signale des Prozessorbusses (Daten-, Adress- und Steuerleitungen) werden sofort wieder an Stecker weitergegeben, die für den Anschluss einer Erweiterungsplatine mit zusätzlichem Speicher bestimmt sind. Alle anderen Signale werden nach Bussystem bzw. Verwendung geordnet und zusammen mit den benötigten Versorgungsspannungen an Stecker gelegt.
Auf der Hauptplatine sind zwei lineare Spannungswandler verbaut, die alle Komponenten des Boards versorgen. Der IC1 (Typ LM108535 ) erzeugt dabei 3, 3V , während IC2 (Typ 78S0536 ) eine Spannung von 5V ausgibt. Die Kondensatoren C3 bis C6 glätten jeweils Eingangs- und Ausgangsspannung der Linearregler. Die Leucht- dioden LED5 und LED6 zeigen dabei das Vorhandensein der Ausgangsspannungen an. Die beiden seriellen Schnittstellen (UART0 und UART1) des Mikrocontrollers werden getrennt behandelt. Während UART1 direkt an einen dreipoligen Stecker weitergeben wird, ist UART0 ein USB-Transceiver zur einfachen Verbindung mit einem PC nachgeschaltet. Dieser Transceiver baut auf dem Baustein FT23237 auf. Auf der Seite des USB-Busses übernimmt der FT232 vollständig die Kommunikation mit dem PC. Programme können über einen Treiber transparent auf die serielle Schnittstelle des Bausteins zugreifen, ohne das USB- Protokoll zu beherrschen.
Der FT232 (IC3) benötigt eine eigene Taktquelle mit einer Frequenz von 6 MHz, die der Quarz Q1 und die Kondensatoren C11 und C12 bilden. Die Widerstände R17, R18 und R21 sorgen dafür, dass die USB-Schnittstelle elektrisch den USB-Spezifikationen entspricht. Wenn ein USB-Kabel eingesteckt wird, sorgt die Versorgungsspannung von 5V der USB-Schnittstelle zusammen mit den Widerständen R19 und R20 für den Reset des USB-Transceivers. Der Widerstand R16 sowie der Kondensator C9 werden vom internen 3, 3V Spannungsregler benötigt. Die Kondensatoren C7, C8, C10 und C13 glätten die Versorgungsspannungen des IC. Zwei Leuchtdioden zeigen den Empfang (LED4) bzw. das Versenden (LED3) von Daten an.
Die I2C-Schnittstelle des Mikrocontrollers übernimmt die Aufgabe, alle elektronischen Komponenten des Ro- boters miteinander zu vernetzen. Zu diesem Zweck kann auf den Bus über zwei Stecker zugegriffen werden. An diesen Bus sind auch drei Bausteine auf dem Mainboard angeschlossen. IC4 und IC5 (LM7538 ) sind in der La- ge, die Temperatur ihrer Umgebung analog zu messen, den Wert zu digitalisieren und über den I2C-Bus einem Busmaster (in diesem Fall dem Mikrocontroller) mitzuteilen. Die für die Kommunikation über den I2C-Bus verwendeten Adressen der IC sind wie bei jedem verwendeten I2C-Baustein über die Pins A0..An auf einen festen Wert eingestellt. Die beiden Sensoren messen die Temperatur nahe den Spannungswandlern und in der Nähe des Controllers.
IC6 (PCF8574T39 ) ist ebenfalls am I2C-Bus angeschlossen und stellt acht bidirektionale digitale Pins zur Ver- fügung. Die ersten drei I/O-Ports werden als Ausgänge verwendet. Sie sind in der Lage, die Spannung an drei Erweiterungssteckern ein- und auszuschalten. Hierzu steuern sie die Basis-Eingänge dreier Transistoren (T2 bis T4) an. Über die Kollektor-Emitter-Strecke werden dann die jeweiligen Spannungen an je einen Stecker für den I2C-Bus, die analogen Eingänge sowie die Schnittstelle für das WLAN-Modul40 gelegt. Die von diesen Steckern mit Strom versorgten Komponenten lassen sich also getrennt schalten, beispielsweise um Strom zu sparen.
Die fünf anderen Pins des IC6 werden als Eingänge für Taster verwendet, über die die Software auf dem Mainboard gesteuert werden kann. Die Eingänge werden über die Widerstände R12 und R24 bis R27 gegen Masse gezogen und können nun über die Taster S1 bis S5 auf logisch “1” gelegt werden.
Zusammen mit den fünf Tastern bildet ein 4x20 Zeichen großes Text-LCD-Display41 das Benutzerinterface des Mainboards. Herkömmliche LCD-Displays lassen sich entweder über einen 4 oder 8 Bit breiten Datenbus an- steuern. In diesem Fall wird das Display über 4 Datenleitungen zusammen mit drei Steuerleitungen angesteuert. Diese Leitungen wurden direkt an freie I/O-Ports des Controllers angeschlossen und können so über die Soft- ware das Display ansteuern. Das verwendete Display der Firma Electronic Assembly GmbH verfügt über eine LED für die Hintergrundbeleuchtung. Diese LED wird ebenfalls über den Transistor T1 und den Widerstand R3 von dem Mikrocontroller geschaltet. Der Kontrast der Displays wird über eine extern anzulegende Spanung gesteuert. Diese Spannung kann über einen PWM-Ausgang des Mikrocontrollers und einem nachgeschalteten RC-Glied generiert werden. Die Schaltung lässt an dieser Stelle bewusst mehrere RC-Glieder zu, um durch Versuchsreihen die beste Beschaltung zur Kontrasteinstellung des LCD-Displays zu finden.
4.3.1 WLAN
Für die Gewährleistung größtmöglicher Mobilität bei gleichzeitiger Anbindunng an einen PC sollte die Elek- tronik auch eine Funkschnittstelle besitzen. Um keine eigene Schaltung und Software entwickeln zu müssen, wollte ich an dieser Stelle existierende, kommerziell verwendete Funkschnittstellen verwenden. Weit verbrei- tet sind in diesem Bereich WLAN und Bluetooth. Für beide existieren käufliche Module, die sich einfach in existierende Schaltungen integrieren lassen, da sie über gängige Schnittstellen (I2C, SPI, UART) an Mikro- controller angeschlossen werden können. WLAN besitzt dabei jedoch eine größere Reichweite bei gleichzeitig höherer Datenübertragungsrate und lässt sich auf Seite des PCs einfach über einen Accesspoint und das TCP/IP Protokoll nutzen.
Im Internet bin ich auf die WLAN-Module der Firma Avisaro AG42 gestoßen. Diese lassen sich je nach aufgespielter Software über verschiedene Schnittstellen nutzen. Für die Anbindung des Roboters wählte ich die Variante des Moduls mit serieller Schnittstelle. Diese Schnittstelle ist mit der zweiten seriellen Schnittstelle (UART1) des Roboters verbunden.
Die Konfiguration und Verwendung des Moduls erfolgte nach den von der Firma herausgegebenen Handbüchern43, wobei die Netzwerkeinstellungen über die integrierte Weboberfläche des Moduls vorgenommen wurden. Das Modul wurde so konfiguriert, dass es mit der IP-Adresse 192.168.0.11 auf dem Port 1111 ansprechbar ist und auf eine eingehende TCP-Verbindungsanfrage wartet.
4.4 Servoboard
Wie bei der Entwicklung des Mainboards begann ich die Planung des Servoboards mit der Auswahl eines ge- eigneten Prozessors. Dieser hat die Aufgabe, die Servos und Sensoren von jeweils zwei Beinen anzusteuern und dabei Anfragen von der Hauptplatine anzunehmen und zu verarbeiten. Da die Ansteuerung von Servos über pulsweitenmodulierte Signale (PWM) erfolgt, musste ein geeigneter Mikrocontroller über mindestens sechs PWM-Ausgänge verfügen. Desweiteren sind 6 freie, als Eingänge nutzbare I/O-Ports für das Auslesen der Drehdecoder an den Servoachsen sowie ein analoger Eingang mit nachgeschaltetem A/D-Wandler zur Aus- wertung des Signals eines Drucksensors am Fuß notwendig. Die Kommunikation mit dem Hauptboard erfolgt wieder über den I2C-Bus.
Da ich beim Aufbau des Hauptboards bereits einige größtenteils positive Erfahrungen mit der LPC2000-Reihe von Philips machen konnte, entschied ich mich, wieder einen Typ dieser Reihe zu verwenden. Auf den Internetseiten der Firma Philips informierte ich mich über die in Frage kommenden Typen und entschied mich für den LPC210344. Dieser ist ähnlich leistungsfähig wie der auf dem Mainboard verwendete LPC2294, verfügt jedoch über keinen herausgeführten Speicherbus und besitzt weniger integrierte Peripherie. Dafür ist er mit einem 7*7mm2 großen Gehäuse sehr klein.
Der Mikrocontroller wird mit 1, 8V Spannungswandler, Boot-, Reset- und Takterzeugungsschaltung exakt ana- log zu seinem großen Bruder auf dem Mainboard beschaltet. Die serielle Schnittstelle des Mikrocontrollers zur Programmierung und Suche nach Fehlern in der Software ist zusammen mit einem Masseanschluss direkt an drei Pins abgreifbar. Zum Anschluss an einen PC wird deshalb noch ein extern anzuschließender Pegelwandler benötigt. Dieser wurde aus Platzgründen nicht direkt in die Schaltung integriert. Zur Kontrolle der Software auf dem Mikrocontroller ist außerdem über den Widerstand R17 eine LED (ACT) angeschlossen.
Der Controller verfügt über zwei I2C-Schnittstellen. Eine davon wird von der Software als Slave zur Verbin- dung mit dem im Master-Mode arbeitenden Hauptcontroller betrieben. Die Schnittstelle wird an einen 10- poligen Stecker, der gleich dem I2C-Anschluss auf dem Mainboard belegt ist, verfügbar gemacht. Um die Software auf allen drei Servoboards des Roboters ohne Änderungen an der per Software definierten I2C-Slave- Adresse verwenden zu können, lässt sich die Adresse des Boards über die Lötbrücken ID1 und ID2 verändern. Die zweite I2C-Schnittstelle dient der Anbindung weiterer Sensoren an den Beinen und ist daher über das Lötpad I2C_2 verfügbar. Da der Mikrocontroller die zweite I2C-Schnittstelle als Master betreibt, werden die Signale SDA und SCL des Busses gemäß den I2C-Spezifikationen über die Widerstände R18 und R19 auf +5V Pegel angehoben.
Der Anschluss der Sensoren erfolgt direkt an den Prozessor. Die digitalen Eingänge werden zusammen mit einer Versorgungsspannung von 5V an Lötpads gelegt. Gleiches gilt für die analogen Eingänge, diese werden jedoch mit einer 3, 3V Versorgungsspannung an die Pads AD_1 und AD_2 gelegt.
Die PWM-Ausgänge werden im Gegensatz zu den Eingängen durch sechs identisch beschaltete Transistoren von Kurzschlüssen in den Servos oder Kabeln geschützt. Die Transistoren sind in Kollektorschaltung beschaltet. Über den Basiswiderstand von 470Ω schaltet der Transitor die zum Betrieb der Servos benötigten 6V Gleichspannung. An den als Ausgang verwendeten Kollektor des Transistors ist außerdem über einen 1kΩ Widerstand die Masse angeschlossen. Zusammen mit der vom Powerboard bereitgestellten Versorgungsspannung von 6V ist jedes der PWM-Signale an einem dreipoligen Lötpad abgreifbar.
4.4.1 Beschaltung der Sensoren an den Beinen
Zur Kontrolle der von den Servos ausgeführten Drehbewegungen ist an jeder Drehachse der Roboterbeine ein passender Sensor befestigt. Während der Konstruktion der Mechanik entschied ich mich dafür, einen optischen Inkrementalgeber über eine Gabellichtschranke und eine Lochscheibe45 aufzubauen.46 Die Anbringung eines Drehpotentiometers war wegen der komplexen Befestigung an der Drehachse nicht möglich. Die verwendete Gabellichtschranke vom Typ CNY3747 ist sehr günstig zu beziehen48 und besteht aus einem einer Infrarot- LED gegenüberstehenden Phototransistor. Die Lochscheibe wurde am PC gezeichnet, per Tintenstrahldrucker auf Overheadfolie ausgedruckt und mit Acryllack fixiert. Zum Anschluss der Lichtschranke an die Eingän- ge des Servoboards waren zwei Widerstände nötig, wobei der Widerstand R1 zur Begrenzung des durch die LED fließenden Stoms und der Widerstand R2 zur Definition eines klaren Low-Pegels bei hochohmigem Pho- totransistor (kein Lichteinfall) verwendet wird. Der Ausgang des Phototransistors wird an den Eingang des Mikrocontrollers gelegt.
Da Drucksensoren nicht zu günstigen Preisen verfügbar sind, entschied ich mich, den Bodenkontakt jedes Fußes über einfache Taster zu ermitteln.49 Im offenen Zustand liegt am analogen Eingang des Mikrocontrollers über den Widerstand R3 eine Spannung von 5V an. Bei Bodenkontakt wird der Schalter geschlossen und der Eingang des Mikrocontrollers mit Masse verbunden.
4.5 Powerboard
Das Powerboard hat die Aufgabe, alle Komponenten des Roboters, das heißt die Elektronik inklusive Sensoren sowie die Motoren, mit Strom zu versorgen. Dabei werden verschiedene Spannungen benötigt, die alle getrennt auf dem Powerboard erzeugt werden können. Die Steuerung und Überwachung des Powerboards erfolgt dabei nicht von einem Mikrocontroller, sondern über einfache I2C-Bus Bausteine.
[...]
1 Die Aussage geht von einem Laufalgorithmus aus, der zu jedem Zeitpunkt mindestens drei Beine auf dem Boden stehen lässt.
2 Vgl. Abbildung 7.
3 Siehe Abbildung 8.
4 Der die Drehbewegung überwachende Sensor ist in den Abschnitten 4.4.1 sowie 5.1 beschrieben.
5 Siehe Abschnitt 4.4.
6 Siehe Abschnitt 4.3.
7 Die Funkverbindung ist in Abschnitt 4.3.1 näher beschrieben.
8 Für andere Laufroboter-Projekte werden oft auch Schrittmotoren oder pneumatische/hydraulische Antriebe verwendet. Diese eignen sich aber aufgrund ihres Gewichts, ihrer Kosten und Größe für mein Projekt nicht.
9 Die Ansteuerung der Servos wird in Abschnitt 5.1 beschrieben.
10 Vgl.[1]
11 Über die Haltekraft hat der Hersteller keine Informationen veröffentlicht. Der hier angegebene Wert ist ein üblicher Erfahrungswert.
12 Das Vierkantrohr wird von der Firma Alfer hergestellt. Siehe[2].
13 Die Isolation wurde später beim Bau ausgewählt. Siehe Abschnitt 3.4.1.
14 Vgl. Abschnitt 3.2.3.
15 Vgl.[2]und Abschnitt 3.2.2.
16 Vgl. Abschnitt 3.2.7.
17 Eine genaue Spezifikation war nicht möglich, da ich keinen geeigneten, preisgünstigen Drucksensor gefunden habe.
18 Siehe Abschnitt 3.4.2.
19 Seeger Lasertechnik GmbH, Sachsenbuckelstraße 24, 64653 Lorsch; http://www.seeger-laser.de
20 Vgl. Abbildung 12.
21 Vgl. Abschnitte 4.4.1 und 5.1.
22 Vgl. Abbildung 5a.
23 Vgl. Abschnitt 3.2.4.
24 Vgl. Abschnitt 3.2.8.
25 Siehe auch Abbildung 10.
26 Siehe auch Abschnitt 4.4.1.
27 Als Beispiel für nicht geeignete Schaltungen lassen sich fertige Mikrocontrollerboards anführen, da diese meistens alle Schnittstellen des Controllers zur Verfügung stellen.
28 Siehe Abschnitt 4.3.
29 Siehe Abschnitt 4.5.
30 Siehe Abschnitt 4.4.
31 Dateblatt und Handbuch: [27, 25].
32 http://www.ulrichradig.de/home/index.php/arm/clinux4arm
33 Datenblatt[20].
34 Negiert meint hier, dass das Verbinden des Reseteingangs mit Masse den Reset auslöst.
35 Datenblatt:[18].
36 Datenblatt:[17].
37 Datenblatt:[8].
38 Datenblatt:[21].
39 Datenblatt:[22].
40 Siehe auch Abschnitt 4.3.1.
41 Datenblatt:[10].
42 http://www.avisaro.de/
43 Siehe [3, 4, 5]
44 Datenblatt und Handbuch: [28, 29].
45 Die verwendete Scheibe besitzt einen Strich pro 2 Grad Winkeländerung, d.h. es wird ein Hell-Dunkel-Übergang pro Grad erzeugt. Siehe Abbildung 5c.
46 Vgl. Abschnitt 3.3.1.
47 Datenblatt:[30].
48 Vgl. Abbildung 5b. 4870 Eurocent/Stück bei reichelt.de.
49 Vgl. Abschnitt 3.4.2.
-
-
-
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X. -
-
Upload your own papers! Earn money and win an iPhone X.