Studienarbeit Von Stephan Höhrmann
Total Page:16
File Type:pdf, Size:1020Kb
Entwicklung eines Ultraschall-basierten Ortungssystems fur¨ Lego Mindstorms Roboter Studienarbeit von Stephan H¨ohrmann Christian-Albrechts-Universit¨at zu Kiel Lehrstuhl fur¨ Echtzeitsysteme und Eingebettete Systeme Prof. Dr. Reinhard von Hanxleden 15. Februar 2005 Betreuer: Jan Lukoschus Studienarbeit von Stephan H¨ohrmann Ver¨offentlicht am 15. Februar 2005 Alle Inhalte dieser Ausarbeitung durfen¨ unter Nennung der Quelle frei genutzt werden. Die von mir erstellte und im Anhang der Arbeit ver¨offentlichte Software unterliegt den Lizenzbestimmungen der GNU General Public License (GPL). Mein besonderer Dank gilt allen, die mich in den letzten beiden Jahren unterstutzt¨ haben. Reinhard hat mir eine Aufgabenstellung und viele Freiheiten in der Realisierung gegeben, so daß ich eine Menge ausprobieren und lernen konnte. Jan hatte bei technischen Fragen immer ein offenes Ohr und hat sich die Zeit genommen, uber¨ verschiedene Ideen zu diskutieren. Xenia hat mir unermudlich¨ zugeh¨ort und viel Zeit investiert, mir bei der Verbesserung dieser Ausarbeitung zu helfen. Außerdem bedanke ich mich bei allen, die viele Ergebnisse ihrer Arbeit im Internet frei zug¨anglich ver¨offentlichen, insbesondere in Form von Dokumentation, Programmcode und Erfahrungsberichten. Ohne diese breite Wissensbasis w¨are diese Arbeit nicht m¨oglich gewesen. Fur¨ Xenia Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 9 1.1 Aufgabenstellung ....................................... 10 1.2 Vergleichbare Systeme .................................... 11 1.3 Gliederung dieser Arbeit ................................... 15 I Grundlagen 17 2 Lego Mindstorms Elektronik 19 2.1 Robotic Command Explorer ................................. 19 2.2 Kabel und Anschlusse¨ .................................... 20 2.3 Motoren und andere Aktoren ................................ 21 2.4 Passive Sensoren ....................................... 25 2.5 Aktive Sensoren ........................................ 27 2.6 Infrarot-Kommunikation ................................... 31 2.7 Abmessungen der Legosteine ................................ 36 2.8 Einfluß der Batteriespannung ................................ 37 3 Einsatz von Mikrocontrollern 39 3.1 Auswahl eines Mikrocontrollers ............................... 40 3.2 Die PIC-Familie von Microchip ............................... 42 3.3 Entwicklung der Steuersoftware ............................... 46 3.4 Integration in eine Schaltung ................................ 46 3.5 Aufbau von Programmierger¨aten .............................. 49 3.6 Serielles Debug-Interface ................................... 53 4 Ortung mit Ultraschall 55 4.1 Basistechnik Entfernungsmessung .............................. 56 4.2 Erzeugen und Detektieren von Ultraschall ......................... 58 4.3 Optimale Geometrie eines Reflektors ............................ 60 4.4 Fehlerquellen beim Messen .................................. 62 4.5 Berechnung der Koordinaten ................................ 63 4.6 Beschreibung verschiedener Szenarien ........................... 65 II Realisierung 75 5 Ein Ortungssystem fur¨ Mindstorms 77 5.1 Anforderungen an das Ortungssystem ........................... 77 5.2 Beschreibung des realisierten Systems ........................... 80 5 Inhaltsverzeichnis 6 Verwendete Baugruppen 83 6.1 Einsatz von Mikrocontrollern ................................ 83 6.2 Ultraschallsender ....................................... 84 6.3 Ultraschalldetektor ...................................... 85 6.4 Synchronisation per Funk .................................. 86 6.5 Steuerung der Leuchtfeuer .................................. 89 6.6 Stromversorgung ....................................... 91 6.7 Kommunikation mit Aktoren ................................ 93 6.8 Datenubertragung¨ vom Sensor ............................... 95 6.9 Ansteuerung des LC-Displays ................................ 97 7 Zusammensetzung der Module 99 7.1 Steuereinheit ......................................... 99 7.2 Leuchtfeuer .......................................... 101 7.3 Mobiler Sender ........................................ 103 7.4 Empf¨anger .......................................... 104 8 Einsatz aus Anwendersicht 107 8.1 Installation des Systems ................................... 108 8.2 Ansteuerung mit brickOS .................................. 110 8.3 Auswertung der Meßdaten .................................. 114 8.4 Ortung ohne Funksignal ................................... 119 8.5 Anforderungen an das Sendetiming ............................. 126 8.6 Berucksichtigung¨ der Bewegung ............................... 127 8.7 Beispielprogramme ...................................... 127 9 Ergebnisse 129 9.1 Technische Eckdaten ..................................... 129 9.2 Einsatz in den Ubungen¨ ................................... 132 9.3 M¨ogliche Verbesserungen .................................. 134 9.4 Fazit .............................................. 135 III Anh¨ange 137 A Verwendete Schaltungen 139 A.1 Grundschaltung fur¨ Sensoren ................................ 139 A.2 Mindstorms Schallsensor ................................... 140 A.3 Infrarot-Transceiver fur¨ den PC ............................... 142 A.4 Prototyp-Platine fur¨ PICs mit 8 Pins ............................ 143 A.5 Prototyp-Platine fur¨ PICs mit 18 Pins ........................... 145 A.6 Programmierger¨at fur¨ PICs ................................. 147 A.7 ICSP-Adapter fur¨ das Programmierger¨at .......................... 151 A.8 Serielles Debug-Interface fur¨ PICs ............................. 153 A.9 Ultraschallreflektoren ..................................... 155 A.10 Steuereinheit des Ortungssystems .............................. 157 A.11 Station¨ares Leuchtfeuer ................................... 160 A.12 Verkabelung und Terminatoren ............................... 162 A.13 Sender fur¨ den RCX ..................................... 162 A.14 Empf¨anger fur¨ den RCX ................................... 165 A.15 Vibrationsd¨ampfer ...................................... 167 6 Inhaltsverzeichnis A.16 Timer fur¨ UV-Belichter ................................... 167 A.17 Joystick mit Infrarotsender ................................. 170 B Erstellte Programme 175 B.1 Programmierung des Mindstorms-Towers ......................... 175 B.2 Multiprotokoll-Paketmonitor fur¨ Mindstorms ....................... 182 B.3 Disassembler fur¨ PIC-Programme .............................. 182 B.4 Konvertierung von Dateien im Hex-Format ........................ 185 B.5 Programmiersoftware fur¨ PIC Mikrocontroller ....................... 185 B.6 Serielles Debug-Interface fur¨ PICs ............................. 187 B.7 Numerische Fehlersimulation der Ortung .......................... 190 B.8 Serielle Datenubertragung¨ vom Sensor zum RCX ..................... 190 B.9 BrickOS-API des Ortungssystems .............................. 193 B.10 Algorithmus zum Ziehen von Quadratwurzeln ....................... 195 C Meßwerte zu den Abbildungen 197 C.1 Drehmoment des Lego-Motors 71427 (Abbildung 2.5) ................... 197 C.2 Klemmenspannung am Aktorausgang (Abbildung 2.6) .................. 198 C.3 Sensorwerte im passiven Modus (Abbildung 2.9) ..................... 198 C.4 Klemmenspannung bei aktiven Sensoren (Abbildung 2.13) ................ 199 C.5 Ultraschall abh¨angig von der Treiberspannung (Abbildung 4.4) ............. 200 C.6 Ultraschall abh¨angig von der Entfernung (Abbildung 4.5) ................ 200 C.7 Fehlersimulation fur¨ Koordinatenberechnung ....................... 201 C.8 Fehler der Entfernungsmessung (Abbildung 9.1 und 9.6) ................. 201 C.9 Fehler der Koordinatenberechnung (Abbildung 9.2 und 9.3) ............... 203 D Platinenherstellung 205 D.1 Erstellen der Layoutvorlage ................................. 206 D.2 Platinenmaterial und seine Bearbeitung .......................... 209 D.3 Fotochemisches Erzeugen der Leiterbahnen ........................ 210 D.4 Bohren, Beschriften und Versiegeln ............................. 214 D.5 Bestucken¨ der Platine .................................... 215 D.6 Herstellung doppelseitiger Platinen ............................. 216 Literaturverzeichnis 217 Inhalt der CD 221 Quellennachweise 223 Erkl¨arung 225 7 Einleitung Kapitel 1 Einleitung Lego Mindstorms ist ein Roboterbaukasten, der auf Lego Technic basiert. Zus¨atzlich zu den bekannten Bausteinen, Achsen, Zahnr¨adern und Motoren gibt es einen RCX genannten Baustein, der einen pro- grammierbaren Computer enth¨alt. Dieser basiert auf einem Mikrocontroller und kann mit bis zu drei Sensoren und Aktoren verbunden werden. Außerdem verfugt¨ er uber¨ eine Infrarot-Schnittstelle zur Kommunikation, mit der unter anderem Programme von einem PC heruntergeladen werden k¨onnen. Der RCX ist daher in der Lage, das Verhalten eines Lego-Roboters zu steuern. Ursprunglich¨ war Mindstorms als Spielzeug fur¨ Kinder ab 12 Jahren gedacht, der Baukasten wurde aber sehr schnell von Kunden abseits der Zielgruppe entdeckt. So setzen beispielsweise viele Schulen und Universit¨aten Mindstorms mit Erfolg zur Unterstutzung¨ der Lehre und im Ubungsbetrieb¨ ein. Auf dieser Plattform k¨onnen viele Konzepte aus den Bereichen Robotik, Programmierung eingebetteter Systeme, Echtzeit- verhalten und Cross-Platform Development ausprobiert werden, ohne daß vorher aufwendige Hardware hergestellt werden muß. Abbildung 1.1: Robotics Invention System von 1998 Die ersten Baus¨atze kamen im September 1998 in den USA auf den Markt. Bereits wenige Wo- chen danach