Home
Zwischenbericht
Contents
1. ER al all A SZ r i al 3 ES L ao u SE Loes a m 7 Ze eh 8 us e P ad d pI a Se r 8 es onsousos 9 g aaa a5 a 4 agaa somaa Ar Se e me FON Ps 16 seas 3 5335 a a Tab smaa uy Se oe So Net somaa Ly Ed mm E de u ag Tot ve en e mem S E ee cher SN a mm lt SE E mm e ve BNET me ve M S oa mm S yoo e de won ae lt A Di Di pa e won Ze war Ge van Em lt ei m E nee wen Em i ei E woo de won GH oe VI va B oor GE Sr ve 2037 oy ro s pov lt zoo de wen er Ze d i bond mp lt Di S oe S Sa lt zoo ow be 8 Ze S aly OST g ep gs gaus e es See TO rs 8 ug e E ik ve POR S 13 oss e Re somaa Ly E 1 Paco Fa 18 Per F o l Su E A somaa ur x SH E E l 3 ea M somaa ur E GR ve E Di AS Par RS s ER SE o l ve INT mm amp em Fa EES Ed mE hee mon Selm E Di DE ap d e Di S Dag Zeimet E El 5 peered ab E is g em Si SE 3 G d I Ze Zil cl au d ER 3 RE E 001 eher war er sna E 5 Ze R gt t ve von Zei ap g em Si y SC S H Z eh Shown lt 8 en vor ae e 8 gs l zy Si Enga 08037 ECH EE E 3 H ES El oe 9037 Zi om lt H em ET EN eet P e D I S
2. GND gt w S 3 2 PS1 E S El uu Fei P 2 Fei 3V3 2 1 3 loler fo of foo of FEY Ek E SIE PF a Son ae ROR Bor ae swLereogorgoK EE eae Se 3V3 83 gt a8 los GND 88 vemo E GSRIIO99 ene PE VOCINT 1028 f 1097 1029 2 1096 1030 51 1095 op KS 1094 1032 ES o 1093 1033 3 1092 ei o KS 1091 R S 1035 ES 1090 3 1036 1089 E 1037 RB 3V3 VCCIO x VCCIO bo 1087 N 1039 2 1086 8 1040 40 1085 Q 1041 t GND 1042 2 a TDO Nc f o o gt 1082 GND lr AE 2 1081 TDI E E NC nc KS 4 laz 5 1079 ms 2 1078 Tek 8 1077 1049 2 1076 1050 PO Sva z 9 nes OR NERSRESSSSISSBRSKBRBAD 8898553898888 5558 89388388 100n BERE EEE EEE RAINY REE RRE bo H and nd eng 2 3 Abbildung 6 5 Schaltplan Testboard CPLD 181 6 Anhang
3. MEER c3 7 a CH E E i Se x L E El AAAS E ES om IS F E x ye sJ2 1 rog g Q MA Y KR B F gege E ef Lt GH S 1 EMS Ee fete SOEN SE 8 592 3 Abbildung 6 30 Platinenlayout Host Interface Bauteile Oberseite 194 6 3 Mechanischer Aufbau des Spielfelds Abbildung 6 31 Spielfelfbox von oben gesehen 195 a o S 2 3 2 3 7 3 a i El S 3 3 E t 4 ww g Jassawyoing ww g eyoH 2 _ pu ey Jepun ww EL ao ys yeusyew sefugenel you A gt j D H o A mg oe X WO OS L E D uney S 3 f al o S un 5 N o yo wwg oburjapuimao wwg eBugyeyos 5 wwz oyolbapuimas be aqnesyosjdoyyoe 4 E g o lt 3 3 o A SS ares emer een oO Kei om z A FIN agoe a UUO 0G aqnesyosjdoyyuues 9 wwo 0g S ar Ke 6 Anhang wwo g Wwwu0Z wwo 0g a uge wwo gl wwg g Le 6 0mm gt 8 0mm 44 0mm 50 0mm 100 0mm 150 0mm Lal gt uLuO 0 Abbildung 6 32 Spielfeldbox von der Seite gesehen 196 Literaturverzeichnis Alt 98 AMI99 AMIOO ARMO5 Atm03 AtmO5a Atm05b Atm05c Atm05d Atm05e Atm05f Atm05g ALTENBURG JENS Miniaturr
4. 129 Position der Dioden und Phototransistoren 130 74HCT259 Baustein 131 10 Abbildungsverzeichnis 3 74 4HGT138 Basteltty x oh oe A A Se 131 3 15 Multiplexer lt a 446 2 bo en a wann Ben Bann 132 EE Platine tt ee A a a e eS ee Ble ee Be ase 133 3 77 Resultierendes PWM Signal am Pinout 04 137 3 78 Pointer auf Parameter Comm 139 3 79 Befehlstabelle 2 1 u on nn 140 AA Architekturuberblick 4 x 222 220 SOs Pear hee ce he Bee ee 150 4 2 Datei Routing bh sa asa e 22a na ee a eon 156 4 3 Statermachine la e Gi eo we a ah zee aR etl eh el Ogun od ae eee 163 Ava a Spl shscreen ee bod den eee en Boke SI Ae AE 169 db Hauptbildschirm A 24a 222 ke ka pe ee aa 169 4 6 bersichtsbildschirm Dual ohh lees a ae a aoc ok 170 ACE K rnten ar ea hte tn oy A ia ea PRO EE 171 4 8 Kombinierte Karten 2 Comm 171 4 9 Optionskarten sioe a a cona nn 172 6 1 Schaltplan Testboard ATI91ISAM7S32 177 6 2 Schaltplan Roboter Hauptplatine e 178 6 3 Schaltplan Roboter Nebenplatine 179 6 4 Schaltplan Testboard Held 180 6 5 Schaltplan Testboard CPLD 2 2 Cm nn 181 6 6 Schaltplan Feldplatine Version 2 0 22 Co onen 182 6 7 Schaltplan Host Interface e 183 6 8 Platinenlayout Testboard AT91SAM7S32 Routing Oberseite 184 6 9 Platinenlayout Testboard AT91ISAM7S32 Routing Unterseite 184 6 10 Platinenlayout Testboard AT91SAM7S32 Baute
5. 107 3 Hardware O Drehpunkt eRobeter e e oO D 0 Abbildung 3 44 Abbildung 3 45 Abbildung 3 46 A Korrekturausrichtung A N chster Zug A Weitere Korrektur 0 O ir vorne o O D o 0 o 8 o Drehpunkt Rol ter o Drehpunkt e e e Rokpter 0 O Abbildung 3 47 Abbildung 3 48 Abbildung 3 49 A Letzter Zug B Kleiner Fehler B Dessen Korrektur Die Position wird in Richtung der LED korrigiert Abb 3 44 anschlie end eine weitere Strecke von gt mm geradeaus gefahren Abb 3 45 und wiederum eine Korrektur durchgef hrt Abb 3 46 So ist der Roboter wieder korrekt ausgerichtet und kommt nach dem n chsten Zug auf dem Zielfeld an Abb 3 47 Lediglich eine L ngenabweichung von kumuliert 3 3 mm verbleibt Diese ist in der finalen Korrektur zu beheben 108 3 3 Roboter Alternativ best nde auch die M glichkeit diesen Wert durch Anpassung der Lauf strecke von mm um einen Korrekturfaktor in Abh ngigkeit zum Korrekturwinkel zu verringern Eine exakte Korrektur durch Berechnung mittels trigonometrischer Funktionen kommt jedoch aus Effizienzgriinden im Roboter nicht in Frage um Speicherplatz zu sparen stehen derartige C Funktionen nicht zur Verfiigung Fehler zum Ende der Bewegung Fall PI Eine Vorw rtsbewegung um mm wird korrekt durchgefiihrt und die Ziel LED erreicht Erst im letzten Momen
6. e der Roboter ist nach links oder rechts abgewichen ungenaue vorherige Ausrichtung oder einseitig st rkerer Schlupf oder e der Roboter ist zu weit gefahren eher unwahrscheinlich Dabei muss beim Entwurf davon ausgegangen werden dass sich die Fehler in begrenzten Rahmen bewegen da sonst keine effiziente Korrektur m glich ist So k nnte nicht garan tiert werden dass keine dritten Felder befahren w rden nicht einmal dass das Zielfeld berhaupt gefunden w rde Folgende Annahmen bestimmen den Entwurf und gelten pro 90 Drehung bzw pro Fort bewegung um 5 Feld 2 mm Die Berechnungen basieren auf der Parameterberechnung in 3 3 7 6 e Im Winkel wird maximal um 5 abgewichen Dies entspricht bis zu 23 Schritt Fehlern beider Motoren gar deutlich mehr einsei tigen Schrittaussetzern in der geraden Bewegung e In der Strecke wird maximal um 1 mm abgewichen Dies entspricht iiber 15 beidseitigen Aussetzern in der geraden Bewegung Dies erscheint recht gro z gig da aber Fehler nur in bestimmten Ma en behoben werden k nnen unter anderem durch begrenzte Messgenauigkeit ber die Fototransistoren sind diese Werte bewusst relativ hoch angesetzt Eine Suche kann unter diesen Annahmen nun innerhalb dieser Grenzen erfolgen Falls der Fehler sich bei der Suche als gr er erweisen sollte ist sie erfolglos abzubrechen In diesen F llen muss der Benutzer eingreifen und manuell korrigieren Dies muss jedoch eine Ausnahmesitu
7. 106 A Ausgangssituation 107 A Fehle rsituation 2 1 0 ar wlan Da kan a nn a eed 107 As TEE EE 107 A Korrekturausrichtung 22 222 nommen 108 A N chster Zip EE 108 A Weitere Korrektur o oo a 108 A EE 108 B Kleiner Hehe 108 B Dessen Kortektur e 108 C Fehlersituation onen 109 C 1 Maximumssuche 109 Coe Drehung ios nu a go lee dl en 109 C 2 Maximumssuche 2 2 2 2 0 ee 110 C inverse Drehung 1 228 a an Bi ale De dat 110 C Drehk rrekt rr 2 a a a Bra 110 Der komplette Roboterprototyp 2 2 2 En rn nn 112 Spielfl che mit Parkplatz 22 22 on Emm nn 115 Ansicht der Unterkonstruktion mit Bl cken 117 Zusammenhalten der Gesamtkonstruktion durch Magnete 117 Ansicht der Unterkonstruktion 22 2 0 0 0000000 e ee eee 118 Aufsicht der Unterkonstruktion 2 2 2 2 2 0 0 00 0002 eee eee 119 Spielflache mit Laser 119 Befestigung der Makrolon Platte 2 2 2 Em nn 00 00 0000 8 120 Pl tze f r die Drucktaster in der Spielfl che 121 Polung der Magnete in einem Winkel 22 2 2 m nn nn 123 Polung der Magnete f r eine Spielfeldseite 2 2 22 non nenn 123 Federb gelkontakt von Elco 124 Seitenansicht auf eine Spielfeldbox o o nenn 124 Stromversorgung ber die Winkel 125 Adressen der Felder und LEDS o 127 Steckerbelegung der Testboards f r das Spielfeld
8. Die runde Bodenplatte des Prototypen besteht aus Aluminium ist 2 mm dick und hat einen Durchmesser von 4 5 cm Um Befestigungsm glichkeiten f r das Geh use in den Serienrobotern zu bieten wird die Bodenplatte dort 4 mm dick werden Abbildung 3 17 liefert einen berblick s mtlicher Ma e der Bodenplatte Bedingt durch die Ma e des Akkus m ssen diese aufrecht in der Mitte des Roboters platziert werden Das bringt auch den Vorteil einer optimalen Gewichtsverlagerung im Inneren mit sich denn mit rund 20 g ist dieser die schwerste Komponente Auch die Kommunikationsschnittstellen Leuchtdiode und Fototransistoren m ssen in der Mitte des Roboters angebracht werden Da diese in den Boden eingelassen werden m ssen muss Sorge daf r getragen werden dass sich der Akku oberhalb der mit den Kommunikations elementen verbundenen Bodenplatine befinden kann Dies wird mit einer Konstruktion 75 3 Hardware 1203 140 1 20 175 35 LPL 190 EK 4 90 155 1 20 4 1 55 A 2 15 31 56 430 5 ID oo 0 ak 30 4 135 24 160 el EC 35 35 AA 44 HK 1 MACE 1 22 Ar 3 15 10 Abbildung 3 17 Die bema te Bodenplatte aus L und U Winkeln derart erreicht dass die L tungen der Kabel der Bodenplatine die Unterseite des U Winkels nicht ber hren Das Material der Winkel ist Kunststoff da es gerade im Inneren des Roboters wichtig ist dass keinerlei Kurzschl sse oder andere elektrische
9. stieren viele Allzweck L sungen so dass ein ARM fiir eine homogene L sung ideal ist Da ARM der Markf hrer im Feld der eingebetten Prozessoren ist existieren vielerlei Entwicklungs und Programmierwerkzeuge toolchains f r diesen Kern unter anderem ist eine komplette Toolchain am Lehrstuhl vorhanden Externe Programmierumgebungen existieren z B von Keil Kei05 Der AVR RISC Atm05g ist eingebetteter Prozessor mit 8 Bit Datenbusbreite Er hat aber daf r einen von Haus aus geringen Stromverbrauch Viele n tzliche Ausstattungs merkmale wie Stromsparmodi und In System Programming und Debugging sind stan dardm ig enthalten Atmel bietet diesen Prozessor in vielen vordefinierten spezialisier ten Umgebungen an so dass dieser Typ eher f r einen inhomogenen Ansatz in Frage kommt Die voll integrierte Entwicklungsumgebung liefert Atmel in Form des AVR Stu dios wobei hier alle Tools in eine Plattform integriert sind DSP Ein Digitaler Signal Prozessor ist auf Gleitkomma Verarbeitung ausgelegt und besitzt deshalb h ufig zus tzliche Multiplizier ALUs und Parallelverarbeitungsans tze wie VLIW Befehlss tze very large instruction words Aufgrund dessen werden DSPs h ufig in Multimedia Anwendungen eingesetzt wo schnelle h ufig sogar in Echtzeit stattfindende Gleitkomma Berechnungen gefordert sind zum Beispiel bei Musik oder Video Dekodierung Auch gibt es kombinierte Ans tze aus eingebettetem Prozessor mit unterst tzender DSP
10. www keil com arm Robot Khepera II Webpage http www k team com kteam index php site 1 amp rub 22 amp page 17 amp version EN Lua ENG KEONG JON CROWCROFT MARCELO PIAS RAVI SHARMA and STEVEN LIM A survey and comparison of peer to peer overlay network schemes IEEE COMMUNICATIONS SURVEY AND TUTORIAL MARCH 2004 Extreme Hex 3 Webshop http www lynxmotion com Category aspx CategoryID 33 MAXIM 3 0V to 5 5V Low Power up to 1Mbps True RS 232 Transceivers Using Four 0 1uF External Capacitors 2003 http pdfserv maxim ic com en ds MAX3222 MAX3241 pdf MCMANIS CHUCK Voltage Spikes in FET based H bridges Webpage 2004 http www mcmanis com chuck robotics projects esc2 hbridge_ spiking html MIKROANTRIEBE Getriebemotor DC Bausatz zum Kleben Juli 2003 http www mikroantriebe de download g30bs _a pdf 199 Literaturverzeichnis Mik03b Mik05 Nan Nan04a Nan04b Nat Nat05 Par Phi03 Red04 SAN Sch87 MIKROANTRIEBE Mikromotor M61513 Januar 2003 http www mikroantriebe de download m660m665 pdf Technik fiir funkferngesteuerte Mikromodelle August 2005 Produktiibersicht und Preise 08 2005 http www mikroantriebe de download preisliste pdf NanoTec Antriebstechnik Katalog 2001 http www lynxmotion com Category aspx CategoryID 33 NANOTEC Stepping Motor SP0618M0104 A Z01 July 2004 http www nanotec de data zweiphasen sp1555
11. Bei Ande rungen der Netztopologie und nach einem festgelegten Zeitintervall findet ein Update mittels eines Broadcasts statt dabei wird die gesamte Routing Tabelle an alle Nachbarn gesendet Obwohl Distance Vector Algorithmen weniger Rechenzeit brauchen ist auch hier die Ver wendbarkeit nicht optimal wie im folgenden Abschnitt erl utert wird Weitere Routing Protokolle in Sch87 Allgemeine Probleme Das Hauptproblem der hier vorgestellten Routing Protokolle ist dass sie keine geeignete Struktur fiir die Anforderung der Roboter Orientierung aufweisen Das kann nur durch Speichern zus tzlicher Informationen kompensiert werden wie an dem folgenden Beispiel illustriert werden soll Jede Spielfeldbox bek me eine ID wobei die Vergabe tiber Hardware oder Software erfolgen k nnte Die IDs der jeweiligen Spielfeldbox in Blickrichtung die linke rechte und die ID der Spielfeldbox entgegen der Blickrichtung eines jeden Roboters miissten zus tzlich abgespeichert werden Nur so kann der neue Standort eines Roboters nach einer Befehlsverarbeitung ermittelt werden Daher eigenen sich diese Protokoll nur bedingt Ein geeigneter Ansatz der ohne zus tz liche Speicherung auskommt wird im folgenden Abschnitt vorgestellt 4 3 2 3 Verwendung von Peer to Peer Technik Die bisher vorgestellten Routing Protokolle basieren auf einer vorgegebenen Hierarchie von Routern und Netzen Aber eine solche Hierarchie existiert bei einem so homogenen Feld
12. DA vu Lo EH Lo CH 1S4 VBA zen x Lela 1x vied VEA SEA 0 OdVO ELNIS ENIV OE Od ZEA E OU Od VO ZNIVI6Z Od Len 2 OLVINZ OdVO INIV S2 0d FOLWW Od VO ONIWIZ2 Od Lal VSSA 108 9204 Tid VSSA zaLive od S SSA zauez od SSA O OLVWO OdVO EALZZ Od amp SSA E Id VO EGUISWMd 12 0d Z SSA ELNI3 11358 Lage nd 1 SSA Lei soe LLVIN 6 Od LLVW LOSIWVE Oe 0d LLVWILMOSIZ LAVO LLOG Z OSVO Z OLVIN OLNI3 91 0d EWEN ISUL LE Id HEISER SINE ld VOLE LLVW LYLO E L Od YOLBZ Id OH LLYW LHSO ZL Od 10 87 ld SQL ILAVO 1SLO LI 0d OLL2 id SAU O LAVO LSLW OLO STEE ELNI3 9I Md LOXB 6 0d ONLLX3 S7 d HM LOL DOHEEM LNI3 Z NMd 01388 Z 0d ZINIS2dMIEZ Id EI ENEE LIWLSAdId Z2 d FOLVW OOSIW S 0d OLWLS3dld b2 bd V ONAS3OVEL OZ Id LLNI3 O OLYWYAS E 0d ELO LGL Id 0 04V9 198 2 0d DEEN OLNIS E NMd 00X8 1 0d Lg UNMA 00XL 0 Od OLMA3OVE 9 Id mE 9 Lesom FASS AAT SSSI go HT KR Set Dag ano NOA um no NI D H lt EAE oe D Bo k oo Aua 2 aL amp Vs ZTA Schaltplan Host Interface Abbildung 6 7 183 6 Anhang 6 2 Platinenlayouts o lo o O O KO O O O O Ko Ko o Abbildung 6 8 Platinenlayout Testboard AT91SAM7S32 Routing Oberseite Abbildung 6 9 Platinenlayout Testboard AT915AM7532 Routing Unterseite 184 6 2 Platinenlayouts 800 GO JP9
13. Die zweite Platine bernimmt dann die Ansteuerung der Navigations LEDs und Checkpoints Sie entsteht in zwei Versionen Zum Ersten eine Version mit TTL Bausteinen und zum Zweiten eine Version mit einem CPLD In Kapitel 3 4 7 2 wird die Schaltung mit TTL Bausteinen und in Kapitel 3 4 7 3 die Schaltung mit dem CPLD erl utert e Mikrocontroller Die dritte Platine beherbergt den Mikrocontroller und alle da zugeh rigen Komponenten e Spannungsversorgung Im Spielfeld werden konstante Spannungen von 3 3V und 1 8V ben tigt Da am Spielfeld eine h here Spannung anliegt ist eine extra Schal tung n tig Erl utert wird diese in Kapitel 3 4 7 4 e Sound Zur Erzeugung von Ger uschen wird der PWM Ausgang des Mikrocontrol lers benutzt Dazu wird eine kleine Verst rkerschaltung ben tigt In Kapitel 3 4 7 5 wird diese beschrieben Die Verbindung der Platinen erfolgt ber Stecker und Buchsenleisten zwischen Feld und TTL CPLD Platine und einem Flachbandkabel zwischen TTL CPLD und Mi krocontrollerplatine Die TTL CPLD Platine wird dabei direkt unter die erste Platine gesteckt und beide Platinen zusammen dann ins Spielfeld montiert Die dritte Platine mit dem Mikrocontroller muss au erhalb der Spielfeldbox platziert werden und wird mit einem 50 poligen Flachbandkabel verbunden Die Anschlussbelegungen und die Position der Stecker sind Abbildung 3 71 dargestellt 3 4 7 1 Feldplatine Die Feldplatine soll die Navigations und Kommunikations
14. So k nnte es passieren dass die Spielfeldbox nicht mehr exakt rechtwinklig ist Wenn nun mehrere solcher Boxen aneinandergesetzt werden k nnten Zwischenr u me entstehen Der Roboter m sste somit eventuell gr ere Zwischenr ume zwischen den Boxen berwinden Au erdem k nnte es passieren dass die Ecken der Box nicht mehr in einer Ebene liegen Somit w rde die Spielfeldbox wackelig auf dem Tisch stehen 113 3 Hardware 3 Bei der Wahl von Metallen muss ber cksichtigt werden dass diese oxidieren Dies schlie t Metalle wie z B Eisen aus Eventuell m gliche Metalle sind Stahl und Aluminium 4 Wie in Kapitel 3 4 5 beschrieben soll mit Magneten die Stabilit t des Gesamtspiel feldes sichergestellt werden Da hierbei Magnete gegens tzlich gepolt werden muss das Material magnetisch neutral sein Dies schlie t Metalle wie z B Eisen aus 5 Da die elektronischen Bauteile w hrend des Betriebs W rme erzeugen k nnen soll te das Material eine gute thermische Leitf higkeit aufweisen k nnen Im Gegensatz zu Holz und Plastik hat Metall obige Eigenschaft 6 Das Material sollte sich mit den vorhandenen Werkzeugen des Lehrstuhls 12 bear beiten lassen Am Lehrstuhl sind geeignete Maschinen f r die Metallverarbeitung vorhanden Mit diesen Maschinen kann Metall mit einer hohen Genauigkeit be arbeitet werden Da Holz oder Plastik nur mit einer Hands ge bearbeitet werden kann l sst sich hier nur eine wesentlich geringere
15. phase implementiert und in einem umfassenden bergreifenden Integrationstest ber pr ft sobald die Hardware Teams eine geeignete Menge an Komponenten bereitstellen k nnen 175 6 Anhang 6 1 Schaltpl ne 6dr zm z GE I 2 ZEZEXVIN N_8bd307 ZESZMWVSL6LW Ney men Ha anvannod mu Les G Niy man E onwod eva L I end ove Wind ova L ale noz wei E hanod sva anos oiva L t Inon wi Z GNonnod wa ue 1 FS e OGNSd 21 Vd d em Si S asun 2 aL me ISL 340900 Her amp Ber N A E gt amp A od ee avg 2 E Seet SE SS a 2 oman tanod SI Zar 2 Jo ot 5 E awod iva olaaa Le y sa ES 7 oal Sav ONE 02vd E Ki Lei orar a I voor Sch SAL ae ano ae f ov ged tu Hr SR par sT w mm voor o cay sanod ziva PO 8 tar non e von Fr f and Lv 2 sav 2 no ER S a mox _ sa E Fone nx vv FE w Oana Sc avo Lo au E and ERRER A FEFE E ll lu Old 19 o lt 1g fe Gel ener OF ZL 229290009090000000000 j BEREBBEREEBEREPPFP 8210 alelalale 3lel3le 3 l2l3 lalola ola 5 4 8 8 99A Ee DI 177 Schaltplan Testboard AT91SAM7S32 Abbildung 6 1 NRHDTESISAV 6 Anhan
16. 21 1 Ja Nein Reset Message O Alle Client 22 1 Ja Nein Reset Ready O Alle Client 23 0 Leaving Message O Alle Client 24 EI ClientID RobotDead O Feld 25 0 Message Toggle Laser 0 1 Feld Feld 26 1 2 An Aus Flag Master Feld CountUpXY Query 0 Nachbar 27 14 1 1 3 1 Antwortadresse Feld Verschiebe Bit Schaden verursachend Ja Nein Checkpointnumber Dead Bit Query Response 0 Nachbar 28 1 14 Ja Nein Angefragtes Feld Feld Laser 0 Nachbar 29 2 2 2 1 1 Orientierung Laserrich Feld tung Starke Leistungs token Traktorstrahl Hochdruckstrahl 161 4 Software BC Adresse Type Data 1Bit 14Bit x y 6Bit Gr e d Felder Beschreibung Robot State 0 Nachbar 30 2 2 8 1 3 RoboterID Blickrichtung Feld 4 4 14 4 4 Optionskarten Life Bit Runde Fabrikelemente stage Nicht Gemeldeter Schaden Vorherige Positi on Nicht Gemachte Drehungen Nicht Gemachte Bewegung Tabelle 4 1 Nachrichtenspezifikation 4 3 3 2 Zustandsiibergangsmodell des Application Layers Die Aufgaben des Application Layers lassen sich am besten als Zustands bergangsmo dell modellieren Dieses Modell beinhaltet eine Menge von Zust nden zwischen denen das System wechseln kann Diese Zustands berg nge sind aber an gewisse Bedingungen gekniipft wie zum Beispiel die Ankunft einer Nachricht Das komplette Zustandsiber gangsmodell wi
17. 38 Unterste Ebene Ansteuerung der HIP4020 Motortreiber Die einfachsten Funktionen die bereitzustellen sind m ssen das Einschalten so wie das Ausschalten der HIPs und damit der Motoren erm glichen Da sich die Motortreiber eine Enableleitung teilen ist lediglich diese ber einen PIO Pin anzusteuern Das bernehmen die Funktionen hip_enable und hip_disable Dar ber hinaus werden f r jeden der beiden Motoren left und right benannt Routinen gebraucht die eine Drehung um genau einen Schritt im Uhrzeigersinn clockwise hip_ lt Motorname gt _step_cw bzw gegen den Uhrzeigersinn counter clockwise hip lt Motorname gt _step ccw erlauben Um diese realisieren zu k nnen ist die Ansteuerung der Motoren genauer zu be trachten Nan04a 100 3 3 Roboter Motoreing nge Zustand A B A B Motordrehrichtung CCW 1 yet ao we a d 2 A A H i S I4 CW Legende Leitung an Versorgungsspannung anschlie en Leitung an GND anschlie en Abbildung 3 39 Motoransteuerungstabelle Die vier verschiedenen Zust nde vgl Abbildung 3 39 sind je nach gew nschter Drehrichtung des Motors von oben nach unten bzw von unten nach oben zyklisch zu durchlaufen Da in jedem der vier Zust nde A und A bzw B und B genau invertiert zueinander sind k nnen sie je durch ein gemeinsames Signal angesteuert werden Dieses ist lediglich f r einen der beiden
18. 6 7 e mene vw iw HI Inverted Data Output Abbildung 3 75 Multiplexer Schaltung Die Schaltung wurde mit dem Programm Eagle entworfen Abb 3 4 7 2 Die LEDs und Fototransistoren die fiir die Kommunikation mit dem Roboter vorgesehen sind sind di rekt mit dem Mikrocontroller verbunden F r die Verbindung der Schaltung mit dem Mikrocontroller und der LED Platine wurden drei Steckverbinder verwendet Eine wird mit dem Mikrocontroller angeschlossen und die zwei anderen mit der LED Platine F r die Steuerung der LEDs die f r die Orientierung der Roboter verwendet werden werden sieben GPI O Pins des Mikrocontrollers verwendet Drei davon sind f r die Adressierung 132 3 4 Spielfeld der LEDs und der Drucktaster einer fiir die Datenleitung und drei fiir die Adressierung des Latches 74HCT138 der mit den Enable Pin auf den anderen Latches und der Mul tiplexer verbunden ist 18 Pins werden als Kommunikationspins verwendet Die Kom munikationsleitungen verbinden den Mikrocontroller direkt mit den mittleren LEDs und Fototransistoren auf der LED Platine In unserer Schaltung wird der 74HCT138 einzeln adressiert und mit den Enable Pins alle anderen Bauteile verbunden Dieser Baustein hat die Aufgabe zu entscheiden welches Bauteil zu einem bestimmten Zeitpunkt aktiv sein darf indem er den Enable Pin des gew hlten Bauteils auf LOW setzt Dieser Vorgang erm glicht dass jede LED einzeln gesteuert werden kann Die E
19. All Alle Init Response erhalten Register All Factoryelement Robotstate Order Query Order Response Factoryelement Pressurebeam Tractorbeam Laserbeam Laser Orderprocessing Query Query Response Lo Query Query Response LJ Abbildung 4 3 Statemachine Die Befehlsausfiihrung endet mit dem Senden der Order Response Nachricht die dem Client alle neuen Daten ber seinen Roboter mitteilt hnlich zur Befehlsausf hrung l uft die Abarbeitung der Fabrikelemente ab Eine Facto ry Element Nachricht fiihrt das System in den Zustand Factoryelement Pressurebe am Tractorbeam Laserbeam Dieser Zustand besteht aus mehreren Unterzust nden die aber zur Vereinfachung des Diagramms zusammengefasst wurden Der Factoryelement Zustand fiihrt zur Abarbeitung der Fabrikelemente Expressf rder band F rderband Schieber Zahnrad Presse Danach folgen die Zust nde Pressurebe am und Tractorbeam in denen diese beiden Optionskarten aktiviert werden Das ist n tig weil dadurch Roboter verschoben werden k nnen und somit nur dann ein deter ministisches Verhalten garantiert werden kann wenn auch diese Optionskarten in eine totale Ordnung mit den anderen Fabriklelementen gebracht werden Als letztes Fabrik element treten die Laser der Roboter und der Felder in Kraft und f gen den Robotern Schaden zu 163 4 Software 4 3 3 3 Implementierung Zur Im
20. Alternativen h tten dieses Kriterium allerdings st rker verletzt Die Roboterh he steigt somit auf knapp 7 cm die weitere Konzeption des Roboters wird dadurch jedoch nicht beeintr chtigt Uber das Ladeger t ULTRAMAT 12 Gra04 ist eine Ladung der Akkus komfortabel m glich 3 3 3 7 Komponenten bersicht Einheit Baustein Anzahl pro Roboter Datenblatt Mikrocontroller AT91SAM7S32 1 Atm05c Motoren SP0618M0104 2 Nan04a Motortreiber HIP4020 4 Int05 Getriebe Bausatzgetriebe G30 2 Mik03a Energie Versorgung Kok 1200 1 Wes04 Festspannung KF33BD 1 STM04 Abbildung 3 15 Komponenteniibersicht Roboter Ein berblick ber die wichtigsten Komponenten des Roboters bietet die Tabelle 3 15 3 3 4 Testboard Nachdem der Mikrocontroller f r die Roboter ausgew hlt worden ist siehe Abschnitt 3 1 3 1 wurde ein Testboard f r diesen entwickelt Der Mikrocontroller AT91SAM7S32 AtmO5c ben tigt Versorgungsspannungen von 1 8 V und 3 3 V Da er aber im Gegensatz zum im Feld verwendeten Mikrocontrol ler von Philips Phi03 einen internen Spannungsregler f r die 1 8 V besitzt wird extern nur noch ein 3 3 V Spannungsregler ben tigt Auf dem Testboard wird der Spannungs regler KF33BD STM04 verwendet der auch sp ter im Roboter Verwendung findet Somit kann das Testboard mit Spannungen innerhalb des Eingangsbereichs des Span nungsreglers versorgt werden Zum Schutz vor zu hohen Str men ist eine Sicherung vorgese
21. Backups den n chsten zu erreichenden Checkpoint und welche Optionskarten im Besitz des Spielers sind Die Spieler k nnen damit ihren n chsten Zug planen und so ihre Befehlssequenz zusam menstellen Sobald die Spieler ihren Zug abgeschlossen und best tigt haben schicken die Host PCs die Kartenpriorit ten an den Master PC damit dieser f r die Befehlsabarbei tung in der korrekte Reihenfolge sorgen kann Der Master PC wird die Client PCs der Reihenfolge nach notifizieren dass diese nun ihren Befehl an das Spielfeld bermitteln k nnen W hrend die Host PCs die Befehle der Spieler an das Feld bertragen wird den Spielern eine bersicht pr sentiert der die Spieler entnehmen k nnen wie weit die Befehlsa barbeitung fortgeschritten ist und wie der Status der andern Roboter aussieht Diese Informationen werden laufend durch das Spielfeld aktualisiert so dass die Spieler nach vollziehen k nnen wodurch beispielsweise Schadenspunkte zustande kommen 4 4 3 3 Abschlu phase Nachdem ein Spieler mit seinem Roboter alle Checkpoints in der richtigen Reihenfolge passiert hat endet das Spiel Die Software fragt die Spieler ob das Spiel in gleicher Zusammensetzung noch einmal gespielt werden soll Best tigen alle Spieler diese Frage werden die Roboter zur ckgesetzt und das Spiel beginnt von neuem Lehnt jedoch nur ein Spieler ab das Spiel zu wiederholen werden alle Spieler benachrich tigt dass das Spiel neu aufgebaut werden
22. Defekte auftreten k nnen und somit keine leitenden Materialien f r diesen Zweck in Frage kommen Au erdem hat es ein geringes Gewicht und ist einfach zu bearbeiten Die gesamte obige Konstruktion bietet eine Befestigungsm glichkeit f r die gro en Pla tinen Sie werden au en an den Winkeln befestigt innen klemmt der Akku in dem U Winkel Auch die Getriebe k nnen ber diese Konstruktion und einen weiteren kleineren L Winkel befestigt werden Anbringen der Kommunikationsschnittstellen Um die Kommunikation mit dem Spielfeld gew hrleisten zu k nnen muss sich der erste Fototransistor genau in der Mitte der Bodenplatte befinden der zweite am vorderen Rand des Roboters vgl 3 4 6 und 3 3 6 3 Da diese zur Kommunikation n tigen Elemente auf einer Lochplatine angeordnet sind ist es einfach sie in die Bodenplatte einzulassen Hierzu bedarf es bei der richtigen Gr e der L cher Durchmesser circa 3 5 mm nicht einmal einer zus tzlichen Befestigung beispielsweise durch einen Kleber 76 3 3 Roboter Einbau der Stromanschliisse Da der Roboter auch ber eine Ladefunktion verf gen soll muss fiir eine Anschlussbuchse im Inneren Platz bleiben Dazu wird in die hintere Halfte der Bodenplatte eine Ausspa rung mit den Ma en 5 mm x 5 mm gefr st Direkt dahinter befindet sich ein Schalter mit dem der Roboter von au en an und ausgeschaltet werden kann Zu dessen Unter bringung wird ein 0 3 cm x 1 2 cm gro es Loch in die Plat
23. Dicke von 6mm haben und sich insgesamt also ein Abstand von 1 2 cm ergibt Dies ergibt folgende Seitenansicht der Box siehe Abbildung 3 68 Weitere Anforderungen sind die L tbarkeit des Materials und die Lochgr e der Un terlegscheibe Bei der Lochgr e ist zu beachten dass sie den Durchmesser der Feder unterschreiten muss Winkel WERNER Winkel Feder Unterlegscheibe Abbildung 3 68 Seitenansicht auf eine Spielfeldbox 124 3 4 Spielfeld 3 4 5 3 Stromversorgung Die Stromversorgung wird iiber den Parkplatz geregelt da alle anderen Spielfeldboxen frei drehbar sein miissen und somit keinen geeigneten Stromanschluss darstellen Hier wird der Strom ber die Winkel verteilt Um die Drehbarkeit der Spielfeldboxen zu garantieren miissen die Winkel mit gleichem Potential diagonal angeordnet und iiber die Platine verbunden werden Dies ergibt folgendes Bild siehe Abbildung 3 69 Abbildung 3 69 Stromversorgung tiber die Winkel 125 3 Hardware 3 4 6 Elektronischer Aufbau der Spielfeldes Zu Beginn der PG musste gekl rt werden welche Anforderungen die Spielfeldboxen zu erfiillen haben Folgende Punkte wurden herausgestellt e Jedes Feld soll 4 LEDs zur Navigation bekommen Diese LEDs sollen mit gleichem Abstand zum Mittelpunkt jeweils in allen vier Himmelsrichtungen platziert werden N heres siehe Kapitel 3 4 7 1 e In der Mitte wird eine Leuchtdiode platziert die sowohl f r die Na
24. Die Spannungsversorgung gestaltet sich hnlich der in den Spielfeldboxen Der Unter schied zur Elektronik in den Spielfeldboxen ist das nur einseitige Routing und die nur einseitige Best ckung mit Bauelementen Der bedrahtete Br ckengleichrichter FBU4A Dio05 wurde durch das Zurechtbiegen der Beine und das flach auf die Platine Legen vom Prinzip her in ein SMD Bauteil gewandelt So konnte der selbe Gleichrichter wie im Spielfeld verwendet werden Die Spannungsregler sind jene welche beim Test der Spannungsversorgung beschrie ben in 3 4 7 4 f r das Feld benutzt wurden Zum einen ist das die SMD Variante des LM1086 Nat05 und der 1 8 V Regler XC6201P162MP Tora Die in den Datenbl ttern vorgeschlagenen Kondensatoren f r die Spannungsregler sind ebenfalls SMDs F r die Kommunikation mit dem Feld wurden zwei Pins des Mikrocontrollers vorgesehen Dabei besitzt einer Interruptf higkeit f r die Clockleitung der Kommunikation und der andere ist ein einfacher IO Pin f r die Daten Vor jeden der beiden Kommunikationspins ist ein Widerstand von 51 Q geschaltet und danach ein Pull Up Widerstand von 4 7 KQ Au erdem ist zum Schutz der Pins jeweils eine Diode in Sperrrichtung zu Masse und eine in Durchlassrichtung zur Versorgungsspannung geschaltet In dem Schaltplan und im Layout im Anhang 6 7 und 6 28 sind mehrere 0 Q Wi derst nde erkennbar Diese dienen nur als Br cken im Layout der Schaltung Zur Kommunikation mit dem PC wird die UARTO
25. Dies ist im Einzelnen die Hardware des Roboters des Spielfeldes und der Schnittstelle zum Host PC Dabei haben diese Komponenten verschiedene Gemeinsamkeiten wie z B der Vorgang des Atzens von Platinen 3 1 Gemeinsamkeiten Die einzelnen Hardwarekomponenten des Roboters des Spielfeldes und der Host PC Schnittstelle haben diverse Gemeinsame Teile Diese sind wie folgt e Erstellen von Platinenlayouts e Atzen von Platinen e Mikrocontroller Diese Teil werden hier im folgenden beschrieben 3 1 1 Erstellen von Layouts Zum Erstellen von Layouts fiir die eigenen Platinen verwenden wir das Programm EA GLE von Cadsoft Hauptgrund dafiir war die Verfiigbarkeit einer Vollversion am Lehr stuhl Au erdem erf llt es alle gestellten Anforderungen f r das Design unserer Platinen Einige Bibliotheken mussten allerdings neu erstellt werden Einige Konventionen m ssen allerdings eingehalten werden damit beim tzen vern nf tige Resultate erzielt werden k nnen e Leiterbahnbreite Die Leiterbahnen sollen mindestens 0 254mm 10mil breit sein Wenn m glich sollten breitere Leiterbahnen benutzt werden e Abstand von Leiterbahnen Der Abstand zwischen zwei Leiterbahnen oder zwi schen einer Leiterbahn und einem anderen Signal soll ebenfalls nicht kleiner als 0 254mm 10mil sein e Lochgr e L cher auch Via und Pads sollen mindestens einen Durchmesser von 0 8mm 32mil haben Abweichungen sind z B bei den Pads f r den Mikrokontrol
26. Diese Spielfeldbox sendet den Befehl an alle seine Nachbarn weiter usw Die Orientierungsbits geben dabei an welche Koordinate sich ndert und ob sie erh ht oder vermindert wird Ihre Belegung und die entsprechende Bedeutung ist der folgenden Tabelle zu entnehmen 1 Bit 2 Bit Beschreibung 0 0 x Koordinate wird verringert 0 1 x Koordinate wird erh ht 1 0 y Koordinate wird verringert 1 1 y Koordinate wird erh ht Zus tzlich zu den Koordinaten speichert jede Spielfeldbox einen so genannten HopCoun ter der die Entfernung zum Parkplatz angibt Dies wird dazu ben tigt um bei einem nicht rechteckigen Spielaufbau den Roboter zum Parkplatz zur ckzuleiten Der aktuelle HopCounter wird in die Init Nachricht aufgenommen den jede Spielfeldbox speichert um eins erh ht und weiterschickt In der Startup Phase kommt es daher h ufig vor dass zus tzliche Init Nachrichten geschickt werden m ssen um die HopCounter aller Spiel feldboxen richtig zu belegen Eine Spielfeldbox die eine weitere Init Nachricht empf ngt ruft ihre CRouting UpdateHopCounter Funktion auf die die folgenden F lle bearbeitet 157 4 Software 1 Fall Eigener Hop Hop in Nachricht HopCounter fiir Nachbarn von dem die Nachricht erhalten wurde auf Hop in Nachricht 1 setzen 2 Fall Eigener Hop lt Hop in Nachricht Der Sender der Nachricht hat einen zu hohen Hop also wird ihm der Eigene Hop 1 zugesendet 3 Fall Eigener Hop gt Hop in Nachr
27. El Misc controls Linker T ADAM H 41 Map AlistingWLPCNetwork map SC Ttext 0x40000200 string Abbrechen Defaults Abbildung 3 3 Keil uVision Linker einstellen 3 1 3 4 Ausfiihrung im Controller Nach dem Kompilieren und Linken des Codes ist eine ausfiihrbare Datei im ELF Format vorhanden Das Flashtool von Philips fiir den LPC2114 2124 ben tigt den Code im hex Format hingegen das Flashtool von ATMEL f r den AT915AM7532 ben tigt den Code im binary Format Das Tool arm elf objcopy kann den ausf hrbaren Code aus dem ELF Format extrahieren und wahlweise im binary oder hex Format speichern arm elf objcopy 0 ihex input elf output hex arm elf objcopy 0 binary input elf output bin 50 3 1 Gemeinsamkeiten Options for Target RAM Device Target Output Listing cc Assembler Linker Debug Utilities Select Folder for Objects Name of Executable LPCNetwork Create Executable obj LPCNetwork J Debug Information Create Batch File Create HEX File I Big Endian C Create Library obj ibLPCNetwork a After Make Beep When Complete I Start Debugging I Run User Program 1 Browse I Run User Program 2 Browse OK Abbrechen Defaults Abbildung 3 4 Keil uVision Hex Ausgabe aktivieren Flashen des Philips LPC2114 2124 Zum Flashen auf den LPC2114 2124 wird das LPC2000 Flash Utility von Philips ben tigt Dieses steht koste
28. Felder Zwei M glichkeiten der Realisierung von festen Verbindungen sind denkbar Die Eine ist eine Kombination von Steckern und Buchsen Hier werden auf jeder Sei te m nnliche wie weibliche Stecker angebracht Durch die Anforderung der beliebigen Zusammensteckbarkeit kann diese Idee nicht realisiert werden da hier zwei Seiten mit weiblichen Steckern nicht kombiniert werden k nnen Daraus ergibt sich dass nur Kontakte verwendet werden k nnen die entweder auf beiden Seiten gleich aussehen oder wie beim Prinzip der Batterie Federn mit Metallplatten kombinieren Es bleiben Federb gelkontakte und Batteriefedern mit zugeh rigen Gegenst cken Diese Art von Kontakten hat das Problem dass die Boxen nicht durch die Kontakte selber zusammengehalten werden Um trotzdem einen guten Halt zwischen den Feldern zu gew hrleisten werden Magnete in die Winkel versenkt siehe Abbildung 3 59 Hierbei m ssen wie in Abbildung 3 65 zu sehen je zwei Magnete pro Winkelseite berein ander gesetzt werden um den ben tigten Druck zwischen den Boxen zu erzeugen In die eine Seite des Winkels werden die Magnete mit der negativen Seite nach au en befestigt Auf der anderen Seite geschieht dies entgegengesetzt Dies garantiert die Drehbarkeit Wird nun eine komplette Spielfeldboxseite betrachtet ergibt sich das in Abbildung 3 66 zu sehende Bild 122 3 4 Spielfeld amp wWinkel 4 S Abbildung 3 65 Polung der Magnete in einem
29. Flag gibt an ob der Roboter der das Feld betreten will in der Lage ist einen anderen zu schieben oder zum Beispiel einen Rammbock hat und dadurch Schaden zuf gt HandleQuery wird in allen Zust nden ausser im Init Zustand aufgerufen HandleQueryResponse wird in allen Zust nden ausser im Init Zustand aufgerufen Gesendet wird eine solche Nachricht nach einem Query also als Antwort ob der Roboter das Feld betreten darf Zuerst wird festgestellt zu welchem Query diese Response geh rt um abh ngig davon weitere Schritte einzuleiten HandleOrder Wird aufgerufen wenn der Roboter einen Befehl ausf hren soll Dreh Befehle k nnen sofort zum Roboter geschickt und ausgef hrt werden w hrend Bewegungsbefehle zuerst zu einem Query f hren Der Befehl kann erst ausgef hrt werden wenn klar ist dass das Zielfeld existiert und frei ist Die Ausf hrung des Befehls findet erst statt wenn die QueryRespnse eingetroffen ist HandleFactoryElement Wird nur im Zustand Normal aufgerufen Es werden nach einander die Fabrikelemente Expre f rderband F rderband Schieber Zahnrad Presse ausgef hrt Im Roboterstate wird vermerkt welche Stufen er bereits abge arbeitet hat so dass keine mehrfach durchlaufen wird 164 4 3 Protokoll Stack HandlePressureBeam Wird nur im Zustand Factoryelement ausgef hrt Hat ein Ro boter die Optionskarte Hochdruckstrahl so wird dieser jetzt eingesetzt HandleTractorBeam Analog zu HandlePressureBeam H
30. Genauigkeit erzielen Auch hier k nnten wieder Zwischenr ume entstehen die der Roboter berwinden m sste 3 4 1 2 Parkplatz In der deutschen Ausgabe des Spiels starten alle Roboter auf einem Feld siehe AMI99 Dies wird so umgesetzt dass nacheinander die Spieler in Reihenfolge der Priorit ten auf den Programmkarten die Roboter auf das Feld setzen F r die RgD3 Realisierung ist das nicht die optimale L sung Deswegen wird an dieser Stelle teilweise auf die englische Spielversion zur ckgegriffen In dieser Version existiert ein gesonderter Startspielplan Wiz05 Das bedeutet dass am Anfang jedes Spiels jeder Roboter auf seinem ausge wiesenen Spielfeld stehen kann und so von einem anderen Spielfeld startet So gibt es nicht das Problem dass jeder Spieler seinen Roboter zu einem bestimmten Zeitpunkt auf dem Spielfeld platzieren muss Die Ausf hrung des Programms muss also in keiner Weise vom Spieler durchgef hrt werden Allerdings wird auf diese Weise ein Teil der An fangsspannung aus dem Spiel genommen Deshalb k nnen die Vorteile beider Varianten folgenderma en miteinander kombiniert werden Es gibt einen gesonderten Parkplatz f r die Roboter siehe Abb 3 57 Auf diesem werden am Anfang des Spiels die Roboter plat ziert Dabei wird jeder Roboter gem seiner Spieler ID auf dem Feld mit der jeweiligen Ziffer platziert Au erdem gibt es noch den richtigen Startpunkt f r das Spiel Nachdem die Spieler ihr jeweiliges Programm au
31. LEDs Taster f r die Check points und die Fototransistoren incl Verst rkerschaltung enthalten Weiterhin sollen zwei 40 polige Buchsen die Schnittstelle zu der TTL CPLD Platine bilden 128 3 4 Spielfeld 3V3 19 Om 3V3 3V3 5 Op 3V3 3V3 3 O O 3V3 3V3 O O 3V3 ss O Os 3 O Os GND ss O Ou GND GND ss O Os GND a O Oxz a e e S3 10 0 54 A Blick von oben auf die Spielfeldplatine LED35 O Ow LED34 00 LED33 2 O O LED32 S11250 O 26 S2 Abstand zwischen den Mittelpunkten der Stecker Spielfeldplatine LED31 2 O 2 LED30 LED15 2 O Ow LED14 82 mm LED29 2 O O LED28 LED13 20 O 2 LED12 LED27 2 LED26 LED11 19 O Ow LED10 LED25 19 O O LED24 LEDO9 7 O O 16 LEDO8 LED23 v O O w LED22 LEDO7 15 O Ow LEDOG LED21 1s O O 1 LED20 LEDOS is O O 14 LEDO4 LED19 19 Ow LED18 LEDO3 n Ow LEDO2 LED17_ u O O LED16 LEDO1 0 O Ow LEDOO T8 O Ow LEDM8 amp O T3 o O O LEDM3 T7 7 O Ow LEDM7 T2 o O O o LEDM2 T6 o O O o LEDMG a 2 mag Oo LEDM1 T5 os O Oo LEDMS O TO e O Oo LEDMO T4 o O Ow LEDM4 5 Saga ey g SR zt a4 6 fuer 23258 B Bees Seres ALP RR CR SCN NTR BANS A Sa CAT aAARA ZArosersreroraoraraosrrcorooos 0O 00600006000006006006000000000 wo E geet e mae eet ee DE mei dee ee E eseoneemnner ean Zar Ss sg See ee ee e OFaacadca LLL 33 23 9866 46 aa Zauuruond ES SS ww OO ZJEJEX a Jk Mikroc
32. Lage der Pins die k rzere Leitungen und weniger Durchkontaktierungen erlaubt Beide Bausteine k nnen horizontal zentriert zwischen Controller und Schnittstelle platziert werden Als Folge hat sich nicht nur der Platzbedarf inklusive Leitungen minimiert sondern auch die Anzahl der Durchkontaktierungen ist geringer als auf der Nebenplatine Anordnung der Kommunikation Dank der flachen Bauweise der daf r notwendigen Komponenten kann die Kommunika tion die Unterseite der Platine mitnutzen W hrend die LED Schaltung nur aus dem daf r vorgesehenen Widerstand besteht sind die Transistorschaltungen mit mehreren Widerst nden ausgestattet Eine Erg nzung mit 0 Q Widerst nden vereinfacht hinterher eine Anpassung des Steuergesamtwiderstandes da eine Reihe von Widerstandswerten nur durch zwei in Reihe geschalteten Widerst nden realisiert werden kann die 0 Q Widerst nden k nnen falls eine nderung sp ter n tig sein sollte durch einen anderen Wiederstand ersetzte werden 87 3 Hardware 3 3 6 6 Herstellen der Platinen Die Besonderheiten der Platinen stellen einige Herausforderungen an die Produktion Die in 3 1 2 angesprochene M glichkeit extern hergestellte Folien zu nutzen ist hier wegen der sehr d nnen Leiterbahnen dringend zu empfehlen da ein ordentliches tzen in dieser Gr enordnung mit den vom vorhandenen Drucker hergestellten Vorlagen fast unm glich ist Auch das Best cken stellt sich kompliziert dar Die
33. PCs Diese werden von der Routing Schicht wie ein weiterer Spielfeld Boxen interpretiert Hinzu kommt jedoch dass sich die Hosts beim Parkplatz zuriickmelden Der erste Host der sich beim Parkplatz zur ckmeldet wird als Master ausgezeichnet Dieser Host PC bernimmt die oben beschriebenen notwendigen zentralen Aufgaben Sobald sich alle vier Host PCs zur ckmelden oder ein Timer abl uft wird der Spieler der den Master stellt dazu aufgefordert in aufsteigender Reihenfolge nacheinander die Checkpoints auf dem Spielfeld zu verteilen Sobald der Spieler best tigt das er alle Check points platziert hat ist die Initialisierungsphase abgeschlossen L uft der Timer ab bevor sich alle vier Host PCs zur ckgemeldet haben wird die Spielerzahl auf die Zahl der bis dahin zur ckgemeldeten PCs gesetzt Wenn sich kein oder nur ein Spieler zur ckmeldet wird der Timer neu gestartet 4 4 3 2 Spielphase Sobald die Initialisierungsphase abgeschlossen ist startet die Spielphase Den Spielern wird eine Programmoberfl che pr sentiert die alle wichtigen Informationen f r den n chsten Zug anzeigt e Die zur Verf gung stehenden Programmierkarten e die Programmslots f r die Karten die im n chsten Zug verwendet werden e den Status ob und welche Karten bereits festgebrannt sind 167 4 Software e den Button um den Roboter fiir die n chste Runde abzuschalten und e Informationen ber Erlittene Schadenspunkte verbliebene
34. Programmierhilfe auf den ersten Befehl Danach darf das Programm nicht mehr ver ndert werden In der ersten Runde m ssen die ersten Befehle aller Spieler eine Vorw rts oder R ckw rtsbewegung sein 24 2 1 Das Spiel im Original Ablauf des Programms Der Programmablauf sieht vor dass alle Spieler ihre erste Karte aufdecken derjenige Ro boter dessen Programmnummer die h chste ist beginnen darf und dann alle anderen in absteigender Reihenfolge ihren Befehl ausf hren d rfen Danach treten alle Fabrikele mente in Aktion Erst dann drehen alle ihre zweite Programmkarte um und verfahren wie im ersten Schritt Nachdem alle Fabrikelemente nach Ausf hrung der letzten Befehle in Aktion getreten sind werden alle Programmkarten neu gemischt und neu verteilt Befehle ausf hren Beim Ausf hren der Befehle k nnen folgende Ereignisse eintreten Ein Roboter schiebt einen anderen Roboter st t gegen eine Wand f llt in eine Grube bewegt sich vom Spielplan bewegt sich auf einer llache bewegt sich auf ein Portal bewegt sich in einen Brenner hinein oder bewegt sich durch eine Schwingt r e Da immer nur ein Roboter auf einem Feld stehen darf schiebt ein Roboter der auf ein Feld ziehen will das bereits von einem anderen Roboter besetzt ist diesen vor sich her unabh ngig von der Richtung in die der andere Roboter gerade zeigt e St t ein Roboter gegen eine Wand so wird seine Bewegung blockiert und er kommt vor der Wand z
35. Programmierkabel ist ebenfalls mit relativ hohem Auf wand und auch einigen Kosten verbunden so dass die dritte M glichkeit die Einfachste darstellt Dazu muss allerdings zus tzlich das Programm JTAG Programmer Version 7 1 welches in alten Versionen des WebPacks bis 4 3 enthalten ist installiert wer den Ein Programmieren des CPLD direkt mit der neuen Software ist damit nicht mehr m glich Die Programme k nnen nun mit dem ISE Webpack geschrieben und compiliert werden und anschlie end mit dem JTAG Programmer auf den CPLD geschrieben werden In formationen zur Programmierung sind unter Xil02b Xil02a und Xil99b zu finden Besondere Einstellungen m ssen nicht vorgenommen werden 3 4 7 4 Spannungsversorgung Die Spannungsversorgung einer Spielfeldbox geschieht ber die Winkel siehe Abschnitt 3 4 3 2 im mechanischen Aufbau An diesen soll eine Gleichspannung anliegen Da die Spielfl che variabel aufbaubar sein sollte sind jeweils zwei diagonal gegen ber liegen de Winkel elektrisch miteinander verbunden Die zwei resultierenden Potentiale liegen wiederum an einem Br ckengleichrichter an Somit k nnen die Potentiale durch das Dre hen der Spielfeldbox vertauscht werden und der Br ckengleichrichter liefert eine richtig gepolte Spannung f r den Spannungsregler Aufgrund der Dioden im Br ckengleichrichter ist aber das Massepotential hinter dem Briickengleichrichter ein anderes als das der eingespeisten Gleichspannung Daraus
36. RgD3 vorgestellt Es verwendet die bereits beschriebene koordinatensystembasierende Struktur in der das Routing mittels euklidischem Abstand erfolgt Die Implementierung des Protokolls wurde in C vorge nommen so dass sie problemlos auf der Zielhardware zum Einsatz kommen kann Die Abbildung 4 2 zeigt den Header des Routing Layers in dem alle Funktionsdeklara tionen stehen Die drei obenstehenden Funktionen CRouting_getAdress CRouting_set Adress CRouting_ErrorFromComLayer stehen als Interface f r die Interaktion mit dem bergeordneten bzw untergeordneten Layer zur Verf gung e CRouting_getAdress wird aufgerufen wenn der Low Level Layer eine Nachricht empfangen hat Die Funktion beginnt damit die Nachricht zu parsen und ihre Daten in dem Datentyp struct Routing_Message zu speichern den die weiteren Funktionen als Eingabeparameter akzeptieren Abh ngig von Nachrichtentyp und Koordinaten wird folgendes getan 1 Init Nachricht Wenn noch nicht initialisiert CRouting_init aufrufen sonst CRouting_UpdateHopCounter 2 BroadcastNachricht CRouting_HandleBroadcastMessage wird aufgerufen 3 Zielkoorindaten liegen in eigenem Koordinatenraum Nachricht an den ber geordneten Layer weiterleiten 4 sonst Nachricht an Nachbarn mit geringstem Abstand zum Ziel weiterleiten CRouting_sendToNearestNeighbor e CRouting_set Adress wird aufgerufen wenn der bergeordnete Layer eine Nachricht schicken m chte Dabei wird nach folgenden Kr
37. Schnittstelle des Mikrocontrollers benutzt Dabei wurden nur die Pins RxD0 Seriell Input und TxD0 Seriell Output be nutzt Die Pegel des Mikrocontrollers werden durch den RS232 Pegelwandler ICL3232CB Int02 umgesetzt Die serielle Schnittstelle wird zus tzlich zur Programmierung des Mikrocontrollers be nutzt Dazu ist ein SMD Jumper vorgesehen mit dem zwischen ISP In System Pro gramming Modus und normalem Betrieb umgeschaltet werden kann Weiterhin ist eine Stiftleiste mit zwei Pins Masse und RST f r die Beschaltung mit einem externen Re settaster vorgesehen Ansonsten wird der Reset beim Anlegen der Versorgungsspannung durch einen Kondensator zwischen dem RST Pin und Masse generiert 3 6 3 Programmierung Die Programmierung geschieht wie erw hnt ber die serielle Schnittstelle Dabei soll das Progamm zum einen aus der Implementierung der seriellen Schnittstelle des Mikrocon trollers bestehen zum anderen beinhaltet das Programm das Kommunikationsprotokoll f r die Spielfeldboxen Dadurch sollen Nachrichten die vom Host PC empfangen wer den an die Spielfeldboxen weitergegeben werden Aber auch die andere Richtung vom Spielfeld zum PC soll m glich sein siehe auch 3 2 2 147 4 Software 4 1 Einleitung In diesem Kapitel wird die Software beschrieben die bei R3D3 zum Einsatz kommt Zun chst werden kurz die Anforderungen aufgelistet die zum Design der eingesetzten Architektur gef hrt haben und ein berblick ber
38. Software Architektur Abb 4 1 kann grob in zwei Bereiche eingeteilt wer den WXSplashScreen WXProgrammScreen 2 t i WXOverviewScreen WXEndScreen i WXWindowController Host Architektur R3D3 Client RoboterStatus Master CJob CScheduler Kommunikations Architektur Y y CStatemachine CRouting CCom_Interface CMessages Abbildung 4 1 Architektur berblick 150 4 3 Protokoll Stack e Die Host Architektur die nur in den Host PCs zum Einsatz kommt und e die Kommunikations Architektur die zumindest in Teilen in allen Komponenten zu finden ist Die Kommunikations Architektur bildet die Grundlage fiir den Nachrichtenaustausch zwischen den Komponenten Dieser Teil der Architektur wird in allen Komponenten in entsprechend modifizierten oder eingeschr nkten Varianten wieder verwendet Der in dieser Architektur verwendete Protokoll Stack wird in Abschnitt 4 3 ausf hrlich beschrie ben Die Host Architektur umfasst sowohl die GUI Klassen die f r die Interaktion des Spieles mit dem Benutzer verantwortlich sind und in Abschnitt 4 4 4 beschrieben sind als auch die Strukturen f r die Applikationslogik die in den Hostsystemen abl uft Die R3D3 Klasse bildet d
39. Winkel Abbildung 3 66 Polung der Magnete fiir eine Spielfeldseite 3 4 5 2 Kontakte zur Ubertragung der Kommunikation F r diese Kontakte k nnen nur Federb gelkontakte und Batteriefedern verwendet wer den da die Realisierung von Steckern Buchsen wie oben beschrieben nicht m glich ist Um die Drehbarkeit der Spielfeldboxen zu gew hrleisten werden zur Realisierung der Daten und Takt Leitungen insgesamt 4 Kontakte ben tigt Ein passender Federb gelkontakt ist der Kontakt von Elco mit einer Gr e von 1cm x 0 8cm x 5 5mm zu sehen in Abbildung 3 67 Er besitzt 4 Kontakte je Einheit mit einem Abstand von 1 1mm Auf jeder der Seitenplatinen wird ein Elco Kontakt angel tet Hier ergibt sich das Problem dass es bei geringer Verschiebung der gegen berliegenden Kontakte zu ein Kurzschluss kommen kann Zus tzlich haben sich die Federb gel des Kontaktes als nicht widerstandsf hig genug erwiesen 123 3 Hardware Abbildung 3 67 Federbiigelkontakt von Elco Weitere fiir uns passende Kontakte sind die Batteriefedern von Conrad Diese sehr sta bilen Federn haben eine H he von 1 1cm Um diese Federn zu verwenden zu k nnen werden auf Grund der Anforderung der Drehbarkeit der Spielfelder pro Seitenfl che 2 Federn angel tet Eine Feder dient als Daten Leitung und die andere als Takt Leitung Um den Kontakt zum anderen Spielfeld herzustellen muss eine Unterlegscheibe als Ge genst ck verwendet werden da die Winkel eine
40. abwechselnde Motoransteuerung fiir den Menschen trotzdem eine gleichm ige Bewegung wahrnehmbar Genau dies setzen die Funktionen der Zwischenebene unter Angabe einer Motor drehschrittanzahl um Oberste Ebene Steuerung des Roboters Auf der obersten Ebene wird der Roboter als Einheit gesteuert Dazu werden Pro zeduren zur Verf gung gestellt die echte spielelementare Bewegungen erm glichen Gem der Spielanforderungen sind dies Routinen zur e Vorw rtsbewegung e R ckw rtsbewegung e Linksdrehung sowie e Rechtsdrehung Um alle Spielz ge hiermit direkt umsetzen zu k nnen wird den Routinen ein An zahlparameter bergeben Spielz ge a la zwei Felder vor lassen sich alternativ aus zwei elementaren ein Feld vor Anweisungen zusammensetzen usw Diese Entscheidung bietet zudem gr te Flexibilit t bzgl der Nutzung und Ak tivierung von Fehlerkorrekturalgorithmen wie in 3 3 7 7 beschrieben Sie kann so etwa an jeder LED eines Spielfeldes an jedem Spielfeld oder gar erst zum Ende jedes Spielzuges zum Einsatz kommen Es sind verschiedene Korrekturen denkbar z B kleinere Korrekturen an den LEDs w hrend der Fahrt gr ere erst an der LED zum Ende des Spielzuges Abgesehen von der Fehlerkorrektur ist die Umsetzung der Bewegung trivial Es sind lediglich die entsprechenden Funktionen der Zwischenebene mit der zu erwartenden Schrittanzahl aufzurufen welche im folgenden Abschnitt n her untersucht wird Hinzu komme
41. darin mit Spielfiguren die als Roboter gestaltet sind auf einer Spielfl che eine Folge von Zielpunkten anzusteuern Die Spielfiguren k nnen mit Anweisungskarten von den Spielern zu Programmen zusammengesetzt gesteuert werden Diverse Elemente der Spielfelder wirken auf die Roboter Spielfiguren ein so gibt es Transportb nder Mauern und verschiedene sch di gende Elemente Die Roboter k nnen sich auch gegenseitig besch digen wodurch jeweils die F higkeit zur Programmausf hrung beeintr chtigt wird Durch die Vielzahl der aktiven Spielfeldelemente und die unvorhersehbare Reihenfolge in der Anweisungskarten gezogen werden bietet das Spiel durch alle Runden hinweg viele berraschungsmomente wodurch den Spielern die F higkeit zur st ndigen Anpassung ihrer Strategie und der fortw hrenden Absch tzung der Aktionen anderer Spieler ab verlangt wird Diese begrenzte Unvorhersagbarkeit des Spielgeschehens und die Freude ber eine richtig abgesch tzte Ausf hrung der Programme aber auch Schadenfreude bei Missgeschicken anderer Mitspieler sind sicherlich die Hauptgr nde f r eine heitere und angenehme Spielatmosph re Gegen ber der klassischen Implementierung der Spielidee bestehend aus einem Papier spielbrett und den blichen Kunststofffiguren gibt es die M glichkeit das Spiel als eine Softwarel sung umzusetzen 13 1 Einleitung Obwohl dies die nahe liegendste L sung w re erf llt sie doch schlicht einig
42. der Ein Antriebsrad analog zum Fahrrad oder Motorrad macht eine Lenkung erforderlich Da zudem keine Drehung auf einem Punkt m glich ist sind Antriebe dieser Kategorie f r die Spielroboter ungeeignet Bei zwei Antriebsr dern sind Varianten mit oder ohne Lenkung denkbar und je nach Positionierung der Antriebsr der gibt es auch L sungen die eine Drehung auf einem Punkt erm glichen Hierzu m ssen beide R der an der Mittelachse des Roboters an gebracht sein Dieser darf keine weiteren richtungsbeeinflussenden Komponenten haben wie beispielsweise passive R der eines Pkw sondern lediglich Gleiter oder frei drehbare St tzr der Da letztere zu Irritationen in der Bewegung des Roboters f hren k nnen hnlich den frei drehbaren Vorderr dern eines Einkaufswagens sind Gleiter zu bevorzu gen Drei oder mehr Antriebsr der k nnen allein aus Gr nden mangelnder Raumkapazit t und begrenzter Energiereserven nicht zum Einsatz kommen Ein Roboter basierend auf einer mittelachsangetriebenen zweimotorigen Fortbewegung mit St tzgleitern vorne und hinten erscheint viel versprechend Dabei sind zwei Motoren notwendig da die Antriebsr der sowohl in die gleiche zum Vorw rts und R ckw rtsfah ren als auch in unterschiedliche Richtungen zum Links sowie Rechtsherumdrehen auf einem Punkt laufen k nnen m ssen Eine einmotorige getriebegest tzte L sung fand bisher keinen Einzug in die Standards der Robotik 3 3 2 2 Motoren Insbes
43. des SpielfeldS 2 2 2 2 2 nn nn n o 195 Abbildungsverzeichnis 2 1 2 2 2 3 2 4 2 5 2 6 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 3 21 3 22 3 23 3 24 3 25 3 26 3 27 3 28 3 29 3 30 Ein Spielplan der Version 2009 2 222 nn 22 Ein Roboter der deutschen Spieleversion 23 Die Programmierkarten der Version 2005 24 24 Die Roboter der Version 2005 2 2 22 En nn nn 32 Docking Bay Board Seite le 33 Docking Bay Board Seite 2 2 CC Con nen 33 Keil uVision Neues Projekt anlegen 49 Keil uVision GNU Tools einstellen 2 2 2 2 o nennen 50 Keil uVision Linker einstellen 22 2 a 50 Keil uVision Hex Ausgabe aktivieren 51 Hauptfenster des LPC2000 Flash Utility 2 2 2 2 2 nn 51 Uploadfenster f r den Flashspeicher 2 2 2 22 nn nn 52 Auswahlbildschirm des SAM BA Flash Tools 53 Fehlermeldung des SAM BA Flash Tools 2 2 2222 53 Hauptbildschirm des SAM BA Flash Tools 2 2 2 2 2222 54 Lock Warnung des SAM BA Flash Tool 55 Schema der Kommunikationsverbindungen Box Box TODO DIODEN 55 Ergebnisse des Oscillographentests 2 22 2 2 nn eee 56 Schematische Darstellung einer H Br cke 67 Anschluss eines Schrittmotors am L293D Quelle B 06a 67 Komponenten bersicht Roboter 73 Grundriss der Bodenplatte mit
44. die Akkuspannung lediglich direkt auf der Nebenplatine verfiigbar ist ist ein Span nungsteiler ebenfalls hier zu platzieren Dieser erm glicht das Messen der Akkuspannung mit dem Mikrocontroller dessen Messbereich durch die Referenzspannung des Festspan nungsreglers begrenzt ist 83 3 Hardware Er besteht lediglich aus zwei hochohmigen Widerst nden wodurch der Stromverbrauch minimiert wird Beide sind mit 1 MO gleich grof gew hlt damit zwischen den Wi derst nden gegen ber Masse genau die halbe Akkuspannung gemessen werden kann Diese halbierte Akkuspannung ist zu einem Eingang des A D Wandlers des Mikrocon troller zu fiihren Motorsteuerung Schon in 3 3 6 2 wird deutlich dass es giinstig ist eine Motortreibereinheit auf der Ne benplatine zu platzieren Diese besteht aus zwei HIP4020 Bausteinen Da diese jedoch am Ausgang ungef hr 3 V liefern die Motoren hingegen nur 1 96 V ben tigen ist eine Spannungsreduktion per Widerstand wie in 3 3 3 2 schon erl utert notwendig Der Motor braucht also 1 96 V bei 140 mA und hat dementsprechend einen Widerstand von U Motor 1 96V R 140 Motor Totor l4OMA Nach der zweiten Kirchhoffschen Regel Maschenregel muss sich die Spannung propor tional zum Widerstandswert auf alle in Reihe geschalteten Widerst nde verteilen in Summe der Gesamtspannung Uges entsprechend Dabei ist der Stromfluss durch alle Widerst nde gleich gro So muss f r einen vorgesc
45. f r die Schnittstelle zwischen Host PC und Spielfeld ist fertig und ein ein zelnes Exemplar ist bereits hergestellt 5 1 2 Software 5 1 2 1 Protokoll Stack Der Protokoll Stack ist vollst ndig implementiert und in einer k nstlichen Testumgebung erfolgreich getestet worden Die Kommunikation der Spielfeldbausteine wurde in der Testumgebung dadurch simuliert dass die Low Level Schicht durch eine Implementierung auf Socket Basis ersetzt wurde Das Protokoll zur Low Level Kommunikation der Spielfelder untereinander und mit dem Roboter ist ebenfalls implementiert und einsatzf hig 5 1 2 2 Host Applikation Der Schwerpunkt der Aufgaben f r dieses Semester lag vor allem bei der Kommunika tionsprotokoll Entwicklung und dem Design von Hardware so dass im Bereich des Host nur kleine Fortschritte gemacht wurden So ist die GUI Schicht der Host Architektur bis auf den Abschlussbildschirm unter Verwendung der wxWidgets Bibliotheken fer tig implementiert worden Es fehlt jedoch noch die Anbindung an die unterliegende Kommunikations Architektur und die Applikationslogik f r den Spielablauf 5 2 Ausblick 5 2 1 Hardware 5 2 1 1 Roboter Das Team B dass sich mit dem Fertigen der Roboter besch ftigt muss im n chsten Semester vier Roboter herstellen Dabei kann der in diesem Semester gefertigte Roboter mitbenutzt werden F r alle der vier Roboter muss noch ein Geh use entwickelt werden das sowohl optischen als auch funktionalen Anspr che
46. f r eine ganze Runde einplanen kann 2 2 3 Verwendete Neuheiten aus Robo Rally 2005 Die Version 2005 sieht ein Docking Bay Board als Startplatz f r die Roboter vor Diese Art Parkplatz wird auch in der Realisierung vorgesehen Weitere Einzelheiten sind in Abschnitt 3 4 1 2 zu finden Des Weiteren wird die Idee der F hnchen als Checkpoints bernommen Diese sind auf ei nem solch gro en Spielfeld wie es konstruiert wird viel besser zu erkennen Detailliertere Ausf hrungen sind in Abschnitt 3 4 4 3 zu finden 2 3 Das RgD3 Design F r einen korrekten Spielablauf ist eine zentrale Instanz n tig die als eine Art Schieds richter fungiert Zu Beginn des Spiels wird auf dynamische Weise ein Host bestimmt der Master wird Dieser st t die Befehlsverarbeitung an und bestimmt wer welchen Befehl ausf hren darf Hierbei sind die Hauptaufgaben die Synchronisation und Kon sistenzhaltung Letzteres bedeutet dass beispielsweise sichergestellt werden muss dass alle Befehlskarten und Optionskarten im Spiel nur einmal existieren d rfen Der Master 34 2 3 Das RgD3 Design teilt in jeder Runde die Karten aus und muss au erdem daf r sorgen dass die Fabrik elemente parallel abgearbeitet werden Die restlichen Host sind Clients und werden vom Master angesto en die Befehle auszuf hren Das jeweilige Spielfeld auf dem der Roboter des Hosts steht sendet die Befehle an den Roboter weiter Auf die selbe Weise teilt ein Spielfeld dem Ho
47. geschieht in der main Funktion vgl Abb 3 33 Dabei wird anhand der Nachrichtenidentifikationsbits der auszuf hrende Befehl decodiert und anschlie end der zugeh rige Parameter aus den Datenbits berechnet z B die Anzahl der Felder bei einer Vorw rts oder R ckw rtsbewegung Die Robotersoftware kennt neben Bewegungsbefehlen eine Identifikationsanforderung die automatisch durch die Empfangsbest tigung bedient wird Es verbleibt die Ausf hrung der Bewegungsbefehle n her zu betrachten MDies ist insbesondere dann wichtig wenn das Spielfeld den Roboter aufgefordert hat das Spielfeld zu verlassen da es sonst nicht wei dass der Roboter dennoch auf ihm stehen geblieben ist 99 3 Hardware 3 3 7 6 Motorsteuerung Robo h void robo_forward int fields void robo_backward int fields void robo_left int turns void robo_right int turns Motor h void motor_steps_forward int steps void motor_steps_backward int steps void motor_turns_left int turns void motor_turns_right int turns Hip h void hip_enable void hip_disable void hip_init void hip_left_step_cw void hip_left_step_ccw void hip_right_step_cw void hip_right_step_ccw Abbildung 3 38 Motorsteuerung Funktionen bersicht Die Bewegungen des Roboters also genauer die Ansteuerungen der beiden Motoren die den Roboter fortbewegen werden in drei Ebenen realisiert vgl Abbildung 3
48. implementiert werden Schlie lich werden die Spielfiguren eine gewisse abstrakte Steuerlogik besitzen die sie auf Anforderungen reagieren l sst Beispielsweise ist hier die Verarbeitung von Kommandos wie Fahre ein Feld vor und hnlichen notwendig Die Mikrocontroller werden ohne jegliches Betriebssystem ausgeliefert so dass eine struk turierte Implementierung der Software Aspekte der Betriebssystementwicklung aufweisen wird F r die Navigation wird auf Methoden aus der Robotik zur ckgegriffen und f r die Kommunikation muss ein Protokollstack entwickelt werden Eine zuverl ssige und flexible Implementierung wird durch den Gebrauch von Methoden aus dem Bereich des Protocol Engineering gepr gt sein 15 1 Einleitung 1 2 1 2 Spielfl che Ahnlich gestalten sich die Aufgaben bei der Entwicklung der Spielfl che Die Spielfl che soll aus Bl cken zu jeweils 3x3 Spielfeldern zusammengesetzt werden Es werden minde stens 16 derartiger Bl cke ben tigt um eine dem Originalspiel entsprechende Spielfl che von 12x12 Feldern zu bieten Ein Spielfeld soll eine Kantenl nge von 5 cm aufweisen Der mechanische Aufbau der Spielfl che ist jedoch wesentlich einfacher als der der Spielfi guren da keine beweglichen Teile ben tigt werden Jedoch muss ein Block an vier Seiten Kontakte f r Stromversorgung und Kommunikation bereitstellen F r die Kommunikation soll ein serielles Protokoll verwendet werden so dass die Anzahl der Kont
49. in die Reali sierung aufgenommen werden 33 2 Das Spiel 2 2 1 Verwendete Varianten In Abschnitt 2 1 6 wurde erw hnt dass es mehrere Varianten gibt mit denen man Ro bo Rally spielen kann Von diesen wird die Variante Roboter besitzen Laser in die Realisierung bernommen 2 2 2 Optionskarten Bei einigen Optionskarten werden da der Spielfluss nicht st ndig unterbrochen werden soll Entscheidungen ber bestimmte Optionskarten bereits im Vorhinein der Runde von den Spielern festgelegt werden m ssen Dies wird bei der Optionskarte Bremsen Vier ter Gang und R ckw rtsbeschleunigung der Fall sein Der Spieler legt vor Beginn der Runde fest bei welcher Karte er gegebenenfalls bremsen vier statt drei Schritte vorw rts gehen oder zwei statt einem Schritt r ckw rts gehen m chte Um h ufige Unterbrechungen des Spiels zu vermeiden werden die Karten Befehl in Reserve Zielkontrolle Notschalter Schutzschirm Drehscheibe von uns nicht bernommen Die Spieler d rften bei den letzten drei Karten laut der Robo Rally Re geln nach jedem Schritt entscheiden ob sie diese im n chsten Schritt verwenden m chten oder in welche Richtung sie die Karte verwenden m chten Optional werden die Karten Turbo Blaster Krabbenbein Dualer Prozessor ein gebunden Beim Turbo Blaster wird dann die Benutzung auf 3 Runden beschr nkt da man diesen jeweils nur
50. initialisiert die Befehle geroutet die Ro boterbewegungen koordiniert und die PC bzw Konsolenansteuerung realisiert werden Entsprechende Programme m ssen also hinterlegt und ausgef hrt werden wof r entspre chender Ressourcenbedarf zu ber cksichtigen ist Weiterhin muss die Feld zu Feld Kommunikation umgesetzt werden wof r entsprechende Kommunikationsperipherie n tig ist Auch um Befehle an die Roboter zu senden werden Kommunikationskan le n tig sein Hier sind LEDs mit entsprechenden Foto Transistoren im Roboter vorgesehen bei 5 Steuer LEDs pro Feld und 9 Feldern pro Block erg be sich ein Ansteuerungsbedarf von 45 LEDs vgl Abschn 3 4 6 Die Grenzen bez glich Abmessung und Stromverbrauchs sind sehr weit gefasst da bei dem station ren Feld 15 cm x 15 cm zur Verf gung stehen vgl Abschn 1 2 1 2 und auf Netzstrom zur ckgegriffen werden kann Zur einzigen Einschr nkung k nnte die Bel ftung werden der Controller darf also keine zu gro e Leistungsaufnahme haben da die aufgenommene Energie komplett in Form von W rme wieder abgegeben werden muss Unter den Spielfeldbl cken nimmt der Parkplatz vgl Abschn 3 4 1 2 eine besondere Rolle ein Er ist als zentrale Steuereinheit f r die Initialisierung des Spielfeldes zust ndig 40 3 1 Gemeinsamkeiten und hat weitere zus tzliche Aufgaben die ber die Funktionalit t eines normalen Spiel feldblocks hinausgehen vgl Abschn 4 2 1 Um allerdings Homogenit
51. k nnen So m ssen pro Motor mindestens vier Anschl sse belegt werden Damit der Rotor sich schlie lich Schritt f r Schritt fortbewegt sind zudem spe zielle Folgen von Polarit tsmustern abzuarbeiten Da aber die Motoren ber einen Mikrocontroller anzusteuern sind k nnen die entspre chenden Polarit tsmusterfolgen leicht als Bitmusterfolgen realisiert werden Dabei l uft 63 3 Hardware die Ansteuerung wie bei Getriebemotoren ber Motortreiber wobei sich lediglich die Anzahl der ben tigten Bausteine vergr ert Der Enable Eingang ist nun nicht mehr mit einem PWM Signal zu betreiben sondern er dient lediglich dem Ein und Ausschalten der Motoren Die Geschwindigkeit der Mo tordrehung wird ber die der nderungen der Bit bzw Polarit tsmuster bestimmt Schrittmotoren bieten also f r pr zise Steuerungen wesentlich bessere M glichkeiten als Getriebemotoren 3 3 2 3 Mikrocontroller Die Steuerung eines Roboters wird von einem Mikrocontroller realisiert Fine Auswahl interessanter Mikrocontroller ist im Abschnitt 3 1 zu finden Hier folgt eine Analyse der in Robotern blicherweise verwendeten Controller Bei den Baus tzen und fertigen Robotern dominieren zwei Prozessorfamilien den Markt Im unteren Preissegment werden Prozessoren der ATMega Familie von Atmel eingesetzt z B im Asuro oder Crash Bobby BSW06 Dabei handelt es sich um kosteng nstige 8 Bit RISC Prozessoren die f r einfache Anwendungen gen ge
52. lebendig geblieben ist In den Vereinigten Staaten von Amerika erschien Robo Rally im Jahre 1994 im Verlag Wizards of the Coast und 1999 kam es dann auch nach Deutschland vertrieben von der Amigo Spiel und Freizeit GmbH Bald gab es Erweiterungen f r das Basisspiel Die Erste Crash and Burn genannt wurde in den USA 1997 und im Jahr 2000 dann auch in Deutschland ver ffentlicht allerdings in einer etwas ver nderten Variante Kurz darauf waren dann in englischer Sprache die Spiels tze Armed and Dangerous Grand Prix und Radioactive erh ltlich Da das Spiel in Deutschland nicht den gew nschten Absatz hatte gab es die S tze ausschlie lich f r den amerikanischen und englischen Markt Da die gesamte Produktion des Spiels irgendwann eingestellt wurde ist es heute schwerer denn je noch Spiele der alten Generation zu bekommen Im Jahr 2005 brachte Wizards of the Coast eine Neuauflage des Spiels Robo Rally heraus Die Version 2005 hat ein neues Design und bringt ein paar Ver nderungen mit sich Allerdings ist bisher nur eine englische Version erh ltlich Das Spiel inklusive aller Erweiterungen ist f r bis zu 8 Spieler ab einem Alter von 12 Jahren geeignet Die Spieldauer betr gt laut Angaben der Hersteller mindestens 60 Minuten Erfahrungen zeigen dass ein Spiel je nach Aufbau der Spielpl ne einige Stunden dauern kann 2 1 2 Idee des Spiels Bei Robo Rally machen Roboter auf einem Fabrikgel nd
53. media sp0618m0104 pdf NANOTEC Stepping Motor SP1018M0204 A Z01 July 2004 http www nanotec de data zweiphasen sp1555 media sp1018m0204 pdf NATIONAL SEMICONDUCTORS LMD18200 3A 55V H Bridge NATIONAL SEMICONDUCTOR LM1086 1 5A Low Dropout Positive Regula tors June 2005 http cache national com ds LM LM1086 pdf Boe Bot Robot Kit Serial Version Webshop http www parallax com detail asp product_id 28132 PHILIPS SEMICONDUCTORS LPC2114 2124 2212 2214 USER MANUAL May 2003 http www semiconductors philips com acrobat usermanauls UM_LPC2114_2124_2212_2214_2 pdf POE EDGAR ALLAN Maelzel s Chess Player Southern Literary Journal April 1836 PRINZING FABIAN Motortreiberschaltung mit 74245 TTL Logik 8 Bus Transceiver Webpage http www the starbearer de Schaltungen Mototreiber74245 htm REDAKTIONSBEITRAG Deutsche Roboter holen Fussball WM Titel Netzei tung Juli 2004 SANYO saturation Bidirectional Motor Driver for Low voltage Applica tions http www ortodoxism ro datasheets sanyo ds_pdf_e LB1836M pdf SCHWARTZ MISCHA Telecommunication Networks Protocols Modelling and Analysis Addison Wesley 1987 200 Literaturverzeichnis Sma05 Son STMO0 STM04 Tel96 Tex04 Tora Torb vV Wes04 Wiz05 Xil98a Xil98b Xil99a Xil99b SMART JULIAN Cross Platform GUI Programming with wxWidgets Pren tice Hall Professional Tech
54. nur ber einen der ersten vier COM Ports kommunizieren kann wobei COMB sofern unbelegt ein interner Loop Back Port ist ber den man das Tool auch starten kann ohne dass ein Controller angeschlossen ist Ansonsten liefert das Tool die Fehlermeldung Memory File not found vgl Abb 3 8 die angibt dass die Verbindung zum Controller nicht hergestellt werden konnte 52 3 1 Gemeinsamkeiten Si SAM BA 1 7 Choose Prot EI Select COM port COM4 Choose your board ATSISAM7S32 EK v DBGU connection USB connection Abbildung 3 7 Auswahlbildschirm des SAM BA Flash Tools Sg File not fou de E Memory File not found OK Abbildung 3 8 Fehlermeldung des SAM BA Flash Tools Voraussetzung fiir das Verwenden des SAM BA Flash Tools ist die richtige Vorberei tung des Mikrocontrollers Auf diesem muss das Programm SAM BA Boot hinterlegt sein das bei Ausf hrung nach einem Reset die serielle Schnittstelle controllerseitig in itialisiert Der SAM BA Boot Code wird durch Setzen bestimmter Pins beim Starten des Controllers aus dem internen ROM in den Flash Speicher kopiert SAM BA Boot Recovery vgl Atm05c Insbesondere beim ersten Booten des Controllers muss dieser Vorgang ausgef hrt werden da dieser sonst nicht mit dem SAM BA Flash Tool ange sprochen werden kann Weitere Ursache der Fehlermeldung in Abbildung 3 8 kann auch sein dass der Controller zuriickgesetzt werden muss um wieder den inter
55. pdf ATMEL CORPORATION Atmel AVR 8 Bit RISC Summary Oct 2005 http www atmel com products AVR overview overview7 asp 197 Literaturverzeichnis Atm06a Atm06b B 06a Bt 06b Bt 06c Bac03 BSWO6 BTTOG CS05 Dio05 DPR Faul Fra06 GG04 Gra04 ATMEL CORPORATION Atmel ATIOPWM2 Datasheet Rev 4317E Feb 2006 http www atmel com dyn resources prod_documents doc4317 pdf ATMEL CORPORATION Atmel AT91SAM7S32 Flash Tool Feb 2006 http www at91 com Pages products microcontroller AT91SAM AT91SAM7S at91sam7s html BRALL FRANK and OTHERS Bild Schrittmotorprinzip2 gif Webpage February 2006 http www roboternetz de wissen index php Bild Schrittmotorprinzip2 gif BRALL FRANK and OTHERS Getriebemotoren February 2006 http www roboternetz de wissen index php Getriebemotoren BRALL FRANK and OTHERS Roboter Typen January 2006 http www roboternetz de wissen index php Roboter Typen BACK WOLFGANG Der Schrittmotor 2003 http www wolfgang back com PDF Schrittmotor pdf BACHFELD DANIEL THOMAS J SCHULT and CARSTEN WIESE Auf Asi mous Spuren c t 2 136 143 January 2006 BENZ BENJAMIN CARL THIEDE and THORSTEN THIELE Spielgef hrten ct 2 130 135 January 2006 CISCO SYSTEMS INC OSPF Design Guide Document ID 7039 August 2005 http www cisco com warp public 104 1 html DIOTEC KBU4ZA KBU M October 2005 http www
56. r den modularen Aufbau bei 16 zu erstellenden Feldern doch um einiges h her Der Schaltplan ist in Anhang A und die Layouts mit Best ckung in Anhang B zu fin den Es wurden die vorher in Kapitel 3 4 7 beschriebenen Schaltungen fast komplett bernommen Lediglich einige zus tzliche Entst rkondensatoren f r den CPLD und den Mikrocontroller wurden hinzugef gt Au erdem fehlte die Schaltung zur Kommunika tion mit anderen Feldern wie sie in Kapitel 3 2 2 beschrieben ist Diese wurde noch hinzugef gt Zum Einl ten der Leuchtdioden wurde ein Schablone erstellt mit der auch gleichzeitig die L cher f r die LEDs und Fototransistoren in die Spielfeldfolie gestantzt werden k nnen Damit ist ein Ubereinanderliegen gew hrleistet 3 4 9 Programmierung Der Code f r den Flash Bootloader startet jedes Mal wenn das System neu gestartet wird Dies geschieht indem der Bootloader auf den oberen Teil des RAMs abgebildet wird Die Programmierung des Mikrocontrollers kann in zwei Arten erfolgen e ISP In System Programming e IAP In Application Programming ISP oder IAP Code werden im RAM gespeichert und k nnen vom Bootloader gestartet werden 3 4 9 1 In System Programming Die Programmierung des Mikrocontrollers mit ISP erfolgt ber einen seriellen Port UART und mit Hilfe des Bootloaders Der Mikrocontroller wird zun chst in ein Flash Modus gesetzt indem der Pin P0 14 nach dem Reset auf LOW gesetzt wird Dieser Zustand
57. return 1 Abbildung 3 34 Datei robo c Akkuiiberpriifung Messen der Akkuspannung Um die halbe Akkuspannung zu messen kann einer der A D Wandler Eing nge des Mikrocontroller genutzt werden Dieser bildet die Eingangsspannung hier also die halbe Akkuspannung im Vergleich zu einer Referenzspannung auf den Wertebereich zwischen 0 und 1023 ab 10 Bit Aufl sung Da die Referenzspannung bekannt stabil und h her als die zu messende Spannung sein muss wird dazu die Versorgungsspannung nach dem Festspannungsregler verwendet Diese kann zwar bei zu schwacher Batterie einbrechen und somit die Ergebnisse verf l schen jedoch geschieht dies erst nach einigen Fehlermeldungen der THRESHOLD Wert ist entsprechend hoch zu w hlen Die Messung erfolgt dabei in f nf Schritten 1 der ADC ADC Analog Digital Converter des Mikrocontrollers wird eingeschal tet standardm ig aus um Energie zu sparen 2 die Messung wird gestartet auf das Messergebnis wird gewartet das Messergebnis wird ausgelesen oo A co der ADC wird wieder ausgeschaltet Die Schritte erfolgen im Wesentlichen durch das Setzen von Registern in denen be stimmte Bits Aktionen ansto en So wird z B das Bit 1 des Channel Enable Registers AT91C_ADC_CHER auf true gesetzt um den ersten Kanal des ADC einzuschalten Um auf die Auswertung des ADC in Schritt 3 zu warten kann da keine weiteren Aufgaben in dieser Zeit durch den Roboter zu erl
58. starten k nnen Somit kann das Chaos zu Beginn das in der deutschen Spieleversion immer entsteht ein wenig entsch rft werden weil nicht alle Roboter auf demselben Feld starten m ssen Abbildung 2 5 Docking Bay Board Seite 1 Abbildung 2 6 Docking Bay Board Seite 2 Timer Wenn alle Spieler bis auf einen ihr Programm f r die n chste Runde zusammen gestellt haben dann wird der Timer benutzt der dann die Zeit angibt die dem letzten Spieler noch verbleibt um sein Programm fertig zu stellen Gelingt ihm das nicht vor Ablauf der Zeit so werden die restlichen Karten im Extremfall sogar alle verdeckt aus den Karten die der Spieler erhalten hat ausgew hlt und die Register mit ihnen gef llt Power Down Token Jeder Spieler der ank ndigt seinen Roboter in der n chsten Runde ausschalten zu wollen muss den Power Down Token auf sein Program Sheet legen Spielpl ne und varianten Wizards of the Coast haben sich noch ein paar neue Spielmodi ausgedacht So wird bei einer Version der Roboter SuperBot gejagt und von einem Spieler der ihn endg ltig zerst rt hat in Besitz genommen Da er der einzige ist der eine Checkpointfahne ber hren darf versuchen nun alle anderen SuperBot zu jagen und in ihren Besitz zu nehmen Au erdem gibt es noch Teamvarianten in denen Gruppen gegeneinander antreten k nnen 2 2 Unsere Realisierung des Spiels In diesem Abschnitt werden die Teile der Spielregeln beschrieben die nicht
59. werden um eine komplette bespielbare Spielfl che zu erhalten e Team B besch ftigt sich mit der Konstruktion der Roboter Ahnlich dem Vorgehen im Team A wird zuerst ein Prototyp entwickelt und getestet Anschlie end ist f r einen vollst ndigen Spielbetrieb die Mindestanzahl von vier funktionsf higen Robotern herzustellen e Team C besch ftigt sich im Wesentlichen mit der Planung und Realisierung der Netzwerk Protokolle und Software 18 1 4 Erweiterungsm glichkeiten Hierzu z hlt unter anderem auch die Inbetriebnahme der Compiler und Simulator Umgebungen f r die auszuw hlende Mikrocontroller Plattform e Der Schwerpunkt von Team D liegt in der Entwicklung der Software f r das Host Interface des Spiels Basierend auf einem Linux PC ist eine geeignete Verbindung z B via RS 232 zur Spielfl che herzustellen Anhand des von Team A konstruierten Prototypen eines Spielfeld Blocks ist zu zeigen dass eine Programmierung der Spielfeld Bl cke er folgreich vom Host PC durchgef hrt werden kann Eine weitere Aufgabe dieses Teams besteht im Aufbau einer graphischen Benut zeroberfl che um den Spielern am Host Rechner die Zuteilung von Programmier karten etc zu erm glichen mit denen die Spieler ihre Roboter auf der Spielfl che ansteuern k nnen 1 4 Erweiterungsm glichkeiten Sofern der zeitliche Rahmen dies zul sst w ren folgende Optionen zur Erweiterung des bis dahin realisierten RgD3 Spiels denkbar e
60. wie bei RgD3 nicht Daher lohnt sich ein Blick auf P2P Netze weil besonders bei diesen eine v llig dezentrale Struktur und Organisation stattfinden muss Dabei bietet sich vor allem das Content Adressable Network CAN an Dieses Netz teilt seine Peers in einen logischen Koordinatenraum ein in dem jeder Peer seine eigene Zone besitzt Nachrichten die durch das CAN geroutet werden haben als Zieladresse ein Koordinatenpaar so dass sie mittels eines einfachen Greedy Algorithmus weitergeleitet werden k nnen Liegen die Zielkoordinaten innerhalb des eigenen logischen Raumes wird die Nachricht bearbeitet Weitere Informationen in LCP 04 Auf Rain bertragen bedeutet das dass die Spielfelder in ein virtuelles Koordinatensy stem eingeteilt werden Jedes Spielfeld bekommt ein eigenes eindeutiges Koordinaten 154 4 3 Protokoll Stack paar bestehend aus x und y Koordinate zugeordnet Die Bestimmung und Festlegung dieser Koordinaten muss in einer sog Init Phase nach dem Einschalten stattfinden Das Routing kann mit Hilfe des euklidischen Abstandes durchgef hrt werden Eine Spiel feldbox speichert die Koordinaten der Nachabrn so dass bei einer eintreffenden Nachricht anhand der Zieladresse in der Nachricht bestehend aus x y Koordinate den Abstand zum Ziel berechnen kann Gesendet wird die Nachricht an den Nachbarn mit dem klein sten Abstand 4 3 2 4 Das RgD3 Routing Protokoll In diesem Abschnitt wird das Routing Protokoll von
61. wird nur bei der n chsten Durchf hrung die Fehlermeldung wiederholt bis der Roboter aus dem Spiel genommen wird 13Der Festspannungsregler ben tigt f r eine sichere Spannungsversorgung 3 6 V Eingangsspannung D gsreg g P g gung A gangssp g 93 3 Hardware 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 xx 5 Auswerten amp Befehl ausfuehren xxx switch msg amp MESSAGE_TYPE MASK case MESSAGE IDENTIFY ID angefordert break als Bestaetigung geschehen case MESSAGE ROTATION Rotationsnachricht switch msg amp MESSAGEDATA MASK case MESSAGE ROTATION LEFT robo_left 1 break case MESSAGE ROTATION RIGHT robo_right 1 break case MESSAGE ROTATION UTURN robo_left 2 break default robo_msg_send MESSAGE COMM ERROR break break case MESSAGEMOVEMENT Bewegungsnachricht int steps msg amp MESSAGESTEPS MASK gt gt 1 switch msg amp MESSAGE DIRECTION MASK case MESSAGE MOVEMENT FORWARD robo forward steps break case MESSAGE MOVEMENT BACKWARD robo_backward steps break default robo mag send MESSAGE COMM ERROR break break default Komm Fehler robo_msg_send MESSAGE COMM ERROR break Abbildung 3 33 Datei main c Nachricht auswerten 94 D 3 3 Roboter int robo check battery if adc_get_vdd lt THRESHOLD BATTERY return 0
62. 0 Euro erh ltlich 6Energiekapazit t pro Volumeneinheit 64 3 3 Roboter die zu versorgenden Komponenten mit ihrem Bedarf an Spannung und Leistung bekannt sind 3 3 2 5 Geh use und Design Dem Design von Robotern scheinen keine Grenzen gesetzt zu sein neben unscheinbaren rollenden Zylindern K Te sind alle Formen der Natur Vorbild So gibt es Spinnen Lyn Hunde Son und dem Menschen nachempfundene Roboter Hit Insbesondere Roboter hunde haben einen hohen Bekanntheitsgrad erworben Red04 Aufgrund der stark einschr nkenden Bedingungen werden derart aufwendige Designs in diesem Projekt keine Rolle spielen Es sind vielmehr praktische klare und einfache Formen vorzuziehen 3 3 2 6 Fazit Es gibt zwar eine Reihe von Roboterimplementierungen in denen viele interessante Tech niken zum Einsatz kommen aber keiner dieser Standardroboter entspricht ann herungs weise den Spezifikationen und Anforderungen unseres Projektes Daraus folgt dass sich keine L sung direkt auf die Projektroboter anwenden l sst Vielmehr sind die meisten Roboter erheblich gr er daf r aber auch flexibler einsetz bar Entsprechend sind viele L sungsans tze unpraktikabel da sie zu gro funktional berdimensioniert oder den Anforderungen nicht gewachsen sind So gilt es Standardl sungsans tze zu pr zisieren zu modifizieren echte Alternativen aufzuzeigen sie bez glich unserer Applikation zu beurteilen und so ein stimmiges Ge samt
63. 1 Bedienkonzept Die Aufgabenstellung sieht gem PG Antrag vor Software f r einen Host PC zu ent wickeln mit der die Spieler ihre Eingaben an die Roboter bermitteln k nnen Im Unterschied zur Variante die im PG Antrag vorgeschalgen wird wurde beschlossen die Software so zu konzipieren dass nicht alle Spieler vor einem PC sitzen und ihre Programmierung vornehmen sondern pro Spieler ein PC angeschlossen wird Die Spie ler k nnen so ihre Eingaben parallel vornehmen und sind dadurch keinen Wartezeiten aufgrund der Eingaben ihrer Mitspieler ausgesetzt Zus tzlich wird so auch vermieden dass die Spieler die Karten ihrer Mitspieler einsehen k nnen Dadurch wird es jedoch notwendig einen der Host PCs intern als Master auszuzeichnen Der Master PC wird ben tigt um die Konsistenz der Karten aufrecht zu erhalten und f r die Abarbeitung der Programmbefehle der Spieler gem ihrer Kartenpriorit ten zu sorgen 4 4 2 wxWidgets Die Host Software wird in C C geschrieben So kann der in reinem C geschriebe ne Quelltext der Kommunikations Architektur auch in den Hosts wiederverwendet wer den In C C stehen jedoch nicht wie in Java durch die Swing Pakete eigene Klassen zum erstellen grafischer Benutzeroberfl chen zur Verf gung Es wurde daher entschie den ur Widgets einzusetzen eine Open Source Bibliothek zur Generierung von GUIs Die Vorteile von wz Widgets gegen ber anderen GUI Bibliotheken liegen vor allem in der Plattformuna
64. 100n gt bod 2 son Cable 40P CON1 pag Abbildung 6 10 Platinenlayout Testboard AT91SAM7S32 Bauteile Oberseite E a DR e a EES JE L Basis ES 2040 Abbildung 6 11 Platinenlayout Testboard AT915AM7832 Bauteile Unterseite 185 6 Anhang Abbildung 6 12 Platinenlayout Roboter Hauptplatine Routing Oberseite Abbildung 6 13 Platinenlayout Roboter Hauptplatine Routing Unterseite 186 6 2 Platinenlayouts PAD4 PAD5 PAD6 2 SAD BAD2 Ads 1 U 1 a a sch S lt KF00_ SERIES gt a 3 3 U 10 Abbildung 6 14 Platinenlayout Roboter Nebenplatine Bauteile nur Oberseite Abbildung 6 15 Platinenlayout Roboter Abbildung 6 16 Platinenlayout Roboter Nebenplatine Routing Oberseite Nebenplatine Routing Unterseite 187 6 Anhang Abbildung 6 17 Platinenlayout Testboard Feld Routing Oberseite Abbildung 6 18 Platinenlayout Testboard Feld Routing Unterseite 188 6 2 Platinenlayouts ao 0 LEDM2 es von o Des 2 RO eo O Od mb mb en en con er en on GE O O Ca a a err IT cow O cl me oa ton son Ha so ae ect see EE By Gs omegtseoa ai sa Sr El El we beaegegeeagegeeeegaesl 09990000000 000000009 ES as El QOQOQOOOO QOOOQOOO0O Ab
65. 3 3 5 2 Test der Befehlsausf hrung im Roboter 145 3 07 Host Interf ce atens See we ee 2 a hehe ee leds ee an 146 3 6 1 Mechanischer Aufbau 200020000 146 3 6 2 Blektr nik 408 ae ha eee Ha Roe on Be dans 147 3 6 3 Programmierung s oeda e 147 4 Software 149 ANT GE TEE A ee Me a A A Aii 149 4 2 Architektur aj usa A ie a OM A ei i ae dea a 149 4 2 1 Anforderungen 2 2 usa 8 ion A hr ans 149 ADD E u ae a ne ee 150 4 3 Protokoll Stack 2 gba eS aa da a anne 151 4 3 1 Einleitung see a Xe gt Fe Dr ae AS a ag 151 4 3 2 Routing Protokoll s i zu ur ci A ee 152 4 3 3 High Level Protokoll 159 4 3 4 Scheduler ou bea ae a a ee ea na 165 4 4 Host Applikatich u gc 0 ae ea na an 166 4 4 1 Bedienkonzept 2 2 m Emm 166 AAD SWX Widgets ar ne te a an ner HS ron a an 166 4 4 3 Programmablauf u a alas aan Mar Busen 167 4 44 GUI Elemente nn 168 5 Zusammenfassung 173 Inhaltsverzeichnis Bul Status s Heke ke ee A AAA Be ENEE ee e e 173 Dale Hardware use cys ds yg eh eid Gent eho De Dies aly 173 9 12 SOWAT E n iy ae A Ee Me mig Lea Ws as deg erh A a aA 174 TEE we Aa Speen Abts 174 HDi ltr Hardware ea ur 5 er Sh evs See e Be Sot ee 174 52 2 ZDOMLW LER a s oe Fe ot ee A Gots Bee dow BS ade A Pe bh BE E 175 Anhang 177 6 1 Schaltpl ne sr 444 25 Zr be pee nn ee ee a nen 177 6 2 Platinenlayouts sars aoia 2 025 49 nein 184 6 3 Mechanischer Aufbau
66. 3030 0x30307723 0x34313032 0x342C3030 0x00201430 0x30307723 0x34313032 0x342C3030 0x30307723 0x00201440 0x34313032 0x342C3430 0x30307723 0x34313032 0x00201450 0x342C3830 Ox30307723 0x34313032 0x342C4330 SRAM FLASH Download Upload File Send File Name D MyFiles B ackup PG Robosoft A3D 3Robo Flash A3D 3Rol Browse Send File Receive File Name Browse Receive File Address 0x101400 Size For Receive File 1024 byte s Compare sent file with memory Seriptfs Erase All Flash x Execute loading history file 38 events added SAM BA console display active Tcl8 4 9 Tk8 4 9 1 BA 1 7 d 9 go 0x101400 You are using a DBGU connection on COM3 Board 4T9154M7532 EK Abbildung 3 9 Hauptbildschirm des SAM BA Flash Tools 3 2 Kommunikation Der n tige Informationsaustausch unter den einzelnen Komponenten erfolgt auf unter schiedliche Arten und Weisen Je nachdem welche Komponenten miteinander kommuni zieren sind unterschiedliche Anforderungen an die Hardware und Software gestellt Es miissen 3 verschiedene Kommunikationsverbindungen vorhanden sein sodass alle Kom ponenten untereinander Informationen austauschen k nnen 3 2 1 Host PC Spielfeldbox Die Kommunikation zwischen Host PC und Spielfeldbox sollte ber eine bereits vorhan dene Schnittstelle am PC erfolgen Eine gemeinsame Schnittstelle zwischen Controller und PC ist die Serielle Schnittstelle RS 232 Da die Spielfeldboxen eine eigene
67. 7 mm x 7 mm Ein kleiner und sparsamer Mikrocontroller der annehmbar ausgestattet ist Wegen sei ner eher eingeschr nkten Kommunikations aber vielf ltigen Steuerungsperipherie als Roboter Controller gut denkbar 45 3 Hardware Atmel ATmega6490 Atm05e e AVR 8 MHz bzw 16 MHz e 4 kB SRAM e 64 kB Flash e 1 USART e 8 Kanal 10 Bit A D Wandler e 68 GP I O Lines e Gr e 16 mm x 16 mm Ein AVR Chip mit zus tzlicher LCD Ansteuerung und weiteren Extras wie Universal Serial Interface und Analog Comparator Dies ist Beispiel fiir einen Controller mit Grafik Komponente wobei hier das High End Modell der Reihe gew hlt wurde Atmel ATmegal62 Atm05d e AVR 16 MHz e 1 kB SRAM e 16 kB Flash e 2 USARTs e 6 Kanal PWM Wandler e 35 GP I O Lines e Gr e 12 mm x 12 mm Ein durchschnittlich ausgestatteter Chip diesmal aus der AVR Familie Leicht unter durchschnittliche Kommunikationsm glichkeiten und Steuerungsperipherie fehlender A D Wandler werden auch durch einen Analog Comparator nicht ausgeglichen Eher eine Notl sung f r Feld und Roboter Atmel AT90PWM2 Atm06a e AVR 16 MHz e 512 Bytes SRAM e 8 kB Flash e 1 USART e 1 PWM Wandler 46 3 1 Gemeinsamkeiten e 10 Bit A D Wandler e Gr fe 15 mm x 7 mm Dieser Chip wurde speziell fiir Motoransteuerungen entwickelt und enthalt deswegen eine zus tzliche ALU die schnell multiplizieren kann einen 10 Bit D A Wandler und 3 Analog Comparators daf r aber s
68. 90 Winkeln einheitlich 45 Winkel zu benutzen Vor dem tzen wurden unter Verwendung von Polygonen in Eagle beim Routing ungenutzte Fl chen zu Kupferfl chen gemacht wodurch weniger Kupfer wegge tzt werden muss Auch das tzen fand in Eigenarbeit am Lehrstuhl statt Zuletzt wurde die best ckte Platine zum besseren Aufstellen auf Abstandsbolzen geschraubt 10 Welligkeit 74 3 3 Roboter 3 3 5 Mechanischer Aufbau In diesem Abschnitt geht es darum den Aufbau und die Anordnung der einzelnen Kom ponenten im Inneren des Roboters zu beschreiben Die Abbildung 3 16 soll dabei als Veranschaulichung dienen O ee Abbildung 3 16 Grundriss der Bodenplatte mit Aussparungen in Originalgr e Zu Beginn sei erw hnt dass die prim ren Ziele unserer Konstruktion die Unterbrin gung aller Bausteine und notwendigen Elemente sowie die platzsparende F gung dieser sind Au erdem m ssen die Bauteile leichten Ersch tterungen die durch die Bewegung des Roboters entstehen standhalten k nnen Es darf im Inneren nichts umkippen oder besch digt werden Somit ist gerade die Befestigung der Elemente ein wichtiger Betrach tungspunkt Die Grundbausteine Um die Bewegungsm glichkeit des Roboters maximal zu gestalten und um dem sthe tischen Gef hl entgegen zu kommen wird er eine runde Grundfl che erhalten auf die h chstwahrscheinlich ein zylinderf rmiges Geh use gesetzt wird
69. Abbildung 3 70 dargestellte Adressierung der LEDs festgelegt Demnach werden die einzelnen Felder jeder Spielfeldbox mit 0 beginnend oben links bis 8 endend unten rechts durchnummeriert Damit werden vier Bits zur Adressierung ben tigt Die Navigations LEDs auf jedem Feld werden im Uhrzeigersinn beginnend mit der obersten LED ebenfalls von 0 bis 3 durchnummeriert Die zwei hierf r ben tigten Bits werden an die vier Bits f r die Adressierung der Felder angeh ngt So mit ist jede LED ber eine 6 Bit Adresse ansteuerbar F r die Ansteuerung mit TTL Bausteinen ergab sich allerdings eine andere Adressierung Hierzu siehe Kapitel 3 4 7 2 127 3 Hardware 3 4 7 Testboards Aus den obigen Annahmen ergaben sich die zu fertigenden Komponenten fiir das Feld Es wurde beschlossen ein Feld zu entwickeln das in Einzelteilen auch getestet werden kann Dazu miissen die verschiedenen Bauteilgruppen auf einzelne Platinen aufgeteilt werden so dass ein unabh ngiges Testen erm glicht wird Die Platinen sollen weiterhin die M glichkeit besitzen direkt miteinander verbunden zu werden so dass ein komplettes Spielfeld zusammengebaut werden kann Dabei ergab sich eine Unterteilung in folgende f nf Komponenten e Feld Eine Platine soll die LEDs des Spielfeldes die Fototransistoren mit Verst rk erschaltung und die Taster f r die Checkpoints enthalten Eine Erl uterung der Feldplatine findet in Kapitel 3 4 7 1 statt e TTL Bausteine CPLD
70. Aussparungen in Originalgr e 75 Die bema te Bodenplatte 2 2 2 CE Comm nn 76 Die Unterseite der Bodenplatte mit den Filzgleitern 77 Bodenplatte mit Getrieben R dern Achsen und Winkeln 78 Der Roboterprototyp Ansicht hinten 0 78 Der Roboterprototyp Ansicht links o 79 Der Roboterprototyp Ansicht vom 79 Der Roboterprototyp Ansicht oben o oaa 79 Platinena fteilung a eae we i au eo ae ee wo emis ne Au vs 81 Bodenplatides nats abr 20 ee 2 004 a eA pe ee he eS 82 Nebenpl tine 2 24 4 sa noos tga ea ee a a ee a 83 Hauptplatine 05 204 anh 2 nel a ae E A OS EN Da 85 Programmablauf Roboter 91 Datei main c Initialisierung 91 Datei main c Akkustand pr fen 92 Abbildungsverzeichnis 3 31 3 32 3 33 3 34 3 35 3 36 3 37 3 38 3 39 3 40 3 41 3 42 3 43 3 44 3 45 3 46 3 47 3 48 3 49 3 90 3 01 3 92 3 93 3 54 3 59 3 56 3 97 3 58 3 59 3 60 3 61 3 62 3 63 3 64 3 65 3 66 3 67 3 68 3 69 3 70 3 71 3 72 3 73 Datei maine Auftrag lt a dk ee ni ei De A 92 Datei main c Nachricht best tigen 93 Datei main c Nachricht auswerten 94 Datei robo c Akku berpr fung 95 Nachrichtenempfang 96 Nachrichtenversand 2 2 2 2 Cm mon nen 96 Datei com c Realisierung der Zielfrequenz 97 Motorsteuerung Funktionen bersicht 100 Motoransteuerungstabelle 2 CC Cm m nn 101 Idee f r Drehkorrektur Pseudocode
71. B 40 mm x 5 mm bei quaderf rmiger Bau weise und maximal 42 mm hoch sein Anforderungen an die Energiequelle Wie schon in 3 3 2 4 beschrieben kommen fiir die Roboter nur Akkus in Frage Ein weiterer wichtiger Ausschlussgrund f r Batterien besteht darin dass diese regelm ig auszuwechseln sind und dementsprechend die Batterie im Roboter gut zug nglich sein muss Dies ist bei den gegebenen Rahmenbedingungen schwer realisierbar Die Bedarfsanalyse zeigt dass die verwendeten Akkus sehr klein sein gleichzeitig aber ho he Spannung und Energiekapazit t aufbringen m ssen Daher kommen Lithium Akkus Lithium Ionen oder Lithium Polymer Akkus mit einer hohen Energiedichte in die engere Auswahl Diese sind als Handy und Modellbauakkus erh ltlich Die Dropoutspannung ist die Differenz zwischen Eingangs und Ausgangsspannung die der Festspan nungsregler ben tigt um seiner Aufgabe nachzukommen Etwa 18 mm H he werden im Roboter durch Bodenabstand Geh use und Kommunikationseinheit am Boden ben tigt 72 3 3 Roboter Handyakkus sind ftir die Verwendung in unseren Robotern nicht geeignet weil sie von der Bauform her speziell fiir die Handyform konzipiert sind Zudem sind sie weitaus teurer als Modellbauakkus Ein Lithium Polymer Akku Wes04 mit giinstiger Bauform sehr hoher Energiedichte und einer passenden Spannung von 4 2 V ist der Kok 1200 von Kokam Lediglich die H he mit 52 mm ist gr er als erw nscht
72. Batterie kritisch so erkennt der Roboter dies Er bermittelt dem Spielfeld ei ne entsprechende Fehlermitteilung da ein fehlerfreies Arbeiten nicht mehr lange sichergestellt ist 18 xx 1 Akkustand pruefen x x if robo_check_battery 20 robo_msg_send MESSAGE EMPTY BATTERY break 22 Abbildung 3 30 Datei main c Akkustand pr fen Auf Auftrag warten 2 und Auftrag empfangen 3 Der Roboter wird in einen Sleepzustand versetzt Abb 3 31 um m glichst strom sparend auf eine vom Spielfeld initiierte Kommunikation zu warten Dabei k nnen nahezu alle Komponenten des Roboters inklusive vieler Mikrocontrollerkomponen ten ausgeschaltet werden Lediglich eine Empfangseinheit zur Kommunikation wird betrieben Durch die Initiierung einer Kommunikation angeregt vgl 3 2 3 wird dieser ener giesparende Zustand verlassen und mittels der folgenden Kommunikation eine Nach richt msg empfangen 24 xx 2 Auf Auftrag warten xxx robo_sleep 26 xx 8 Auftrag empfangen za 28 int msg robo_msg_rev amp msg Abbildung 3 31 Datei main c Auftrag Empfangsbest tigung Fehlermeldung 4 Gem des Kommunikationsprotokolls in 3 2 3 wird der Empfang einer Nachricht mit einer IDENTIFY Message bei erfolgreicher Ubertragung Zeile 36 und einer COMM_ERROR Message bei einem detektierten Kommunikationsfehler Zeile 33 bestatigt Abb 3 32 92 3 3 Roboter xx 4 Empf
73. Bus darauf zugegriffen werden muss Au erdem bieten sich aufgrund dessen nur sehr eingeschr nkte Debugging Ma nahmen Ausreichende Kommu nikationsperipherie ist vorhanden gerade die hohe Zahl der GP I O Pins und die damit einhergehende Gr e sprechen daf r ihn eher als separate Spielfeldl sung einzusetzen zumal keine Motoransteuerungen vorhanden sind Atmel AT91M55800A Atm05b e ARM 33 MHz e 8 kB SRAM 44 3 1 Gemeinsamkeiten e 2 USARTs e 8 Kanal 10 Bit A D Wandler e 58 GP I O Lines e Gr e 26 mm x 26 mm Auch bei diesem Controller besteht der Nachteil des externen Codes der per Bus Con troller aufgerufen wird Kommunikationsperipherie ist vorhanden auch in Form eines 2 Kanal 10 Bit D A Wandler Insgesamt also eine minimalistische L sung fiir das Spiel feld aufgrund der Gr e ungeeignet f r den Roboter Atmel AT91RM3400 Atm03 e ARM 66 MHz e 96 kB SRAM e 4 USARTs e 1 TWI e Gr e 16 mm x 16 mm Ein schneller Mikrocontroller mit gro em Speicher und viel Peripherie so zum Beispiel einen USB 1 1 Controller und sogar ein MultiMediaCard Interface Der Code wird aller dings beim Booten extern geladen da kein Flash Speicher verfiigbar ist Dieser Controller w rde sich f r eine Luxus L sung anbieten da er ppig ausgestattet ist Atmel AT91SAM7S32 Atm05c e ARM 55 MHz e 8 kB SRAM e 32 kB Flash e 1 USART e 4 Kanal 16 Bit PWM Wandler e 8 Kanal 10 Bit A D Wandler e 21 GP I O Lines e Gr e
74. CD Ansteuerung Je nach Ansteuerungsart der Konsole muss dementsprechend ein Kompromiss zwischen Rechenleistung und Energiebedarf gefunden werden Wird die Konsole per Kabel mit dem Spielfeld verbunden kann so auch die Stromversorgung gesichert werden Es muss also keine gesonderte R cksicht auf den Energieverbrauch genommen werden da in diesem Fall auf Netzstrom zur ckgegriffen werden kann Anders ist dies bei einer drahtlosen An steuerung Es entf llt nicht nur die netzgebundene Stromversorgung sondern es kommen noch die Energiekosten f r ein Drahtlos Modul hinzu welches dann auch idealerweise in dem passenden Controller integriert sein sollte Mikrocontroller Varianten Bei der Vielzahl der verf gbaren Mikrocontroller existieren mehrere Prozessorvarianten die je nach Einsatzzweck verschiedene Merkmale haben Im Folgenden werden die wich tigsten beleuchtet und im Hinblick auf unseren Einsatzzweck bewertet Im Falle einer inhomogene L sung verschiedene Mikrocontroller f r die verschiedenen Anforderungs bereiche w re es allerdings sinnvoll die drei Controller aus derselben Typfamilie zu nehmen um diese mit denselben Entwicklungswerkzeugen programmieren zu k nnen 41 3 Hardware Embedded Processors Der ARM Prozessor Kern ARMO5 ist ein eingebetteter frei programmierbarer Mikroprozessor der mit 8 16 und 32 Bit Datenbusbreite erh ltlich ist Er beherrscht Pipelining und eine Form der Code Komprimierung thumb Es exi
75. Dies wird hier vorgestellt Von der Keil Homepage miissen die Installer fiir Keil uVision und fiir die GNU Tools heruntergeladen und installiert werden Dabei ist die Version von der Homepage zu neh men und keine von GCC direkt Neues Projekt erstellen Unter Project gt New Project kann ein neues Projekt erstellt werden Die Frage ob der Startup Code fiir den ausgew hlten Controller ins Projektverzeichnis kopiert werden soll kann mit Ja beantwortet werden siehe Abb 3 1 dos gei rette Tod SCS window Heb By Components Environment Books LE Wokunsnte und Ehnstellingen Ecker Desktop RID3ACYSIsrc keil Fek ve Vendor up Device LPC2124 Toobet ARM mor cob Prcjectseleele wy2 RICAS KIEV ta und Einstelungen EckerDesktop ATMELTESTWETMELTEST uv rte Foard ere 791A Brey Uo NARINSNUIDoerdsAlreNATSISADT7 po lly UZ Database _pbbechen mm m e 3 a cuppa widow Abbildung 3 1 Keil uVision Neues Projekt anlegen Da sich der Startup Code fiir die GNU Tools unterscheidet miissen wir aber diesen Startcode ersetzen Das File Startup S im Projektverzeichniss muss durch PROGRAMME Keil ARM GNU Boards Keil MCB2100 BlinkyCAN Startup S ersetzt werden Die Dateien ram 1d und flash 1d k nen direkt mitkopiert werden sie werden f r den Linker ben tigt Einrichten Beim erstmaligen Nutzen von Keil uV
76. Einheit Da die Anforderungen Anwendungen von Multimedia in Form von Bild Videos oder Animationen oder Ton Musik oder Sound Wiedergabe nicht vorsehen w re ein DSP ein unpassender Ansatz FPGA Field Programmable Gate Arrays bieten den Vorteil dass sie dynamisch um progammierbar sind und dann die gestellten Aufgaben in Hardware l sen Da allerdings diese Flexibilit t nicht unbedingt notwendig ist und die Verwendung von FPGAs auch Nachteile bei der Integration einbringt ist dieser Ansatz auch zu verwerfen Peripherie Nicht nur der zentrale Prozessor bestimmt das Einsatzgebiet eines Mikrocontrollers son dern ma geblich auch seine Peripherie da sie dar ber entscheidet welche Funktionalit t bereits in Hardware vorhanden ist und somit nicht mehr in Software entwickelt werden muss Es gibt eine Vielzahl von Erweiterungen und wie so oft gibt es in mehreren Bereichen unterschiedliche Ans tze f r dieselbe Funktionalit t Andererseits ist es gerade bei Kom munikationsprotokollen blich einen zentralen seriellen Baustein zu verwenden der die 42 3 1 Gemeinsamkeiten Kommunikation steuert was zur Folge hat dass die Standards je nach Hersteller zu einander kompatibel sind oder einfach ineinander bersetzt werden k nnen Nachfolgend werden die f r uns wichtigsten Peripherie Elemente kurz erl utert USART Universal Synchronous Asynchronous Reciever Transmitter ist eine serielle bidirektionale Schnittstelle zum D
77. Erweiterung des RgD3 Spiels um Regeln und Spiel Varianten die w hrend der Kon zeptphase aus Gr nden des hohen Aufwandes ausgeschlossen wurden e Entwicklung externer Spiel Konsolen Diese sollen die Interaktion der Spielfl che mit dem Host PC w hrend des Spielbe triebs abl sen Anstelle eines gemeinsamen PC erh lt jeder Spieler eine dedizierte Konsole die an beliebiger Stelle am Spielfl chenrand angeschlossen wird Die Steu erbefehle eines Spielers f r seinen eigenen Roboter werden dann von der Konsole an die Spielfl che bertragen 1 5 Gliederung des Dokumentes Eine Gliederung des Zwischenberichtes analog zu den Teameinteilungen vgl 1 3 3 er scheint nahe liegend Da jedoch an einigen Stellen team bergreifende Problemstellungen zu l sen sind und sich ferner Arbeitsbereiche der Teams berschneiden wird von dieser Struktur abgewichen Lediglich die grobe Aufteilung in ein Hardware und ein Software kapitel bleiben bestehen Einf hrend wird zuvor das Spiel Robo Rally in Kapitel 2 vorgestellt und die vom RgD3 Team angestrebte Umsetzung n her erl utert denn der Realisierungsform entsprechend war eine sinnvolle Auswahl an Zusatzfeatures zu treffen Im Kapitel 3 wird die Hardware beschrieben Zun chst werden die die Spielfl che und Spielfiguren gemeinsam betreffenden Aspekte vorgestellt Da insbesondere die Kommu 19 1 Einleitung nikation umfangreich und aufwendig ist und zudem alle Hardwarekomponenten betrif
78. Gesmtpack pMessage 1 if pMessageData gt m_paketNr pMessageData gt m_pHistory pMessageData gt m_paketNr 5 Zaehler pMessageData gt m_pHistory pMessageData gt m_paketNr 75 pMessageData gt m_paketNr 140 3 4 Spielfeld flash pMessage 2 pMessageData gt m_paketNr Zaehler pMessageDatam gt m_Gesmtpack break Die eigentliche Flash Routine wird in der Funktion flash ausgef hrt Diese Routine erh lt drei Parameter wobei der erste Parameter der in den Flash zu schreibenden Nach richt entspricht der zweite Parameter gibt die gesamte Anzahl der Pakete an und der dritte Parameter ist ein Boolescher Wert der wahr ist wenn alle Pakete schon angekom men sind flash unsigned char pMessage Message_Data m_paketNr bool pKomplet Bevor die zu flashenden Daten in den Flash geschrieben werden k nnen muss der Bereich im Flash zuerst vorbereitet werden Dies geschieht in den folgenden Code Zeilen Durch die Initialisierung des Array command an Position 0 mit dem Wert 50 werden die n tigen Sektoren fiir die n tigen Schreiboperation vorbereitet Die folgenden zwei Positionen des Arrays command definieren den zu pr parierenden Anfangs und Endsektor Durch den Aufruft der Routine iap_bypointer wird der Vorgang endgiiltig gestartet command 0 50 command 1 0 command 2 15 iap_bypointer command result Nachdem die Parameter definiert worden sind wird der Zeiger auf d
79. Haben alle Kanten die Kosten Eins handelt es sich um Minimum Hop Routing Die bekanntesten und auch im Internet am h ufigsten verwendeten Algorithmen zur Berechnung des k rzesten Weges sind Link State Algorithmen und Distance Vector Algorithmen die in den folgenden Abschnitten n her beschrieben werden Link State Bei einem Link State Algorithmus sendet jeder Knoten Informationen ber seinen sog Link State an alle anderen Knoten Unter dem Link State versteht man Informatio nen ber die Verbindungen mit anderen Knoten und die Kosten eventuell Bandbrei te und Auslastung dieser Verbindungen Aus diesen Informationen kann jeder Knoten einen Graph der Netzwerk Topologie generieren und anhand dieses Graphen Routing Entscheidungen treffen wodurch Routing Schleifen verhindert werden Die Mehrheit der Routing Protokolle ist dieser Klasse zu zuordnen Das bekannteste und im Internet verbreitetste Protokoll ist OSPF Spezifikation in CS05 Allerdings haben Link State Protokolle einen hohen Speicherplatz und hohe Prozessorlast so dass sie sich nicht f r die Implementierung auf einem Mikrokontroller eignen Deswegen wird hier nicht weiter darauf eingegangen 153 4 Software Distance Vector Distance Vector Algorithmen treffen Routing Entscheidungen nur anhand von Kosten die einem Router von seinen Nachbarn zugeschickt werden Es wird der Nachbar mit den geringsten Kosten zum Ziel als n chster Hop in der Routing Tabelle vermerkt
80. L CPLDs January 1999 http www xilinx com bvdocs appnotes xapp112 pdf XILINX INC JTAG Programmer Guide July 1999 http www xilinx com support sw_manuals 2_1i download jtag pdf 201 Literaturverzeichnis Xil02a Xi102b Xil03 Xil05a Xil05b Xil05c Zet04 XILINX INC A Quick JTAG ISP Checklist June 2002 http www xilinx com bvdocs appnotes xapp104 pdf XILINX INC Using the XC9500 XL XV JTAG Boundary Scan Interface December 2002 http www xilinx com bvdocs appnotes xapp069 pdf XILINX INC Xiline XC9500 CPLD Series November 2003 http www xilinx com products 95x1sh pdf XILINX INC Bulletproof CPLD Design Practices June 2005 http www xilinx com bvdocs appnotes xapp784 pdf XILINX INC Driving LEDs With Xilinx CPLDs April 2005 http www xilinx com bvdocs appnotes xapp805 pdf XILINX INC XC9572XL High Performance CPLD July 2005 http www xilinx com bvdocs publications ds057 pdf ZETEX SEMICONDUCTORS Complementary 60 V enhancement mode MOS FET H bridge March 2004 http www ortodoxism ro datasheets zetexsemiconductors zxmhc6a07t8 pdf 202
81. Motoren in den Robotern des Projektes interessant So sind 1 8 g schwere Motoren mit 6 mm Durchmesser und 15 mm L nge erh ltlich Mik03b Dar ber hinaus ist die Motoransteuerung einfach So gibt es lediglich zwei Anschl sse die mit unterschiedlicher Polarit t zu belegen sind um den Motor laufen zu lassen Die Richtung des Stromflusses ist ausschlaggebend f r die Drehrichtung des Motors Da diese im Betrieb wechseln k nnen soll und ein Motor zudem mehr Strom ben tigt als ein Mikrocontrollerausgang in der Regel liefern kann ist eine Ansteuerung ber einen Motortreiber notwendig A1t98 im einfachsten Fall ber eine H Br cke GG04 In der Regel kommt ein IC der Serie L293 Tex04 in Robotern zum Einsatz Dabei steht je H Briicke ein Eingang Enable zur Verf gung der den zugeh rigen Motor ein und ausschaltet Dieser kann per PWM Signal so betrieben werden dass die Geschwindigkeit einigerma en kontrollierbar ist was bei einem Leerlauf von oft ber 10 000 Umdrehungen pro Minute erforderlich ist Zwei weitere Eing nge bestimmen ber ihre Signalbelegung low oder high die Drehrichtung des Motors Derartige Motortreiber bieten zugleich die M glichkeit Brems und Haltewirkungen zu realisieren Durch Belegung der Eing nge mit gleichen Pegeln wird der Motor kurzge schlossen was zu einer Bremswirkung f hrt ohne die die Getriebemotoren nachlaufen Servomotoren enthalten zumeist eine mechanische Sperre die den Drehwinkel d
82. Platine wird vor der Best ckung zurecht ges gt ein Rand ist dabei nicht vorgesehen Das Fixieren der Platine bei dieser geringen Gr e ist dadurch schwierig bliche Halterungen treten in Konflikt mit den nahe am Rand platzierten Bauteilen Zus tzlich sind die zwei Halterungen dann so nah beieinander das sie selbst das Arbeiten zum Teil behindern Diese Problematik kommt besonders w hrend der Best ckung der R ckseite zum Tragen die zus tzlich zum feh lenden Fixieren eine Schr glage der Platine verursacht 3 3 6 7 Test der Platinen Eine stetige berpr fung der Funktionsf higkeit der Platinen stellt sicher dass Fehler fr h erkannt werden und dass die Anzahl m glicher Fehlerquellen berschaubar bleibt Insbesondere bei Problemen w hrend der Herstellung der Platinen m ssen diese beson ders sorgf ltig gepr ft werden Die Platinen durchlaufen dabei folgende berpr fungen ggf mit mehreren Iterationen 1 Durchmessen der Leiterbahnen Unmittelbar nach dem tzen werden alle Leiterbahnen mittels Ohmmeter kon trolliert ob sie von Anfang bis Ende Kontakt haben Dar ber hinaus werden alle unmittelbar benachbarten Fl chen berpr ft ob sie elektrisch von der betrachteten Leiterbahn getrennt sind 2 Durchmessen nach Durchkontaktierung Nach Anbringen der Durchkontaktierungen werden diese wie beim ersten Punkt gepr ft 3 Durchmessen nach Best ckung Wenn die Bauteile auf der Platine angebracht sind gilt es die Kont
83. RA und die XC9500 Serie von XILINX Xil03 Bei beiden Familien gibt es CPLDs die alle Anforderungen erf llen und auch nicht berdimensioniert sind Aus Verf gbarkeits und Preisgr nden wurde ein Chip der XC9500 Serie von XILINX gew hlt Die genaue Bezeichnung lautet XC 9572XL TQ100 Dieser Chip hat 100 Pins wobei 72 als I O Pins eingesetzt werden k nnen Damit ist er mehr als ausreichend f r die Anschl sse der 36 Navigations LEDs und der 4 Checkpoints sowie der 9 Pins f r die Ansteuerung und zum Auslesen der Checkpoints Er kann au erdem mit einer Spannung von 3 3V betrieben werden so dass er zum Mikrokontroller kompatibel ist Weitere Informationen sind unter Xil05c zu finden Informationen zum Entwurf der Schaltung des CPLD sind unter Xil99a Xi198b und Xil05a zu finden Eine spezielle Application Note beschreibt zudem den Anschluss von LEDs Xil05b Mit diesen Angaben l sst sich leicht eine Schaltung erstellen Die Platine selbst enth lt dabei nur den CPLD mit einigen Entst rkondensatoren zwei 40 polige Stecker f r die Verbindung zur Feldplatine und eine 50 poliger Stecker zur Verbindung mit der Mikrocontrollerplatine sowie einen Stromanschluss siehe Schaltplan in Abbil dung 6 5 Die Anschl sse der Feldplatine die direkt am Mikrocontroller angeschlossen werden sind dabei einfach durchgeschleift Eine Belgung der einzelnen Stecker ist Ab bildung 3 71 zu entnehmen Software Der CPLD ben tigt allerdings auch noch
84. Roboter genau platziert ist dar ber hinaus sollte sich aber diese Korrektur m glichst in den Spielfluss integrieren Lang dauernde Korrekturz ge oder gro e Bewegungen f hren zu einer Spielverz gerung und f r den Benutzer nicht nachvollziehbaren Bewegung der Roboter und reduzieren so den Spielspa erheblich Ferner steht nur begrenzter Platz f r die Korrekturz ge zur Verf gung da das aktuelle Spielfeld nicht verlassen werden darf denn ein Nachbarfeld kann durch einen zweiten Roboter besetzt sein Diese gegenl ufigen Ziele aus Pr zision und Unauff lligkeit gilt es geschickt zu vereinen Fehler Am Anfang des Korrekturalgorithmusentwurfs steht die Fehleranalyse Dabei werden zwei Situationen unterschieden Bewegungen und Drehungen da die Feh lerursachen und auswirkungen sich dabei in wesentlichen Punkten unterscheiden Drehungen sind relativ unproblematisch da der Roboter sich nicht von seinem Feld fortbewegen muss Somit hat ber die gesamte Drehung stets der mittlere Fototransistor Sichtkontakt zur zentralen LED des Feldes um die Position des Roboters zu kontrollieren Zus tzlich kann mittels des vorderen Fototransistors auch die Blickrichtung des Roboters anhand der Navigations LEDs im Feld berpr ft werden 104 3 3 Roboter Bei der geraden Fortbewegung hingegen sind eine ganze Reihe von Fehlersituationen vorstellbar e der Roboter ist zu kurz gefahren z B durch durchdrehende und oder rutschende Reifen
85. Roboter schie en um sein endg ltiges Ziel zu treffen Der Robo ter durch den der Laser schie t wird dabei auch besch digt Kombinationsm glichkeit besteht mit der Karte Zielkontrolle und oder Doppellaser Hecklaser Mit diesem verf gt ein Roboter dann ber zwei Laser einem nach vor ne und einem nach hinten gerichteten Mit beiden kann er anderen Robotern Schaden zuf gen Die Laser schie en gleichzeitig Anstelle der Laser einzusetzen Die folgenden Karten d rfen nur anstatt des Lasers des jeweiligen Roboters verwendet werden Diese Eigenschaften ersetzen die Laser 30 2 1 Das Spiel im Original 5 Lurbo Blaster Wenn ein Roboter diesen benutzt dann wird dem getroffenen Ro boter ein Schaden zugefiigt und er wird ein Feld in Schussrichtung weiter geschoben Wer die Karte erh lt bekommt gleichzeitig fiinf Schadenspunkte ausgeh ndigt die er auf diese Optionskarte legt Jedes Mal wenn er einen Roboter besch digt h ndigt er seinem Besitzer einen Schadenspunkt aus Die Karte muss nach f nfmaliger Benutzung zur ckgegeben werden wenn alle Punkte abgegeben sind Hochdruckstrahl Dieser schiebt einen anderen Roboter ein Feld in Richtung des Strahls richtet aber keinen Schaden an Fernsteuerung Mit dieser Karte wird es einem Spieler m glich das Programm mit dem sein eigener Roboter programmiert ist auch auf einen anderen zu bertragen Steht ein Roboter maximal sechs Felder in gerader R
86. Schnitt stelle verwenden siehe Abschnitt 3 2 2 ist es n tig einen Adapter zwischen PC und Spielfeld zu setzen Dieser ist detailliert in Abschnitt 3 6 beschrieben Seine Aufgabe ist es ankommende Pakete in beide Richtungen weiterzuleiten 54 3 2 Kommunikation ind At least one lock region is locked Ona Do you want to unlock involved lock region s 0 to 0 Yes No Abbildung 3 10 Lock Warnung des SAM BA Flash Tools 3 2 2 Spielfeldbox Spielfeldbox Informationen m ssen von allen Spielfeldboxen versendet und empfangen werden k nnen Jede Spielfeldbox hat bis zu 4 Nachbarn mit denen Informationen direkt ausgetauscht werden k nnen Dazu sind 4 Kommunikationskan le notwendig Die Verarbeitung und Weiterleitung der Informationen zum jeweiligen Ziel erfolgt im Protokoll Stack siehe dazu 4 3 Hier wird nur die Kommunikationshardware zwischen den Spielfeldboxen be handelt Zur bertragung von einzelnen Bits auf einem Kanal werden jeweils 2 Leitungen ver wendet eine DATA und eine CLOCK Leitung Die Daten sind digital codiert hier kann eine Leitung nur den Zustand 0 etwa 0 Volt und Zustand 1 etwa 3 3 Volt einnehmen Die Pull up Widerst nde sind mit der 3 3V Versorgungsspannung verbunden sodass im Allgemeinen die Leitungen logisch 1 aufweisen Diese sind mit R1 R4 in Abbildung 3 11 gekennzeichnet Zur Kurzschlusssicherheit der Controller sind zus tzliche Widerst nde R5 R8 in Abbildung 3 11 eingeba
87. Seite 167 beschrieben sind Zus tzlich k nnen hier die erhaltenen Optionskar ten auch f r die kommende Runde an und abgeschaltet werden Am unteren Bildschirmrand ist noch der Exit Button angeordnet mit dem der Spieler jederzeit zwischen den Runden das Spiel verlassen kann Abbildung 4 5 Hauptbildschirm 169 4 Software 4 4 4 3 Ubersichtsbildschirm Der Ubersichtsbildschirm Abb 4 6 wird dem Spieler pr sentiert sobald er auf dem Hauptbildschirm seine Befehlssequenz best tigt hat Die Felder enthalten die gleichen Informationen die im Infobereich des Hauptbildschirms angezeigt werden Die Spieler k nnen hier allerdings auch die Informationen ber die Roboter ihrer Mitspieler einsehen Im unteren Bereich der bersicht ist ein Fortschrittsbalken eingelassen Die Spieler k nnen so erkennen wie weit die Befehlsabarbeitung der Roboter im Spielfeld fortge schritten ist Die Felder des Fortschrittsbalkens sind rot wenn noch keine Befehle bear beitet worden sind Sobald ein Befehl von allen Robotern ausgef hrt wurde f rbt sich das zugeh rige Fortschrittsfeld gelb Nachdem alle Befehle ausgef hrt wurden f rbt sich der gesamte Balken gr n um dem Spieler zu signalisieren dass die n chste Runde begin nen kann Durch Bet tigen des Continue Buttons kehrt der Spieler zum Hauptbildschirm zur ck OYERYIEN CEA an Bee FER BEE Td nT ME come y wy Abbildung 4 6 Ubersichtsbildschirm 4 4 4 4 Karten Di
88. UNIVERSITAT DORTMUND Y E FACHBEREICH INFORMATIK AN PG477 Rgb3 Real Robo Rally Dare Devil Droids Zwischenbericht 20 April 2006 INTERNE BERICHTE INTERNAL REPORTS LS XII Embedded System Design Fachbereich Informatik Universitat Dortmund Betreuer Heiko Falk Robert Pyka GERMANY D 44221 DORTMUND Zwischenbericht R3D3 REAL ROBO RALLY DARE DEVIL DROIDS Judith Ackermann Manuela Engels Nina Grau Harald Giinther Daniel H cker Michael Kern Robert Muhrbeck Michael Poch Daniel Schulte Jules Souna Rene Thimel Benjamin Titz 20 April 2006 Universitat Dortmund Inhaltsverzeichnis 1 Einleitung 1 1 1 2 1 3 1 4 1 5 2 Das 2 1 2 2 2 3 Motivation Aufgabenstellung 1 2 1 Ziele 1 2 2 Minimalziele Realisierung 1 3 1 Organisation 1 3 2 Teilnehmer 133 Team Einteilung Erweiterungsm glichkeiten Gliederung des Dokumentes Spiel Das Spiel im Original 2 1 1 Uber das Spiel 2 1 2 Idee des Spiels 2 1 3 Vorbereitung 2 1 4 Spielablauf 2 1 5 Ende des Spiels 2 1 6 Varianten 2 1 7 Optionskarten 2 1 8 Robo Rally 2005 Unsere Realisierung des Spiels 2 2 1 Verwendete Varianten 3 Hardware 3 1 3 2 22 2 Optionskarten s s Kastanie Ren 2 2 3 Verwendete Neuheiten aus Robo Rally 2005 Das R3D3 Des en er gra re ege a Gemeinsamkeiten s a Sockets E
89. abei das Herzst ck und den zentralen Einstiegspunkt der Software f r den Host PC Hier werden auch die Informationen der Spieler verwaltet wie zum Bei spiel der Status der jeweiligen Roboter Da ein Host System zus tzliche Aufgaben zur Synchronisation und Konsistenzerhaltung bernehmen mu wird einer dieser Hosts als Master ausgezeichnet Seine Aufgabe besteht darin als Spielleiter zu fungieren und die einzelnen Phasen des Spielablaufs Kartengeben Abarbeiten von Befehlen und Fabrik elementen anzusto en Alle anderen Hosts arbeiten als Clients Diese synchronisieren alle Aktionen die die Spielkonsistenz beeintr chtigen w rden zun chst mit dem Master Alle anderen Aufgaben verarbeiten die Hosts jedoch v llig dezentral Wie die genaue Schnittstelle zwischen der Host und der Kommunikations Architektur aussehen wird ist noch nicht spezifiziert Geplant ist bisher f r den Host eine weitere Auspr gung der Jobs zu schaffen und so ber den Scheduler vgl 4 3 4 die n tigen In formationen zwischen den Schichten der Architektur auszutauschen Die genauen Details werden zusammen mit den Details der Applikationslogik realisiert 4 3 Protokoll Stack 4 3 1 Einleitung Wie im vorhergehenden Kapitel 4 2 1 bereits gezeigt wurde besteht das RgD3 Projekt aus verschiedenen Komponenten die mittels Kommunikation miteinander interagieren F r diese Kommunikation sind Protokolle n tig die die Semantik und das Format der auszutauschenden Info
90. akte minimiert werden kann Die Anordnung der Kontakte ist so zu w hlen dass ein beliebiges Zusammenstecken der Bl cke m glich ist und dabei die Oberseiten der Bl cke eine durchgehende Spielfl che ergeben Dabei besteht ein Spielfeldblock aus 9 Spielfeldern die f r die Mitspieler erkennbar entsprechend den Spielfeldeigenschaften gestaltet werden Ferner sind in der Oberseite lichtdurchl ssige Bereiche vorzusehen um ggf eine lichtbasierende Kommunikation mit den Robotern integrieren zu k nnen Der elektrotechnische Aufbau der Spielfeld Bl cke besteht im Wesentlichen aus dem Mi krocontroller der nahezu ohne weitere Komponenten direkt die Ansteuerung der Ver bindungen zu den anderen Bl cken und die der Oberfl chenelemente bernimmt Hierzu soll der gleiche Mikrocontrollertyp wie in den Spielfiguren verwendet werden Die Software der Spielfeld Bl cke hat mehrere Teilaufgaben zu erledigen In einer ersten Phase m ssen die Bl cke eine Selbstorganisation durchf hren Da die Spieler die M glichkeit haben sollen die Bl cke beliebig anordnen zu k nnen muss das Kommunikationsprotokoll zwischen den Bl cken die Erstellung eines konsistenten Mo dells der Spielfl che erm glichen F r den Spielbetrieb m ssen Methoden zum Routing von Datenpaketen zwischen den Bl cken bereitgestellt werden Ferner wird eine Soft warekomponente ben tigt die den Datenaustausch mit den Spielfiguren durchf hren kann Und schlie lich muss ein Spie
91. akte nochmals zu pr fen Dabei sind die Datenbl tter der Bauteile heranzuziehen um die Innen widerstandswerte der Bauteile in Erfahrung zu bringen So k nnen nun auch deren Installationen gepr ft werden Vom Widerstand dessen Wert direkt erkennbar ist bis hin zum Spannungsstabilisator der auf der Nebenplatine beispielsweise mit einen Innenwiderstand von etwa 34 kN gemessen wurde 4 Durchmessen nach Verkabelung Einbau 88 3 3 Roboter Insbesondere der Aufbau im Roboter l sst bei der Endmontage Probleme entstehen So floss zum Beispiel durch einen ber das anliegende Motorgeh use berbr ckten Widerstand ein zu hoher Strom am Motor Weiterhin erschwerten Leitungen rund um Kabelanl tstellen deren kurzschlussfreie Montage Verbesserungen im Layout waren somit n tig Dar ber hinaus sind aufeinander aufbauende Einsatztests n tig um auch hier gegebe nenfalls Fehler und Probleme aufzudecken 1 Test der Stromversorgung Der Spannungsstabilisator wird ber eine externe Spannungsquelle probehalber mit verschiedenen Spannungen versorgt Die ausgehende Spannung kann mit ei nem Voltmeter gepr ft werden Ein derart umsichtiges Vorgehen sch tzt empfindliche Komponenten falls eine feh lerhafte Stromversorgung vorliegt denn sie wurden bei diesem Test von der Span nungsversorgung getrennt um keiner eventuell auftretenden berspannung ausge setzt zu sein 2 Test der Motorsteuerung ber eine externe Testschal
92. and teilweise das Licht unterbrechen und die LEDs reagieregn entsprechend Bei feh lerhafter Schaltung oder insbesondere fehlerhaften l tstellen gehen einige LEDs entsprechend nicht an Dadurch kann der Aufbau gut getestet werden e Kommunikation unter den Spielfeldboxen Die Kommunikation unter den Spielfeldboxen mit dem eigens fiir dieses Projekt ent wickelte Kommunikationsprotokoll ergibt gute Ergebnisse Es sind keine Fehler in der Ubertragung zu erkennen Je nach Auslastung des Controllers im realen Spiel betrieb kann sich dies aber evtl noch ndern Demnach muss die Ubertragungsge schwindigkeit entsprechend angepasst werden Hier wurde nur die Kommunikation zwischen zwei Spielfeldboxen getestet und nicht das komplette Kommunikations protokoll inkl Routing Siehe dazu 4 3 e Soundausgabe Die Soundausgabe l sst sich ganz einfach testen indem ein beliebiger Sound abge spielt wird Derzeit ist eine Soundqulit t von 8kHz Samplerate und 8 Bit Sample tiefe eingestellt Diese macht sich in der H rqualit t bemerkbar ist aber dennoch gut erkennbar um was f r einen Sound es sich handelt 3 5 Integrationstests Dieser Abschnitt beschreibt das Vorgehen beim Testen des Zusammenspiels zwischen Ro boter und Spielfeld da die Bestandteile dieser beiden Hauptkomponenten bereits soweit wie m glich separat getestet wurden vgl Abschn 3 3 7 8 und 3 4 9 3 Dabei wird hier vor allem der Interaktion dieser Beachtung geschenkt Die Kommun
93. andleLaserBeam Durchl uft alle Felder und pr ft ob ein Roboter darauf steht oder das Feld einen Laser hat Daraufhin wird eine Laser Nachricht los geschickt so dass alle weiteren Felder in Schussrichtung entsprechend Schadenspunkte verteilen HandleLaser Wird aufgerufen wenn eine Laser Nachricht eintrifft Die Nachricht wird an das n chste Feld in Schussrichtung weitergeleitet au er es ist ein Roboter oder eine Wand ist dazwischen Die Nachricht hat zus tzlich ein Flag das angibt ob es sich um einen Traktorstrahl oder Hochdruckstrahl handelt in dem Fall wird ein getroffener Roboter verschoben SaveRobotState Wird aufgerufen wenn dem Feld ein Roboterstatus zugeschickt wird Der Roboterzustand enth lt zahlreiche Informationen unter anderem durchlaufene Fabrikelemente und noch nicht erledigte Dreh Bewegungsbefehle SaveCheckpointNumber Teilt dem Spielfeld mit welche Nummer der vom Benutzer eingesteckte Checkpoint hat ToggleLaser Invertiert den Zustand der LEDs die die Laserstrahlen visualisieren Die Laser sollen w hrend der Spieler seinen Roboter programmiert und w hrend die Fabrikelemente dargestellt werden HandleEndOfRound Macht die Laser LEDs an um Laser darzustellen und so das Programmieren der Roboter zu erleichtern In obiger Aufz hlung sind nur die High Level Funktionen enthalten die eine Reihe wei terer Hilfsfunktionen aufrufen Diese Hilfsfunktionen dienen zur Generierung von Ant wortnachrichten Senden von Nach
94. angsbestaetigung Fehlermeldung xxx 32 if msg amp MESSAGE_TYPEMASK MESSAGE_RES_ID robo_msg_send MESSAGE COMM ERROR 34 else 36 robo_msg_send MESSAGE IDENTIFY Abbildung 3 32 Datei main c Nachricht best tigen Nachricht auswerten und Befehl ausf hren 5 Zuletzt ist die in der Nachricht codierte Anweisung auszuf hren Abb 3 33 Einige wichtige Programmaspekte werden nun n her betrachtet 3 3 7 2 Akku berpr fung Die berpr fung des Akkus hat zum Ziel dass der menschliche Spieler rechtzeitig ber eine schwache Stromversorgung im Roboter informiert werden kann Dies hat durch den Host PC zu erfolgen Dazu muss dieser jedoch ber die Spielfelder von der schwachen Akkuspannung in Kenntnis gesetzt werden Daher wird die Spannung regelm ig gepr ft und das Spielfeld ggf ber einen Mangel derselbigen unterrichtet Abb 3 30 damit dieses die Nachricht weiterleiten kann Idee Die Vorgehensweise zur Pr fung der Akkuspannung ist simpel Abb 3 34 Die halbe Akkuspannung die durch den Spannungsteiler vgl 3 3 6 4 zur Verf gung steht wird gemessen und mit einem Schwellwert engl THRESHOLD verglichen Abb 3 34 Zeile 2 F llt sie unter 1 8 V und somit respektive die Akkuspannung unter 3 6 V so kann ein korrekter Betrieb nicht l nger garantiert werden Daher wird eine Fehlermeldung gesendet Abb 3 30 Zeile 20 Das Programm wird dadurch jedoch nicht abgebrochen ggf
95. as Senden wird dieses Signal um Faktor 3 reduziert Da der Systemtakt mit 12 MHz und der PIT Z hler mit dieser Geschwindigkeit l uft muss ein Z hler mit dieser Frequenz bis COUNTER z hlen bevor ein entsprechendes Signal gegeben wird wobei f r COUNTER gilt 1 ig 12 MHz _ 12 kH COUNTER Ge Ergo muss der PIT bis COUNTER 63 z hlen Dieser Wert wird dem PIT bei der Initialisierung mitgeteilt Von nun an z hlt er auto matisch bis zu diesem Zeile 4 von Abbildung 3 37 zeigt wie per busy waiting auf das n chste Taktsignal gewartet wird ggf mit times maliger Wiederholung um die Teilung um Faktor 3 f r die Sendefrequenz zu erm glichen In Zeile 5 wird lediglich ein spezielles Hardwareregister gelesen damit das Register dass das Auftreten des Taktsignals mitteilt gel scht wird Die Funktion com_wait als Ganzes stellt also sicher dass mit einer Zielfrequenz von 12 kHz und deren Teiler insbesondere also auch mit 4 kHz gearbeitet werden kann sofern die Arbeiten zwischen zwei Taktsignalen nicht l nger dauern Da jedoch in diesem Fall durch die Funktion nicht auf ein neues Taktsignal gewartet wird wird eine Befehlsabarbeitung dann zumindest noch mit voller Prozessortaktgeschwindig keit unterst tzt 97 3 Hardware Senden Zum Senden werden nun hardwarenah folgende Funktionen zur Verfiigung gestellt e Com send init F hrt die Kommunikationsinitialisierung gem Kommunikationsprotokoll d
96. atenaustausch Sie erlaubt Funktionen wie Handshake Parit ts berpr fungen Flusskontrolle und hnliches TWI Two Wire Interface ist eine Byte basierte serielle Schnittstelle die einen sehr einfachen Aufbau hat Sie besteht aus zwei Verbindungen und zwar einer Takt und einer Daten Leitung So werden die Daten zwischen zwei Endstellen seriell und getaktet bertragen PWM Pulse Width Modulation ist eine zeitbasierte Informations Codierungsart In nerhalb jedes Zeitfensters wird ein je nach Information entsprechend langer Impuls erzeugt der entweder zeitgleich mit dem Zeitfenster beginnen kann oder innerhalb desselben zentriert wird Durch diese Art der Codierung kann auf einfache Weise ein Gleichstrom Motor angesteuert werden der sich umso schneller dreht je l nger die Im pulse innerhalb der Zeitfenster sind A D Wandler Die Analog Digital Wandler auf den g ngisten Mikrocontrollern ha ben meist einen 10 Bit breiten Ausgang und je nach Ausstattungsvariante auch mehrere Kan le Dies bedeutet dass mehrere eingehende Analog Signale unabh ngig voneinander umgewandelt werden k nnen General Purpose I O Lines Viele Controller besitzen auch noch eine gewisse Anzahl von general purpose lines die im Prinzip direkt ansprechbare Ein und Ausgangs Pins des Controller Bausteins sind Meist sind sie 5 V ansteuerbar auch wenn der Chip an sich nur mit etwa 3 V betrieben wird so dass die einkommenden Signale nicht erst vorbearbeitet werden m
97. ation bleiben Idee Grundlage f r die Korrektur nach einer vorausberechneten Drehung vgl 3 3 7 6 ist eine Suche durch weitere kleinerer Links Rechts Drehungen wie Abb 3 40 verdeutlicht So wird der Roboter gerade positioniert und steht f r den n chsten Spielzug bereit Die Korrektur f r die schwerwiegenderen Fehler der geraden Fortbewegungen setzt sich aus zwei Teilen zusammen e einer leichten Korrektur auf dem Weg an jeder LED um den Fehler gering zu halten und das Erreichen des Zieles sicher zustellen sowie 105 al 3 Hardware Solange Lichtintensitaet nicht sinkt Drehe links Merke linkes Maximum Solange Lichtintensitaet nicht sinkt Drehe rechts Merke rechtes Maximum Positioniere Roboter auf Mitte zwischen linkem und rechtem Maximum Abbildung 3 40 Idee fiir Drehkorrektur Pseudocode einer finalen Korrektur auf jedem Spielfeld wobei hier je nach Schwere der Abwei chung sowohl eine leichte Korrektur als auch eine starke Korrektur mit entsprechend spezialisierten Algorithmen denkbar ist Letztere kann gr fere Fehler sicherer und schneller beheben wird aber fiir den menschlichen Spieler wesentlich auff lliger agieren Durch ihren gemeinsamen Einsatz soll m glichst unauff llig sichergestellt werden dass das n chste Spielfeld sicher erreicht wird Dabei sehen die Konzepte konkret wie folgt aus intermediate_correction Die leichte Korrektur an den Weg LEDs Falls der Roboter in e
98. aubedarf zu erwerben sind LKW R der im Ma stab 1 87 HER06 entsprechen den Anforderungen Bei Tests die mit dem lauff higen Roboterprototypen unternommen wurden ergab sich jedoch dass die R der nicht in der Lage waren Grip auf dem Makrolon zu entwickeln vgl 3 5 1 1 Um die sem Problem kurzfristig entgegen zu treten werden die Reifen mit Haarspray bespr ht Auf lange Sicht gesehen stellt das jedoch keine L sung dar da die R der st ndig erneut behandelt werden m ssten Eine Alternative besteht darin die R der in Eigenarbeit zu konstruieren Dazu gibt es bereits einen ersten Prototypen Dabei werden Achse und Fel ge aus einem St ck Metall gedreht Auf die Felge wird dann ein breiter Dichtungsring aus Gummi erh ltlich im Baumarkt gezogen Um die Getriebe weiter verwenden zu k nnen muss bei der Herstellung darauf geachtet werden dass der ben tigte Achsdurchmesser erreicht wird 3 3 3 5 Geh use Zu diesem Zeitpunkt existiert noch kein Geh use f r den Roboterprototypen Wie in Abschnitt 3 3 2 5 schon erw hnt wird die Wahl wohl auf ein einfaches Design fallen das im Sommersemester festgelegt wird Zur Befestigung des Geh uses an der Bodenplatte gibt es bereits mehrere L sungs ans tze Eine M glichkeit besteht darin Gewinde in beide Teile zu schneiden und diese dann miteinander zu verschrauben Des Weiteren k nnte das Geh use von au en mit drei Schrauben an der Bodenplatte befestigt werden Detailliertere Ausf hru
99. ben Pins Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 sind Ausgangspins Der Pin MR wird verwendet um den Inhalt des Speichers zu l schen LE kontrolliert den Zustand des Latches GND soll mit der Masse Leitung verbunden werden w hrend VCC f r die Stromversorgung zust ndig ist D wird verwendet um die Ausgabedaten in den Speicher zu legen Nach dem der Latch angeschlossen ist soll LE auf Masse gezogen werden Dieser Zustand erm glicht die Speicherung der Ausgabewerte in den jeweiligen Speicher des Latches Die Adresse wird durch das entsprechende Setzen der Pins A0 A1 A2 zwischen 000 bis 111 gew hlt Ein LOW auf dem Pin LE setzt den Latch in den Lesezustand Dies wird aus gef hrt indem das Signal das im Pin D anliegt in der ausgew hlten Ausgangsadresse gespeichert wird Nach der Speicherung des Ausgangssignals in den jeweiligen Speichern des Latches wird der Pin LE auf High gesetzt Dieser Zustand entspricht der Ausgabe des jeweils gespeicherten Signals Die LEDs werden invertiert geschaltet da der Mikro controller nicht genug Strom liefern kann um alle LEDs einzuschalten Die Ausgangspins des Latches sind dann auf Masse gezogen auf LOW gesetzt wenn die LED blinken soll siehe Abbildung 3 4 7 1 Abbildung 3 74 74HCT138 Baustein 131 3 Hardware 74HCT138 F r eine weitere Optimierung haben wir ein weiteres 8 Bits adressier bares Latch vom Typ 74HCT138 verwendet Diese
100. bh ngigkeit und der plattformnativen Darstellung Die plattformnativit t wird dadurch erreicht dass wxWidgets intern plattformspezifischen Code einsetzt Da her m ssen die GUI Bibliotheken von wrWidgets zun chst f r die Zielplattform selbst compiliert werden Au erdem unterliegt ar Widgets im wesentlich der L GPL Library General Public Licence Die L GPL entspricht der GPL mit dem Zusatz dass der kom pilierte Quelltext frei eingesetzt werden kann und nicht offen gelegt oder ebenfalls als Open Source Projekt verf gbar gemacht werden muss http wxwindows org 166 4 4 Host Applikation Details k nnen der Referenz Sma05 entnommen werden Die Referenz umfasst Instal lationshinweise Hilfe zum Einrichten der IDE fiir die Verwendung mit wxWidgets und Erl uterungen und Code Beispiele zu den wr Widgets Klassen 4 4 3 Programmablauf Der Ablauf des Programms kann im wesentlichen in drei Phasen eingeteilt werden e Eine Initialisierungsphase in der die Software startet und sich konfiguriert e die Spielphase in der die Spieler ihre Eingaben vornehmen und e die Abschlussphase in der die Spielauswertung erfolgt 4 4 3 1 Initialisierungsphase W hrend das Spiel startet findet im Feld eine Initialisierung statt Dabei wird im Spiel feld ausgehend vom Parkplatz ein Koordinatensystem aufgebaut so dass die einzelnen Spielfeld Boxen direkt adressiert werden k nnen Dasselbe gilt auch fiir die angeschlos senen Host
101. bildung 6 20 Platinenlayout Testboard Feld Bauteile Unterseite 189 6 Anhang 00000000000000000000 00000000000000000000 CPLD Testboard Abbildung 6 21 Platinenlayout Testboard CPLD Routing Oberseite o o o o o o o o o o Abbildung 6 22 Platinenlayout Testboard CPLD Routing Unterseite 190 6 2 Platinenlayouts H 7 q le Ribbon Cable 50P 000000000000 000000000000 oe D xog 000000000000 1000000000000 Y p p d Abbildung 6 23 Platinenlayout Testboard CPLD Bauteile Ober und Unterseite 191 6 Anhang Abbildung 6 25 Platinenlayout Feldplatine Version 2 0 Routing Unterseite 192 6 2 Platinenlayouts en es X06206P182MR RTS mune s Ee poa An RPDT tk 47k LEDMG o LED29 Gr ol e bo ven ton El Lay TZ oueescg to ma oma oon OMeoveso8 El 020 TWIOBBFKOHTEK zog ArrsI9al son La ouezmeneen 80 808 son wa a ES am Abbildung 6 27 Platinenlayout Feldplatine Version 2 0 Bauteile Unterseite 193 6 Anhang Abbildung 6 28 Platinenlayout Host Interface Routing Oberseite Abbildung 6 29 Platinenlayout Host Interface Routing Unterseite 0 1 Flo i vat os 0 A EN WR ESA O a 3 awe OB an
102. bildungen 3 20 3 23 zu sehen 78 3 3 Roboter Abbildung 3 21 Der Roboterprototyp Ansicht links Abbildung 3 22 Der Roboterprototyp Ansicht vorn Abbildung 3 23 Der Roboterprototyp Ansicht oben 79 3 Hardware 3 3 6 Elektronischer Aufbau Die Roboter beinhalten eine ganze Reihe elektronischer Komponenten wie es auch schon bei der Komponentenauswahl in 3 3 3 deutlich wird Diese gilt es untereinander korrekt zu verbinden und im Roboter zu platzieren Aufgrund der Vielzahl der notwendigen Bausteine empfiehlt sich die Nutzung von Plati nen Um die Herstellungskosten gering zu halten werden diese selbst entworfen und auf der lehrstuhleigenen Atzanlage hergestellt Eine Anforderungsanalyse in 3 3 6 1 zeigt dass die Komponenten auf mehrere Platinen zu verteilen sind Abschnitt 3 3 6 2 Nach gemeinsamem Entwurf wird daher das Routing und die Herstellung einer Bodenpla tine in 3 3 6 3 einer Nebenplatine in 3 3 6 4 und einer Hauptplatine in 3 3 6 5 gesondert betrachtet Der Entwicklungszyklus wird wie gew hnlich durch Tests beschrieben in Abschnitt 3 3 6 7 abgeschlossen 3 3 6 1 Anforderungen Die Anforderungen an die Platinen werden durch mechanische und elektronische Ent scheidungen und Notwendigkeiten gepr gt Wie im Roboterlayout in 3 3 5 gem den Anforderungen an den Roboter aus 3 3 1 ersichtlich besteht eine einschneidende Beschr nkung bez glich der Dimensionierungs m glichkeiten d
103. cht allzu oft geschaltet werden f hrt dies auch nicht zu Einschr nkungen im Spielbetrieb Dadurch werden die ben tigten Anschl sse f r die Navigation allerdings von 36 auf 6 8 Anschl sse 4 6 f r die Adressierung 1 Data 1 Clock reduziert Die Kommunikations LEDs in der Mitte der Felder sowie die Foto transistoren sollen direkt vom Mikrocontroller angesteuert werden um eine reibungslose Kommunikation zu gew hrleisten Damit bleibt die Anzahl der ben tigten Anschl sse hier bei 16 F r die Checkpoints ist nur ein zus tzlicher Anschluss n tig da die einzel nen Checkpoints ber die Adresse der Navigations LEDs angesteuert werden k nnen Die Kommunikation ben tigt nur noch 2 Anschl sse pro Spielfeldseite also insgesamt 8 F r den Sound ist ebenfalls ein weiterer Anschluss n tig Insgesamt werden also 36 Anschl sse ben tigt 126 3 4 Spielfeld Als Mikrocontroller galt von Beginn an der LPC2114 von Phillips als aussichtreichster Kandidat fiir den Einsatz im Feld Fiir die Ansteuerung der Navigations LED und die Abfrage der Checkpoint Taster wurde neben der Verwendung von den oben angespro chenen TTL Bausteinen noch eine weitere L sung gefunden Der Einsatz eines CPLD Complex Programmable Logic Device erm glicht die Realisierung der gleichen Funk tionen in einer One Chip L sung und wurde als Alternative parallel entwickelt werden Abbildung 3 70 Adressen der Felder und LEDs Zu Beginn wurde au erdem die in
104. ck auf der Platine vorhanden Dieser kann leicht mit Spiritus entfernt werden Zum Abschluss kann nun die Platine noch mit L tlackspray behandeln werden Dies verhindert die Oxidation der Leiterbahnen Bohren Der letzte Schritt ist das Bohren Wichtig dabei ist eine Bohrmaschine mit hoher Bohrer drehzahl die vorzugsweise in einem Bohrst nder montiert ist Dies erm glicht ein verkan tungsfreies Bohren mit einem dauerhaften geringen Druck auf die Platine Die g ngigsten 39 3 Hardware Bohrer haben Gr en zwischen 0 8 mm und 1 5 mm Beim Einsatz von Glasfaserplati nen sollte ein Hartmetallbohrer verwendet werden da normale HSS Bohrer schon nach wenigen L chern stumpf werden 3 1 3 Mikrocontroller Die zentralen Steuerungsaufgaben in Spielfeld und Roboter tibernehmen Mikrocontroller In diesem Abschnitt werden die Auswahl und die Handhabung der eingesetzten Controller beschrieben 3 1 3 1 Auswahl der Mikrocontroller Anforderungen Der konkreten Anwendungsfall der Projektgruppe hat mehrere Anforderungsbereiche Roboter Spielfeld und die eventuell sp ter geplanten Konsolen Dies wirft die Frage auf ob der gleiche Mikrocontroller in allen drei Bereichen zum Einsatz kommt oder ob f r jeden Einsatzzweck ein spezialisierter Controller herangezogen werden soll Spielfeld Das Spielfeld als zentrale Komponente des Spiels bernimmt sicherlich den Gro teil der Steuerungsaufgaben So muss unter Anderem der Spielplanaufbau
105. com_send_one bzw com_send_zero Kommunikation abgebaut com_send_zero Bit gesendet wdh f r weitere Bits com_send_end Abbildung 3 35 Nachrichtenempfang Abbildung 3 36 Nachrichtenversand angesto en ne robo_msg_ rev msg Timeout Fehler Paritat erfolgreich gepruft empfangen Nachricht gesendet Das Kommunikationsprotokoll wird in zwei Schichten realisiert zum Einen eine Schicht hardwarenaher Prozeduren die das Senden und Empfangen von Einsen und Nullen sowie den Verbindungsaufbau und abbau bernehmen Ellipsen in den Abbildungen 3 35 und 3 36 zum Anderen eine Schicht von Steuerroutinen die die Kommunikation kontrollie ren Rechtecke und Pfeile in derselben Abbildungen 96 3 3 Roboter Das Protokoll selbst wird in 3 2 3 vorgestellt an dieser Stelle werden nur Besonderheiten der Programmierung zur Umsetzung aufgezeigt Der Timer void com_wait int times int i for i 0 i lt times i 4 while AT91C_PITC_PISR amp 0x1 0x1 AT91C_PITC_PIVR Abbildung 3 37 Datei com c Realisierung der Zielfrequenz Eine Funktion namens com_wait stellt f r die Kommunikation ein Taktsignal bereit Um mindestens 8 kHz Abtastfrequenz und etwa 4 kHz Sendefrequenz zu erreichen wird ein Timer PIT Periodic Interval Timer genutzt der ein 12kHz Signal erzeugt Dieses wird direkt genutzt um die Abtastung zu betreiben F r d
106. d 7 Bits Befehlsbreite und ein Parit tsbit vgl Abschn 3 3 7 4 und der Roboter im Allgemeinen nach dem Empfang eines Befehles das Feld verl sst Zwischen dem Roboter und dem erreichten Feld ist dann eine erneute Synchronisation erforderlich 3 5 2 Test der Befehlsausf hrung im Roboter Zum Abschluss der Testreihe zur Kommunikation wird nun die Nachrichtenauswertung im Roboter getestet also ein kompletter Kommunikationszyklus im sp teren Spielverlauf simuliert Hierzu sendet das Spielfeld den Steuerbefehl 0x22 an den Roboter der bewirken soll dass der Roboter ein Feld vorw rts f hrt vgl Abschn 3 3 7 1 Im Gegensatz zu den vorherigen Tests in denen die Motoren aus Energiespargr nden nicht angeschlossen waren werden diese hier wieder mit Strom versorgt Deshalb k nnen wir die Reaktion des Roboters die er auf den Empfang des Steuerbefehls zeigt beobachten Wie erwartet bewegt der Roboter sich vorw rts die R der rutschen jedoch auf dem Makrolon so dass er das n chste Spielfeld nicht erreicht Wenn der Roboter per Hand auf das Ausgangsfeld zur ckgesetzt wird ist er in der Lage den n chsten Befehl zur Vorw rtsbewegung direkt entgegenzunehmen und auszuf hren Einer kompletten Simulation eines Spielzuges und einem Test der Fehlerkorrekturalgorithmen vgl Abschnitt 3 3 7 7 steht somit nur noch das Rutschen der R der im Weg f r das eine L sung in Abschnitt 3 3 3 4 beschrieben wird 145 3 Hardware 3 6 Host Inte
107. da das Spielfeld die bertragung der Daten sonst abbricht 17 Die einzelnen Spielfelder der Testbox erhielten alle unterschiedliche Vorwiderst nde an den Fototran sistoren um den idealen Wert schlie lich in einem realen Test zu ermitteln vgl Abb 3 70 1SMESSAGE_RES ID Ox lt code gt wobei MESSAGE_RES_ID 0xE0 143 3 Hardware Anpassen der Empfangsgeschwindigkeiten im Roboter Um herauszufinden warum immer wieder vereinzelt fehlerhafte Pakete durch Timeout Fehler beim Bit Empfang auftreten werden nacheinander folgende Fehlerquellen ber pr ft e Die Empfangsrate des Roboters wird berpr ft und es stellt sich heraus dass der Periodic Interval Timer PIT des Mikrocontrollers nach dem ersten Durch lauf nicht erneut taktet Dies ist auf ein fehlerhaftes Zur cksetzen des Timers im Programmcode zur ckzuf hren und kann leicht behoben werden e Desweiteren taktet der PIT nicht in den gew nschten Zeitintervallen um beim Empfang eine Abtastfrequenz von 12 kHz zu garantieren Das f hrt zu sehr geh uf ten bertragungsfehlern aller drei Arten aus 64 empfangenen sind nur ein bis zwei Pakete korrekt Der Grund daf r ist die fehlerhafte Eingangs Taktung des Timers die ber einen Teilerfaktor mit der Frequenz der Master Clock des Controllers zu sammenh ngt Nach Messungen der Abtastrate beim Empfang mit dem Oszilloskop stellt sich heraus dass ein Korrekturfaktor zus tzlich zum Teilerfaktor zur rich tigen Tak
108. den Dieser Zu stand kann durch eine kleine Logikschaltung verhindert werden Werden die zwei Transi storen einer Seite durch jeweils einen Inverter getrennt an eine Leitung gelegt erh lt man zwei Steuerleitungen und eliminiert die Kurzschlussgefahr Die Inverter kann man sich Die SP Serie sind Schrittmotoren die einen Permanentmagneten als Rotor nutzen 66 3 3 Roboter Vda Al Bi B2 J pe GND Abbildung 3 13 Schematische Darstellung einer H Br cke hier sparen wenn man bei der Programmierung darauf bedacht ist diesen Fall logisch auszuschlie en Der bauliche Unterschied bei Schrittmotoren kommt nun nur in dem Aspekt zum Tragen dass bei den Schrittmotoren mehrere Spulen verbaut sind vgl Abb 3 14 die jeweils durch eine H Br cke angesteuert werden m ssen Alle weiteren Ver nderungen wirken sich nur auf die Programmierung 3 3 7 6 der Signale vom Mikrocontroller aus 1 3 4 5 6 7 E Abbildung 3 14 Anschluss eines Schrittmotors am L293D Quelle B 06a Konstruktion eines Motortreibers Der Aufbau einer H Briicke wurde bereits im vorigen Abschnitt erl utert Diese bildet im Motortreiber die Hauptkomponente Die notwendige Schaltung wird jedoch noch etwas komplexer da durch die Spulen der Motoren beim Abschalten Induktionsspannungs spitzen betr chtlicher H he entstehen k nnen vgl McM04 Elektrotechnisch gesehen 67 3 Hardware gleicht der Motor in diesem Moment im rotier
109. den wollen ensteht ein Fehler da einerseits beide ihr eigenes Datum anlegen und andererseits evtl keiner der Interruptaufforderung des Anderen nachkommt Diese Kollisionswahrscheinlichkeit muss reduziert werden Das kann dadurch erreicht werden indem die verfiigbare Bandbreite nur zu einem Teil aus gelastet wird Die Frage bleibt dennoch offen ob die Fehlerrate im realen Betrieb gering genug sein wird Alternativ muss die Low Level Kommunikation ein wenig angepasst werden Im Test hat die Kommunikation jedoch einwandfrei funktioniert 3 2 3 Spielfeldbox Roboter Die Kommunikation zwischen Spielfeld und Roboter lasst sich am besten mit LEDs in den einzelnen Feldern durchfiihren Vorteil dabei ist dass sichergestellt ist dass der Roboter herausfinden kann auf welchem Spielfeld er gerade steht Bei einer Funktibert ragung miisste die Ortung anders realisiert werden Zur Auswahl stehen dabei LEDs im sichtbaren und LEDs im infraroten Bereich Da die LEDs auf den Spielfeldern auch fiir die optische Darstellung von Aktionen z B Laser verwendet werden konnen werden hier LEDs aus dem sichtbaren Bereich verwendet werden Im Folgenden wird das angewendete Kommunikationsprotokoll detailliert beschrieben 56 3 2 Kommunikation Parameter Idee Zielsendefrequenz 4 kHz nominal absolutes Maximum Sendefrequenz 5 kHz absloutes Minimum Sendefrequenz 2 kHz absolutes Minimum Abtastrate 8kHz w hrend aktiver Kommunikation Robot
110. dene Optionskarten kann man in verschiedenen Situationen des Spiels einsetzen Der Spieler kann seinem Roboter mit Hilfe dieser Kar ten weitere Eigenschaften geben Beim Abschluss jeder Runde kann er sich wenn sein Roboter auf einem Reparaturfeld mit zwei Schraubenschl sseln steht entscheiden ob er zwei Schadenspunkte abgeben m chte oder ob er eine Optionskarte vom verdeckten Stapel nehmen will Diese muss er wenn er sie vom Stapel aufnimmt laut vorlesen und offen vor sich hinlegen Der Spieler darf h chstens drei Karten besitzen zieht er eine vierte so muss er sich entscheiden welche er ablegen will Wird ein Roboter zerst rt so muss der Spieler eine Optionskarte abgeben Optionskartenbeeinflussung beim Austeilen der Programmierkarten Hier k nnen zwei Karten Einfluss aus ben Zus tzlicher Speicherplatz Zu Beginn jeder Runde bekommt der Spieler eine zus tzliche Programmierkarte Ersatz Programm Einmal pro Runde darf der Spieler alle Karten die ihm ausgeteilt wurden zur ckgeben bevor er seinen Roboter programmiert hat und erh lt die gleiche Anzahl Karten neu vom Stapel Daf r bekommt der Spieler dann einen Schadenspunkt Optionskartenbeeinflussung beim Programmieren der Roboter Befehl in Reserve Nachdem ein Spieler seine f nf Befehle programmiert hat kann er eine sechste Karte verdeckt auf dieser Optionskarte ablegen Diese kann er mit einer programmierten Karte austauschen wenn diese noch nicht auf
111. deutet dass jede Box beliebig gedreht werden kann und trotzdem alle Boxen zusammenpassen Damit jede Box an jede andere Box gesteckt werden kann miissen alle Seiten der Spielfeldbox gleich aussehen Dieses wird vor allem in dem Kapitel ber die Kontakte noch einmal n her betrachtet siehe Kapitel 3 4 5 2 ber die Boxen m ssen die Roboter fahren k nnen Deshalb werden die Spielfeldboxen eine Oberfl che haben die dieses erm glicht n heres hierzu in Kapitel 3 4 4 Damit die Roboter gerade ber die Boxen fahren k nnen werden Navigationshilfen ben tigt Dank diesen kann der Roboter exakt von einem zu n chsten Feld fahren Als Navigationshilfen werden LEDs benutzt n heres hierzu in Kapitel 3 4 6 und Kapitel 3 3 7 7 Bevor nun die konkrete Realisierung der Spielfeldbox beschrieben wird werden hier zu n chst die Anforderungen an das Material genannt 1 ber die Spielfeldbox m ssen sp ter die Roboter fahren dementsprechend muss die Box stabil genug sein um den Roboter tragen zu k nnen Daraus resultiert dass als Material f r die Box nur Holz Plastik und Metall verwendbar sind Andere evtl m gliche Materialien wie bpsw Pappe Styropor m ssen somit nicht mehr betrachtet werden 2 Das Material der Spielfeldbox sollte sich nicht durch Umwelteinfl sse wie bspw eine zu hohe Luftfeuchtigkeit ver ndern Dies ist ein eindeutiger Nachteil von Holz da sich Holz bei einer zu hohen Luftfeuchtigkeit verziehen kann
112. die vorgeschaltete Ansteuerungslogik eines Schrittmotors nicht wesentlich von der eines Gleichstrommotors Insofern wird im Folgenden erst auf die Notwendigkeit einer Mo torsteuerung allgemein eingegangen Daran anschlie end werden unter den gegebenen Eigenschaften des in 3 3 3 1gew hlten Motors neben einigen Standardbausteinen auch eigene Konstruktionsm glichkeiten betrachtet bevor schlie lich die Auswahl des Trei bers begr ndet wird Notwendigkeit eines Motortreibers Die geforderte Leistung eines Motors kann in fast allen F llen nicht direkt vom Mikro controller abgegriffen werden da dieser unter der Last zerst rt w rde Deswegen ist eine Zusatzschaltung zur Trennung notwendig Der einfachste Weg eine Leitung vom Mikrocontroller abzukoppeln ist mit dieser einen Transistor anzusteuern der dann den gr eren Strom zur Verf gung stellt Da die Polung des Motors je nach Drehrichtung ge ndert werden muss gen gt diese einfache Schaltung jedoch nicht sondern muss entsprechend erweitert werden Die ein fachste M glichkeit ist eine Schaltung aus 4 Transistoren die sogenannte H Br cke vgl DPR Der Name entspringt der im Bild 3 13 erkennbaren H f rmigen Anordnung der Transistoren auf dem Schaltplan Die H Br cke erlaubt es den Motor in drei definierte Zust nde zu versetzen Zu diesen Zust nden gibt es jedoch noch einen weiteren den Kurzschluss Werden etwa A und Ba geschaltet werden Spannungsversorgung und Masse verbun
113. diese Architektur gegeben Dann folgt eine detailierte Beschreibung des entwickelten Protokoll Stacks der f r die Kommunikation der Komponenten untereinander n tig ist Dabei wird zuerst auf den Aufbau des Stacks und seine Bestandteile eingegangen bevor diese im Einzelnen genau erleutert werden Abschlie en wird der Spielablauf der Software in den Host Systemen erl utert und ein berblick ber die bereits entwickelten GUI Elemente gegeben 4 2 Architektur 4 2 1 Anforderungen Wichtig f r das Design der Softwarearchitektur war dass die Struktur nach M glichkeit in allen Komponenten wieder verwendet und flexibel angepasst werden kann Kompo nenten die mit Software ausgestattet werden m ssen sind e Die Roboter e die Spielfelder e der Parkplatz e die Host PCs und e die Host Spielfeld Schnittstellen Jede dieser Komponenten hat bedingt durch die jeweilige Hardware ganz eigene Anfor derungen an die Software W hrend in den Robotern wenig Speicher und Rechenleistung zur Verf gung steht und die Aufgaben der Software sehr stark begrenzt sind l uft die Host Software auf gew hnlichen PCs und hat eine deutlich gr ere Anzahl an Aufgaben zu bew ltigen 149 4 Software Daher ist die Software Architektur sehr modular aufgebaut so dass die Software fiir die einzelnen Komponenten und ihre entsprechende Hardware Architektur mit minimalem Aufwand zusammengestellt werden kann 4 2 2 Uberblick Die gesamte
114. dingt auf derselben enden sie he schwarzer Kreis in Abb 3 62 Leider kann dieses nicht auf dem Papier dargestellt werden Deswegen wird nur der Anfangspunkt des Lasers grafisch auf dem Papier fest gehalten Damit der Spieler sich nicht vorstellen muss wo sich ein Laserstrahl auf dem Spielfeld befindet werden dazu die in Kapitel 3 2 3 beschriebenen LEDs benutzt In der Programmierphase werden an den Stellen wo sich Laserstrahlen auf dem Feld befinden die jeweiligen LEDs eingeschaltet Auf diese Weise sind die Laser nicht auf eine L nge von 3 Feldern beschrankt 3 4 4 2 Haltbarkeit der Oberfl che Zun chst wurde berlegt dass das Papier auf eine Platte geklebt wird Dabei ergab sich leider das Problem dass einige L cher f r die bereits beschriebene Kommunikation ge bohrt werden m ssen Ein weiteres Problem liegt darin dass sich die Bedruckung auf Dauer w hrend des Spiels abnutzen wiirde Aus diesem Grund ist die Idee entstanden dass das bedruckte Papier unter einer 1 5mm dicken 15x15cm grofen Makrolon Platte befestigt wird Da das Makrolon durchsichtig ist miissen keine L cher fiir die Kommu nikation in das Makrolon gebohrt werden Um das Makrolon mit der Unterkonstruktion zu verbinden haben sind in die Ecke der Aluminiumwinkel Gewinde geschnitten worden und die Makrolon Platte ist mit Schrauben an den Winkeln befestigt worden Damit der Roboter problemlos ber diese Oberfl che fahren kann sind zu diesem Zweck Senkkopf schraube
115. diotec com pdf kbu4 pdf Brief H Bridge Theory of Operation Webpage http www dprg org tutorials 1998 04a index html FAULHABER GROUP Antriebssysteme Katalog 2003 2004 Roboternetz Roboter Elekronik Mikrocontroller Januar 2006 http www roboternetz de GREWE JAN und ROBIN GRUBER ASURO Roboterbausatz Modell ARX 03 DLR and AREXX 2004 http www schoollab dlr de Schoollab Oberpfaffenhofen Aktuelles 191164 an 01 de Asuro_BS_Programmierbarer_Roboter pdf GRAUPNER GMBH amp Co KG Bedienungsanleitung ULTRAMAT 12 November 2004 198 Literaturverzeichnis HERO6 Hit Int02 Int05 Kei Kei05 KTe LCP 04 Mik03a http www graupner de fileadmin downloadcenter anleitungen 6412 69 pdf HERPA MINIATURMODELLE GMBH LKW R der Produktbeschreibung 2006 http www herpa de collect 54hxeo55fly22155tvxtcgui detail aspx ProductID 051040 amp lang de DE amp express amp thumb 1 Robonova I Webshop http www robonova de store product php productid 16135 amp cat 248 page 1 INTERSIL CORPORATION 1CL3221 ICL3222 ICL3223 ICL3232 ICL3241 ICL3243 March 2002 http ww intersil com data fn fn4805 pdf INTERSIL Half Amp Full Bridge Power Driver for Small 8V 5V and 12V DC Motors December 2005 http www intersil com data fn n3976 pdf Keil u Vision http www keil com uvision2 KEIL AN ARM COMPANY Keil ARM Development Tools Oct 2005 http
116. dswert von 1 kQ im Spielfeld verwendet werden 144 3 5 Integrationstests 3 5 1 2 Roboter sendet Spielfeld empf ngt Nachdem der bertragungsweg von Spielfeld zu Roboter also verifiziert wurde wird die Aufmerksamkeit auf die Senderoutine des Roboters gerichtet Der Roboter sendet Da tenpakete an das Spielfeld die mit hnlichen Methoden ausgelesen werden wie beim vorherigen Test Hierbei ergeben sich auch aufgrund der bereits durchgef hrten Korrek turen keinerlei Probleme in der bertragung so dass dieser Test zur Berechnung der bertragungsgeschwindigkeit genutzt wird Messen der bertragungsgeschwindigkeit Zur Messung der bertragungsgeschwindigkeit sendet der Roboter an das Spielfeld in 1024 Durchl ufen jeweils zwei Datenpakete die jeweils genau 1 Byte 8 Bits gro sind Die f r das bertragen ben tigte Zeit wird gemessen um die bertragungsgeschwindig keit und die damit verbundene Nutzdatenrate zu bestimmen Der gesamte Sende und Empfangsdurchlauf dauert in etwa 64 Sekunden so dass sich eine bertragungsgeschwindigkeit von ungef hr 2 kBytes pro Minute oder circa 32 Bits pro Sekunde ergibt Diese doch recht geringe Datenrate ergibt sich aus der zeitaufw ndigen Synchronisationsprozedur im Kommunikationsprotokoll vgl Abschn 3 2 3 die vor dem bertragen eines Pakets stattfindet Diese ist jedoch tolerabel und sogar notwendig da die Steuerbefehle vom Spielfeld an den Roboter jeweils nur 1 Byte gro sin
117. e Anforde rungen und W nsche nicht Das markanteste Defizit ist sicherlich die fehlende haptische Komponente Ferner sollte bei der Wahl der Implementierungsart die berlegung dass Menschen seit jeher durch den Anschein des Spiels gegen eine Maschine fasziniert wur den nicht au er Acht gelassen werden Stellvertretend sei hier Maelzels Schachspieler von 1783 Poe36 ein von einem Men schen gesteuerter Schach spielender Automat genannt der das Publikum bereits zu Zeiten der Aufkl rung fasziniert hat Die neuartige Umsetzung der Robo Rally Spielidee durch die Projektgruppe soll daher auf realen selbst fahrenden Roboter Spielfiguren basieren die sich selbst ndig auf einer 12x12 Spielfelder gro en Fl che bewegen Die Interaktion mit dem Benutzer kann durch Steuerkonsolen erfolgen auf denen die Anweisungssequenzen mit virtuellen oder echten Spielkarten erstellt werden Mit einer modularen Spielfl che wird gegen ber dem Originalspiel ein weiterer Vorteil erzielt n mlich dass durch Variation der Spielfl che unterschiedliche Schwierigkeitsstu fen vorgegeben werden k nnen Schlie lich k nnen Roboter auch selbst ndig agieren um beispielsweise fehlende Mitspie ler zu ersetzen 1 2 Aufgabenstellung Die Aufgabenstellung der Projektgruppe besteht aus zwei Teilen e Aus der Motivation heraus sind allgemeine Ziele zu entwickeln Diese Ziele sollen durch die Projektgruppe erreicht werden und werden in Abschnitt 1 2 1 vor
118. e Go ee ar eg 3 1 1 Erstellen von Layouts 00 02000000 e 3 1 2 tzen von EEN 3 1 3 Mikroc ntroller ic seos 2 oi ra ee Re a Kommunikation 22 2 Co mon 3 2 1 Host PC Spielfeldbox 3 2 2 Spielfeldbox Spielfeldbox 2 2 2 22 nn nn nn 3 2 3 Spielfeldbox Roboter 13 13 14 14 16 17 17 18 18 19 19 21 21 21 21 22 24 27 27 28 32 33 34 34 34 34 37 37 37 38 40 54 54 55 56 Inhaltsverzeichnis 397 Rob ter As deh ee A Bee ee A A a Sie Ee er 59 3 3 1 Anforderungen 59 3 3 2 Standardlosuneen gt iaa ba Aoki ke eS a ES 60 3 3 3 Komponentenauswahl 0 0 00000 ee ee ee 65 3 34 Test board sess 24 2a 2 ses HB ee he a Qe ne Qo 73 3 3 5 Mechanischer Aufbau 0 0000005 Ge 75 3 3 6 Elektronischer Aufbau 80 3 3 7 Programmierung 90 3 3 8 Ergebnisse x uc Ae vee ee OM Oa te ts Suni et od a 112 Ke EE 113 3 4 1 Allgemeiner Aufbau e 113 3 4 2 Spielfeldbox Material 115 3 4 3 Unterkonstruktion nn 116 3 4 4 Oberfl che daa o nd la al Gide at eae 118 3 4 5 Verbindungen der Felder 2 2 2 rn nn nn 122 3 4 6 Elektronischer Aufbau der Spielfeldes 126 3 47 Testb ards 2 4 2 20 a eh EOS dei er 128 3 4 8 Gesamtplatine 0 20000 eee ee 137 3 4 9 Programmierung 138 3 5 Integrationstests e 142 3 5 1 Test der Kommunikation zwischen Roboter und Spielfeld 14
119. e Karten Abb 4 7 mit den Bewegungsbefehlen die dem Spieler zum Programmieren seines Roboters angezeigt werden sind der amerikanischen Variante des Original Spiels entliehen In das Feld in der oberen rechten Ecke der Karten wird vom Spiel die Prioritat der Karte eingetragen mit der der entsprechende Bewegungsbefehl vom Spiel ausgefiihrt wird 170 4 4 Host Applikation MOVE 3 MOVE 2 4 4 4 5 Kombinierte Karten ROTATE MOVE 1 BACK UP LEFT Abbildung 4 7 Karten Durch die Optionskarten Dual Processor und Crab Legs wird es dem Spieler erm g licht die Befehlskarten Move 1 und Rotate Left Right zu kombinieren und in einem Programmslot abzulegen Diese Befehle werden daraufhin in einem Schritt ausgef hrt Diese Karten werden im Original Spiel dadurch dargestellt dass der Spieler die beiden zu kombinierenden Karten im gleichen Slot ablegt 1 MOVE 1 STEP RIGHT AND LEFT MOVE 1 AND RIGHT Abbildung 4 8 Kombinierte Karten Es wurde jedoch beschlossen diese Kombinationen als einzelne Karten Abb 4 8 zu erg nzen damit der Spieler auf einfache Weise erkennen kann welche Karten in einem Slot kombiniert sind Der kombinierten Karte wird dabei die Priorit t des Move 1 Befehls zugeordnet 4 4 4 6 Optionskarten Die Optionskarten werden durch kleine Symbole Abb 4 9 im unteren Bereich der Infor mationsleiste dargestellt Die Symbole die f r die Darstellung der Optionskarten verw
120. e Kommunikation ben tigt sowohl eine Sende als auch eine Empfangseinheit vgl Kommunikationsprotokoll in Abschnitt 3 2 3 Neben diesen Kernaufgaben gibt es eine Reihe von Einschrankungen die beachtet werden m ssen Die Gr e ist durch die Spielfeldbox mit ihren quadratischen 5 cm breiten Spielfeldern begrenzt siehe 3 4 Da sich Roboter auf benachbarten Feldern ohne Behinderung und Ber hrung bewegen und insbesondere drehen k nnen m ssen ist unter Ber cksichtigung eines Sicherheitsabstandes ein Durchmesser vom maximal 4 5 cm realisierbar Die H he sollte optischen und stabilisierenden Gesichtspunkten entsprechend durch etwa 6 cm begrenzt sein Ein Roboter muss ber ausreichende Energiekapazit t f r mindestens ein Spiel verf gen und somit Erfahrungswerten folgend f r bis zu drei Stunden Betrieb ger stet sein Umweltpolitischen und konomischen Gesichtspunkten gerecht werdend sollte die Ener giequelle kosteng nstig in der Anschaffung und vor allem im Betrieb sein Das hei t sie sollte kosteng nstig regenerierbar sein um Verbrauchsmaterial bzw abf lle sowie Verbrauchskosten gering zu halten Ferner ist Robustheit gegen ber kleinen Schl gen und St en Unebenheiten in der Fahr bahn und gegen ber Staub notwendig um den Spielbetrieb und eine akzeptable Robo terlebenserwartung zu sichern Unter Ber cksichtigung dieser Aufgaben und Einschr nkungen gilt es Standardtechniken der Robotik zu bewerten und gegebenen
121. e ein Wettrennen Jeder Spieler steuert einen Roboter und versucht diesen als Ersten ber die Rennstrecke zu bringen 21 2 Das Spiel Diese wird durch Fabrikelemente wie z B W nde Laser und F rderb nder und auch durch die Roboter selbst beeinflusst Durch Optionskarten die in den Erweiterungen enthalten sind k nnen Roboter besondere Eigenschaften erhalten Da die Roboter sich nahezu zeitgleich bewegen wird so manches lustiges Chaos verursacht Wer als Erster alle Checkpoints in der korrekten Reihenfolge passiert hat und das Ziel erreicht ist der Gewinner des Spiels 2 1 3 Vorbereitung Als Grundlage f r die folgenden Beschreibungen dienen das deutsche Grundspiel von Amigo 1999 und die passende Erweiterung Crash and Burn Auf die amerikanischen Varianten und insbesondere auf die Version 2005 wird in Abschnitt 2 1 8 eingegangen Spielplan Zu Beginn wird der Spielplan ausgelegt wobei die Spieler entscheiden k nnen wie viele und welche der vorhandenen Spielpl ne sie benutzen m chten Spielt man mit mehre ren Pl nen so legt man diese zu einem gro en Spielplan zusammen so dass sie genau Seite an Seite aneinander passen Die Spieler k nnen frei w hlen wie sie diese Pl ne zusammenlegen Abbildung 2 1 Ein Spielplan der Version 2005 Rennstrecke festlegen Als n chstes legt man die Rennstrecke mit Hilfe von Checkpoints das sind Teilziele die von den Robotern erreicht werden m ssen fest Sie sind
122. edigen sind auf ein sog busy waiting zur ckgegriffen werden Durch die Anweisung while AT91C_ADC_SR AT91C_ADC_EOC1 AT91C_ADC_EOC1 wird das Statusregister des ADCs AT91C_ADC_SR berwacht Durch die Und Ver kn pfung wird dabei nur auf das Bit des ersten Kanals geachtet Den Abschluss der 95 3 Hardware Umwandlung signalisiert der Mikrocontroller durch setzen des End of Conversion Bit des ersten Kanals AT91C_ADC_EOC1 Sobald also die Konvertierung des analogen Signals abgeschlossen ist wird das Programm fortgesetzt Das entsprechende Statusbit wird dabei durchs Lesen des Messergebnisses indirekt zuriickgesetzt und kann so das Ende einer weiteren Konvertierung anzeigen Auf diese Weise ist nun die Akkuspannung dem Roboter bekannt Er kann gem obiger Ausf hrung handeln und ggf den menschlichen Spieler informieren lassen 3 3 7 3 Sleepzustand Zum aktuellen Zeitpunkt wird der Sleepzustand noch durch ein busy waiting simuliert Ziel aber ist es weite Bereiche des Roboters incl seines Mikrocontrollers abzuschalten um so Energie zu sparen Der Roboter soll dann durch einen vom Spielfeld initialisierten Interrupt ber den zentralen Fototransistor aufgeweckt werden 3 3 7 4 Kommunikation Kommunikation Sende Kommunikation Nachricht initialisiert Timeout z Fehler com_waitfor_ poseedge Kommunikation send msg beginnt com_send_init p Kommunikation initialisiert
123. ehr eingeschr nkte Kommunikationsm glichkeiten Dieser Controller k me f r den Einsatz im Roboter in Frage Atmel ATtiny26L Atm05f e AVR 1 MHz bzw 16 MHz e 128 Bytes SRAM e 2 kB Flash e 1 PWM Wandler e 10 Bit A D Wandler e 16 GP I O Lines e Gr e 25 mm x 8 mm Tiny hei t klein Dementsprechend sind auch Ausstattung und Stromverbrauch Als einzige Kommunikationsperipherie steht ein Universal Serial Interface zur Verf gung daf r gibt es passende Motorsteuerungen auch ein Analog Comparator ist vorhanden Also auch ungeeignet f r den Einsatz im Spielfeld nur als Roboter Controller einsetzbar Auswahl der Controller f r Spielfeld und Roboter Aufgrund der verschiedenen Anforderungen der Einsatzbereiche Spielfeld und Roboter im Hinblick auf Gr e Stromverbrauch Kommunikations und Steuerungsaufgaben ist es schwierig eine Kompromissl sung zu finden die beiden Bereichen zufriedenstellend gerecht wird Daher ist es sinnvoll die inhomogene L sung zu w hlen und f r Spielfeld und Roboter unterschiedliche Controller zu nehmen Es bietet sich an ARM basierte Controller zu verwenden da diese l nger auf dem Markt sind und somit eine gr ere Auswahl an Entwicklungswerkzeugen und breiter gef cherte Produkterfahrungen zur Verf gung stehen Dar ber hinaus ist eine Toolchain am Lehr stuhl bereits vorhanden Auch ist die Programmierung in der 16 32 Bit ARM Umgebung wesentlich komfortabler als auf den 8 Bit AVR Kernen Zude
124. eine Programmierung damit die Ausg nge kor rekt angesteuert werden k nnen Programme f r den CPLD k nnen mit der von Xilinx zur Verf gung gestellten Software dem Xilinx WebPack in der aktuellen Version 7 1 er stellt werden Die Programmierung erfolgt hier in VHDL Probleme bei der Erstellung der Software entstehen durch einige Besonderheiten der Umsetzung des VHDL Codes so dass Programme dann zu gro f r den CPLD werden k nnen Insbesondere die Verwendung von IF Abfragen und Schleifen bzw eine Kombination davon ist sehr speicherintensiv Eine Umstellung auf CASE Anweisungen bringt eine Reduktion des Speicherbedarfs um mehr als die H lfte so dass nun die Gr e des Programms kein Problem mehr darstellt 134 3 4 Spielfeld Programmierung Zur Programmierung des CPLD wird die daf r vorgesehene JTAG Programmierschnitt stelle benutzt Um das Programm mit der aktuellen Software WebPack 7 1 auf den CPLD zu schreiben muss ein Programmierkabel verwendet werden Es stehen drei Al ternativen zur Verf gung e Der Erwerb eines solchen Programmierkabels e Der Eigenbau eines Stecker nach einem von Xilinx Xil98a bereitgestellten Schalt plan e Die Verwendung eines lteren am Lehrstuhl vorhandenen XChecker Program mierkabels das allerdings nicht mit der aktuellen Software Version kompatibel ist Die erste Variante scheidet bei Preisen von weit ber 100 Euro f r solche Kabel aus Der Eigenbau der Schaltung f r das
125. eiten Zum Anderen kann es passieren dass sich Holz verzieht Au erdem hat Holz eine zu geringe thermische Leitf higkeit Somit gen gt Holz nicht unseren Anspr chen 3 Metall Im Gegensatz zu Holz hat Metall den Vorteil dass es elektrisch und thermisch leitf hig ist Ein f r uns besonders gut geeignetes Metall ist Aluminium da es zus tzlich magnetisch neutral und relativ einfach zu bearbeiten ist Ferner hat Alu minium den Vorteil gegen ber anderen Metallen dass sich eine Oxidationsschicht an der Oberfl che bildet Dies verhindert weiteres Oxidieren 115 3 Hardware Unabh ngig vom gew hlten Material k nnen entweder fertige Boxen gekauft werden oder die Boxen selbst hergestellt werden Ein wichtiger Vorteil von fertig gekauften Boxen besteht darin dass der gro e Aufwand der Selbstherstellung erspart bleibt Doch leider bestehen auch einige Probleme Die Boxen m ssten noch weiter modifiziert werden Zum Einen m ssten L cher f r die in Kapitel 3 2 3 beschriebenen Kommunikationeinrichtungen gebohrt werden und zum An deren m ssten M glichkeiten f r die Steckverbindungen zwischen den Boxen eingebaut werden Zwischen den Boxen m sste es so einen Spalt f r die Steckverbindungen geben So w ren wieder Zwischenr ume vorhanden die der Roboter berwinden m sste Ein weiterer gravierender Nachteil von fertig gekauften Boxen ist dass diese in der Regel runde Kanten haben Dies w rde f r die Roboter ein nicht berw
126. en 86 3 3 Roboter Schnittstelle zur Nebenplatine Die Breite des Roboters stimmt mit der des Akkus berein F r die Verbindung zur Nebenplatine k nnen die Kabel also nur oben ber den Akku gef hrt werden Programmierschnittstelle Die Programmieranschl sse des Mikrocontrollers liegen auf der rechten Seite Da es keine weitere Einschr nkungen gibt kann die Schnitt stelle dort beliebig positioniert werden Diese Aufteilung der Schnittstellen legt es nahe die gesamten Kommunikationskom ponenten und damit auch die Bodenschnittstelle linksseitig und die Schnittstelle zur Nebenplatine rechtsseitig zu platzieren Positionierung der Motortreiber Die Beschaltung und Ansteuerung der Motortreiber HIP4020 wurde grob bereits in erl utert Problematisch auf der Hauptplatine ist jedoch der Platzbedarf dieser Bausteine Zudem hneln sich die Bausteine in der Verdrahtung sehr jedoch auf eine Art die viele Durch kontaktierungen n tig macht Da der mittlere Teil der Platine nicht durch die sp tere Befestigung in Anspruch ge nommen wird kann f r diesen auf die Forderung nach nur einseitiger Best ckung mit Bauteilen verzichtet werden Folglich kann jeweils ein HIP4020 auf jeder Seite platziert werden Dies hat eine Reihe von Vorteilen Da Durchkontaktierungen wie die Nebenplatine zeigt notwendig sind k nnen diese nun gleich auch zur Ansteuerung auf der Unterseite ver wendet werden Weiterhin ergibt sich eine g nstige
127. en det werden sind von den Optionskarten aus dem Original Spiel bernommen Wenn der Spieler die Maus ber das Symbol der Optionskarte bewegt wird ein Tooltip angezeigt in dem die Funktion der Karte erkl rt wird 171 4 Software Wird das Symbol der Optionskarte angeklickt werden die Konfigurationsm glichkeiten der Karte im oberen Bereich der Informationsleiste angezeigt Je nach Funktion kann die Karte hier an bzw abgeschaltet werden oder es wird angezeigt wie oft die entsprechende Zusatzfunktion noch eingesetzt werden kann Abbildung 4 9 Optionskarten 172 5 Zusammenfassung 5 1 Status Der Status Abschnitt soll als kurze Zusammenfassung der vorhergehenden Kapitel die nen um einen groben berblick der Fortschritte der Projetkgruppe R3D3 zu bekommen Die Struktur des Abschnitts orientiert sich an dem Aufbau der zusammengefassten Ka pitel 5 1 1 Hardware 5 1 1 1 Roboter Da fiir den Roboter keine Fertigl sung gew hlt werden konnte mussten aus einer Vielzahl von Bauteilen die richtigen ausgew hlt werden Als besonders aufw ndig erwies sich die Suche und der Zusammenbau der Getriebe und das Auffinden eines geeigneten Akkus Diess ist auf die besonderen Anforderungen bez glich der Gr e zur ckzuf hren Fast alle Komponenten m ssen zuerst auf ihre Gr e bez glich der Verwendbarkeit gepr ft werden Um alle elektrischen Bauteile unterzubringen werden im Roboter mehrere Platinen ein gesetzt Sc
128. enden Zustand einem kleinen Stromgene rator Damit diese Str me nicht zum Mikrocontroller gelangen sollte er durch zwei am Motor in Sperrichtung installierten Dioden abgeschirmt werden Ein problematisches Kriterium bei der Eigenkonstruktion ist also der Platzbedarf der sich selbst mit Tricks vgl vV aufgrund der Gr e der einzelnen Komponenten trotz gro er M hen nur bedingt minimieren l sst Auch Hybridl sungen sind denkbar Es gibt reine H Br cken wie die ZXMHC6A07T8 Zet04 die nur aus den Transistoren bestehen diese jedoch auf wesentlich kleinerem Platz als Einzelbausteinen unterbringen Hier m ssten dann wenigstens die Dioden nach ger stet werden Ein weiterer L sungsansatz liegt in der Nutzung von Logik Bausteinen wie den 74x245 die hierf r zweckentfremdet werden k nnen vgl Pri Dabei ist dann darauf zu achten dass die Leistungsgrenzen der Bausteine nicht dauerhaft berschritten werden Insofern kann der Eigenbau in Gr e Preis und Funktionssicherheit nicht mit den fertigen Bausteinen mithalten die zudem meist zus tzlich noch mindestens einen Thermalschutz beinhalten Fertige Treiberbausteine Eine sehr zahlreiche Auswahl an Motortreibern ist von verschiedenen Chipherstellern als IC verf gbar Auch Nanotec der Anbieter der in 3 3 3 1 ausgew hlten Motoren betreibt zwei Serien von Treibern SMC und IMT90x Nan die zus tzlich noch Mi kroschrittf hig sind Das hei t sie k nnen bis zu gro e Te
129. er IAP Routine initialisiert F r die Definition der Parameter sind folgende Angaben n tig Der Wert 51 wird als Schreibbefehl interpretiert Die zu beschreibende Adresse im Flash wird durch command 1 angegeben Mit command 2 wird die Adresse des zu kopierenden Bereichs im RAM angegeben Das Kopieren von Daten in den Flash erfolgt in Paketen von 512 Byte Gr e und wird in command 3 definiert Zuletzt wird die Takt Frequenz des Quartz definiert command 0 51 command 1 0x40 m_paketNr 1 512 command 2 pMessage command 3 512 command 4 14745 Nachdem das letzte Paket angekommen ist wird der Reset gestartet Dieser Vorgang folgt dem gleichen Prinzip wie oben beschrieben nur mit dem Unterschied dass in das Register 0x0 geschrieben wird welches ein Reset als Exeption ausl st 141 3 Hardware 3 4 9 3 Spielfeldtest Das Spielfeld besteht aus folgenden Teile die jeweils getestet werden miissen e LEDs und Fototransistoren auf der oberen Platine Die Kommunikations LEDs und Fototransistoren sind am Kontroller direkt an geschlossen die restlichen Navigations LEDs werden tiber den CPLD angesteuert Als ein allgemeines Programm zum Testen aller dieser Funktionen benutzen wird ein Programm welches den Status der Fototransistoren wiedergibt Dabei gehen die LEDs eines Feldes alle an wenn kein Licht auf den Phototransistor fallt Bei kompletter Lichteinstrahlung gehen alle LEDs aus Nun kann mit z B der H
130. er Motorachse ein schr nkt Diese kann nach Aufbrechen der Motorengeh use zumeist gewaltsam entfernt werden Bei der von uns anvisierten Gr enordnung von einigen Millimetern Durchmesser ist dies jedoch nicht empfehlenswert Eine H Br cke besteht im einfachsten Fall aus vier Transistoren eine genauere Betrachtung ist in Abschnitt 3 3 6 5 zu finden Einige Ausf hrungen der L 293 Serie erhalten mehrere H Br cken 4Pulsweitenmodulation 62 3 3 Roboter w rden Dies ist auch bei Richtungs nderung der Motorlaufrichtung zwischenzeitlich empfehlenswert um die Belastung der Motorsteuerung und des Motors selbst m glichst gering zu halten Getriebemotoren k nnen abh ngig von ihrer Belastung dem Untergrund und individuel len Produktionsunterschieden in ihrer tats chlichen Umlaufgeschwindigkeit voneinander abweichen Ob zwei von verschiedenen Motoren angetriebene Rader sich gleich schnell beziehungsweise gleich oft gedreht haben kann ohne externe Sensoren die die Radum drehungen tiberwachen nicht kontrolliert werden F r das R3D3 Projekt scheinen Getriebemotoren daher unpraktikabel zu sein denn schon die Fahrt gerader Strecken w rde zur Herausforderung werden Eine Haltewirkung w re zudem nur durch einen Kurzschluss mit entsprechendem Stromverbrauch m glich Schrittmotoren Schrittmotoren sind grundlegend anders konzipiert als Getriebemotoren Bac03 Ein Rotor oft ein Permanentmagnet wird durch spulenerzeugte ele
131. er Platinen Nutzfl chenmaximierend ist eine zum Akku parallele Plati nenplatzierung die eine Gr e von 38 mm x 50 mm bei kreisbogenf rmiger Tiefe erlaubt Weiterhin sind eine Reihe von Komponenten unterzubringen unter anderem der Mi krocontroller AT91SAM7S32 vier Motortreiber die Festspannungsversorgung sowie die Kommunikationskomponenten Letztere m ssen so untergebracht sein dass die Schnitt stellen zur optischen Kommunikation an den dazu spezifizierten Stellen unter dem Ro boter zur Verf gung stehen hnliches gilt f r die weiteren Schnittstellen wie die zu den Motoren dem Akku dem Ein Ausschalter und dem Ladestecker Diesen zum Teil divergierenden Anforderungen gerecht werdend ist ein Kompromiss zu erarbeiten 3 3 6 2 Aufteilung der Komponenten Obwohl jede der verwendeten Komponenten in kleiner Bauform erh ltlich ist ist eine Platzierung selbst auf einer zweiseitigen Platine dieser Gr e am Lehrstuhl nicht m glich Daher wird eine L sung mit mehreren Platinen zwangsl ufig notwendig 80 3 3 Roboter 6 Programmierschnittstelle Hauptpl ATN atine Nebenplatine Spannungs Fest teiler spannung 5 W Motor steuerung 2 Motor steuerung oa Ein Aus Schalter Ladestecker Abbildung 3 24 Platinenaufteilung ni Durch giinstige Aufteilung der Bauteile ist eine Erfiillung aller gestellten Anforderun
132. er auf ein Portal so wird der Roboter zu dem gleichfarbigen anderen Portal transportiert Sollte dieses jedoch besetzt sein so ist das Portalfeld ausgeschaltet und wird als ein Feld ohne Funktion behandelt Der Roboter zieht dann dar ber hinweg oder bleibt darauf stehen 25 2 Das Spiel e Ein Brenner kann einem Roboter einen Schaden zufiigen sowohl dann wenn dieser sich auf ein Feld mit einem aktiven Brenner bewegt als auch wenn er sich ber ein solches Feld hinweg bewegt Die Programmschritte in denen der Brenner aktiv ist sind auf dem Feld durch Zahlen angegeben e Auch Schwingtiiren sind nur in bestimmten Programmschritten aktiv die durch Zahlen angezeigt werden Ist eine Schwingtiir aktiv so kann sich ein Roboter durch sie hindurch bewegen Ist sie nicht aktiv so verh lt sie sich wie eine Wand die Bewegung des Roboters wird dann an dieser Stelle unterbrochen Fabrikelemente treten in Aktion Es gibt folgende Fabrikelemente die in dieser Phase in Aktion treten Expressb nder F rderb nder Schieber Zahnr der Pressen Laser Brenner Checkpoints und Reparaturfelder Wenn die Fabrikelemente in Aktion treten dann ist diese Reihenfolge einzuhalten e Expressb nder transportieren Roboter ein Feld weiter e Expressb nder transportieren Roboter ein zweites Feld weiter F rderb nder trans portieren Roboter ein Feld weiter e Schieber die w hrend des Programmschrittes aktiv sind schieben Roboter auf ein benachbart
133. er blinken in Sendefrequenz alternatives Senden Lauschen Verh ltnis um Matching in 2 Zyklen zu garantieren Einsen senden 20 Takte Nullen senden lauschen 3 Takte Spielfeld blinken in Sendefrequenz Hoher Anteil Einsen damit Roboter sich an dem Licht ausrichten kann und es gegen ber Anwender als Dauereins erscheint Einsen senden 38 Takte Nullen senden lauschen 3 Takte Die gerichtete Kommunikation besteht aus drei Phasen Verbindungsaufbau Beide Kommunikationspartner stellen gen gend Ressourcen zur Verf gung insb Rechenzeit und stellen sich somit auf die Synchronisation und Kommunikation ein Senden Empfangen der Datenbits Die Datenbits werden jeweils zwischen einer Eins und einer Null bertragen je 8 Bits pro Verbindung der Sender kann den Wert per Majorit tsentscheidung ermitteln Verbindungsabbau Eine abschlie ende Eins teilt das Ende des achten Datenbits mit abschlie ender Null mit Ausgangssituation Der Roboter steht auf einem Spielfeld der Roboter lauscht per Interrupt ist i d R in einem Sleepmodus und das Spielfeld tastet den Fototransistor regelm ssig ab Einer der Kommunikatinspartner m chte Daten senden Roboter z B Fehlermeldung la Batterie ist leer Spielfeld z B Bewegungsbefehle Dazu muss er selbst die Ressourcen f r den Sendevorgang mit ausreichender Sendefrequenz bereitstellen Der Kommunikati onspartner muss informiert werden damit er ebenfalls ausreiche
134. erf gung Dabei muss aber kein Vector Calc durchgefiihrt werden da der Code manuell aus dem Flash Programm aufgerufen wird Dazu muss der Code entsprechend gelinkt werden wie in Abschnitt 3 1 3 2 beschrieben Daraufhin kann bei Angabe der richtigen Startadresse der Code direkt aus dem RAM gestartet werden E LPC2000 Flash Utility Flash Buffer 18 FO 9F ES 18 FO SF ES 18 FO SF ES 18 FO 9 ES 18 FO OF ES d 58 00 00 00 ac 00 00 00 FE FF FF EA FE FE FF FF EA Fi 00 DO AD EI O 04 00 40 E2 D D2 FO 21 E 00 DO AD El m AB 4D E2 2 03 00 52 El 0 00 00 AD E3 20 D4 00 81 34 FE a 20 00 00 m LoadHexFie Vector Uploadio Flash DowrloadFlash SaveHex File Code Execution Address Range mo Selected Range Start 00000000 Thumb ARM Entire Bufer End ug LPC2000 Flash Utility HEX File Loading Succeeded Abbildung 3 6 Uploadfenster f r den Flashspeicher Flashen des ATMEL AT91SAM7832 Zur Programmierung des AT91SAM7S32 stellt Atmel ein Flash Tool namens SAM BA zur Verf gung Atm06b das den Controller sowohl ber die serielle Schnittstelle als auch ber USB ansprechen kann vgl Abb 3 7 Da auf dem Testboard die Debug Unit DB GU des Controllers mit einer seriellen Schnittstelle verbunden ist vgl Abschn 3 3 4 betreiben wir das SAM BA Flash Tool per DBGU Connection ber einen COM Port der mit der Debug Unit DBGU des Controllers verbunden ist Dabei ist zu beachten dass das Tool
135. es Feld e Zahnr der drehen Roboter um 90 nach links oder rechts e Pressen die w hrend des Programmschrittes aktiv sind zerst ren Roboter e Laser f gen Roboter Schaden zu e Brenner die w hrend eines Programmschrittes aktiv sind f gen Robotern Sch den zu e Checkpoints und Reparaturfelder erhalten die Sicherheitskopie eines Roboters wenn dieser dar ber hinweg gezogen ist oder darauf zum Stehen gekommen ist Expressb nder transportieren Roboter als erstes ein Feld in Pfeilrichtung im zweiten Schritt dann erneut ein Feld weiter wenn der Roboter noch immer auf einem Expressband steht Gleichzeitig mit dem zweiten Schritt werden Roboter von F rderb ndern ein Feld weiter transportiert Auf den oben erw hnten Fabrikelementen k nnen Ziffern abgebildet sein die kenntlich machen in welchem Programmschritt sie aktiv sind Steht ein Roboter zum Beispiel im zweiten Programmschritt auf einer Presse die nur im ersten dritten und f nften Schritt aktiv ist so passiert ihm nichts Abschluss der Runde Wenn alle Programmschritte ausgef hrt worden sind dann findet der Abschluss der Run de statt Roboter k nnen ihre Sch den reparieren lassen wenn sie auf einem Checkpoint 26 2 1 Das Spiel im Original oder einem Reparaturfeld stehen Auf Reparaturfeldern mit einem Schraubenschliissel und auf einem Checkpoint kann ein Schadenspunkt abgegeben werden Ein Spieler kann bis zu zwei Schadenspunkte abgeben wenn er auf einem Repa
136. f gt wenn der Roboter einen anderen schiebt diesem einen Schaden zu Das tut er auch dann wenn sich der Roboter nicht schieben l sst weil er beispielsweise vor einer Wand steht Optionskartenbeeinflussung w hrend des Programmablaufs Fabrikelemente treten in Aktion Mit den folgenden Karten werden die Auswirkungen die bestimmte Fabrikelemente oder die Roboterlaser haben ver ndert Expressb nder F rderb nder und Zahnr der Im Folgenden die Optionskarten die Auswirkungen auf Expressb nder F rderb nder und Zahnr der haben Kreiselstabilisator Wann immer der Besitzer dieser Optionskarte m chte wird sein Roboter auf Express F rderb ndern und auf Zahnr dern nicht gedreht Ver nderungen am Laser der Roboter Mit diesen Optionskarten kann man die Laser der Roboter ver ndern Doppellaser Der Roboter kann mit dem Doppellaser einem anderen Roboter zwei Sch den zuf gen Kombinationsm glichkeit besteht mit der Karte Zielkontrolle und oder Hochleistungslaser Zielkontrolle Der Spieler muss bestimmen ob er dem Besitzer des Roboters den er besch digt eine Programmierkarte blockiert oder ob er eine seiner Optionskarten zerst rt Diese muss der Spieler dann sofort auf den Ablagestapel zur cklegen Kombi nationsm glichkeit besteht mit der Karte Doppellaser und oder Hochleistungslaser Hochleistungslaser Mit Hilfe dieser Optionskarte kann der Roboter durch eine Wand und durch einen
137. f hren Da jedoch an allen Seiten des Controllers weitere Leitungen liegen gilt es die nun n tigen berschneidungen geschickt zu legen um gr tm glichen Nutzen bei geringem Aufwand zu erhalten Versch rft wird diese Anforderung durch die festgelegten Pins der notwen digen Peripherie des Mikrocontrollers Eine optimale Pinbelegung f r eigene Peripherie in der Programmierung konnte weitere unn tige berschneidungen und die damit ver bundenen Durchkontaktierungen vermeiden In den folgenden Abschnitten wird hnlich zur Nebenplatine in 3 3 6 4 auf die Kompo nenten dieser Platine und ihre Positionierung eingegangen sowie dazugeh rige Beson derheiten erl utert 85 3 Hardware Vor der Platzierung der Bausteine wurden zwei grundlegende Entscheidungen getroffen Wegen der kreisbogenf rmigen Tiefe der begrenzenden Roboterwand sind die gro en Bausteine m glichst mittig zu platzieren Zus tzlich soll die R ckseite der Platine m glichst nur zum F hren von Leiterbahnen dienen damit die Platinenhalterungen dort freier und ohne Erh hung der Bautiefe posi tioniert werden k nnen Diese zwei Entscheidungen haben entsprechende Konsequenzen f r die im Folgenden behandelten Punkte Mikrocontroller Da der Mikrocontroller mit allen anderen Komponenten verbunden wird vgl Abbildung 3 27 Nr 10 hat er auf der Platine eine sehr zentrale Lage Die eben angesprochenen Versorgungsleitungen werden teilweise unter den Controlle
138. falls Bestandteil des mechanischen Aufbaus ist die Anordnung der Sensoren fiir die Kommu nikation und Positionsfindung Der elektrotechnische Aufbau der Spielfiguren wird aus einer Mikrocontrollerschaltung bestehen die fiir die Ansteuerung der Motoren und die Anbindung der Dateniibertra gungseinrichtung notwendig ist Eine Schaltung zum Wiederaufladen der Akkus wird nicht in die Spielfiguren integriert sondern in Form einer Ladestation realisiert F r die Daten bertragung zwischen dem Spielfeld und den Spielfiguren gibt es zahlreiche Ans tze Zun chst soll einer optischen Kommunikation der Vorzug gegeben werden Die Auswahl des Mikrocontrollers ist ein kritischer Aspekt der Konzeptphase dieser Pro jektgruppe PG Es gibt hierbei zahlreiche gegenl ufige Anforderungen zwischen denen ein sinnvoller Kompromiss gefunden werden muss So soll die Hardware ausreichend Rechenleistung und Speicher bieten m glichst wenig Energie verbrauchen leicht zu pro grammieren sein eine gute Unterst tzung durch Entwicklungstools haben und speziell in dieser PG auch so gew hlt werden dass der gleiche Mikrocontrollertyp f r die Spiel feldkomponenten verwendet werden kann Die Implementierung der Software der Spielfiguren beinhaltet zeitkritische hardwarenahe Komponenten beispielsweise die Ansteuerung von Motoren oder die Auswertung von Sensoren Dar ber hinaus muss ein Protokollstack f r die Kommunikation mit einem Spielfeld und anderen Spielfiguren
139. falls eigene L sungen zu entwickeln 3 3 2 Standardl sungen Zu recht g nstigen Preisen sind eine Vielzahl von Mikrocontrollern Sensoren und Ak tuatoren im Elekronikhandel erh ltlich Durch eine fast unbegrenzte Anzahl an Kom binationsm glichkeiten sind der Kreativit t f r Roboter bez glich ihrer Hardwareaus stattung aber auch ihrer zu realisierenden F higkeiten kaum Grenzen gesetzt So haben sich beispielsweise gro e Interessensgemeinschaften im Internet gebildet Fra06 um ih re L sungen und Erfahrungen auszutauschen Aber auch die Industrie hat reagiert und vorgefertigte Baus tze entworfen BSWO6 Es entstanden so eine Reihe von Standardl sungen die hier zu betrachten und bez glich ihrer Verwendbarkeit f r die Spielroboter zu bewerten sind Dabei ist insbesondere die 60 3 3 Roboter Gr e und das Gewicht der Komponenten kritisch zu untersuchen denn Standardtech niken sind zum Gro teil auf wesentlich gr ere Roboter bis 20 kg ausgerichtet 3 3 2 1 Fortbewegung Zwei Arten der Roboterfortbewegung dominieren den Markt Fahren Radantrieb Ket tenantrieb und Laufen BSW06 Dabei ist ein fahrender Roboter wegen der einfacheren Mechanik und Programmierung leichter zu realisieren Aufgrund der strikten Platzbe grenzung sind Radantriebe zu bevorzugen Diese sind am Weitesten verbreitet und lassen sich in mehrere Kategorien klassifizieren B 06c Wichtiges Kriterium ist hierbei die Anzahl der Antriebsr
140. fol gend wurde getestet ob die Spielfeldboxen untereinander zu einer funktionierenden Kom munikation in der Lage sind und ob die Verschiebung des Massepotentials keine Probleme verursachen wird Also wurde an einen im Hardwarelabor vorhandenen Br ckengleichrichter eine Gleich spannung angelegt Die Ausgangsspannung wurde an folgenden Spannungsregleraufbau 135 3 Hardware gelegt Der Mikrocontroller ben tigt zwei Spannungen 1 8 V und 3 3 V Aus Mangel einer g nstigen und verf gbaren hybriden L sung wurden im Test die Spannungsreg ler LM1086CS 3 3 Nat05 und XC6201P182MR Tora verwendet Diese liefern auch im Host Interface siehe Abschnitt 3 6 2 die ben tigten Spannungen In der Spielfeldbox ist die SMD Variante des LM1086 durch eine stehende Variante im TO220 Geh use fiir eine bessere K hlung ersetzt Au erdem wird der g nstigere und leistungf higere XC6206P182MR Torb verwendet Um den Eingangsspannungsbereich nicht durch den 1 8 V Spannungsregler zu beschr nk en wird dieser durch den 3 3 V Spannungsregler gespeist Der Aufbau enthielt weiterhin die in den Datenbl ttern empfohlenen Kondensatoren Mit den erzeugten Spannungen wurde ein Mikrocontroller Testboard gespeist welches durch Kommunikationsleitungen mit einem zweiten Mikrocontroller Testboard verbun den war Das zweite Board wurde durch einen identischen Aufbau mit den ben tigten Spannun gen versorgt Es gab also zwei Verbindungen der beiden Testboa
141. ft wird auf sie gesondert eingegangen Die individuellen Problemstellungen und L sungen der Spielfiguren und Spielfeldboxen werden in eigenen Unterkapiteln pr sentiert Es folgt eine Beschreibung der Integrati onstests fiir beide Hardwarekomponenten Die Beschreibung des Interfaces zum Host beschlie t das Kapitel Die Darstellung der Software im Kapitel 4 gliedert sich in drei Abschnitte Bevor der Protokollstack auf der einen Seite und die Host Applikation auf der anderen Seite n her betrachtet werden wird ein berblick ber die Softwarearchitektur gegeben um die einzelnen Komponenten im richtigen Zusammenhang sehen zu k nnen Eine Zusammenfassung in Kapitel 5 bestehend aus einem berblick ber den aktuel len Status des Projektes und einen Ausblick auf das zweite Halbjahr der Projektarbeit beschlie t diesen Zwischenbericht 20 2 Das Spiel 2 1 Das Spiel im Original In diesem Kapitel soll auf das Spiel Robo Rally seine Geschichte und seine Regeln eingegangen werden das als Ausgangsbasis f r diese Projektgruppe dient Die Regeln der deutschen Erstausf hrung sind der Anleitung zu dem Spiel von 1999 AMI99 und der Erweiterung Crash and Burn AMI00 entnommen 2 1 1 ber das Spiel Das Spiel Robo Rally nach der Idee von Richard Garfield kann bereits auf eine lange Geschichte zur ckblicken Die erste Ver ffentlichung im Jahre 1994 und die letzte im Jahre 2005 zeugen davon dass seine Idee bis heute
142. g Abbildung 6 2 Schaltplan Roboter Hauptplatine 178 6 1 Schaltpl ne aaysbunuueds t WHO WL WHO WIL fiunuuedsnyyy aqreH Zoot Bunuuedssbunfuosay A EE SASF puna ONST D zZ DO us bunuspneu 6unuuedsnyyy uf ONO uf dE d ano Jafarssbunuueds say d 5 5 my SlSISHUUIS et m B 5 8 bunjanajsiojo y 2 qleb md neg snc ZalH uf LH cur ajqeua JH uf ONO nd you nd giam nd MEE md Zoo nd JOJOPY ayaysyuyos 3 rn laYd aulyeidjdney ayaysyuyos 2 Abbildung 6 3 Schaltplan Roboter Nebenplatine 179 6 Anhang ZI 2102 S048909 19 20 awsozveog 19 ai awsozrsoa 19 CG an E Ge i soul e ener OU 80 eng COS zo ENE so En AL sema semga CY semaga u ene SI Rs ence 818 mR el Ke na a ng we SH DER E 001 a 001 lt S N NOT lt D En ana gt El nm DEM enc 2NGS1 ana eng Su God Sat E 001 alls alls E 001 J A Ked oor B S S D ech Le e gt E TR Fr SE a g SS zus sedan ca cap 1031 Di Cap 82031 a Zug SS ener e 001 E oot m 001 2 oo i A d S eg E veda eng 0031 ra vo ene 22037 ce 2 ol 2 o DCH a aj E 00 u Ei u 20 z gE zE d 00 E 6 E VR eedan Gi Cap 6031 Su I ene 12031 vs N N 2 breng a 001 2 Z a oor e 00 k 2 3 amp d d 3 gt CH y gt 22031 ene 8631 Su a Cap 02031 Ed En XOZ 12 2102 aws
143. gedeckt wurde Schwungrad Nachdem der Spieler f nf seiner Karten zur Programmierung verwen det hat darf er eine sechste zur Seite legen und dann in der n chsten Runde zus tzlich verwenden 28 2 1 Das Spiel im Original Optionskartenbeeinflussung w hrend des Programmablaufs Befehle ausf hren Notschalter Anstatt eine Programmierkarte aufzudecken kann man diese mit dieser Optionskarte durch die oberste Karte des Stapels ersetzen Danach m ssen jedoch alle anderen Karten auch durch Karten vom Stapel ersetzt werden Nach dem Abschluss der Runde wird die Funktion deaktiviert Schutzschirm Der Schutzschirm kann den Roboter des Besitzers dieser Optionskarte vor Schaden aus einer bestimmten Richtung bewahren Dieser Schutzschirm ist in jedem Programmschritt aktiv und man muss sich vorher entscheiden aus welcher Richtung man gesch tzt werden m chte Dies macht man dadurch deutlich dass man einen um gedrehten Schadenspunkt auf den Rand der Karte oben unten rechts oder links legt je nachdem welche Seite gesch tzt werden soll Falls die Richtung nicht auf diese Weise gekennzeichnet sein sollte ist der Schutzschirm nicht aktiv Drehscheibe Die Drehscheibe erlaubt einem Spieler den Laser seines Roboters in die Richtung zu benutzen die er vor einem Programmschritt festgelegt hat Das gilt auch f r die Benutzung des Turbo Blasters des Hochdruckstrahls der Fernsteuerung des Zufallsgenerators und de
144. gen m glich Dazu werden drei Platinen verwendet Eine Bodenplatine Abschnitt 3 3 6 3 umfasst die optischen Kommunikationsschnittstel len Eine Nebenplatine Abschnitt 3 3 6 4 beherbergt neben der Steuerung des zweiten Motors die Spannungsversorgung Eine Hauptplatine schlie lich Abschnitt 3 3 6 5 um fasst die Mikrocontrollerschaltung und die Steuerung fiir den zweiten Motor Die Haupt und Nebenplatine werden respektive links und rechts vom Akku platziert ihre Gesamtgr e kann dadurch maximiert werden Die Aufteilung orientiert sich dabei an folgenden Faktoren e die Positionierung der Schnittstellen Motorschnittstellen sind beispielsweise auf Platinen nahe der anzusteuernden Motoren untergebracht um Anschlusskabel kurz zu halten e die m glichst gleichm ige Verteilung der Komponenten Durch eine gleichm ige Verteilung soll das Routing der Platinen erleichtert werden 81 3 Hardware e die Minimierung der Verdrahtung zwischen den Platinen Verdrahtungen sind feh leranfallig und unhandlich in der Verarbeitung 3 3 6 3 Bodenplatine O Schnittstelle Hauptplatine Abbildung 3 25 Bodenplatine Da die Kommunikationselemente direkt in die Bodenplatte eingelassen sind bietet es sich an die Bodenplatine direkt dadriiber anzubringen Auferund der damit verbundenen geringen Gr e der Platine 28 mm x 6 mm k nnen keine weiteren Komponenten auf ihr untergebracht werden Da nur drei ausschlie lich bedra
145. gestellt e F r die genaue Aufgabenstellung sind diese Ziele jedoch zu konkretisieren Es wer den daher aus den allgemeinen Zielen Minimalziele extrahiert die das Projektteam verbindlich zu erf llen hat Diese werden in Abschnitt 1 2 2 dargestellt Entsprechend dieser Aufteilung enthalten die Zielformulierungen in Abschnitt 1 2 1 eine Reihe von L sungsans tzen und Ideen deren Umsetzung nicht verpflichtend ist Ferner werden auch schon Erweiterungsm glichkeiten wie sie in Abschnitt 1 4 genau vorgestellt werden aufgegriffen 1 2 1 Ziele Im Rahmen dieser Projektgruppe wird ein Spiel erstellt das die Spielidee der Robo Rally Spiele umsetzt Die Kerneigenschaften dieser Implementierung sind eine modulare aktive Spielfl che auf der selbst fahrende Roboter Spielfiguren das Spielgeschehen ausf hren Die Aufgabenstellung ist dementsprechend in zwei Hauptaufgabenbereiche zu gliedern Zum einen sind Spielfiguren zu entwickeln zum anderen die Spielfl che 14 1 2 Aufgabenstellung 1 2 1 1 Spielfiguren Die Spielfiguren sollen h chstens 4 5 cm Durchmesser und eine H he von etwa 6 cm haben Die mechanische Realisierung der Spielfiguren besteht in der Entwicklung einer gemein samen Plattform fiir alle mindestens vier Spielfiguren Insbesondere geht es dabei um die Entwicklung eines Antriebs Der mechanische Aufbau muss ferner hinreichend Platz und entsprechende Haltevorrichtungen fiir Akkus und Steuerplatine vorsehen Eben
146. halteten Widerstand gelten dass durch ihn ein Strom von Ir IMotor 140mA flie t und UR Uges UMotor 1V Spannung abf llt F r den Widerstand resultiert nun _Ur_ WV _ Ir 140mA 7 1 Q2100 Fiir jede Spule wird dementsprechend ein 10 Q Widerstand zwischengeschaltet Die Motorsteuerung bildet eine Funktionseinheit und wird stets als Ganzes ein oder ausgeschaltet So werden die jeweils zwei HIP Enable Eing nge ENA ENB der Motor treiber jeweils zusammengeschaltet Ein HIP4020 steuert jeweils eine Motorspule an Da die Fing nge eines HIPs invers zueinander sind k nnen dessen Steuereing nge Al B1 in unserer Anwendung ebenfalls zusammengeschaltet werden Insgesamt sind so durch den Mikrocontroller zwei Steuerleitungen und eine Enable Leitung zu steuern 84 3 3 Roboter Schnittstelle Nebenplatine A Schnittstelle Schnittstelle Bodenplatine Motor Abbildung 3 27 Hauptplatine 3 3 6 5 Hauptplatine Das Herzst ck der Hauptplatine ist der Mikrocontroller Trotz seiner geringen Gr e braucht er mit seinen diversen zu verbindenden Ausg ngen recht viel Platz auf der Platine und stellt alleine schon beim Routing eine eigene Herausforderung dar Letzteres gilt insbesondere auch f r das L ten und Testen Spannung und Masse werden mehrfach in den Mikrocontroller gef hrt zus tzlich ist ei ne intern erzeugte Arbeitsspannung ber mehrere Pins an verschiedenen Seiten wieder zuzu
147. hat als alle ihre erreichbaren Nachbarn was bei nicht rechteckigen Konstruktionen oder bei Konstruktionen mit einem Loch der Fall sein kann dann kann sie die Nachricht nur ans Ziel bringen indem sie einen Broadcast schickt Bei diesem Broadcast wird die Zieladresse ins Adressfeld der Nachricht eingetragen so dass die Zielbox diese Nachricht an seinen oberen Layer weiterleitet alle anderen Boxen diese Nachricht aber nicht an ihren oberen Layer weitergeben sondern die Nachricht nur weiterleiten Das bedeutet dass alle Spiel feldboxen die Nachricht weiterleiten denn sie ist ja eine Broadcast Nachricht aber diese nicht bearbeiten CRouting_HandleBroadcast benutzt daher in jedem Fall die Funktion CRouting_broad castMessage die eine bergebene Nachricht an alle verf gbaren Nachbarn sendet aber abh ngig vom Broadcasttyp wird die Nachricht nicht an den oberen Layer weitergegeben 158 4 3 Protokoll Stack 4 3 2 5 RgD3 Routing Protokoll Tests Die Tests f r das Routing Protokoll fanden nicht auf der Zielhardware sondern in einer auf Sockets basierenden Umgebung statt Dadurch lie sich das Protokoll sehr komforta bel und schnell debuggen Die Test Umgebung sieht so aus dass die Low Level Kommu nikation durch einen Thread simuliert wurde der auf einem Socket lauscht Wird etwas empfangen wird der Routing Layer ber den Scheduler siehe 4 3 4 aktiviert und kann die empfangene Nachricht bearbeiten Jede Spielfeldbox bekom
148. hen diese bew hrte sich bereits bei Tests mit den Schrittmotoren Au erdem dient eine Diode am Eingang der Spannungsversorgung zum Schutz vor Verpolung 73 3 Hardware Weitere Komponenten fiir den Mikrocontroller sind der Quarz und verschiedene Konden satoren Dabei besitzt aber der Mikrocontroller noch die Besonderheit dass bei der ver wendeten Quarzfrequenz von 12 Mhz keine Kondensatoren ben tigt werden Atm05c Je doch werden fiir den internen Spannungsregler Kondensatoren zur Reduktion von Ripp let gebraucht hier wird im Testboard ein 2 2 uF und parallel ein 1 nF Kondensator eingesetzt Weiterhin sind mehrere Entst rkondensatoren vorgesehen Diese sind in der N he von ICs zwischen Versorgungsspannung und Masse geschaltet Das Testboard enth lt einen Taster f r den Reset des Mikrocontrollers und einen weiteren Taster der Eingaben an den Mikrocontroller erm glicht Zur Ausgabe stehen vier LEDs zur Verf gung Eine serielle Schnittstelle dient der Progammierung und dem Datenaustausch Der Bau stein MAX3232 Max03 setzt die Pegel des Mikrocontrollers in symmetrische Pegel f r die serielle Schnittstelle des PC um Der Anschluss an den PC ist aufgrund der vorhande nen Sub D Buchse ber ein serielles Kabel m glich Der Mikrocontroller AT91SAM7S32 besitzt zwei serielle Schnittstellen Die eine wird zur Kommunikation mit dem Bootpro gramm und dadurch zur Progammierung des Mikrocontrollers benutzt Die andere dient der Ko
149. hlie lich wurden alle ben tigten Bauteile bestellt getestet und zu einem Pro totypen zusammengesetzt werden Dies ist in diesem Semester erfolgreich abgeschlossen worden so dass bereits damit begonnen wurde die Software f r den Roboter auf dem Prototypen zu testen 5 1 1 2 Spielfeld hnlich wie bei den Robotern gab es auch f r das Spielfeld keine Fertigl sung die alle Anforderungen zufriedenstellend erf llt h tte Daher musste zuerst eine Entschei dung getroffen werden welche Materialien verbaut werden So sind die Seitenw nde aus Epoxydharz Platinen die mit 4 Aluminium Winkeln verschraubt werden Eine durch sichtige Makrolon Platte bildet die Oberfl che Die bestellten Materialien reichen aus 16 Spielfeldboxen und einen Parkplatz zu fertigen im Moment ist eine Box als Testbox einsatzbereit Da sowohl zur Navigation als auch zur Kommunikation des Roboters LEDs benutzt werden wird das Design der im Spielfeld enthaltenen Elektronik stark davon gepr gt 173 5 Zusammenfassung eine Vielzahl LEDs anzusteuern Eine M glichkeit bestand darin die Ansteuerung mit Hilfe von Latches zu realisieren Dieser Ansatz wurde aber wieder verworfen weil er zu teuer war und zu viel Platz verbrauchte Ein weiterer Ansatz verwendet einen CPLD so dass alle Bauteile auf eine einzige Platine passen was auch den mechanischen Aufbau vereinfacht Ein Prototyp dieser Platine ist fertig gestellt und kann nun getestet werden Der Entwurf
150. htete Komponenten verwendet werden bietet sich die Verwendung einer Lochrasterplatine an Eine Ansteuerung der optischen Komponenten erfolgt durch die Mikrocontrollersteuerung der Hauptplatine 3 3 6 4 Nebenplatine Gem der Aufteilung der Komponenten zu den funktionalen Einheiten Festspannungs regler Spannungsteiler und Motorsteuerung Abb 3 26 werden die einzelnen Bauteil gruppen im Folgenden erl utert Festspannungsregler Eine Unterbringung des Festspannungsreglers auf der Nebenplatine bietet sich aus meh reren Gr nden an e Mikrocontroller und Festspannungsregler sind beide fl chenintensiv und daher auf die Platinen aufzuteilen 82 3 3 Roboter 6 eek Hauptplatine Schnittstelle Schnittstelle Motor Akku Abbildung 3 26 Nebenplatine e Es sind keine zus tzlichen Verbindungsleitungen zwischen den Platinen notwendig da die Stromversorgung auf beiden ben tigt wird e Die im Vergleich zur Versorgungsspannung h here Akkuspannung wird nicht in der N he vom Mikrocontroller eingesetzt Die Festspannungsversorgung umfasst neben der Kernkomponente KF33DB zwei Kon densatoren einen vorgeschalteten 100 nF Kondensator der m gliche Schwankungen sei tens der Spannungsquelle und einen nachgeschalteten 2 2 uF Elko Kondensator der Bedarfspitzen seitens der Spannungsabnehmer gl ttet Dar ber hinaus wird die empfindliche Elektronik des Roboters durch eine 1 A Sicherung gesch tzt Spannungsteiler Da
151. icht Eigener Hop ist zu gro daher wird Eigener Hop Hop in Nachricht gesetzt und allen anderen Nachbarn EigenerHop 1 zugesendet Broadcast Nachrichten Das RgD3 Routing Protkoll kann Nachrichten in zwei Arten weiterleiten Nachrichten die an einen Empf nger gehen werden von der Funktion CRouting_Send TonearestNeoghbor nach dem mehrfach beschriebenen Verfahren weitergeleitet Nachrichten die an alle Empf nger gehen sollen werden durch einen sog Broadcast an alle gesendet Eine empfangene Broadcast Nachricht wird von der Funktion CRouting_HandleBroad castMessage bearbeitet die berpr ft zuerst anhand der eindeutigen Message ID ob diese Nachricht bereits einmal empfangen worden ist und verwirft sie in dem Fall Als n chstes wird gepr ft ob die Adresse bestenhend aus einem Koordinatenpaar der BR OADCASTADRESS entspricht BROADCASTADRESS ist definiert als char 0xC0 also 63 und ist so gew hlt dass sie w hrend des Spiels nicht vorkommen kann Diese Adresse wird gebraucht um die beiden verschiedenen Broadcast Modi auseinander zu halten e Broadcast der an alle Spielfelder gehen soll Die CRouting_HandleBroadcast Funktion leitet die Nachricht an den bergeordneten Layer weiter und sendet sie zus tzlich an alle Nachbarn weiter Das Adressfeld der Nachricht wird mit der oben erw hnten BROADCASTADRESS belegt e Broadcast der aufgrund eines Routing Fehlers passiert Wenn eine Spielfeldbox eine kleinere Distanz zum Ziel
152. ichtung vor dem eigenen Roboter so kann er diesen fernsteuern W nde und Roboter behindern die Verbindung nicht Ab diesem Zeitpunkt bis zum Ende der Runde f hren die beiden Roboter die identischen Befehle aus wobei der steuernde Roboter seine Bewegungen immer als Erster durchf hrt Zufallsgenerator Der n chste Befehl des Roboters der von einem Laserstrahl ge troffen worden w re wird mit Hilfe dieser Karte durch den Befehl der obersten Karte auf dem Stapel ausgetauscht Im f nften Programmschritt ist der Zufallsgenerator nicht einsetzbar Traktorstrahl Mit dem Traktorstrahl kann ein Spieler einen Roboter in die Richtung seines Roboters ziehen Der Roboter wird hierbei nicht besch digt Steht dieser Roboter jedoch auf einem der vier benachbarten Felder so darf die Optionskarte nicht benutzt werden Schaden Wenn ein Spieler f r seinen Roboter einen Schadenspunkt erhalten soll so kann er statt dessen einfach eine Optionskarte die sich in seinem Besitz befindet wieder zur ckgeben Mit den folgenden beiden Optionskarten kann der Schaden eines Roboters verhindert werden Schutzhaut Diese kann verhindern dass der Roboter Schadenspunkte erh lt Wird der Roboter des Besitzers dieser Karte besch digt so werden die Schadenspunkte die er erh lt auf diese Optionskarte gelegt Liegen auf dieser drei Schadenspunkte so muss die Karte abgegeben werden Schutzschilde Wenn ein Spieler seinen Roboter abgescha
153. ika tion bestehend aus den Hardware Realisierungen vgl Abschn 3 3 6 3 und 3 4 6 dem Protokoll vgl Abschn 3 2 3 und der Implementierung in den einzelnen Komponenten vgl Abschn 3 3 7 4 und 3 4 9 ist Hauptbestandteil der Integrationstests 142 3 5 Integrationstests 3 5 1 Test der Kommunikation zwischen Roboter und Spielfeld Das Kommunikationsprotokoll soll nach erfolgter Implementierung im Roboter und im Spielfeld unter realen Bedingungen getestet werden Um die Daten bertragung zu testen wird der Roboter Prototyp auf die Test Spielfeldbox gestellt Dabei wird zun chst das Feld 0 vgl Abb 3 70 verwendet welches mit dem geringsten Vorwiderstand am Fo totransistor beschaltet ist 7 Zus tzlich werden an den Roboter einige frei ansteuerbare Status LEDs angeschlossen damit der interne Programmzustand berpr ft werden kann und das Verhalten des Roboters beim Empfangen einer Nachricht besser nachvollzieh bar ist Das Spielfeld verf gt ber gen gend LEDs die den Programmstatus anzeigen k nnen 3 5 1 1 Spielfeld sendet Roboter empf ngt Zuerst soll die Empfangsroutine des Roboters getestet werden Dazu sendet das Spielfeld manuell gesteuert einzelne Pakete Anhand der Status LEDs kann festgestellt werden dass die Empfangsprozedur im Roboter die entgegengenommenen Nachrichten komplett verarbeitet und dass das Programm nach dem Empfang einer Nachricht wieder empfangs bereit f r eine weitere Nachricht ist Zur be
154. ile Oberseite 185 6 11 Platinenlayout Testboard AT91SAM7S32 Bauteile Unterseite 185 6 12 Platinenlayout Roboter Hauptplatine Routing Oberseite 186 6 13 Platinenlayout Roboter Hauptplatine Routing Unterseite 186 6 14 Platinenlayout Roboter Nebenplatine Bauteile nur Oberseite 187 6 15 Platinenlayout Roboter Nebenplatine Routing Oberseite 187 6 16 Platinenlayout Roboter Nebenplatine Routing Unterseite 187 6 17 Platinenlayout Testboard Feld Routing Oberseite 188 6 18 Platinenlayout Testboard Feld Routing Unterseite 188 6 19 Platinenlayout Testboard Feld Bauteile Oberseite 189 6 20 Platinenlayout Testboard Feld Bauteile Unterseite 2 2 2 189 6 21 Platinenlayout Testboard CPLD Routing Oberseite 190 6 22 Platinenlayout Testboard CPLD Routing Unterseite 190 6 23 Platinenlayout Testboard CPLD Bauteile Ober und Unterseite 191 6 24 Platinenlayout Feldplatine Version 2 0 Routing Oberseite 192 6 25 Platinenlayout Feldplatine Version 2 0 Routing Unterseite 192 6 26 Platinenlayout Feldplatine Version 2 0 Bauteile Oberseite 193 6 27 Platinenlayout Feldplatine Version 2 0 Bauteile Unterseite 193 11 Abbildungsverzeichnis 6 28 Platinenlayout Host Interface Routing Oberseite 194 6 29 Platinenlayout Host Interface R
155. ilen der Programmierkarten Alle 84 Karten werden gemischt und jeder Spieler erh lt verdeckt neun Karten auf die Hand Die Karten zeigen unterschiedliche Befehle durch die die Roboter gesteuert werden k nnen Die Vorw rtsbewegung um ein zwei oder drei Felder die R ckw rtsbewegung um ein Feld die Vierteldrehung nach rechts oder links und die halbe Drehung Erh lt ein Spieler in der ersten Runde nur Drehbefehle so erh lt er neun neue Karten Ab der zweiten Runde verteilt der Kartengeber nur so viele Karten an die Spieler wie der Schaden ihres Roboters es zul sst Auf jeder Programmierkarte steht eine Programm nummer Diese gibt die Reihenfolge an in der die Spieler ihre Roboter bewegen d rfen Ein Roboter dessen Programmkarte die Nummer 840 hat darf sich vor einem Roboter mit der Programmkartennummer 260 bewegen vgl Abb 2 3 Abbildung 2 3 Die Programmierkarten der Version 2005 Programmieren der Roboter Jeder Spieler muss nachdem die Karten alle verteilt worden sind ein Programm f r seinen Roboter zusammenstellen das den Roboter steuern soll Er w hlt aus seinen neun Karten f nf aus und legt sie verdeckt so vor sich hin dass die erste Karte des Programms links und die letzte rechts liegt Die erste Karte stellt den ersten Befehl dar und die letzte den f nften Befehl Nachdem ein Spieler seine Programmierung abgeschlossen hat legt er die restlichen Karten auf den Stapel der nicht ausgeteilten Karten zur ck und seine
156. ilschritte machen und so teilweise ein Getriebe ersetzen Diese haben jedoch vor allem zu hohe Anforderungen an die Spannungsversorgung und sind deswegen fiir diesen Aufbau ungeeignet Im Eigenbau gern genutzte Standardl sungen wie der TI L293 Tex04 oder der ST L298 STMO00 leiden unter dieser Vorgabe wie auch viele andere Treiber die erst ab 4 5 V ihren Dienst aufnehmen beispielsweise TC 4469 Tel96 Eine andere gro e Gruppe die schlie lich auch mit Besonderheiten wie gr eren Thermal und Shutdownlogiken erweitert sind disqualifiziert sich durch ihre Dimension beispiels weise LMD 18200 Nat HIP4020 Der HIP4020 Int05 von Intersil ist ein Motortreiber der mit 3 3 V zurecht kommt und zudem in SMD Bauform mit 13 x 10 x 2 35 mm recht klein aber immerhin gr er als der Mikrocontroller ist Mit einer Schaltkapazit t von 500 mA einem Leerlaufstrom von 0 8 mA und einer guten Verf gbarkeit gen gt er den definierten Anspr chen Ein weiterer Pluspunkt sind die Erfahrungen einer fr heren Projektgruppe die sowohl diesen als auch selbst gebaute Treiber benutzt haben Aufgrund von zwei Spulen pro Motor sind hier f r die zwei Mototren also vier HIP4020 Bausteine als Treiberstufe notwendig 68 3 3 Roboter Kompatibilit t Da die Motoren eine Eingangsspannung von 1 96 V erwarten der HIP4020 jedoch 3 3 V liefert muss eine Spannungsanpassung stattfinden Dazu muss ein Widerstand als vorgeschaltete Spannungsreduktionsei
157. indbares Hindernis darstellen Zus tzlich gab es keine Boxen der Gr e 15cm x 15cm Daraus resultiert die Entscheidung die Boxen selbst herzustellen So k nnen die Boxen nach individuellen Bed rfnissen erstellt werden Die Spielfeldbox wird in eine Unterkonstruktion und deren Oberfl che unterteilt Beides wird gesondert in den folgenden Kapiteln betrachtet 3 4 3 Unterkonstruktion Die Unterkonstruktion besteht im Wesentlichen aus Seitenfl chen Es gibt mehrere M g lichkeiten um die Oberfl che und die Seitenfl chen zu verbinden 1 Eine Idee ist Aluminiumbl cke zu benutzen In diese werden ben tigte Gewinde f r Schrauben zur Befestigung der Oberfl che und Seitenfl chen geschnitten Um Platz f r die ben tigten Kontakte zwischen den Boxen zu haben d rfen die Seitenfl chen nicht von au en gegen den Block geschraubt werden Es bleibt nur noch eine Konstruktion in der die Seitenfl chen in den Block eingelassen werden Wie sp ter in Kap 3 4 5 beschrieben sollen die Boxen ber Magnete zusammen gehalten werden Bei dieser L sung sind die Magnete von der Au enseite in den Block versenkt Sie sind von der Au enseite sichtbar Beim Aufbau des kompletten Feldes liegen die Magnete direkt aufeinander somit besteht die Gefahr dass beim Trennen der Boxen die Magnete aus ihrer Halterung herausgerissen werden 2 Eine andere Idee ist 90 Grad Aluminiumwinkel zu benutzen Hierbei ergibt sich der Vorteil dass die Magnete von inne
158. ine falsche Richtung l uft genauer gesagt leicht vom Kurs nach links oder rechts abweicht soll der Kurs korrigiert werden um den Fehler nicht gr er werden zu lassen ihn vielleicht gar zu verkleinern Daf r kann nach der vorausberechneten Vorw rtsbewegung analog zum Drehalgorithmus nach Abb 3 40 die Suche nach maximaler Lichtintensit t aufgenommen werden In ihre Rich tung wird dann korrigiert Ein Beispiel weiter unten verdeutliche dies final_light_correction Die sanfte finale Korrektur Sie soll dem Prinzip des Einparkens eines Pkws folgen dieser Gedanke muss jedoch noch weiter entwickelt werden final_heavy_correction Die gro e finale Korrektur Diese Korrektur vermag zwar gro e Fehler zu berichtigen allerdings stellt sie auch einen gro en Eingriff in den Spielablauf dar da der Spielroboter unter anderem zwei Vierteldrehungen durchf hren muss um so in beiden Spielfelddimensionen nach dem Maximum der Lichtintensit t zu suchen Auch dies verdeutliche ein Beispiel weiter unten Sobald die beiden finalen Korrekturen entwickelt und implementiert sind ist zu entschei Riickwartsbewegungen funktionieren analog es wird wegen des Messpunktes hinten lediglich in die andere Richtung korrigiert werden 106 3 3 Roboter den in welcher Situation welche Variante zum Einsatz kommt Ein m gliches Entschei dungskriterium liefert hierbei die auf dem Weg auftretenden Fehler die unter Umst nden eine schwerwiege
159. ine sicher mit den Winkeln verschraubt werden kann sollte sie wesentlich gr er als 5cm sein Wie in Kap 3 4 3 2 zu sehen ist der freie Bereich zwischen den Win keln exakt 5cm gro Da in den Winkel zus tzlich noch Magnete untergebracht werden m ssen kann die Platine aber nicht gr er als 10cm sein Um einen optimalen Halt zu gew hrleisten ist f r die Platinen diese maximale Breite gew hlt worden Die Platine darf nicht h her als Acm sein da auf ihr die Led Platine befestigt wird Dementsprechend hat die Platine eine Gr e von 4cm x 10cm 3 4 3 2 Winkel Die Winkel befinden sich dabei in den 4 Ecken des Geh uses wie in Abbildung 3 60 zu sehen Sie bestehen aus Aluminium al A 5 ae 5 cm 5 cm 5 cm Abbildung 3 60 Ansicht der Unterkonstruktion An den Winkeln werden die Seitenfl chen wie in Abbildung 3 61 zu sehen befestigt Dies geschieht durch jeweils 2 Gewinde pro Winkelfl che und sorgt f r die ben tigte Stabilit t der Unterkonstruktion Durch die in die Winkel eingelassenen Magnete wird sichergestellt dass die Gesamtkonstruktion zusammenh lt Die Magnete befinden sich hierbei im Inneren des Winkels Dies garantiert einen optimalen Halt zwischen den Spiel feldboxen Die Gr e der Winkel betr gt 5cm x 5cm bei einer Dicke von 6mm Die H he ergibt sich aus den innen liegenden Bauelementen siehe Kapitel 3 4 6 Aufgrund des Durchmessers der Magnete und den neben liegenden Gewinden betr gt die B
160. inen Schrittwinkel von 18 haben w re die Bewegung der Roboter unpr zise das hei t eine minimale nderung der Position des Roboters durch einen Schritt des Motors w re relativ gro Um jedoch die im Spiel notwenige Genauigkeit zu erreichen sind feinere Bewegungen n tig Dies wird mit einer Untersetzung eines Getriebe erreicht Diese Untersetzung sollte mindestens 20 1 betragen um den Spielanforderungen gerecht zu werden Um aber eine brauchbare Bewegungsgeschwindigkeit des Roboters sicher zu stellen sollte sie auch nicht ber 100 1 liegen e Zudem wird durch die Reduktion der Drehzahl das am Rad einwirkende Drehmo ment vergr ert Dies f hrt bei gleich bleibender Leistung zu einer Lastreduktion am Motor der die ben tigte Kraft nun durch Drehzahl aufbringen kann und so geschont wird 69 3 Hardware Getriebealternativen Grunds tzlich stehen zwei Alternativen zur Verfiigung fertige Getriebel sungen k nnen bezogen oder eigene L sungen ber Zahnr der und Schnecken zusammengebaut werden Vor allem beim Bezug von Getrieben gibt es eine gro e Hightech Auswahl insbesondere z B bei Faulhaber Fau e Planetengetriebe Diese L sung basiert auf Zahnr dern die sich im Getriebe selbst mitdrehen Auf diese Weise werden sehr hohe Untersetzungen 1000 1 und mehr auf kleinem Raum erreicht Cent St ck Gr e e Stirnradgetriebe Hierbei handelt es sich ebenfalls um eine zahnradbasierte L sung bei der sich alle
161. ingabesignale die ber die Datenleitung von dem Mikrocontroller kommen flie en in alle 5 Bauteile Die 3 Pins der Adressierung sind mit den f nf Latches 74HCT259 verbunden ber die Enable Pins wird gew hlt welches Bauteil zu einem bestimmten Zeitpunkt das Signal auf der Datenleitung annehmen soll Falls der Multiplexer aktiv ist l uft der Mikrocontroller alle Eingabeadresse durch und berpr ft welche von ihnen Strom liefert Die Steckleisten die f r die Verbindung der Steuerungsplatine mit der LED Platine verwendet werden werden auch f r die Befestigung der beiden Platine benutzt Da der Mikrocontroller nicht genug Strom f r die Versorgung der LEDs und der Bauteile auf der Steuerungsplatine liefern kann haben wir eine Versorgungsspannung auf der Steuerungsplatine vorgesehen Diese Spannung sollte zwischen 3 3V und 5V sein Die LEDs und die Bauteile werden direkt versorgt Die shaltung wird im folgenden Bild dargestellt Abbildung 3 76 TTL Platine 133 3 Hardware 3 4 7 3 LED Ansteuerung mit CPLD Als zweite M glichkeit neben der im vorherigen Kapitel beschriebenen soll eine An steuerung der LEDs durch einen CPLD entwickelt werden Die CPLD Variante ist in sofern von Vorteil da sie sowohl Platz als auch Preisvorteile bietet Hardware Es stehen viele verschiedene Modelle diverser Hersteller zur Auswahl F r die vorliegen den Gegebenheiten eignen sich besonders zwei Serien Die MAX 3000A Familie von AL TE
162. ision m ssen die GNU Optionen eingestellt wer den Das entsprechende Fenster ist unter Project gt Components Environment and Books zu erreichen Hier m ssen die GNU Tools wie in Abb 3 2 zu eingestellt werden In Abb 3 3 und Abb 3 4 sind die Optionen f r den Linker und das Ausgabeformat zu sehen Dies ist unter Project gt Options zu erreichen 49 3 Hardware Components Environment and Books Project Components Folders Extensions Books Development Tool Folders Default File Extensions ER C Source Tool Base Folder d C Source BIN a e E Asm Source INC Object obj LIB Library Reafile Document bt ne Select ARM Development Tools I Use Keil ARM Tools TEE GNU Tool Prefix arm uclibe Cygnus Folder C Cygnus Keil Root Folder C Programme Keil ARM JW Use GNU Tools RealView Folder C Program Files ARM ADSV1_2 Keil Root Folder C Programme Keil ARM Abbrechen E I Use ARM Tools Abbildung 3 2 Keil uVision GNU Tools einstellen Mao Options for Target RAM Device Target Output Listing CC Assembler Linker Debug Utilities Text Start 0440000200 I Enable Garbage Collection IZ Do not use Standard System Startup Files SESS be I Do not use Standard System Libraries BSS Start I Use Math Libraries Linker Script DAMM File H Include Libraries Include Paths
163. it Vor allem letztere erweist sich als Problem da zum Beispiel Faulhaber auf Gesch ftskunden mit entsprechendem Abnahmevolumen abzielt und deren Produkte daher prim r in fertigen Robotern zum Einsatz kommen z B im cr Roboter BTT06 70 3 3 Roboter Als giinstige gut verfiigbare L sung erweisen sich die Getriebebaus tze der Firma Mi kroantriebe Insbesondere das Bausatzgetriebe G30 Mik03a scheint geeignet da es mit 30 1 der Zieliibersetzung entspricht und zudem extra fiir Motoren mit 6 mm Durchmes ser konzipiert wurde Es besteht aus einer simplen zweistufigen Zahnradkonstruktion die vom Motor ber eine Schnecke mit einem Innendurchmesser von 0 8 mm angetrieben wird und die Kraft auf eine 1 mm starke Achse bertr gt auf der dann das Rad befestigt wird Da diese L sung vergleichsweise giinstig ist wird diese in den Robotern verwendet 3 3 3 4 Rader Die Auswahl der R der ist durch ihre maximale Gr e der Roboter und deren Materi albeschaffenheit begrenzt Um auf dem Spielfeld wenden zu k nnen und um die Rader ziemlich weit au en platzieren zu k nnen ist ein Durchmesser von circa einem Zentime ter angebracht Die R der sollten gummiert sein um die besten Voraussetzungen mit zu bringen den Roboter auf der Spielfeldoberfl che fahren lassen zu k nnen Die Achsen m ssen einen Durchmesser von einem Millimeter haben um in die Getriebe zu passen vgl 3 3 3 3 Somit stehen R der zur Auswahl die im Modellb
164. it an 152 4 3 Protokoll Stack gegebenen Konsolen iibertragbar sein Das bedeutet vor allem dass der Code por tierbar sein muss e Selbst Organisation In einer so genannten Startup Phase soll sich das Spielfeld selbstst ndig eine Struktur aufbauen mit deren Hilfe nicht nur das Routing von Nachrichten m glich ist sondern auch die oben erw hnte Orientierung 4 3 2 2 Klassifizierung von Routing Protokollen Allgemein wird zwischen statischen und dynamischen Routing Protokollen unterschie den Beim statischen Routing wird angenommen dass die Netztopologie keinen Ande rungen unterliegt so dass jedem Router die gesamte Topologie per Konfiguration vorliegt Das fiihrt dazu dass bei jeder Anderung die Routing Tabellen manuell angepasst werden m ssen Bei Topologie nderungen kann das System sich daher nicht selbst reorganisieren Beim dynamischen Routing wird durch st ndiges Update der Status der Routen ber priift und bei Ausfall eine andere genommen so dass kein manueller Eingriff erforderlich ist Da die Struktur eines RgD3 Spielfeldes nicht a priori vorgegeben ist sondern vielmehr frei zusammensteckbar sein soll kommen hier nur dynamische Protokolle in Frage Die gr te und meist genutzte Unterkategorie der dynamischen Routing Protokolle bilden die Shortest Path Protokolle Dabei ist es das Ziel eine Nachricht kosteng nstig durch das Netzwerk zu transportieren wobei jede Kante des Netzes gewisse Kosten verursacht
165. iterien gearbeitet 1 Nachricht liegt in eigenem Koordinatenraum also wieder an den oberen Layer zur cksenden 2 Nachricht ist ein Broadcast Aufrufen von CRouting_broadcastMessage 3 sonst CRouting_sendToNearestNeighbor 155 10 12 14 16 18 20 22 2 Ba 26 28 3 4 Software e CRouting_ErrorFromComLayer wird aufgerufen wenn auf dem untergeordneten Layer ein Fehler aufgetreten ist Der entsprechende Nachbar wird als unerreichbar vermerkt Eine erweiterte Fehlerbehandlung wird n chstes Semester eingef hrt struct char char char char char char char char char Routing Message m_broadcast m_xcoordinate m_ycoordinate m_Type m_initXcoordinate m_initYcoordinate m_PositionBit m_IncrementBit m_HopCounter unsigned char m_nMessagelD unsigned char m_MessageDatabuffer 100 unsigned char m_MessageDatabuffer_Size e char CRouting_getAdress Job pJob char CRouting_setAdress Jobx pJob char CRouting ErrorFromComLayer Jobx pJob char CRouting init Job pJob Routing Messagex pMessage char CRouting_UpdateHopCounter Jobx pJob Routing Message pRouting char CRouting HandleBroadcastMessage Jobx pJob Routing Messagex pMessage char CRouting_sendToNearestNeighbor char recievedFrom Routing Messagex pMessage char CRouting_broadcastMessage char recievedfrom Routing Messagen pMessage Abbildung 4 2 Datei Routing h 156 4 3 P
166. konzept zu entwickeln 3 3 3 Komponentenauswahl Aufbauend auf die in 3 3 2 vorgestellten Standardl sungen werden die einzelnen Kom ponenten der Roboter ausgew hlt Dazu wird hier auf Motor 3 3 3 1 und Motortrei ber 3 3 6 5 Getriebe 3 3 3 3 und R der 3 3 3 4 sowie letztendlich auf das Geh use 3 3 3 5 eingegangen bevor der Energieverbrauch analysiert werden kann um eine pas sende Energiequelle 3 3 3 6 auszuw hlen Die Auswahl des Mikrocontrollers AT91SAM7S32 ist in 3 1 3 1 zu finden 3 3 3 1 Motor Wie bereits in 3 3 2 2 beschrieben sind f r den Roboter Schrittmotoren am Besten geeig net Da diese sehr klein sein m ssen ist die Auswahl an Herstellern stark eingeschr nkt 65 3 Hardware Die Motoren von Nanotec Nan und Faulhaber Fau sind verbreitet und entsprechen den Gr enanforderungen des Projektes Da jedoch Faulhaber prim r Servomotoren ver treibt sind L sungen von Nanotec einzusetzen Lediglich Motoren der SP Serie kommen aufgrund ihrer Gr e in Frage hierbei insbe sondere der SP0618M0104 Nan04a und der SP1018M0204 Nan04b Sie unterscheiden sich in ihrer Gr e 6 mm Durchmesser gegen ber 10 mm und ihrer Leistungsaufnahme 0 14 A pro Wicklung bei 1 96 V gegen ber 0 22 A pro Wicklung bei 3 3 V Der kleinere SP0618M0104 wird vorgezogen um Platz und Energie einzusparen 3 3 3 2 Motortreiber Im Gegensatz zu den vom Mikrocontroller gesendeten Steuersignalen unterscheidet sich
167. ktrische Magnetfelder bewegt Dabei wechseln die Spulenenden ihre Polarit t durch unterschiedliche Belegung der Spulenanschl sse so dass sich der Rotor St ck f r St ck im Kreis fortbewegt Die Fortbewegung des Rotors pro Schritt ist relativ pr zise in der Regel h chstens 5 Toleranz pro vollst ndiger Drehung sogar genau festgelegt denn produktionsbedingte individuelle Abweichungen werden innerhalb einer vollst ndigen Rotordrehung wieder ausgeglichen da die Position der Spulen fest ist Folglich eignen sich Schrittmotoren f r pr zise Ansteuerungen Dabei liegt die Schrittgr e je nach Bauart des Motors in der Regel zwischen 1 8 Grad und 18 Grad kann aber ber Getriebe nach Belieben verkleinert werden So ist eine hohe Pr zision und Gleichl ufigkeit verschiedener Motoren erreichbar Das Haltemoment eines Motors ist etwa gleich der Gr e des Drehmomentes Da zu dem die zur ckzulegende Strecke durch eine entsprechende Motordrehschrittanzahl zu bestimmen ist bedarf es keiner Bremse Seit Jahren wird kontinuierlich die Gr e von Schrittmotoren minimiert und so sind mittlerweile sehr kleine Vertreter erh ltlich zum Beispiel mit einem Durchmesser von 6 mm und einer L nge von 10 mm zuz glich einer Antriebswelle bei 10 g Gewicht Nan04a Im Vergleich zu den Getriebemotoren ist jedoch die Ansteuerung der Schrittmotoren aufwendiger Es ist notwendig an jedem Spulenende eine individuell zu bestimmende Polarit t anlegen zu
168. ld Giinther Daniel Schulte Benjamin Titz e Team C Daniel H cker Michael Poch e Team D Michael Kern Robert Muhrbeck 1 3 3 Team Einteilung Schon in den Zielbeschreibungen in 1 2 1 ist deutlich geworden dass die Arbeiten in der Projektgruppe mehrere Schwerpunkte umfassen Neben den offensichtlichen Schwer punkten Spielfelder sowie Spielfiguren sind Netzwerkprotokolle aber auch Hostsoftware und Interface zu bearbeiten Analog zu diesen vier Schwerpunkten wird eine Teamstruktur geschaffen In den Teams sind die entsprechenden Probleme zu bearbeiten und L sungen zu finden Dabei erfordern enge Verkniipfungen der Arbeitsbereiche eine gute Absprache und ho he Kooperation zwischen den Teams unterschiedliche Arbeitsbelastungen aber auch teamiibergreifende Probleme zudem eine gegenseitige Unterstiitzung Dabei gliedert sich die Aufgabenteilung zwischen den Teams wie folgt e Team A ist fiir die Hardware der Spielfl che zust ndig In der Planungsphase ist festzulegen wie die Schnittstellen zu benachbarten Spiel feld Bl cken aussehen werden Weiterhin muss das Interface zur Navigation und Kommunikation mit den Robotern definiert werden Zun chst wird ein geeigneter Mikrocontroller fiir einen Spielfeld Block ausgew hlt und ein Prototyp eines Spielfeld Blocks entwickelt gefertigt und getestet Nach erfolgreichem Funktionstest des Prototyps und bestandenem Integrationstest mit einem Roboter miissen weitere Spielfeld Bl cke gefertigt
169. ler oder den CPLD m glich 37 3 Hardware 3 1 2 Atzen von Platinen 3 1 2 1 Platinenmaterial Das Basismaterial einer Platine ist meist eine 0 5mm bis 1 5mm dicke nicht leitende Schicht aus Epoxyd Glashartgewebe oder Hartpapier Als Materialien fiir die Platinen kommen auch noch andere genormte Stoffe in Frage Eine detaillierte Auflistung dieser Stoffe findet sich z B unter www pcb pool com Dar ber befindet sich eine 35 um oder 70 um dicke Kupferschicht Auf die Kupferschicht ist Fotopositivlack aufgetragen der dann mit einer lichtundurchl ssigen Schutzfolie abgeklebt wird Bei zweiseitigen Platinen sind die Kupfer Fotolack und Schutzschicht auf beiden Seiten 3 1 2 2 Herstellung von Platinen Platinen lassen sich in 5 Schritten relativ einfach herstellen Es gibt dabei mehrere Me thoden die einzelnen Schritte durchzuf hren Im Folgenden wird die zur Durchf hrung genutzte Methode beschrieben Des Weiteren wird auch auf die vorhandenen Ger te und Mittel eingegangen Belichtung Das mit Eagle erstellte Layout muss zun chst i d R die Oberseite spiegelverkehrt auf eine transparente Folie gedruckt werden Als Drucker kommt ein HP Deskjet 850C zum Einsatz Dieser liefert brauchbare Ergebnisse F r die Produktion von mehreren Platinen wird aber die Folie professionell durch eine Druckerei hergestellt Ist die Folie erstellt wird die Platine ohne Abziehen der Schutzfolie auf die richtige Gr e geschnitten Daraufhin ka
170. lfeld entsprechend den Spielregeln Aktionen ansto en k nnen Insbesondere muss es in der Lage sein in Kooperation mit anderen Bl cken die Ausf hrung der Spiel Programmschritte zu erm glichen Hierbei werden im hohen Umfang Aufgaben aus dem Bereich der Verteilten Systeme be arbeitet werden Eine besondere Eigenschaft dieses Verteilten Systems wird die regul re Anordnung der Bl cke sein Sie ergibt ein Mesh Netzwerk so dass beispielsweise auf Konzepte zu effizienten Routingverfahren in parallelen Computer Architekturen zur ck gegriffen werden kann 1 2 2 Minimalziele Konkret sind folgende Ziele von der Projektgruppe zu erreichen 16 1 3 Realisierung 1 Kombinierter Entwurf der Roboter und Spielfl chen Hardware inklusive Auswahl der zu verwendenden Bauelemente Controller Antrieb f r Roboter und Spiel fl che Der Hardware Entwurf ist so vorzunehmen dass sich ein Roboter unter Nutzung von Navigationshilfen der Spielfl che optische oder induktive Markierungen ziel sicher von einem Spielfeld zu einem anderen bewegen und mit dem Spielfeld kom munizieren kann 2 Definition und Entwurf der in der Spielfl che zu verwendenden Netzwerk Protokol le Die in der Spielfl che eingesetzte Software muss in der Lage sein eine gezielte Kom munikation zwischen benachbarten Spielfeldern zwischen Roboter und Spielfeld Roboter und Roboter und zwischen Host Computer und Roboter zu unterst tzen Die Software muss weiterhi
171. ltet hat so ist er auf allen vier Seiten von je einem Schutzschild gesichert Wird der Roboter wieder eingeschaltet so verschwinden die Schutzschilde wieder 31 2 Das Spiel Optionskartenbeeinflussung beim Abschluss der Runde Beim Einsetzen eines Roboterduplikats Setzt ein Spieler ein Duplikat seines Roboters ein erhalt er sofort zwei Schadenspunkte es sein denn er besitzt die Optionskarte Duplikat de Luxe Der Spieler bekommt eine De luxe Ausf hrung seines Roboters so dass er keine Schadenspunkte erh lt Beim Abschalten eines Roboters Stromkreisunterbrecher Besitzt ein Spieler diese Optionskarte so muss er wenn sein Roboter am Ende einer Runde drei oder mehr Schadenspunkte hat seinen Roboter sofort fiir die folgende Runde abschalten Die Ankiindigung der Abschaltung entfallt hierbei 2 1 8 Robo Rally 2005 In diesem Abschnitt sollen die Neuerungen im Vergleich zu den vorangegangenen deut schen Spieleversionen kurz erl utert werden Im Jahr 2005 erschien eine Neuauflage des Spiels Robo Rally bei Wizards of the Coast Wiz05 erschienen Allerdings ist diese Auflage nur in englischer Sprache erh ltlich Das Konzept ist jedoch dasselbe geblieben Die Einzelheiten die sich ge ndert haben dienten uns zum Teil als Gedankenansto f r die Realisierung des Spiels RgD3 Hier kurz die Neuerungen Checkpoints Checkpoints sind nun durch F hnchen gekennzeichnet Ein eindeutiger Vorteil denn man kann diese
172. m munizieren und die benachbarten Spielfelder per Interrupt angeschlossen sind muss die Ubertragung zwischen Spielfeld und Roboter unempfindlich gegeniiber Sendefrequenz schwankungen sein Dies soll ber die Majorit tsentscheidung mit wesentlich h herer Abtastrate garantiert werden 58 3 3 Roboter Einsatz des Protokolls e Empfangsbest tigung per ID Senden im Fehlerfall sendet Roboter wiederholt Er rormessages Spielfeld muss Fehler oberhalb des Kommunikationsprotokolls behan deln um nicht handlungsunf hig zu werden Dies ist im Roboter nicht wichtig da er nach nicht erfolgreicher Kommunikation sowiso handlungsunf hig ist e Dauert ein Wartevorgang l nger als 1 8 Sek dann beende Kommunikationsvor gang vermeidet Deadlock wenn ein Fehler auftritt e Wird eine Verbindung nicht erfolgreich durchgef hrt sollte mindestens 1 2 Sekun de bis zum n chsten Versuch gewartet werden damit beide Kommunikationspart ner sicher wieder f r Kommunikation bereit sind 3 3 Roboter In diesem Kapitel werden die Anforderungen an die Spielfiguren in diesem Projekt also die Roboter erl utert In Abschnitt 3 3 2 werden einige Standardl sungen vorgestellt die zur Auswahl standen und gleichzeitig werden die Entscheidungen bez glich der einzel nen Komponenten begr ndet vgl 3 3 3 Die unternommenen Tests und der Aufbau des zugeh rigen Testboards werden in Abschnitt 3 3 4 beschrieben Der Abschnitt 3 3 5 ber den mechanische
173. m neuen Spielfeld ankommen und ihm implizit durch einen Verbindungsaufbau mitteilen dass dieses die Navigations LEDs ausschalten kann In beiden Fallen folgt auf die Initialisierung keine Nachricht Damit zum einen Energie gespart wird und zum zweiten eine erneute Initialisierung f r eine sp tere Kommunikation m glich ist ist ein Timeout zu nutzen um diesen Empfangsvorgang erfolglos abzubrechen e Timeout w hrend des Empfangens von Bits Dauert das Empfangen eines Bits zu lange kann es sich nur um einen Kommu nikationsfehler handeln so dass eine Mehrheitsentscheidung nicht zwingend zum richtigen Ergebnis f hren muss Dementsprechend ist sicherheitshalber der Emp fang abzubrechen insbesondere da per Parit tsbit nur eine begrenzte Menge Fehler entdeckt werden kann e Falsches Parit tsbit Trotz Sicherheitsvorkehrung im vorherigen Schritt ist ein Fehler aufgetreten die empfangene Nachricht ist zu verwerfen Wird nun ein Fehler erkannt so wird die Kommunikationsroutine beendet und liefert an die aufrufende Roboter main Funktion eine Fehlermeldung Der Roboter reagiert daraufhin mit einer Kommunikationsfehlernachricht so dass das Spielfeld wei dass zum einen evtl eine Nachricht nicht angekommen ist und zum zweiten der Roboter bereit f r eine weitere Kommunikation ist 3 3 7 5 Nachrichtenauswertung Wird eine Nachricht korrekt empfangen muss diese nun ausgewertet werden um die enthaltene Anweisung auszuf hren Dies
174. m sind die AVR Chips nur knapp mit Speicher ausgestattet da sich der sp tere Bedarf im Vorfeld nur schwer absch tzen l sst sollte in diesem Punkt lieber gro z giger kalkuliert werden 47 3 Hardware Die beste L sung im Bezug auf Speicherausstattung Kommunikationsperipherie und Rechenleistung ist zweifelsfrei der Philips LPC2114 wobei hier noch auf die gr ere Variante mit 256 kB Flash Speicher zur ckgegriffen werden kann Da die Hauptanforderungen des Roboters an den Controller Gr e und passende Steue rungsperipherie sind f llt das Augenmerk sofort auf dem AT91SAM7S32 als einziger denkbarer Controller der vorgestellten ARM Chips Da auch er eine zufriedenstellende Speicherausstattung ausweist wird er im Roboter zum Einsatz kommen 3 1 3 2 Compiler Tools Compiler wandeln Quellcode eines Programms in ausf hrbaren Code um Dabei ist die Compile sowie die Ziel plattform i d R diesselbe Hier wird jedopch ein Cross Compiler ben tigt Dieser kompiliert den Code auf einer Windows oder Linux Plattform Der resultierende Code ist dabei aber nur auf dem jeweiligen Controller lauff hig Diese sind beide Controller vom Typ arm7tdmi Zur Auswahl stehen haupts chlich 2 verschiedene Compiler Tools Zum einen sind es die ARM Compiler Tools und zum anderen die GCC Compiler Tools Dabei f llt schliesslich die Einigung auf die GCC Compiler Tools da diese kontinuierlich weiterentwickelt werden kostenlos und zudem weit verbrei
175. mit Nummern versehen und m ssen in aufsteigender Reihenfolge passiert werden Beim Checkpoint 1 wird gestartet Ziel ist der Checkpoint mit der h chsten Nummer Wie viele Checkpoints verwendet werden und auf welche Felder diese auf dem Spielplan gelegt werden entscheiden die Spieler M gliche Checkpoint Felder sind jedoch nur leere Felder Felder mit einer Mauer Felder mit zwei Mauern Reparaturfelder mit zwei Schraubenschl sseln ohne Mauer 22 2 1 Das Spiel im Original Reparaturfelder mit zwei Schraubenschliisseln und zwei Mauern Reparaturfelder mit einem Schraubenschl ssel ohne Mauer Reparaturfelder mit einem Schraubenschliissel und einer Mauer Material fiir den Spieler Sind Spielplan und Rennstrecke festgelegt werden Programmierkarten Schadenspunkte Optionskarten und fiir jeden Spieler ein Roboter wie in Abb 2 2 eine Programmierhil fe eine Sicherheitskopie Lebenspunkte und eine Ubersichtstafel bereitgelegt Program mierkarten sollen die Programme f r die Roboter festlegen Da Roboter w hrend des Spiels besch digt werden k nnen gibt es Schadenspunkte die dies anzeigen Der Robo ter selbst ist eine Plastikfigur bei der durch einen farbigen Pfeil die Vorder und R ckseite kenntlich gemacht wird In der amerikanischen Urversion waren die Roboter Zinnfigu ren die selbst bemalt werden konnten Die Programmierhilfe ist ein Pappk rtchen in Form dieses farbigen Pfeils auf dem der jeweilige Roboter abgebildet i
176. mmunikation mit dem PC Diese Schnittstellen sind jeweils durch das Umsetzen zweier Jumper w hlbar Eine weitere M glichkeit den Mikrocontroller zu programmieren stellt dessen JTAG Schnittstelle dar Im Schaltplan im Anhang 6 1 und im Layout im Anhang 6 8 wurde der Anschluss eines entsprechenden Adapters zwar vorgesehen aber im Aufbau nicht rea lisiert da ein weiterer Hardwareaufwand entstehen w rde und die serielle Schnittstelle in Verbindung mit dem Bootprogramm Vorteile bot Zum Anbinden von weiteren Testboards oder anderen Komponenten sind alle IO Pins und auch Schnittstellen des Mikrocontrollers an einen auf dem Testboard enthaltenen Pfostenstecker gef hrt Dieser verf gt au erdem ber Pins mit Verbindung zu Masse und 3 3 V Ein weiterer Pin erm glicht das Zuf hren von 1 8 V um den internen Spannungs regler nicht verwenden zu m ssen Au erdem ist ein Pin direkt mit der Versorgungsspan nung des Testboards verbunden um die berwachung der Eingangsspannung die beim Roboter von einem Akku zur Verf gung gestellt wird zu erm glichen Nach dem Erstellen des Schaltplans im Anhang 6 1 wurde das Layout im Anhang 6 8 ohne Verwendung des automatischen Routens mit Eagle erstellt Das Routen des Layouts von Hand hat sich auch bei anderen gefertigten Platinen bew hrt Dabei wurden Leiterbahnbreiten von 40 mil f r die Spannungsversorgung und 10 mil f r Signalleitungen verwendet Au erdem wurde m glichst darauf geachtet statt
177. mt vier Sockets entsprechend der Anzahl seiner Nachbarn Da die Sockets im verbindungsorientierten Modus arbeiten m ssen die Spielfeldboxen in einer bestimmten Reihenfolge aktiviert werden so dass sich je ein verbindender und ein lauschender Socket miteinander verbinden Danach kann der Parkplatz mit der Initiali sierung der Koordinaten beginnen Es wurden insgesamt f nf Tests mit bis zu acht Spielfeldboxen ausgef hrt die zu ver schiedensten Anordnungen kombiniert wurden So sollten insbesondere nicht rechteckige Spielfelder und solche mit einem Loch getestet werden um die in 4 3 2 4 erw hnten Routing Fehler zu simulieren Die Tests wurden erfolgreich abgeschlossen so dass als n chste Schritte die Ausf hrung auf dem Mikrokontroller durchzuf hren ist 4 3 3 High Level Protokoll 4 3 3 1 RgD3 Nachrichten Das High Level Protokoll bildet die oberste Schicht des Protokoll Stacks Auf dieser Ebene werden die eingegangenen Nachrichten entsprechend eines internen Zustandes verarbeitet indem bestimmte Aktionen ausgel st werden Dieses Verhalten wird als Zu stands bergangssystem modelliert die genaue Beschreinug dazu ist in 4 3 3 2 zu finden Die Nachrichten sind in Tabelle 4 1 nach der Chronologie ihres Auftretens geordnet und haben folgenden zweistufigen Aufbau Routing Layer HighLevel Layer An den Anfang der Nachricht setzt der Rotuing Layer eine acht Bit lange eindeutige Message ID die dazu dient Broadcats Nachrichten nur ei
178. muss um eine weitere Partie zu spielen Die Software kann nun entweder beendet werden oder sie kehrt in die Initialisierungspha se zur ck und wartet darauf dass das Spielfeld neu aufgebaut und wieder angeschaltet wird 4 4 4 GUI Elemente 4 4 4 1 Splashscreen Der Splashscreen Abb 4 4 wird w hrend der Initialisierungsphase angezeigt Im Verlauf des Projekts wird dieser Splashscreen noch um die M glichkeit erweitert anzuzeigen in welchem Teil der Initialisierungsphase sich das Spiel grade befindet Der Benutzer erh lt so nicht den Eindruck dass das Programm nicht mehr reagiert und abgest tzt ist 168 4 4 Host Applikation Abbildung 4 4 Splashscreen 4 4 4 2 Hauptbildschirm Der Hauptbildschirm Abb 4 5 zeigt dem Spieler unter dem Logo seine Spielkarten an Die Karten werden von links nach rechts mit fallender Priorit t angeordnet um dem Spieler eine bessere bersicht zu erm glichen Auf der linken Seite ist der Bereich mit den Kartenslots angeordnet Oberhalb der Slots wird durch Warndreiecke angezeigt ob die Karte und damit der Slot aufgrund von Schadenspunkten gesperrt ist Unterhalb der Slots befindet sich der Button mit dem der Spieler seine programmierte Befehlssequenz best tigen und an den Master senden kann Dieser Button ist jedoch deaktiviert bis der Spieler alle Slots mit Karten gef llt hat Auf der rechten Seite werden dem Spieler die Informationen pr sentiert die im Abschnitt 4 4 3 2 auf
179. n kann dieser Vorgang auch wesentlich langer dauern Es sollte nun das komplette Layout sichtbar sein Sind noch Lackreste vorhanden so kann der Vorgang wiederholt werden Fertig entwickelte Platinen sind an dem Gl nzen der Kupferstellen an denen der Fotopositivlack abgel st wurde zu erkennen Diese Stellen sollten beim ersten Eintauchen in das Atzbad auch sofort matt werden und den beginnen den Atzprozess damit anzeigen Ist dies nicht der Fall so muss das Entwickeln wiederholt werden Nach dem Entwickeln sollte man die Platine auf Fehler kontrollieren Unterbrochene Verbindungen k nnen z B mit einem Edding oder Abreibesymbolen repariert werden Atzen Nach dem Entwickeln der Platine folgt das Weg tzen der freigelegten Kupferschicht Als Atzmittel setzen wir Natriumpersulfat ein Das Atzmittel muss vor Beginn auf eine Tem peratur von mindestens 40 C und h chstens 60 C gebracht werden Das am Lehrstuhl vorhandene tzger t besitzt einen Heizstab der das Aufheizen bernimmt Des Weiteren wird in den tzbeh lter in den die Platte senkrecht eingeh ngt wird von unten Luft geblasen Dies hat eine Beschleunigung des tzvorganges zur Folge Da die tzl sung durchsichtig ist kann der tzvorgang relativ gut beobachten werden Der tzvorgang dauert ca 3 5 Minuten bei neuer L sung Ist die Platine fertig ge tzt so muss sie mit Wasser abgesp lt werden S ubern und Versiegeln Nach dem tzen ist noch immer der Fotopositivla
180. n Aufbau wird sich damit befassen welche Bauteile an welcher Stelle an gebracht werden und warum dies sinnvoll ist Die Erl uterungen ber den elektronischen Aufbau in Abschnitt 3 3 6 befassen sich unter anderem mit dem Layout der Platinen und der Anordnung der einzelnen Elemente Kapitel 3 3 7 geht n her auf den Fehlerkorrek turalgorithmus ein der es erm glicht die Bewegungen des Roboters gegebenenfalls zu berichtigen 3 3 1 Anforderungen Die Plastik bzw Zinnroboter des Robo Rally Spieles werden durch echte funktionsf hi ge Roboter ersetzt Dabei ist zun chst festzustellen welche F higkeiten realisiert und welche Anforderungen erf llt werden m ssen Diese ergeben sich aus den Anforderungen des Spieles sowie aus den Kompatibilit tsbedingungen bez glich der Spielfeldboxen Die Roboter werden zwei Kernaufgaben haben 1 Navigation Jeder Roboter wird Spielz ge ausf hren d h er muss vorw rts und r ckw rts fahrend das Spielfeld wechseln und sich auf der Stelle drehen k nnen Hierbei ist jeweils eine hohe Pr zision notwendig AMI99 59 3 Hardware 2 Kommunikation Jeder Roboter wird mit dem Spielfeld interagieren miissen das die Spielintelli genz ihm gegen ber repr sentiert Diese wird das Spielgeschehen kontrollieren und den Roboter steuern Hierzu geh ren Fahigkeiten zur eigenen Identifikation zur Annahme von Steuerkommandos sowie gegebenenfalls zur Sendung von Statusbe richten Die resultierend
181. n Fehlerkorrekturaufrufe an passenden Stellen ferner das Einschalten der HIPs zum Beginn und das Ausschalten zum Ende der Prozedur Parameter Die Anzahl der Motorschritte die der Roboter f r eine Vierteldrehung oder f r die Be wegung um ein Feld bzw 5 Feld bei Korrekturen an jeder Weg LED weiter ben tigt miissen abgesch tzt werden Sofern keine unvorhersehbaren u eren Einfl sse die Bewegung verf lschen z B Rut schen beim Anfahren ist eine exakte Berechnung m glich weil alle Parameter wie Raddurchmesser Radabstand Motordrehwinkel Getriebeuntersetzung und Entfernun gen bekannt sind 102 3 3 Roboter Durch empirische Beobachtungen kann diese Berechnung den realen Gegebenheiten an gepasst werden um so fiir eine Fehlerkorrektur eine gute Ausgangssituation zu schaffen Zun chst sind alle Daten zu sammeln e Motordrehwinkel 18 e Getriebeuntersetzung 30 1 e Raddurchmesser 12 25 mm e Radabstand 33 9 mm e Feldabstand 50 mm e Drehwinkel 90 Raddrehwinkel Motordrehwinkel x Getriebeuntersetzung 1 9 d inkel 18 x 1 Raddrehwinke 8 x E 3 1 2 j hwinkel Risen E xm x Radradius x Raddrehwinke 360 EE 12 25 mm ES Kreisbogen Rad Ss 15 2 0 0641 mm 3 2 Feldabstand Schritte pro Feld Strecke pro Motorschritt 50 Schritte pro Feld MMM 780 Schritte 3 3 0 0641 sn Die Drehung eines Motors bewegt nach Untersetzung mit einem Motorschritt ein Rad um EN De
182. n f hig sein sich selbst ndig auf Ver nderungen der Spielfl che durch individuelles Zusammenstecken von Spielfeld Bl cken vor Spiel beginn einzustellen 3 Implementierung einer Steuerungssoftware zur Kommunikation mit Robotern und Spielfl che von einem Desktop Computer aus Host Interface Mit Hilfe dieser Software sollen die Roboter den Spielregen entsprechend gesteuert werden k nnen 4 Demonstration der Funktionsf higkeit der erstellten RgD3 Hard und Software im Spielbetrieb 1 3 Realisierung Ein berblick ber die Organisation und Vorgehensweise in der Projektgruppe mag das Verst ndnis ber Art und Umfang der dargestellten Arbeiten sch rfen 1 3 1 Organisation Die Projektgruppe RgD3 findet im Wintersemester 2005 2006 und im Sommersemester 2006 jeweils mit acht Semesterstundenwochen f r zw lf Studenten an der Universit t Dortmund statt Mit diesem Zwischenbericht endet das erste Halbjahr Betreut wird das Projekt von Dr Heiko Falk und Dipl Inform Robert Pyka vom Lehr stuhl 12 f r Technische Informatik und Eingebettete Systeme der Fakult t Informatik Der Internetauftritt der Projektgruppe ist unter der URL http 1s12 www cs uni dortmund de r3d3 zu finden 17 1 Einleitung 1 3 2 Teilnehmer Die zw lf studentischen Teilnehmer verfolgen in vier Teams die Ziele der Projektgruppe vgl 1 3 3 e Team A Judith Ackermann Nina Grau Jules Souna Rene Thimel e Team B Manuela Engels Hara
183. n gen gt Vorher wird in einem 174 5 2 Ausblick kurzen Re Design Prozess das Platinen Layout berarbeitet da es dort w hrend der Tests einige Probleme gab 5 2 1 2 Spielfeld Bei den Spielfeldern ist vor allem die Serienproduktion im n chsten Semester zu leisten Gem Abschnitt 1 2 sind bis zum Ende der Projektgruppe 16 Spielfelder und zus tzlich ein Parkplatz zu fertigen Das bedeutet dass der mechanische Aufbau bestehend aus Winkel Seitenw nden und Makrolonplatte im 17 facher Ausf hrung bereit stehen muss Das Material f r vier Boxen ist bereits fertig Auf der Seite der Elektronik werden im n chsten Semester die n tigen Platinen ge tzt und best ckt so dass sie in die Spielfelder eingebaut werden k nnen Die Schnittstelle zwischen Host und Spielfeld ist konzipiert und es ist bereits ein Exemplar erstellt worden so dass im n chsten Semester noch drei weitere zum Anschluss von insgesamt vier Host PCs gefertigt werden m ssen 5 2 2 Software 5 2 2 1 Protokoll Stack und Host Applikation Bei der Software geht es im kommenden Semester vor allem um die Integration von Hardware und High Level Software Das bedeutet dass der in Abschnitt 4 3 beschriebene Protokollstack auf dem Mikrocontroller zum Einsatz kommt Dabei werden umfangreiche Integrationstests durchgef hrt um die spezifizierten Schnittstellen ausgiebig zu testen Die bestehenden Konzepte f r den Host PC werden nach einer kurzen berarbeitungs
184. n in das Aluminium versenkt werden k nnen Es bleibt von au en gesehen eine 1mm dicke Schicht Aluminium Beim Aufbau des kompletten Feldes verhindert diese dass zwei Magnete direkt aufeinander liegen Die Seitenfl chen werden bei dieser L sung von innen festgeschraubt Die Entscheidung fiel auf die Aluminiumwinkel da diese L sung keine gr eren Nachteile besitzt In den n chsten beiden Kapiteln wird die Bearbeitung der Aluminiumwinkel und der Seitenfl chen getrennt beschrieben 116 3 4 Spielfeld Abbildung 3 58 Ansicht der Unterkonstruktion mit Bl cken 1 1 Feld d Abbildung 3 59 Zusammenhalten der Gesamtkonstruktion durch Magnete 3 4 3 1 Seitenfl chen Die Seitenfl chen sind sowohl fiir die Stabilit t als auch f r die Befestigung der Kontakte zwischen den Boxen wichtig Zus tzlich zu den oben schon beschriebenen Materialien Holz Metall und Plastik kom men hierfiir noch Epoxydharzplatinen in Betracht Ein wesentlicher Vorteil von Platinen gegen ber den anderen Materialien liegt darin dass die Kontakte direkt auf die Platine gel tet werden k nnen Somit entfallt das Problem der Befestigung der Kontakte Weite re Vorteile liegen darin dass Platinen auch in einer sehr geringen Dicke sehr stabil sind und von allen Materialien am giinstigsten zu beschaffen sind Da Platinen so gut wie keine Nachteile haben werden die Seitenflachen aus diesem Material hergestellt 117 3 Hardware Damit die Plat
185. n m glich So k nnte eine Hardwarekomponente nicht fehlerfrei arbeiten das Zusammenspiel zwi schen Komponenten nicht funktionieren die Interaktion zur Umwelt fehlschlagen eine Mikrocontrollerkomponente nicht wie gew nscht arbeiten oder letztendlich ein simpler Programmierfehler vorliegen Dementsprechend ist ein Fehlverhalten des Roboters ver bunden mit einer aufwendigen Suche nach der m glichen Ursache Ohne auf einzelne Fehler einzugehen seien hier ein paar Beispiele erw hnt Auf dem Ma krolon rutschende Reifen schwer anzusteuernde Interrupts des Mikrocontrollers Kurz schl sse durch berbr ckung von Widerst nden ber Motorgeh use oder einfache Spei cherzugriffsfehler Auf der anderen Seite wird die Softwareverifikation durch die begrenzten Aktionsm glich keiten des Roboters erschwert So ist es bei einem Kommunikationstest nicht einmal m glich mit bordeigenen Mitteln festzustellen ob das Programm berhaupt noch arbei tet geschweige denn an welcher Stelle sich die Programmabarbeitung befindet Letztendlich reagiert der Roboter zudem nur auf externe Reize die ganz speziellen Mu stern zu folgen haben Insofern ist der Roboter im Test abh ngig von einer weiteren nicht vollst ndig allein testbaren komplexen Komponente dem Spielfeld Da jedoch der Test des Roboters vor allem durch den Test der Kommunikation bestimmt ist geht dieser vollst ndig im Integrationstest auf Nur der Mikrocontroller selbst sowie einige Prog
186. n m ssen nun zu einer Gesamtschaltung zusammengebaut werden Grunds tzlich stehen hier zwei M glichkeiten des Aufbaus zur Auswahl e Modularer Aufbau Mindestens zwei Platinen mit Teilschaltungen werden er stellt Eine Verbindung erfolgt ber Stecker und Buchsenleisten wie zwischen den Testboards f r den CPLD und das Feld siehe Kapitel 3 4 7 e Eine Platine Die gesamte Schaltung wird auf einer Platine untergebracht 137 3 Hardware Der modulare Aufbau bietet insofern Vorteile als dass bei eventuellen St rungen einzel ne Komponenten ausgetauscht werden k nnen Au erdem ist somit sichergestellt dass genug Platz f r alle Komponenten vorhanden ist Am aussichtsreichsten w re die Eintei lung in eine Platine mit den LEDs Fototransistoren Tastern und dem CPLD und eine zweite Platine mit dem Mikrocontroller der Spannungsversorgung und dem Sound Die Vorteile einer Platine liegen in der geringeren Arbeit f r das Erstellen da nur eine Platine gefertigt werden muss Dadurch sind nat rlich auch die Kosten f r Platinenma terial und Steckverbinder geringer bzw entfallen Ein Problem stellt nur der vorhandene Platz dar So gibt es durch die vorgegebene Positionierung der LEDs nur wenige Stellen an denen der CPLD und der Mikrocontroller platziert werden k nnen Es wurde sich daf r entschieden nur eine Platine zu bauen Auch wenn das Routen vielleicht mehr Zeit in Anspruch nimmt als mit zwei Platinen so ist der Aufwand f
187. n verwendet worden Makrolon ee Seitenplatine Abbildung 3 63 Befestigung der Makrolon Platte 3 4 4 3 Checkpoints Die Oberfl che der Spielfeldbox muss eine M glichkeit bieten die schon oben beschriebe nen Checkpoints festlegen zu k nnen siehe AMI99 Dazu ist folgende Idee entstanden In Anlehnung an das englische Spiel werden die Checkpoints als F hnchen realisiert Die F hnchen werden in einer Ecke des Feldes platziert und ber Drucktaster auf der 120 3 4 Spielfeld Platine wird festgestellt wo ein F hnchen steckt Da die Roboter 4 5cm gro sind und wahrscheinlich nicht exakt in der Mitte der Felder fahren m ssen die F hnchen m glichst weit vom Mittelpunkt des Feldes entfernt sein D h die Drucktaster f r die F hnchen k nnen leider nur in den Ecken der Felder platziert werden Da auf der Platine der Platz f r die Drucktaster vorhanden sein muss bleiben so nur noch 4 Pl tze f r Drucktaster siehe Abb 3 64 Dementsprechend k nnen sich auf jeder Spielfeldbox nur 4 Felder befinden die ein Check point sein k nnen Darauf muss beim grafischen Design nat rlich geachtet werden Dies ist vor allem deshalb m glich da laut Spielbeschreibung nur folgende Felder ein Check point sein k nnen siehe AMI99 e Feld ohne eine besondere Funktion e Feld mit nur einer Mauer e Feld mit 2 Mauern e Reparaturfeld ohne Mauer e Reparaturfeld mit einer Mauer e Doppeltes Reparaturfeld ohne Mauer e Do
188. n zueinander verf gen und daher besser komplexere Nachrichten untereinander austauschen k nnen Entsprechend diesem Designgedanken implementiert der Roboter kaum Spielintelligenz Lediglich das Kommunikationsprotokoll und die Fehlerkorrektur gestalten sich anspruchs voller Die Mikrocontrollerprogrammierung erfolgt hardwarenah daher wird die Programmie rung an dieser Stelle im Hardwareabschnitt vorgestellt Ausgehend von einem Top Down Ansatz vorgestellt in 3 3 7 1 um einen berblick ber Ablauf und Funktionsumfang der Programmierung zu gew hren werden in den folgen den Abschnitten einige Funktionen und Aspekte der Programmierung genauer vorge stellt e die Akku berpr fung in 3 3 7 2 e der Sleepzustand in 3 3 7 3 e die Kommunikationsprotokollumsetzung in 3 3 7 4 e die Nachrichtenauswertung in 3 3 7 5 e die Motoransteuerung in 3 3 7 6 e der Fehlerkorrekturalgorithmus in 3 3 7 7 sowie schlie lich e die Softwarevalidierung in 3 3 7 8 Die Programmierung erfolgt in C Sequenzen des Quellcodes werden pr sentiert 3 3 7 1 Robosoft Die Roboter iterieren ber die folgenden Arbeitsschritte Zu Beginn steht ein Roboter auf einem Spielfeld und wartet auf einen Befehl Sobald dieser eintrifft d h sobald das Spielfeld einen Befehl sendet wird er best tigt und aus gef hrt Nach Ausf hrung beginnt ein erneutes Warten 90 3 3 Roboter Initialisierung 1 Akkustand pr fen 5 Nachricht au
189. nd Ausstattung bieten Im oberen Preissegment kommen Motorola Prozessoren der 68000 Reihe zum Einsatz z B im Soccer eyeBot oder Khepera II BSW06 Dabei handelt es sich um 32 Bit Prozessoren die einerseits eine gute Ausstattung beispielsweise gr ere Speicher bieten andererseits jedoch erheblich teurer sind als Atmels ATMega Prozessoren W hrend die Atmel Prozessoren sich eventuell f r einen Einsatz in den Robotern eignen sind die Prozessoren der 68000 Reihe von Motorola f r den Einsatz in dieser Projekt gruppe zu teuer 3 3 2 4 Stromversorgung Abh ngig von den verschiedenen Komponenten wie Sensoren Aktuatoren insbesondere die Motoren und Mikrocontrollern haben sowohl die Roboterbaus tze als auch die Ei genbauten einen unterschiedlichen Strombedarf Entsprechend gibt es eine gro e Anzahl verschiedener Energiequellen die sich in Spannung Kapazit t und Energiedichte un terscheiden In der Praxis haben sich Batterie bzw Akkul sungen durchgesetzt In der Robotik sind alle verbreiteten Batterie und Akkustandards vertreten wie zum Beispiel Nickel Metall Hydrid NiMH oder Lithium Ionen Li Ion L sungen Da die Spielroboter des Projektes langlebig und klein sein sollen sind Energiequellen mit hoher Energiedichte zu bevorzugen In Anbetracht des Kosten und Umweltbewusstseins erscheinen Akkus viel versprechend Eine Auswahl kann aber erst getroffen werden wenn Der ATmega8 ist zurzeit bei Farnell f r deutlich unter 1
190. nd Rechenressourcen f r eine gen gend hohe Empfangsabtastrate bereitstellen kann 97 3 Hardware 1 Verbindungsaufbau e Sender Reserviere Rechenzeit beginne zu blinken und lauschen bis beim Lau schen Eins beobachtet wird e Empf nger Roboter erwacht dank Interrupt Spielfeld beobachtet ein Signal wegen gelegentlichen regelm igen Lauschens Reserviere Rechenzeit beginne zu blinken und lauschen bis beim Lauschen zwei Nullen in Folge beobachtet werden e Sender Schalte Blinken ab lausche bis zwei Nullen beobachtet werden e Empf nger Schalte Blinken ab lausche min 1 8 Sekunde max 1 4 Sekunde siehe 2 e Sender Beende lauschen sende Daten siehe 2 2a Senden der Datenbits Fiir alle acht Datenbits verfahre wie folgt mit Sendefrequenz e Sende eine Eins e Sende das Datenbit e Sende eine Null 2b Empfangen der Datenbits Fiir alle acht Datenbits verfahre durch Lauschen mit Abtastrate wiefolgt e bestimme Dauer der Eins e bestimme Dauer der Null e bestimme per Majorit tsentscheidung tiber die Dauer der Einsen und Nullen das Datenbit Dabei werden die Finsen und Nullen garantiert je durch eine positive bzw negative Flanke beendet 3 Verbindungsabbau e Sender Sende eine Eins gib Ressourcen frei e Empf nger Verwerfe letzte Eins wird nur wegen positiver Flanke ben tigt gib Ressourcen frei Vorteile Da gerade vom Spielfeld erwartet wird mit vielen Kommunikationspartnern zu ko
191. ndem Schema Nach der vorherberechneten Bewegung des Roboters Abb 3 50 sucht dieser nach der maximalen Lichtintensit t in Laufrichtung Er kommt so im minimalen Abstand zur Po sitionierungs LED zu stehen Abb 3 51 Nach einer Drehung um 90 Abb 3 52 erfolgt eine zweite Positionierung an der LED Durch diese 2 dimensionale Suche ist sichergestellt dass der Roboter nun unmittelbar auf der Positionierungs LED steht Abb 3 53 da die erste Korrektur der Suche des Ber hrpunktes eines Kreises um die LED auf einer Tangente entspricht die zweite Suche einer Kreismittelpunktsuche entlang des Tangentialradius Abbildung 3 55 C Drehkorrektur Nach der inversen 90 Drehung Abb 3 54 muss eine Korrektur der Roboterausrichtung in Abb 3 40 Ergebnis erfolgen Dies geschieht vollkommen analog zur Drehkorrektur gem des Algorithmus Die Qualit t der Fehlerkorrektur h ngt ganz wesentlich von mehreren Faktoren ab e die Qualit t d h Genauigkeit der Lichtintensit tsmessung e die Absch tzung der Fehlersituationen e die Absch tzung der Fehlerschwere sowie e das Zusammenspiel aller Hardwarekomponenten 110 3 3 Roboter Letztendlich kann nur die Praxis zeigen ob Modell und L sung den Anforderungen und den wahren Begebenheiten entsprechen k nnen 3 3 7 8 Softwareverifikation Die Verifikation der Software im Roboter erweist sich als sehr schwierig Zum Einen sind viele Fehlerquelle
192. ndere Korrektur notwendig machen Dies l sst sich am Einsatz der in termediate_correction erkennen Dementsprechend kann falls eine Korrektur n tig war die heavy_correction ausgef brt werden sonst wird die light_correction ausreichen Beispiel intermediate_correction Anhand zweier Fehlersituationen mit einer Drehungabweichung von 5 zur Zielrichtung soll die intermediate_correction demonstriert werden Diese werden als Extrema gew hlt n mlich einmal mit der fr hestm glichen Abweichung sofort am Start Fall A und einem dementsprechenden Lauf in die falsche Richtung dargestellt in den Abbildungen 3 41 bis 3 47 und einer sp testm glichen Abweichung bei der Ankunft auf der n chsten LED Fall B dargestellt in den Abbildungen 3 48 und 3 49 die so alle Fehler dieser Kategorie umfassen vorne ky vorne Drehpunkt 0 o Rokpter Drehpunkt Roboter Abbildung 3 41 Abbildung 3 42 Abbildung 3 43 A Ausgangssituation A Fehlersituation A Folgefehler Fehler zu Beginn der Bewegung Fall A Ausgegangen wird von einer falschen Startposition bzw einer Drehung direkt zu beginn der Bewegung Abb 3 42 Durch Bewegung um 3 mm vorw rts weicht der Roboter nun nicht nur zur Seite von seinem Ziel ab er bleibt auch vor der n chsten LED stehen Mittels Kosinussatz und Sinussatz ergeben sich Fehler von seitlich etwa 1 3 mm und in der L nge von 1 6 mm Abb 3 43
193. nen SAM BA Boot Code auszuf hren Nach dem Starten und einer erfolgreichen Verbindung zum Mikrocontroller ffnet sich der Hauptbildschirm vgl Abb 3 9 Hier k nnen folgende Aktionen ausgef hrt werden e Auslesen des Speichers im oberen bersichtsfenster oder in eine Datei mittels Recieve File e Hochladen von Code und Daten in den Speicher an eine bestimmte Adresse mittels Send File Hierbei ist zu beachten dass die Auswahl des Speichers in den ge schrieben werden soll beim Starten des Flash Tools stets auf Flash voreingestellt ist Dementsprechend kann die unerwartete Warnung At least one lock region is locked vgl Abb 3 10 darauf hindeuten dass versehentlich in den Flash Speicher geschrieben werden soll Damit besteht die Gefahr dass die Speicherbereiche die vom SAM BA Boot Code benutzt werden berschrieben werden und so der Mi krocontroller nicht mehr ber die serielle Schnittstelle angesprochen werden kann bis die SAM BA Boot Recovery Routine wieder ausgef hrt wurde e Manuelle Befehlsausf hrung Starten von Code ab einer bestimmten Adresse Dazu wird der Befehl go verwendet 53 3 Hardware id SAM BA 1 7 File Script File Connect Disconnect Help AT91SAM7532 EK Memory Display Starting Address Ox201400 Format om y Refresh Size hos byte s 0x00201400 Ox30306F23 0x30303032 0x312C3030 Ox30306F23 0x00201410 0x30303032 0x312C3030 0x30306F23 0x30303032 0x00201420 0x312C
194. ngen erge ben sich dann im Sommersemester 71 3 Hardware 3 3 3 6 Energie Versorgung Wie in 3 3 2 4 beschrieben sind zun chst der Bedarf an Spannung und Strom zu analy sieren Bedarfsanalyse Den h chsten Spannungsbedarf im Roboter hat der Mikrocontroller AT91SAM7S32 der 3 3 V ben tigt Atm05c die dementsprechend bereit zu stellen sind Da die Spannung konstant sein muss ist sie ber einen Festspannungsregler abzusichern der selbst eine h here Eingangsspannung ben tigt Beim KF33BD STMO4 betr gt die Dropoutspannung etwa 0 3 V so dass die Energiequelle insgesamt 3 6 V zur Verf gung stellen muss Der Strombedarf des Roboters ergibt sich aus der Summe des Strombedarfs der einzelnen Komponenten Die Komponenten mit dem h chsten Energieverbrauch sind die Motoren und der Mikrocontroller Die beiden Motoren brauchen bei voller Last je bis zu 280 mA der Mikrocontroller bis zu 50 mA Es werden also grob abgesch tzt etwa 650 mA ben tigt Praktische Tests haben jedoch ergeben dass bei Betrieb mit Motoren etwa 500 mA ohne Motoren gar weniger als 100 mA Strom verbraucht werden Eine Kapazit t von etwa 1000 mAh wird f r ein Spiel ausreichen da der Roboter regelm ig in Energiesparmodi versetzt werden kann Die Bauform des Roboters beschr nkt die Gr e der Energiequelle bei einem Aussen durchmesser von 45 mm und einer H he von etwa 60 mm darf die Energiequelle maximal einen Durchmesser von 44 mm besitzen z
195. nheit eingef gt werden Die Be rechnung dessen Gr e wird im Detail in 3 3 6 4 erl utert Testschaltung Um diese Kompabilit t sicherzustellen wurde eine kurze Testschaltung gebaut Dazu gen gt eine kleine SMD Platine auf der der HIP4020 befestigt und die ent sprechende Verdrahtung mit angel teten Kabeln durchgef hrt werden Bei diesem Test l sst sich feststellen dass der Baustein zuerst in einem undefinierten Zustand ist dabei jedoch den Motor voll belastet Als direkte Folge erw rmt sich der Motor stark was zu vermeiden ist Es m ssen also sp ter bei der Programmierung vgl 3 3 7 6 entsprechen de Vorkehrungen getroffen werden diesen undefinierten Zustand schnellstm glichst zu verlassen Von diesen zwei Punkten abgesehen erf llt der HIP4020 die gestellten Anforderungen genau Ein weiterer Baustein der LB1836M SAN scheint dies ebenso zu tun beinhaltet jedoch bei kleinerer Gr e 8 x 6 4 x 1 8 gleich zwei H Br cken F r die Nutzung m sste das Layout der Platine nur leicht ge ndert und gegebenenfalls die Lage des Widerstan des derart korrigiert werden dass er weiter vom Motor entfernt positioniert ist Dieser Baustein scheint jedoch zumindest in Deutschland nicht erh ltlich zu sein 3 3 3 3 Getriebe Die Umsetzung der Motorkraft auf die Antriebsr der wird im Roboter durch Getriebe realisiert Die Notwendigkeit von Getrieben ergibt sich aus mehreren Anforderungen e Da die in 3 3 3 1 gew hlten Schrittmotoren e
196. nical Reference 2005 Sony AIBO Europe Webpage http www aibo europe com index asp language de STMICROELECTRONICS DUAL FULL BRIDGE DRIVER January 2000 http www st com stonline products literature ds 1773 pdf STMICROELECTRONICS KF00 SERIES 2004 http www st com stonline products literature ds 4337 kf33b pdf TELCOM SEMICONDUCTORS LOGIC INPUT CMOS QUAD DRIVERS TC4467 TC4468 TC4469 October 1996 http www ortodoxism ro datasheets TelComSemiconductor mXtzyqt pdf TEXAS INSTRUMENTS L293 L293D Quadruple half H drivers SLRSOOSC November 2004 http focus ti com lit ds symlink 1293d pdf TOREX XC6201 Series Positiv Voltage Regulators http www torex usa com product pro02 pdf XC6201_E pdf TOREX XC6206 Series Low ESR Cap Compatible Positiv Voltage Regula tors http www torex usa com product pro02 pdf XC6206 pdf VLIET BAS VAN Freeforming the H bridge Webpage http www geocities com beamnet H bridge htm Katalog D April 2004 http www wes technik de Download Katalog D pdf WIZARDS OF THE COAST INC Robo Rally Rulebook 2005 http www wizards com avalonhill rules roborally pdf XILINX INC JTAG Parallel Download Cable Schematic November 1998 http toolbox xilinx com docsan data alliance jtg fig26 htm XILINX INC Planning for High Speed XC9500XL Designs September 1998 http www xilinx com bvdocs appnotes xapp115 pdf XILINX INC Designing With XC9500X
197. nlos zum Download beim Hersteller zur Verf gung Nach der Installation und Aufruf des Programms sehen wir das Fenster wie in Abb 3 5 zu sehen Folgende Einstellungen sind wichtig anzupassen e Device e XTAL Freq e Connected to Port e Use Baud Rate siehe Phi03 Seite 226 Tabelle 166 LPC2000 Flash Utility File EMOS Help KEE LPC2000 Flash Utility V2 2 1 RAM Buffer Operations Flash Programming Erase Blank Communication Filename Connected To Port SH Entire Device COM2 We Bice ees Selected Sectors A Use Baud Rate Upload to Flash Vv ECH Start Sector oo Compare Flash rd Sector Time Out sech 2 Device Use DTR ATS jo for Reset and Device d LPC2114 E Read Part ID EE XTAL Freq kHz Daag Device ID Boot Loader ID Selection Abbildung 3 5 Hauptfenster des LPC2000 Flash Utility 51 3 Hardware In Abb 3 6 ist das Flashfenster zum Upload der Daten in den Flashspeicher gezeigt Zuerst muss der ausfiihrbare Code im hex Format eingelesen werden Ganz wichtig ist Vector Calc durchzuf hren da erst dann der Controller den Code als g ltig erkennt Vector Calc berechnet einen Wert aus den Interruptvektoren die ganz am Anfang des Speichers angeordnet sind Anschliessend kann der geladene Code durch Driicken der Taste Upload to Flash in den Flashspeicher kopiert werden Ein hnliches Fenster steht auch f r den Upload ins RAM zur V
198. nmal zu verschicken da Duplikate anhand der gleichen ID erkennbar sind Danach folgt ein Bit BC Bit welches angibt ob es sich bei der Nachricht um eine Broadcast Nachricht handelt Nachrichten die auf jeden Fall als Broadcast verschickt werden sind Init Message Register All und Factoryelement Nach dem Broadcast Bit steht die Adresse der Nachricht die sich aus zwei Koordinaten mit je sieben Bit Gr e zusammensetzt Die Informationen die der HighLevel Layer den Nachrichten beif gt sind in einem va riablen Format kodiert um m glichst geringe Nachrichtengr en zu erhalten Zu Beginn befindet sich der Nachrichtentyp der eine Breite von sechs Bit braucht Abh ngig vom Typ werden die dann folgenden Daten der Nachricht interpretiert Zum Beispiel werden bei der Init Message die 21 Bit nach dem Typ so ausgewertet das die ersten 14 Bit 159 4 Software als Adressse interpretiert werden dann folgen die beiden als Orientierungsbits und die letzten 5 Bit werden als HopCounter interpretiert Nachrichtenname Routinglayer HighLevel BC Adresse Type Data 1Bit 14Bit x y 6Bit Gr e d Felder Beschreibung Init Message 1 0 14 1 1 5 Adresse x X hochz hlen Y hochz hlen Hop Coun ter Init Response O Parkplatz 1 14 Hostadresse Register All 1 2 56 4 Hostadressen erste Ad resse ist Adresse des Ma ster Register Response Mas
199. nn die Schutzfolie abgezogen und das Layout mit der bedruckten Seite nach unten auf die Platine gelegt werden Bei zweiseitigen Platinen werden die beiden Folien zuerst bereinander gelegt und mit Tesafilm an drei Seiten fixiert Die Platine kann dann hinterher einfach dazwischen geschoben werden Das Layout und die Platine werden danach auf die Glasplatte des am Lehrstuhl vorhan denen Belichtungsger tes gelegt Es ist darauf zu achten dass die Glasplatte sauber ist und dass das Layout nicht verrutscht Ist das Layout ordentlich platziert kann die obere Folie geschlossen werden Das Einschalten der Vakuumpumpe verhindert endg ltig ein weiteres Verrutschen Nach einer weiteren Lagekontrolle der Folie kann der Deckel geschlossen und die Platine belichtet werden Die Belichtungszeit h ngt von der verwendeten Platine sowie vom Be lichtungsger t ab F r das zur Verf gung stehende Ger t und die eingesetzten Materialen Epoxyd Fotoplatinen der Firma Bungard ergibt sich eine optimale Belichtungsdauer von 2 Minuten und 30 Sekunden 38 3 1 Gemeinsamkeiten Entwickelung Nach dem Belichten folgt das Entwickeln der Platine Dabei werden die belichteten Lackteile abgel st Als Entwickler verwenden wir Natriumhydroxid L sung Mischungs verh ltnis 1 100 Die Platine kann bei neuer L sung nach ungef hr 10 20 Sekunden aus der L sung genommen und mit Wasser abgesptilt werden Sollte die L sung schon etwas alter und gut ges ttigt sei
200. noch einige Varianten vorgesehen Zum Beispiel k nnen Roboter an ihrer Vorderseite Laser besitzen Diese schie en im Spiel zeitgleich mit den Lasern der Spielpl ne Auch hier k nnen nur blockierende W nde und andere Roboter verhindern dass man einen Schaden durch den Laser eines anderen Roboters erhalten kann Das Abschalten eines Roboters Ein Spieler kann seinen Roboter abschalten und damit alle seine Schadenspunkte ab geben Dies muss er allerdings eine Runde vorher ank ndigen und das Programm der aktuellen Runde wird auf jeden Fall vollst ndig durchgef hrt Der Roboter wird dann zu Beginn der neuen Runde abgeschaltet das hei t er ist dann handlungsunf hig kann aber weiterhin von Fabrikelementen und Robotern beeinflusst werden sich also auch wieder 27 2 Das Spiel Schaden zuziehen Bevor die Karten der n chsten Runde verteilt werden kann der Spie ler entscheiden ob er seinen Roboter abgeschaltet l sst Dann darf er wieder s mtliche Schadenspunkte abgeben Das Roboterduplikat ist besch digt Kommt der Roboter als Duplikat erneut ins Rennen so erh lt er zwei Schadenspunkte weil ein Duplikat ja nie so gut sein kann wie das Original Um mit der Erweiterung das Grundspiel sinnvoll erg nzen zu k nnen sollten alle diese Varianten mit ins Spiel einbezogen werden 2 1 7 Optionskarten Optionskarten nehmen eine Sonderrolle im Spiel ein und wurden erst mit der Erweiterung Crash and Burn eingef hrt Verschie
201. nsigned long command 5 Unsigned long result 5 In der Abbildung 3 4 9 2 werden alle Befehlscodes und Beschreibungen aufgelistet IAP Command kCommandCode Code Prepare sectors for write operation sectors for write operation 0 Table 100 le 180 Copy RAM to Flash Table 181 Blank check sector s Table 183 Abbildung 3 79 Befehlstabelle Durch die folgenden Befehle wird ein Zeiger f r einen Funktionstyp mit zwei Parametern definiert der kein R ckgabewert liefert typedef void IAP unsigned int unsigned int IAP iap_bypointer Die Programmierung der Spielfelder erfolgt ber die Flash Routine und alle Mikrocon troller werden mit dem gleichen Code programmiert Die Pakete werden iiber einen Broadcast Mechanismus geschickt und entsprechend tiber das Protokoll identifiziert Die Routine die das Kopieren der Pakete vom RAM in den Flash ausf brt wird dann auf gerufen wenn dieses Paket noch nicht geflasht worden ist Das Uberpriifen auf doppelte Pakete geschieht mit Hilfe der if Anweisung Die Variable Zaehler wird jedes Mal inkrementiert wenn ein Paket in den Flash kopiert wurde Dies wird genutzt um den Flash Vorgang abzubrechen wenn die gesamte Anzahl der Pakete erreicht wird Im Array m_pHistory werden die letzten f nf angekommenen Paketnummern gespeichert Dies wird so definiert um Duplikate zu vermeiden case FLASHPACK pMessageData gt m_paketNr pMessage pMessageData gt m_
202. nun besser erkennen Roboter Roboter haben jetzt alle Namen Hammer Bot Hulx X90 Spin Bot Squash Bot Trundle Bot Twitch Twonky Zoom Bot vgl Abb 2 4 F r jeden Roboter gibt es ein eigenes Program Sheet gt xX 7 R gt 7 8 E _ Twitch Zoombot Twonky Hammer Bot Trundle Bot Huik Va Soin Bot Squash Bot Abbildung 2 4 Die Roboter der Version 2005 Program Sheet Hier k nnen nun alle Programmierkarten Lebens und Schadenspunk te abgelegt werden Wie oben erw hnt erh lt jeder Spieler fiir seinen eigenen Roboter einen eigenen Bogen auf dem der Name des Roboters vermerkt ist Docking Bay Board Dies ist ein zus tzlicher zweiseitiger Startspielplan der es den Robotern erm glicht auf gesonderten Feldern zu starten vgl Abb 2 5 und 2 6 Jeder Spieler stellt seinen Roboter in ein Dock Der erste Startplatz wird zufallig vergeben alle anderen Docks werden dann im Uhrzeigersinn zugeteilt Die Reihenfolge ist sp ter wichtig zum Beispiel wenn es darum geht ob die Spieler ihren Roboter ausschalten 32 2 2 Unsere Realisierung des Spiels m chten Wenn die Entscheidung eines Spielers seinen Roboter in der n chsten Runde abzuschalten davon abh ngt ob andere Spieler dies tun kann hierzu jeder Spieler in der Reihenfolge der Docking Startnummer gefragt werden ob er seinen Roboter in der n chsten Runde abschalten m chte Das Docking Board bietet den Vorteil dass alle Roboter auf einem eigenen Feld
203. oboter Willi Elekronik Laden 1998 http elmicro com files robotik willhand pdf AMIGO SPIEL FREIZEIT GMBH Robo Rally Das rasante Rennen Spielanleitung 2 Auflage 1999 http www amigo spiele de upload Roborally_1091 pdf AMIGO SPIEL FREIZEIT GMBH Robo Rally Erweiterung Crash and Burn Spielanleitung 1 Auflage 2000 http www amigo spiele de upload RoboRally2_1092 pdf ARM LTD ARM7TDMI ARM 32 bit RISC core with 16 bit system costs Oct 2005 http www arm com products CPUs ARM7TDMI html ATMEL CORPORATION Atmel AT91RM8400 Datasheet Rev 1790A Nov 2003 http www atmel com dyn resources prod_documents doc1790 pdf ATMEL CORPORATION Atmel AT91M42800A Datasheet Rev 1779C Nov 2005 http www atmel com dyn resources prod_documents doci779 pdf ATMEL CORPORATION Atmel AT91M55800A Datasheet Rev 1745G Nov 2005 http www atmel com dyn resources prod_documents doc1745 pdf ATMEL CORPORATION Atmel AT91SAM7S32 Datasheet Rev 6175A Jul 2005 http www atmel com dyn resources prod_documents doc6175 pdf ATMEL CORPORATION Atmel ATmega162 Datasheet Rev 2513G Mar 2005 http www atmel com dyn resources prod_documents doc2513 pdf ATMEL CORPORATION Atmel ATmega6490 Datasheet Rev 2552B May 2005 http www atmel com dyn resources prod_documents doc2552 pdf ATMEL CORPORATION Atmel ATtiny26L Datasheet Rev 1477G Mar 2005 http www atmel com dyn resources prod_documents doc1477
204. om lt A Wi Gen lt 200 S enge 60037 5 T EE E Ze von ont i Di S DS ener SI Jo om zoo Pen Er ve S G T 3 3 E 3 gt ES 7 m l mue e x l Ze 8 angoureos e EN w ve S 15 consours08 e I maa y A m oe S 5 18 ee ge songs ur S I e E So Te A e somaa g 2001 Par oe Sg 1 new ONES or mm em e SG Se Ze Se E am i pS hee an are zm o di ha yoo ES l ches SVE ore u lt gt Ed E Di Si o WE Zeg er l cree zn m g yoo e I ence nG m ro lt poo E Di m thaw won Sei er l de EI Sim ou a ence BN a FT lt P ue l E Di e de won Zei mm Ge d i Ss Di m Se ath Era lt lt zoo 8 nee vn ra EEE EE 2 l ZA g el o 3 g 3 4 da d P H 8 a E al Sie eds e e E 4 Eug ele 5 Ba 8 ag Ue By Ue R le H E IA S and I em al lea 3 uf sl alle oil F Shale Ske A gt aT od A l SSE oy afe 52 SIE SR Sng ER ele lk I TA ae ER i oF e de al g ES 3333 u l 838 Fr ba FH 2528 l 23 CE ER RFH l e IA Egg EE l z See D E se elo aly geet G I sl eE E eng 1 as E YE we 3 E H ae l 55 3 3 3 se i E 1 H l Ft Se lt H I Gel Bene Sechs Seha H le o J 13 SIE SE BS 8 8 A a ME E 3 2 E amp i nf SP Se g I wenn Abbildung 6 6 Schaltplan Feldplatine Version 2 0 182 6 1 Schaltpl ne MEN 1MOZU ta LAO noz NL AMOLL NIL zo viva NI ONS 9 S Dir lt
205. ondere f r die Auswahl der Motoren gilt dass Gr e Strombedarf und Steuerbar keit zu beachten sind Dabei impliziert die Steuerbarkeit dass sich die Motoren durch klare Schrittweiten oder pr zise Geschwindigkeiten auszeichnen m ssen um zur ckgeleg te Wege genau zu bestimmen sowie ein gerades Fahren erst zu erm glichen Unterschied liche Motoren lie en den Roboter einen Bogen fahren Des Weiteren muss ein pr zises Halten der Roboter Brems und Haltefunktion m glich sein 61 3 Hardware Weitere technische Aspekte wie das Drehmoment der Motoren sind sekund r da die Roboter nur wenige hundert Gramm wiegen werden und durch nahezu alle verfiigbaren Motoren fortbewegt werden k nnen F r fahrende Roboter werden meist Gleichstrom Getriebemotoren eingesetzt GG04 vereinzelt aber auch Schrittmotoren zumeist in Form modifizierter Servomotoren Par Servomotoren selbst k nnen sich allerdings nicht beliebig weit drehen und finden eher in laufenden Robotern Einsatz Lyn und sind daher hier unbedeutend Getriebemotoren und Schrittmotoren sind aber n her zu betrachten Getriebemotoren Getriebemotoren B 06b z hlen zu den einfachsten kleinsten und universellsten Mo toren Durch unterschiedliche Untersetzungen eignen sie sich f r schnelle aber auch f r kraftvolle Eins tze Sie werden zum Beispiel f r das ffnen und Schlie en von DVD Laufwerken benutzt Aufgrund der geringen Gr e erscheint ein Einsatz dieser
206. ontroller Abbildung 3 71 Steckerbelegung der Testboards fiir das Spielfeld Die Kommunikations LEDs befinden sich dabei in der Mitte jedes Feldes Wie oben schon erw hnt werden die Navigations LEDs jeweils mit einem Abstand von 16 66 mm in alle vier Himmelsrichtungen um die jeweilige Kommunikations LED eines Feldes platziert Der Abstand aller Leuchtdioden zueinander ist damit gleich so dass auch gleichm ige Linien abgebildet werden k nnen die die Laserstrahlen simulieren sollen Die Position der jeweiligen Navigations LEDs ist damit au erdem noch soweit vom Mittelpunkt entfernt dass eine gute Ausrichtung des Roboters m glich ist Eine weitere Verschiebung nach au en w re auch nur noch in geringem Umfang m glich da die LEDs sonst nicht mehr unter dem mittig auf dem Feld stehenden Roboter liegen w rden Die genaue Position der LEDs ist Abbildung 3 72 zu entnehmen Der entwickelte Schaltplan befindet sich in Anhang A Abbildung 6 4 Um die Reaktion der Fototransistoren bei verschiedenen Lichtverh ltnissen festzustellen wurden unterschiedliche Widerst nde an den Fototransistoren eingel tet Variiert wurde dabei die Widerst nde RTO bis RT8 Die Werte der Widerst nde sind in Abbildung 3 70 festgehalten W hrend der Tests wurde au erdem noch ein zus tzlicher 4 7 kOhm Wi derstand zwischen dem Emitter des Fototransistors und Masse geschaltet 3 4 7 2 LED Ansteuerung mit TTL Bausteinen F r die Steuerung der LEDs der Phototransit
207. oren und der Taster verf gt der Mikrocon troller nicht ber genug GPI O Pins Hierbei ist die Idee entstanden eine extra Schaltung zu entwerfen sodass wir mit weniger Pins auskommen 129 3 Hardware metz mees Drop WEG Abbildung 3 72 Position der Dioden und Phototransistoren e 5 8 Bits adressierbare Latch 74HCT259 e 1 8 Bits adressierbare Latch 74HCT138 e 1 8 Input Multiplexer 74AC151 Die einzelnen Bauteile werden in den n chsten Kapiteln erl utert Adressierbare Latches 74HCT259 Die adressierbaren Latches sind Halbleiterbauteile die aus wenigen Ein gangssignalen mehrere Ausgangsignale liefern k nnen Die Latches verf gen ber Spei cher in denen die Ausgabewerte gespeichert werden F r die Schaltung sollten 16 Bits adressierbare Latches verwenden werden um wenige Bauteile auf der Platine zu haben Da diese nicht mehr verf gbar waren wurde eine alternative Entscheidung herangezogen so dass nun 8 Bits adressierbare Latches verwenden wurden die ausserdem noch g nsti ger sind Die 8 Bits adressierbare Latch 74HCT259 von dem Hersteller Philips waren f r die zu realisierenden Aufgabe geeignet Diese Bausteine bieten den Vorteil dass jede Ausgangsleitung ber einen eigenen Speicher verf gt Der 74HCT259 besteht aus 16 Pins 130 3 4 Spielfeld Abbildung 3 73 74HCT259 Baustein wobei drei AO Al A2 fiir die Adressierung verwendet werden die weiteren sie
208. outing Unterseite 194 6 30 Platinenlayout Host Interface Bauteile Oberseite 194 6 31 Spielfelfbox von oben gesehen 195 6 32 Spielfeldbox von der Seite gesehen e 196 12 1 Einleitung In diesem ersten Kapitel m chten wir einen berblick ber die Projektgruppe 477 R3D3 Real Robo Rally Dare Devil Droids vermitteln In diesem Projekt wird das Spielkon zept der Robo Rally Spiele mit Hilfe interagierender Roboter umgesetzt Neben der Motivation Abschnitt 1 1 zum Projekt wird insbesondere die Aufgabenstel lung Abschnitt 1 2 und die Planung der Realisierung Abschnitt 1 3 beleuchtet Eine Vorstellung m glicher Projekterweiterungen Abschnitt 1 4 rundet den berblick ber die Arbeit der Projektgruppe ab Im Anschluss wird der Aufbau dieses Zwischenberichtes Abschnitt 1 5 dargestellt 1 1 Motivation Unabh ngig vom Alter empfinden viele Menschen Brettspiele als eine angenehme und unterhaltsame M glichkeit zur Freizeitgestaltung Die unz hligen Spielideen die angebo ten werden sind ein starkes Indiz f r die anhaltende Popularit t der Spielart Vertreter sind ganz klassische Spiele wie Schach das schon seit Jahrhunderten Menschen fasziniert oder das Gesellschaftsspiel Monopoly bis hin zu den j hrlich erscheinenden Variationen der Mensch rger dich nicht Spielidee Einer gelungenen Idee folgt auch die Robo Rally Spielserie AMI99 AMIOO Die Grund idee besteht
209. ozreoa 18 u awsozrsoa 19 EE aWsozrso8 2 To 6 ag VOU wm ence 208 10 ence 1OY 10 ene M a ENE LAS Ener A Gena Ener TEN A sede Ss A da In TR ru cage 48 u ve HA u DA SS PL Rx ke o e ie m 00 E 001 3 E o 3 Ke E m g 10031 Cap LCST D ene HUOT rtl ence e 001 E 001 lt lt El sm D GH a 1ed31 ene 631 Za gt enger 6031 SM ENGE m 001 mn 001 G 29 pH 4 lt Bt mar D ven 06031 Ka Ka 9431 EN GH ene 81031 ory ches E 001 E 001 E 001 S gt S gt Gel eza S a D 62031 ener SORT Su gt ence 21031 T ones e 001 E 00 E 00 De Y J D 30 E p j 82031 ene 9031 ve gt ene 9031 ER eer u o 20 awsolreog 9 me aWsozr808 2 o GI Ehe eg D eres SOY om gt Cape OU 90 008 ae ie CH semas semaa 918 CH semda ener EIN SC ei Ener mR OL pe ees ge Ca mo St y Car WATT ewe ene SGI E eng DOT E GH 001 Ed Oot e gt J 7 E e y a Car SHORT EN ener 42031 728 ene 031 Eu Be ES P oo l D m em gt y e at a enger VEGA Gi DEEN 928 eng 2031 za M 001 Zeg oor a gt a gt Sr o ene 1037 EI ene 32031 SCH eng 1031 va 001 d SE E gt CX a gt y e e en enee 21031 as ence FOE vey ene 0031 08 Schaltplan Testboard Feld Abbildung 6 4 180 6 1 Schaltpl ne
210. plementierung des Zustandsiibergangsmodell wird ein Array mit Funktionspoin tern verwendet Das Array hat 2 Dimensionen eine fiir den Nachrichtentyp und eine fiir den aktuellen Zustand Beim Eintreffen einer Nachricht wird einfach die Funktion an Position aktueller Zustand Nachrichtentyp aufgerufen F r jeden Nachrichtentyp den das Spielfeld verarbeiten muss gibt es eine Funktion Wenn in einem bestimmten Zu stand ein bestimmter Nachrichtentyp bearbeitet werden soll wird die korrespondierende Funktion aufgerufen Dadurch wird der Code sehr schlank und ist sehr wartungsfreundlich Im folgenden Teil werden jetzt kurz die Funktionen f r jeden Nachrichtentyp den das Sielfeld bearbeiten muss beschrieben Handlelnit Wird bei eintreffen einer Init Message aufgerufen Init Messages werden nur im Init Zustand bearbeitet Die Funktion berechnet die Koordinaten aller ihrer neuen Felder und initialisiert weitere Datenstrukturen f r die Orientierung RegisterClients Die Register Client Nachricht enth lt die Adressen aller Clients und die des Masters diese werden abgespeichert um die Response Nachrichten an die zugeh rigen Konsolen der Roboter zu schicken Die Funktion witrd nur im Zustand B_Init aufgerufen HandleQuery Querys werden immer dann gesendet wenn ein Roboter ein Feld betre ten will oder wenn ein Roboter einen mechanischen Arm hat und dadurch festge stellt werden muss ob das Feld einen Checkpoint besitzt Ein sog forcedisplace
211. ppeltes Reparaturfeld mit einer Mauer Es ist also ohne Probleme m glich alle Boxen so zu gestalten dass h chstens 4 Felder auf jeder Box vorhanden sind die ein Checkpoint sein k nnen Abbildung 3 64 Pl tze f r die Drucktaster in der Spielfl che 121 3 Hardware Jeder Checkpoint hat eine eindeutige Nummer und diese mu festgestellt werden Da durch die Drucktaster nur festgestellt werden kann ob ein Feld ein Checkpoint ist oder nicht muf die Nummer des Checkpoints durch die Software festgestellt werden Der Host PC wird den Spieler dazu auffordern den x ten Checkpoint einzustecken In dem Moment wo ein F hnchen in ein Feld eingesteckt wird wird dies durch den Drucktaster festgestellt Das Feld bekommt danach von dem Host die Nummer des Checkpoints siehe Kap 4 3 3 3 3 4 5 Verbindungen der Felder Es gibt drei Arten der Verbindungen Zum Einen solche die die Stabilit t des Gesamt feldes erzeugen und zum Anderen die Verbindungen die zur bertragung der Kommuni kation oder des Stromes dienen Die Seitenplatine bildet die Grundlage zur bertragung der Kommunikation Auf dieser Platine werden die Kontakte und die entsprechenden Gegenst cke montiert Jede dieser Seitenplatinen ist mit einem negativ gepolten Win kel verbunden der f r diese Platine zus tzlich als Masse dient Die Winkel werden zur Strom bertragung genutzt und halten durch die permanent Magneten das Gesamtfeld zusammen 3 4 5 1 Zusammenhalten der
212. r gelegt um mehr Platz f r die steuernden Ausgangsleitungen zur Verf gung zu haben Zus tzlich werden direkt neben dem Controller an den Pins PGMEN1 3 und TST kleine Pads herausgef hrt da diese Pins f r einen vollst ndigen Reset des Controllers inklusive des Flashs n tig sind Mikrocontroller Peripherie Einige weitere Bausteine sind notwendig um den Mikrocontroller betreiben zu k nnen Angaben zu diesen lassen sich dem Datenblatt Atm05c entnehmen Dazu geh ren ein Quarz und zwei Kondensatoren siehe 3 3 4 Diese Komponenten m ssen m glichst nah am Controller platziert werden Bei dem Quarz ist zus tzlich noch auf m glichst gleich lange Leiterbahnen zu achten damit die Schwingung nicht verf lscht wird Ebenso d rfen keine weiteren Bahnen zu nah am Quarz sein da hier potentiell die Gefahr des bersprechens entsteht Anordnung der Schnittstellen Die Platzierung der Schnittstellen ist haupts chlich durch den mechanischen Aufbau be stimmt Die Verbindungskabel sollen m glichst kurz sein und direkt die einzelnen Kom ponenten verbinden Es ergibt sich folgende Anordnung Schnittstelle zum Motor Die Motorsteuerung wurde auf beide Platinen verteilt um m glichst nah an den Motoren zu sein vgl 3 3 6 2 Diesem Gedanken weiter fol gend befindet sich die Schnittstelle am unteren Ende der Platine Schnittstelle zur Bodenplatine Es bietet sich an diese Schnittstelle aus demselben Grund ebenfalls ans untere Ende zu setz
213. r Kreisbogen des Rades und damit die Strecke die pro Motorschritt gefahren wird betr gt so 0 0641 mm Entsprechend sind f r eine Strecke von 50 mm etwa 780 Schritte des Motors notwendig 2x x halber Radabstand x Drehwinkel 360 Kreisbogen Robo 2m Damm ug o Kreisbogen Robo 26 625 mm 3 4 360 Strecke Schritt Drehung ee pro Motorschritt 26 625 mm 0 0641 Schr Schritte pro Drehung 415 Schritte 3 5 103 3 Hardware Eine Drehung von 90 des Roboters bedeutet eine zu bew ltigende Strecke von 26 625mm und erfordert so 415 Schritte Eine empirische berpr fung und Korrektur z B f r einen regelm igen Schlupf dieser Werte steht noch aus 3 3 7 7 Fehlerkorrekturalgorithmus Eine ganze Reihe unberechenbarer Faktoren wirken auf Spielfeld und Roboter ein zum Beispiel ein Rutschen der R der auf dem Makrolon oder Verunreinigungen die die Be wegung st ren und bewirken so dass die Bewegung des Roboters nicht ganz genau vorhergesagt werden kann Alle Fehler f r sich genommen sind sehr klein aber in Summe und vor allem ber ein komplettes Spiel hinweg gesehen k nnen sie das Spielvergn gen erheblich beeintr chti gen wenn der Roboter einmal nicht mehr an seinem Ziel ankommt mit einem anderen Roboter vielleicht kollidiert oder gar von der Spielfl che st rzt Folglich ist es notwendig diese Fehler zu korrigieren Ziel Ziel ist dass nach der Korrektur der
214. rammteile und deren Komponenten lassen sich im Vorfeld testen insbesondere der Antrieb Mikrocontrollerkomponenten Zum Test des Mikrocontrollers steht ein Testboard wie in 3 3 4 beschrieben zur Ver f gung So k nnen alle Komponenten des Mikrocontrollers unter Nutzung vieler Ausga bem glichkeiten in Betrieb genommen werden zum Beispiel der ADC Analog Digital Converter der PIT Periodic Interval Timer oder der PIO Parallel Input Output Controller Antriebstest F r einen Antriebstest k nnen sukzessive s mtliche Routinen von einer Testprozedur aus aufgerufen werden An einem ber zwei HIP angeschlossenen Motor l sst sich die 111 3 Hardware Funktionalit t sofort erkennen So konnten von den Routinen zur Drehung des Motors um einen einzelnen Schritt bis hin zu den Routinen die den Roboter vorw rts r ckw rts oder im Kreis laufen lassen alle f r den Roboterbetrieb relevanten Routinen ausgiebig getestet werden Weiterf hrende Tests d h vor allem der Test der Kommunikation und der Test der main c Funktion fanden als Integrationstests beschrieben in Abschnitt 3 5 statt 3 3 7 9 Fazit Obwohl im Roboter keine Spielintelligenz zu implementieren sein Funktionsumfang stark begrenzt und deren Komplexit t berschaubar ist erweist sich die Programmierung des Roboters insbesondere die folgende Testphase als schwierig da an dieser Stelle alle F den der Roboterkonstruktion zusammenlaufen Um so erfreulicher i
215. raturfeld mit zwei Schrau benschliisseln steht Wenn zum Beispiel Karten durch Schadenspunkte blockiert sind so kann er sich entscheiden welche der blockierten Karten er wieder frei geben will Steht der Roboter eines Spielers am Ende der Runde auf einem Reparaturfeld mit zwei Schraubenschliisseln so kann er w hlen ob er einen Schadenspunkt abgeben oder eine Optionskarte erhalten will Dabei ist zu beachten dass Spieler nur maximal drei Op tionskarten besitzen d rfen Erhalten sie eine vierte Karte so m ssen sie sich sofort entscheiden welche der Karten sie zur ckgeben Wird ein Roboter zerst rt so muss der Besitzer eine Optionskarte abgeben Des Weiteren haben Roboter die nun auf einem Checkpoint stehen oder w hrend der Runde an einem vor ber gezogen sind ein Teilziel der Robo Rally erreicht Ist ein Roboter w hrend der Runde zerst rt worden so kann der Spieler durch Abgabe eines Lebenspunktes bewirken dass er von dem Feld auf dem seine Sicherheitskopie liegt wieder mit einem Roboterduplikat ins Rennen gehen darf 2 1 5 Ende des Spiels Das Spiel Robo Rally ist beendet wenn ein Roboter egal in welchem Programmschritt den letzten Checkpoint berquert oder auf ihm zu stehen kommt Falls alle Roboter zerst rt werden bevor der letzte Checkpoint erreicht werden konnte so gewinnt der Spieler der mit seinem Roboter die meisten Teilziele erreicht hat 2 1 6 Varianten Die Roboter besitzen Laser Im Grundspiel sind
216. rd in Abbildung 4 3 dargestellt Die Zust nde in der Abbildung sind als Viereckige dargestellt die Zustands berg nge durch Pfeile Ist an einen Zustands bergang eine Bedingung gekn pft so wird sie in eckigen Klammern an den Pfeil geschrieben vgl bergang von B_Init nach Normal Findet zus tzlich zum bergang noch eine Aktion statt so steht sie nach einem Forward Slash vgl bergang von Orderprocessing nach Normal Ist an den Zustands bergang sowohl eine Bedingung als auch eine Aktion gen pft wird die wie folgt notiert Bedin gung Aktion Nach dem Einschalten gelangt das System zuerst in einen initialen Zustand wobei die Spielfelder in den Zustand B_Init kommen w hrend der Parkplatz in P_Init startet In diesem Zustand werden auf der Ebene des Routing Layers die I nit Messages bearbeitet Empf ngt ein Host PC eine Init Message sendet er seine Adresse mit einer Init Response an den Parkplatz zur ck Der Parkplatz sammelt die Responses und broadcastet diese mit einer Register All an alle Felder und Hosts Dies bewirkt im Spielfeld und im Parkplatz jeweils einen Zustands bergang nach Normal Im Zustand Normal werden Querys mit einer Query Response bearbeitet einen Zu stands bergang l st die Nachricht Order aus Das System wechselt in den Zustand Or derprocessing in dem der Befehl ausgef hrt wird 162 4 3 Protokoll Stack Query Query Response Normal Factoryelement Response See Register
217. rde die Bo denplatte auf der Unterseite mit runden Filzgleitern versehen die geviertelt und je zwei Viertel vorn und hinten zur St tzung aufgeklebt wurden Abbildung 3 18 Die Unterseite der Bodenplatte mit den Filzgleitern 77 3 Hardware Aufbau Bei dem Aufbau muss eine gewisse Reihenfolge eingehalten werden in der die Elemente eingesetzt werden Zuerst werden die Filzgleiter unter die Bodenplatte geklebt vgl Abb 3 18 Als n chstes miissen die Aderendhiilsen in die gefr sten Aussparungen geklebt werden wobei zu beachten ist dass die Achse sich vorher in der Hiilse befinden muss da man sie sonst nicht mehr einsetzen kann Natiirlich miissen auch die Rader vorher an der Achse befestigt worden sein Abbildung 3 19 Bodenplatte mit Getrieben R dern Achsen und Winkeln Danach wird die Bodenplatine von oben eingesetzt indem die LED und die Fototransi storen in die vorgesehen L cher eingelassen werden Jetzt muss die Winkelkonstruktion aufgebaut werden Die vier L Winkel werden an dem U Winkel befestigt wobei zwei gegen berliegende L Winkel einen kleineren L Winkel tragen Abbildung 3 20 Der Roboterprototyp Ansicht hinten Nachdem die Buchse und der Schalter in die Bodenplatte eingesetzt sind kann die Win kelkonstruktion auf diese geklebt werden und die Getriebe an den kleinen L Winkeln befestigt werden Jetzt fehlen nur noch die Motoren der Akku und die Platinen Der fertige Roboterprototyp ist in den Ab
218. rdings die einzelnen Zahnr der nur um eine feste Achse drehen Sie zeichnen sich insbesondere durch extrem hohe Robustheit aus k nnen beispielsweise bei verschiedensten Temperaturen und im Vakuum betrieben werden e Schneckengetriebe Diese Getriebe nutzen eine Schnecke auf der Motorachse und werden in der Re gel durch weitere Zahnr der erg nzt Schneckengetriebe werden insbesondere im Hobbybastlerbereich genutzt da sie vergleichsweise einfach zusammen zu bauen sind Da Hightech Planeten und Stirnradgetriebe sehr teuer sind verbleiben f r das Projekt lediglich Schneckengetriebe die in Hobbybastlerl den wie Mikroantriebe Mik05 vertrie ben werden Eigenbaul sungen w rden den Schneckengetrieben sehr hneln von einer Schnecke auf der Motorachse angetrieben m sste im einfachsten Fall direkt ein Zahnrad auf der Rad achse sitzen Um h here Untersetzungen zu realisieren w ren allerdings noch Zahnr der auf zus tzlichen Achsen einzusetzen Da Eigenbaul sungen jedoch recht empfindlich und fehleranf llig sind schlie lich ist mechanische Genauigkeit nicht nur zuletzt wegen der Laufruhe gefordert sind fertige Getriebe vorzuziehen Getriebeauswahl Alle Getriebevarianten sind vom Konzept her geeignet um im Roboter eingesetzt zu werden da dieser au er einer Zieluntersetzung zwischen etwa 20 1 und 100 1 kaum An forderungen an diese stellt Daher r cken eher sekund re Merkmale in den Vordergrund der Preis und die Verf gbarke
219. rds die im Prinzip zwei Spielfeldboxen darstellten Die Erste war die in 3 2 2 beschriebene Kommunikationsver bindung die auch zwischen den Spielfeldboxen so bestehen soll und die Zweite war die Leitung fiir die an den Gleichrichtern anliegende Gleichspannung Diese Verbindung ent steht im fertigen Aufbau der Spielfeldboxen durch die Winkel Den Abschluss des Tests bildete die erfolgreiche Kommunikation der Testboards unter einander Dabei wurden Daten iibertragen die mittels der LEDs auf den Testboards dagestellt wurden 3 4 7 5 Sound Der Ablauf des Spiels soll mit Sound unterlegt werden Dazu ist es notwendig einen Lautsprecher so anzusteuern dass eine ensprechende Klangwiedergabe m glich ist Ein Lautsprecher besteht im Prinzip nur aus einer Spule und einer Membran Je nach St rke des Spulenmagnetfeldes bewegt sich die Membran entsprechend Da der Mikrocontroller bereits viele Anschlusspins belegt hat ist es notwendig die ben tigte Anzahl von Pins zu minimieren Dazu lassen sich die im Controller einge baute PWM Signalerzeugung nutzen Ein PWM Signal besteht lediglich aus einem Pin der zu einem Zeitpunkt entweder im logischen Zustand Null oder Eins sein kann Dabei wird der Wert ber das Verh ltnis zwischen der Anzahl der Einsen und der Anzahl der Nullen erzeugt Aufgrund des sehr begrenzten Speicherplatzes auf dem Controller k nnen die Sounddaten nicht zu viel Platz in Anspruch nehmen Eine angemessene Soundqualit t l sst
220. reite auch 5cm Die Dicke von 6mm ergibt sich daraus dass die Magnete in den Winkeln versenkt werden sollen 3 4 4 Oberfl che ber die Oberfl che der Spielfeldboxen m ssen die Roboter fahren k nnen Die Ober fl che muss stabil genug sein den Roboter tragen zu k nnen Au erdem muss die Ober 118 3 4 Spielfeld Abbildung 3 61 Aufsicht der Unterkonstruktion fl che ein grafisches Design haben so dass der Spieler erkennen kann welches Feld welche Eigenschaften hat Ferner sollte die Oberfl che nat rlich l nger haltbar sein Au erdem sollte es m glich sein Checkpoints festzulegen 3 4 4 1 Grafisches Design Das grafische Design der Oberfl che dient dazu dass der Benutzer erkennen kann welches Feld welche Eigenschaften hat z B wo sich eine Wand befindet Da die Roboter ber die Felder fahren m ssen gibt es leider keinerlei M glichkeiten das Design 3 Dimensional zu gestalten In Anlehnung an das englische Originalbrettspiel ist das Layout der einzelnen Felder der Spielbretter des Brettspiels verwendet worden und diese zu diesem Zweck eingescannt worden Es sind einzelne Felder ausgesucht worden die zu 3x 3 Feldern zusammengesetzt worden sind Diese 3x3 Felder sind auf 120g Papier gedruckt worden Abbildung 3 62 Spielfl che mit Laser 119 3 Hardware Allerdings gab es hierbei ein Problem mit der Darstellung der Laser Wenn ein Laser auf einer Spielfeldbox beginnt muss dieser nicht unbe
221. rface Der Anschluss des Host PC an die Spielfeldboxen soll ber eine serielle Verbindung reali siert werden Da der Aufbau des Spielfeldes aus den Spielfeldboxen variabel gehalten wer den sollte muss somit jede Spielfeldbox an jeder der vier Seiten eine M glichkeit bieten eine serielle Verbindung zum Host herzustellen Da aber die Verbindung der Spielfeldbo xen untereinander ber Kontaktfl chen siehe Abschnitt 3 4 3 1 geschieht und auch die Konstruktion mit den Winkeln siehe 3 4 3 2 wenig Raum f r Anschl sse l sst wurde die Verbindung ber einen Adapter gew hlt Dieser Adapter besitzt auf der einen Seite die M glichkeit eine Verbindung ber ein se rielles Kabel mit der entsprechenden Schnittstelle des PC herzustellen Auf der anderen Seite kann er mit einer Spielfeldbox verbunden werden 3 6 1 Mechanischer Aufbau Es gibt mehrere Aspekte die den Aufbau des Adapters beeinflussen Zum einen ist das der Aufbau der Spielfeldboxen und zum anderen auch die Verbindung zum Rechner Da die Spannungsversorgung der Spielfeldboxen ber die Winkel siehe Abschnitt 3 4 3 2 geschieht enth lt der Aufbau des Adapters zwei Winkel die wie im folgenden noch erl utert ein wenig angepasst werden Au erdem hat der Adapter den gleichen Aufbau der Kommunikationsverbindungen Daraus resultiert der Aufbau des Adapters aus zwei Winkeln hnlich einer halben Spiel feldbox und der Verbindung der beiden Winkel durch eine Platine Diese Platine besi
222. richten an Roboter und dem Rechnen mit Koordinaten etc Die Implementierung des High Level Layers ist abgeschlossen und es wurde auch be reits mit den ersten Test begonnen Im n chsten Semester stehen weitere Test in der Testumgebung des Routing Layers vgl 4 3 2 5 auf dem Plan bevor umfangreiche In tegrationstests durchgef hrt werden 4 3 4 Scheduler Oberhalb des Protokollstack siehe 4 1 ist ein Scheduler angesiedelt Obwohl diese Soft warekomponente nicht direkt zum Protokoll Stack geh rt ist sie dennoch das Bindeglied zwischen den Schichten des Stacks Jegliche Kommunikation zwischen den Schichten wird duch das Erzeugen von Jobs durchgef hrt die dann in den Scheduler eingetragen und nacheinander abgearbeitet werden 165 4 Software W hrend es f r Protokolle fiir PCs nicht ungew hlich ist dass jede Schicht jeweils einen eigenen Thread verwendet um parallel zu arbeiten kann diese Technik nicht direkt in unseren Komponenten eingesetzt werden Um trotzdem parallel arbeiten zu k nnen wird der beschriebene Scheduler eingesetzt Die Schichten des Stacks arbeiten so zumin dest scheinbar parallel Die Jobs werden von den jeweiligen Komponenten des Stacks erzeugt und dann vom Scheduler auf first come first serve Basis abgearbeitet Durch Interrupt Routinen des Mikrocontrollers kann dieser Prozess unterbrochen werden um neue Nachrichten in die Warteschlange des Schedulers einzuh ngen 4 4 Host Applikation 4 4
223. rmationen festlegen Wie das ISO OSI Modell zeigt hat es sich bew hrt Protokolle in Schichten zu modellieren und zu einem so genannten Protokoll Stack zusammenzufassen Jede Schicht auch Layer genannt benutzt dabei zur Erf llung ihrer speziellen Aufgabe die jeweils n chst tiefere Schicht im Protokollstack In allen anderen Komponenten liegt der Einstiegspunkt im Scheduler 151 4 Software Der RgD3 Protokollstack hat den folgenden dreistufigen Aufbau RoboRally Kommunikation Auch als HighLevel Layer bezeichnet Auf dieser Ebene werden Nachrichten verarbeitet die fiir den Spielbetrieb n tig Befehle an den Roboter Fabrikelemente usw sind Routing Protokoll Der Routing Layer ist daf r zust ndig Nachrichten vom Sender an den richtigen Empf nger weiter zu leiten Low Level Netzwerk Protokoll Auf dieser Ebene werden Bits physikalisch bertra gen und sichergestellt dass der Empfangspartner diese korrekt empf ngt Nicht alle Komponenten haben allerdings den gleichen Protokoll Stack Beim Roboter wurde zum Beispiel auf den Routing Layer verzichtet da die Kommunikation zwischen Host PC und Roboter ber das Spielfeld abl uft Jeder Roboter kommuniziert also nur direkt mit dem Spielfeld auf dem er steht so dass in diesem Fall ein Routing von Nach richten berfl ssig ist Der Host nimmt ebenso eine Sonderstellung ein Er wird ber eine RS232 Schnittstelle an das Spielfeld angeschlossen die aber inkompatibel z
224. rotokoll Stack Init Phase In der Init Phase wird die Koordinatensystem Struktur aufgebaut Damit dies geschehen kann miissen sowohl die Felder der Spielfeldbox als auch die Nachbarn unabh ngig von der Koorinatenzuweisung durchnummeriert werden Die genaue Belegung der Felder mit Indices und die Nummerierung der Nachbarn ist in 3 4 6 Abb 3 70 bereits angegeben worden Die Belegung der Felder mit den Koordinaten geschieht wie folgt Der Parkplatz weist sich selbst die Koordinaten 0 0 zu und beginnt darauf die anderen Spielfeldboxen entsprechend ihrer Position die Koordinaten zuzuweisen Dazu legt er zuerst die Orientierung fest Die positive x Achse zeigt nach rechts Richtung seines Nachbarn Eins und die positive y Achse nach oben in Richtung Nachbar Null Danach ordnet jede Spielfeldbox ihren neun Feldern ihren Indices entsprechend die Koordinaten zu Daf r ist die Funtion CRouting_init verantwortlich die zuerst alle Informationen aus der Nachricht extrahiert F r das genaue Format der Init Nachricht siehe Tabelle 4 1 Aus der gesendeten Koordinate und der zwei Orientierungsbits kann die Funktion die Felder mit Koordinaten belegen Da das System auch mit nicht rechteckigen Spielaufbauten zurechtkommen muss wird zur Initialisierung ein einfaches Broadcast System verwendet Das bedeutet dass der Parkplatz beginnt seine Spielfeldboxen an die er angeschlossen ist zu initialisieren indem er eine Init Nachricht schickt
225. rpr fung der Richtigkeit der empfangenen Daten werden an zwei Stellen Eingriffe im Programm des Roboters vorgenommen Zum Einen m chte soll im Fehlerfall erkennbar sein an welcher Stelle in der Emp fangsroutine der Fehler genau aufgetreten ist um diesen bestm glich nachvollziehen zu k nnen Dazu wird das Hauptprogramm des Roboters um drei Fehlercodes erweitert die angeben welche der drei m glichen Fehlerquellen die in Abschnitt 3 3 7 4 beschrieben werden Ursache f r die falsch empfangene Nachricht ist Zum Anderen soll nat rlich der Inhalt der empfangenen Nachricht ersichtlich sein Dazu werden die empfangenen Daten nacheinander in einen daf r vorgesehenen Speicherbe reich des SRAM Speichers des Controllers geschrieben der nach erfolgter Programmaus f hrung ausgelesen und ausgewertet werden kann vgl Abschn 3 1 3 4 Ein initialer Testlauf ergibt eine erstaunlich gute bertragungsqualit t Nur vier der insgesamt 64 bertragenen Pakete werden fehlerhaft empfangen alle diese haben als Ur sache Timeout Fehler beim Empfangen von Bits Fehlercode 0xE2 Timeout Fehler in der Initialisierungsphase Fehlercode 0xE1 oder Pr fsummen Fehler durch falsch emp fangene Bits Fehlercode 0xE3 kommen zun chst nicht vor Weitere Testl ufe best tigen das anfangs erzielte gute Ergebnis Allerdings ist zu bemerken dass zwischen dem Sen den der einzelnen Pakete eine recht gro e Pause von circa ein bis zwei Sekunden gemacht werden muss
226. s werten amp Befehl ausf hren 2 Auf Auftrag warten 4 Empfangsbe st tigung Fehler meldung 3 Auftrag empfangen Abbildung 3 28 Programmablauf Roboter Auf dieser Basis l sst sich die Struktur der Software wie Abb 3 28 zeigt in f nf Teilschritte gliedern denen nur eine einmalige Initialisierungsphase vorangeht In den einzelnen Teilschritten werden dabei folgende Arbeiten ausgef hrt Initialisierung Um auf Komponenten wie die LED und den ADC Analog Digital Converter zur ckzugreifen m ssen zuvor einige Registerwerte des Prozessors gesetzt wer den Dar ber hinaus ist es wichtig die Robotermotoren bzw deren Motortreiber in einen definierten Anfangszustand zu setzten vgl 3 3 3 2 Beide Aufgaben wer den in der Initialisierung gem Abbildung 3 29 ausgef hrt 1 Roboterinitialisierung hip_init 12 led_init adc_init Abbildung 3 29 Datei main c Initialisierung 11 Analog Digital Converter bilden analoge Spannungen zwischen Ground und einer Referenzspannung auf Bin rzahlen ab 12 Alle Mikrocontrollerkomponenten werden iiber spezielle Register angesteuert und kontrolliert n heres ist dem Datenblatt zu entnehmen Atm05c 91 3 Hardware Akkustand priifen 1 Damit der Roboter korrekt arbeitet wird vor jedem Arbeitszyklus gem Abb 3 30 einmal gepr ft ob gen gend Energie zur Verf gung steht Ist die Spannung der
227. s Bauteil hat im Vergleich zum 74HCT259 den Vorteil dass das Ausgangssignal invertiert wird 74HCT138 enth lt genauso wie 74HCT259 16 Pins wobei 3 Pins fiir die Adressie rung ein Pin fiir den Strom und ein weiterer Pin fiir die Masse verwendet werden Die drei Pins El E2 E3 werden verwendet um den Zustand des Bausteins zu definieren El und E2 werden auf Masse gezogen w hrend E3 auf High gesetzt wird Wenn eine Adresse gew hlt wird wird der Ausgabewert auf diesem Pin LOW w hrend alle anderen Pins HIGH ausgeben Der 74HCT138 enth lt keinen Pin f r die Datenleitung Nur der Ausgabewert auf der ausgew hlten Adresse ist LOW gesetzt Multiplexer Fiir die Steuerung der Checkpoints haben wir einen Multiplexer Abb 3 64 verwendet Dieser Baustein besteht aus 8 Pins TO I7 f r die Signaleingabe zwei Pins Z Z f r die Signalausgabe und drei Pins S0 S1 S2 f r die Adressierung des Eingangspins Der Multiplexer erhalt zu jedem Zeitpunkt 8 verschiedene Signale Nur eines der 8 Eingabe signale wird ausgegeben indem die Adresse gew hlt wird Der Mikrocontroller soll nur berpr fen ob der Drucktaster gedr ckt ist der den Checkpoint charakterisiert das hei t es wird berpr ft ob Strom flie t Falls Strom durch diese Leitung flie t inter pretiert der Mikrocontroller dieses Feld als ein Checkpoint h A h 5 Data Inputs lc Select Inputs hr Enable Input Data Output o 1 2 A 5
228. s Traktorstrahls Auch hier muss wieder mit Hilfe eines um gedrehten Schadenspunkts rechts links oder unten angezeigt werden in welche Richtung sich die Drehscheibe bewegen soll Liegt kein Punkt auf der Optionskarte so schie t der Roboter nach vorn Auswirkungen erst nach dem Aufdecken der Programmierkarten Bremsen Wenn der Spieler den Befehl Vorw rtsbewegung 1 Feld programmiert hat dann kann er mit dieser Optionskarte entscheiden ob er sich ein Feld vorw rts bewegt oder ob er stehen bleibt Vierter Gang Bei dem Befehl Vorw rtsbewegung 3 Felder kann der Spieler w hlen ob er drei oder vier Felder vorw rts gehen m chte R ckw rtsbeschleunigung Mit dieser Karte kann der Spieler w hlen ob er seinen Roboter ein oder zwei Felder r ckw rts zieht wenn er den Befehl R ckw rtsbewegung programmiert hat Mechanischer Arm Ist ein Programmschritt beendet so kann der Roboter wenn er auf einem der vier angrenzenden Feldern eines Checkpoints steht den mechanischen Arm benutzen um den Checkpoint zu ber hren und damit ein Teilziel oder das Endziel der Robo Rally zu erreichen Dabei sind diagonale Felder keine angrenzenden Felder Der Arm kann durch eine Wand aber nicht durch einen Roboter blockiert werden Repara turen oder die Aufnahme der Optionskarten k nnen durch den mechanischen Arm nicht bewirkt werden 29 2 Das Spiel Rammbock Der Rammbock ist immer aktiv und
229. sgew hlt haben sorgt das Spielfeld daf r dass die Roboter zum richtigen Zeitpunkt vom Parkplatz zum Startpunkt des Spieles gelan gen Hierbei kann das Spielfeld den Roboter nat rlich auch durch alle Elemente lenken durch die ein Roboter im Spielverlauf normalerweise nicht fahren kann bspw W nde Gruben Au erdem kann dieser Parkplatz auch genutzt werden wenn ein Roboter in eine Grube gefallen ist oder auf eine andere Weise gestorben ist Auf diese Weise muss der Spieler nur in das Spielgeschehen eingreifen indem er sein Programm dem Host bzw der Konsole mitteilt 114 3 4 Spielfeld Abbildung 3 57 Spielflache mit Parkplatz 3 4 2 Spielfeldbox Material Wie schon in 3 4 1 1 Punkt 1 gesehen miissen nur noch die Materialien Plastik Holz und Metall n her betrachtet werden 1 Plastik Eine reine Plastikl sung ist fiir nicht verwendbar da dieses Material keine thermi sche Leitf higkeit besitzt Wie oben schon erw hnt kann Plastik mit den am Lehrstuhl vorhandenen Werk zeugen nicht genau genug bearbeitet werden Dieses Problem besteht besonders beim exakten Zuschneiden des Materials Dies ist ein weiterer Nachteil von Pla stik 2 Holz Holz hat den Vorteil dass es einfach zu bearbeiten ist Hier ist eine handels bliche S ge und ein Bohrer zur Bearbeitung ausreichend Nachteile von Holz sind wie oben schon genannt zum Einen die durch fehlende Maschinen nicht zu erreichende Genauigkeit beim Bearb
230. sich mit einer Samplerate von 8kHz mit einer Tiefe von 8 Bit erreichen Diese Sounddaten werden als Konstante im ROM des Controllers gespeichert Dazu ben tigen wir pro Sample ein Byte 8000 Samples pro Sekunde ergeben eine Datenmenge von 8000 Bytes Sek Der PWM Generator l sst sich durch folgende Werte einstellen 136 3 4 Spielfeld e Taktfrequenz f Durch den Controllertakt vorgegeben e Takte Zyklus beliebig einstellbar je nach Aufl sung e Dargestellter Wert d beliebig w hlbar zwischen 0 und 1 Um den entsprechenden Wert darzustellen muss der Zyklus durchgehend wiederholt wer den Dabei schaltet der Leitungszustand automatisch auf logisch Eins 3 3 Volt Der Wert d gibt an nach wie vielen Takten der Zustand auf Null schaltet 0 Volt Nach 1 Takten wiederholt sich dieses Schema Dabei stellt der Wert d ein einzelnes Datensample dar welcher pro Sekunde 8000 mal ge ndert werden muss der Sounddatei entsprechend Die einzelnen Samples lassen sich direkt aus einem unkomprimierten WAV Format extra hieren Sie werden mit dem restlichen Programm des Controllers kompiliert und geflasht Eine Momentaufnahme des PWM Signals ist in Abb 3 77 zu sehen Abbildung 3 77 Resultierendes PWM Signal am Pinout 3 4 8 Gesamtplatine In Kapitel 3 4 6 wurden die einzelnen Komponenten des Spielfeldes vorgestellt und in Kapitel 3 4 7 die Entwicklung von Platinen zum Testen dieser Komponenten dargestellt Die einzelnen Komponente
231. ssen Durch die Anzahl an GP I O Lines l sst sich gut eine par allele Kommunikation realisieren so k nnen z B mehrere LEDs oder Segmentanzeigen gleichzeitig angesteuert werden Verschiedene m gliche Kandidaten Im folgenden werden einige zu den oben genannten Anforderungen passende Mikrocon troller speziell im Hinblick auf die vorgestellten Merkmale aufgelistet Dabei werden sowohl Controller die alle drei Aufgabenbereiche bernehmen k nnen als auch durch verschiedene Controller realisierte L sungen vorgestellt 43 3 Hardware Philips LPC2114 Phi03 e ARM 60 MHz e 16 kB SRAM e 128 256 kB Flash e 2 USART e 1 TWI e 1 PWM Wandler e 4 Kanal 10 Bit A D Wandler e 46 GP I O Lines e Gr e 12 mm x 12 mm Was den LPC2114 auszeichnet ist seine vergleichsweise hohe Taktrate und viel SRAM Speicher bei wenig Leistungsaufnahme Sein Stromsparmodus durch gezieltes Abschalten einzelner Komponenten kann hilfreich sein Auch sind gen gend Kommunikationsschnitt stellen vorhanden PWM und A D Wandler erleichtern die Motorsteuerung zus tzlich lassen sich etwa LEDs ber die GP I O ansteuern Die Gr e ist auch f r den Einsatz im Roboter annehmbar also ein guter Kandidat f r eine homogene L sung Atmel AT91M42800A Atm05a e ARM 33 MHz e 8kB SRAM e 2 USARTs e 54 GP I O Lines e Gr e 22 mm x 22 mm Nachteil dieser Atmel L sung w re dass der Code au erhalb des Controllers hinterlegt wird und ber einen externen
232. st Diese soll gera de Spielanf ngern das Programmieren des Roboters erleichtern Jeder Spieler bekommt au erdem eine Sicherheitskopie seines Roboters ein quadratisches Pappk rtchen in der Farbe und mit dem Bild des jeweiligen Roboters der von dem Spieler bewegt wird Diese wird w hrend des Spiels auf Checkpoints oder Reparaturfelder gelegt so dass wenn der Roboter zerst rt wird nach Abgabe eines Lebenspunktes ein Duplikat des Roboters ab dem Standort der Sicherheitskopie das Spiel fortsetzen kann Auf der bersichtstafel wer den alle Fabrikelemente und der Programmablauf erl utert Die Lebenspunkte werden zu Beginn wie folgt verteilt Wenn zwei bis vier Spieler auf ein bis vier Pl nen spielen erh lt jeder Spieler drei Lebenspunkte Jeder Spieler erh lt einen weiteren Lebenspunkt wenn mit f nf oder mehr Spielern gespielt wird und einen weiteren Lebenspunkt wenn mit f nf oder mehr Spielpl nen gespielt wird Es werden also bis zu f nf Lebenspunk te an alle Spieler ausgegeben In der Erweiterung sind 10 Fabrikelemente als Pl ttchen mitgeliefert die auch noch auf leeren Feldern des Spielfeldes verteilt werden k nnen Abbildung 2 2 Ein Roboter der deutschen Spieleversion 23 2 Das Spiel 2 1 4 Spielablauf RoboRally wird in Runden gespielt Dabei besteht jede Runde aus vier Schritten Dem Austeilen der Programmierkarten dem Programmieren der Roboter dem Programmab lauf und dem Abschluss der Runde Auste
233. st dann zum Beispiel neue Sch den mit Die Informationen um welches Fabrikelement es sich jeweils auf dem Feld handelt auf dem der Roboter steht werden im Spielfeld gespeichert da es zuviel Datenaufwand erfordern w rde wenn der Roboter die Daten erst beim Spielfeld anfordern m sste Des weiteren spart man Kommunikationsaufwand und Energie im Roboter ein so dass eine h here Akkulaufzeit erzielt werden kann Der in Kapitel 2 1 und 2 2 erw hnte Parkplatz erh lt zu Beginn des Spiels eine weitere Aufgabe Da es eine Anforderung des Spieles ist dass die Spielfeldbl cke frei zusam mensteckbar sein sollen ist es n tig eine Initialisierungsphase zu starten in der die Koordinatenstruktur f r das Spiel festgelegt wird siehe Kapitel 4 3 2 4 Diese Aufgabe bernimmt der im vorherigen Abschnitt erw hnte Parkplatz Die Phase ist notwendig damit im Verlaufe des Spiels zwischen den Hosts und den Feldern Nachrichten gesendet werden k nnen Am Ende dieser Phase kennt dann jeder Host die Adressen der Felder und jedes Feld die Adressen der im Spiel befindlichen Hosts Im weiteren Spielbetrieb dient der Parkplatz jediglich als Stelle an der die Roboter starten und zu der alle toten Roboter w hrend des Spiels geleitet werden damit sie von dort aus eventuell wieder ins Spiel gelangen k nnen Ausf hrlichere Informationen zu der Struktur sind in Kapitel 4 zu finden 35 3 Hardware In diesem Kapitel wird die ben tigte Hardware beschrieben
234. st es wenn der Roboter erstmals seinen Dienst verrichtet 3 3 8 Ergebnisse In Abbildung 3 56 kann man sehen wie das Ergebnis des Roboterprototypen zusam mengesetzt aus s mtlichen oben beschrieben Elementen aussieht Die vorangegangenen Abschnitte sollten den Aufbau des Roboterprototypen und damit die baldige Fertigung der Serienroboter erl utern Es wird deutlich dass strenge Anforderungen bez glich der r umlichen und technischen Gegebenheiten an den Roboter gestellt werden In dem fol genden Kapitel wird darauf eingegangen wie das Spielfeld das mit dem Roboter perfekt harmonieren und kommunizieren muss aufgebaut ist Abbildung 3 56 Der komplette Roboterprototyp 112 3 4 Spielfeld 3 4 Spielfeld 3 4 1 Allgemeiner Aufbau 3 4 1 1 Anforderungen Die Spielpl ne des Brettspiels RoboRally setzen sich aus einzelnen Feldern zusammen Diese einzelnen Felder wird es auch in der RgD3 Realisierung geben Hier werden 9 dieser Felder zu einer so genannten Spielfeldbox zusammengefasst Eine Spielfeldbox besteht dabei aus 3 x 3 Feldern In diesem Teil des Zwischenberichts werden haupts chlich die Spielfeldboxen betrachtet und nicht einzelne Felder In dem PG Antrag steht die Vorgabe dass die einzelnen Spielfelder 5cm x 5cm gro sein sollen dementsprechend wird jede Spielfeldbox 15cm x 15cm gro sein Eine weitere Anforderung an die Boxen ist dass alle Boxen auf beliebige Weise miteinan der kombinierbar sein sollen Das be
235. stets zu invertieren was durch die zueinander inversen Eing nge der HIPs bereits erreicht wird Ergo reichen zwei Steuerleitungen ber zwei PIO Pins angesteuert pro Mo tor Dabei wird durch die hip_ lt Motorname gt _step_cw bzw hip_ lt Motorname gt _ step_ccw Routinen die jeweils n chste Codierung an die PIO Pins angelegt Hierf r ist der aktuelle Zustand zu speichern und allen Routinen zug nglich zu machen Der Notwendigkeit einer Initialisierung gerecht werdend vgl 3 3 3 2 ist dar ber hinaus eine Routine vorhanden hip_init die die Motortreiber in einen definier ten Anfangszustand versetzt und durch Drehen der R der beim Anschalten des Roboters selbiges auch f r die Motoren sicherstellt Zwischenebene Ansteuerung der Motoren Um eine gleichm ige Bewegung zu erhalten m ssten die Motoren parallel ange steuert werden Dies ist jedoch mit einem Mikrocontroller ohne Programmcode oder Zustands anzahl stark wachsen zu lassen kaum m glich Da zudem Korrekturen erschwert w rden komplexe Zustandswechsel w ren notwendig oder Motoren nur gemeinsam ansteuerbar wird eine fast parallele L sung bevorzugt Dies geschieht durch im Wechsel unmittelbar nacheinander angesteuerte Motoren Da der Mikrocontroller viel schneller arbeitet als die Peripherie reagiert und er nach einem Zustandswechsel Pausen einlegen muss um die Motoren nicht zu ber 101 3 Hardware lasten wird durch diese fast parallele
236. t in Design von Hard und Software bei allen Spielfeldbl cken beizubehalten wird der Parkplatz mit dem gleichen Controller ausgestattet werden wie auch die brigen Spielfeldbl cke daher wird der Parkplatz im Folgenden nicht weiter einzeln betrachtet Roboter Bei den Robotern stehen sicherlich Abmessung und Stromverbrauch an ober ster Stelle Es werden ca 5 cm x 4 cm Platz f r die Platinen zur Verf gung stehen vgl Abschn 1 2 1 1 und 3 3 5 wobei noch Motoren Mechanik und Stromversorgung ber ck sichtigt werden m ssen Der Roboter braucht aber auch weniger Rechenleistung da seine generelle Aufgabe wahr scheinlich im einfachen Entgegennehmen und Ausf hren von Befehlen bestehen wird vgl Abschn 1 2 1 1 und 3 3 1 Hier m ssen die oben erw hnten Foto Transistoren abgefragt und die entsprechenden Befehle an die Mechanik und Motoren weitergegeben werden wobei Digital Analog Wandler vorteilhaft sein k nnte Unter dem Aspekt der Energieversorgung eignet sich eine 3 V L sung da wahrscheinlich auf Batterien oder Akkus zur ckgegriffen wird Die maximale Stromaufnahme sollte ca 150 mA nicht bersteigen vgl Abschn 3 3 2 4 Weiterhin sind Stromsparmodi essentiell da der Roboter die meiste Zeit im Wartezustand verbringen wird Konsolen Die Konsolen sollen auf graphischer Basis bedient werden deswegen w re eine dorthingehende Unterst tzung zur Erleichterung der Umsetzung w nschenswert zum Beispiel in Form einer integrierten L
237. t tritt der Fehler ein Abb 3 48 Dieser Fehler wird durch den Korrekturalgorithmus sofort vollst ndig behoben Abb 3 49 Die Skizzen suggerieren die Toleranz auch h herer Fehler Diese werden aber kritisch wenn der Roboter sein Spielfeld verl sst da er zum einen mit einem anderen Roboter und zum anderen mit einer Markierungsfahne der Spielfelder kollidieren k nnte Dies geschieht schon ab einem kumulierten Fehlerwinkel von 7 75 da dann die seitliche Abweichung 2 25 mm erreicht Sinusdefinition und eine Spielfeldgrenzverletzung droht Beispiel heavy_correction An einem einfachen Fehlerfall einer beliebigen Abweichung gem der Annahmen der Fehlerabsch tzung oben Fall C wird die starke Endkorrektur demonstriert y vorne o o Drehpunkt Robgter 0 O O o O O O o o O Ki 0 o Abbildung 3 50 Abbildung 3 51 Abbildung 3 52 C Fehlersituation C 1 Maximumssuche C Drehung 16Dje Markierungsfahnen die Checkpoints markieren werden in 3 4 4 3 erl utert Hier gen gt es zu wissen dass F hnchen am Rande der Spielfelder stehen k nnen 109 3 Hardware g Za vorne os ez 0 o as Drenpunkt TA Ropoter z vorne O D Drehpunkt Roboter oO 0 o o o o E D Abbildung 3 53 Abbildung 3 54 C 2 Maximumssuche C Inverse Drehung Das Vorgehen folgt folge
238. te gefr st durch das dieser gesteckt werden kann Wenn passgenau gearbeitet wird muss keine weitere Klebung er folgen da der Schalter dann fest in der Aussparung klemmt Weitere Ausf hrungen zu diesen beiden Elementen findet man im Abschnitt 3 3 3 6 Anordnung der Fortbewegungselemente Kommen wir nun zu der Anordnung der Motoren Getriebe R der und Achsen Da die beiden R der getrennt voneinander angesteuert werden sollen sind zwei Achsen vorhan den vgl 3 3 2 1 die in der Mitte nicht verbunden sind Diese werden von oben in die Bodenplatte in daf r gefr ste Aussparungen eingelassen Zur F hrung der Achsen in den Aussparungen dienen Aderendh lsen die gleichzeitig auch noch den n tigen Spielraum bieten F r die R der und die zugeh rigen Getriebe muss an beiden Au enseiten aus der Bo denplatine eine 12 mm x 16 mm gro e ffnung gefr st werden Beim Prototypen mussten Rad Felge und Achse jeweils fest miteinander verklebt wer den in der Serienfertigung wird jedoch keine zus tzliche Verbindung notwendig sein da Felge und Achse aus einem St ck gedreht werden vgl 3 3 3 4 Auf der Achse sitzt dann jeweils das Getriebe auf dem der Motor steckt Um den Motor der einen Achsdurchmes ser von 1 mm hat mit der Getriebeschnecke die einen Innendurchmesser von 0 8 mm hat verbinden zu k nnen muss deren ffnung vgl 3 3 3 3 passend aufgebohrt werden Damit der Roboter auf den zwei R dern das Gleichgewicht halten kann wu
239. ter 0 Register Master 14 Feldkoordinaten Checkpoint Send Check 0 Feld 5 EI Checkpointnummer 1 8 pointnumber Send O Alle Clients 6 112 Checkpointadressen Checkpoints Cards O Alle Clients 7 70 10 Karten 7Bit Programsequence O Master 8 35 5 Kartenpriorit ten 4 7Bit Next Order 0 Client 9 0 Message Order 0 Feld 10 4 8 3 Bewegung Bitvektor fiir aktive Optionskarten und Runde x von 5 Order Response 0 Client 11 14 2 4 2 3 1 Roboterposition Blick richtung Schaden Repairfeld nein einfach zweifach Checkpointnummer Dead Flag Next Order O Master 12 0 Response Factoryelement 1 13 2 3 Factoryelement Typ Pro grammschritt x von 5 160 4 3 Protokoll Stack BC Adresse Type Data 1Bit 14Bit x y 6Bit Gr e d Felder Beschreibung Factoryelement 0 Client 14 14 2 4 2 3 1 Roboterposition Blick Response richtung Schaden Repairfeld nein einfach zweifach Checkpointnummer Dead Flag Statusupdate 0 alle Clients 15 2 1 4 2 3 17 3 Roboter ID Gewinn Flag Schaden Leben Check point Optionskarten Programmschritt x von 5 Factoryelement 0 Master 16 0 Done EndofRound 0 Clients 17 0 Request Option O Master 18 EI ClientID Send Option O Client 19 17 Optionskarte Return Cards 0 Master 20 70 17 10 Karten 4 7Bit alle Op tionskarten Vote Message 0 Master
240. tet in der OpenSource Community sind Folgende Schritte m ssen durchlaufen werden um aus dem Quellcode die ausf hrbaren Daten zu erstellen Compilieren gt Linken gt BIN HEX extrahieren Mit Version 4 der GCC Tools sind 2 Befehle verantwortlich gcc combine mcpu arm tdmi 0 lt linker_options gt o compiled elf lt objects gt objcopy 0 ihex binary compiled elf output hex bin Dabei gibt beim ersten Befehl lt objects gt die zu compilierenden Dateien an Durch die Angabe von combine kann man sogar alle Dateien des Projektes angeben dabei versucht der Compiler diese m glichst gut zu optimieren falls Optimierungen gew nscht sind Die lt linker_options gt geben Optionen f r den Linker an Unter anderem wird dort eine Datei linker 1d bergeben Diese enth lt Informationen ber den Speicheraufbau und bestimmt wo RAM und wo ROM ist Alles zusammen wird im ELF Format gespeichert Der zweite Befehl extrahiert den ausf rbaren Teil aus der ELF Datei und speichert entweder im reinen binary Format oder im HEX Format je nach weiterer Verwendung 3 1 3 3 Integrated Development Environments Es gibt einige Entwicklungsumgebungen IDE Integrated Development Environment f r C C Neben Microsoft Visual Studio KDeveloper und einer ganzen Reihe von 48 3 1 Gemeinsamkeiten mehr oder weniger bekannte IDEs gibt es auch fiir die ARM Prozessoren spezialisierte IDEs Dazu geh rt auch das Programm Keil uVision Kei
241. tung des PITs n tig ist um die genaue Abtastfrequenz aus der Frequenz der Master Clock zu ermitteln e Als letzte Fehlerquelle erweist sich die Taktung des A D Wandlers Diese wur de aus konservativen und energietechnischen Gr nden auf den minimal m glichen Wert gesetzt Nach einer Anpassung auf die n tigen unteren Schwellwerte der Sample amp Hold Time und der Taktrate der Konvertierung funktioniert die Kom munikation vom Spielfeld zum Roboter fehlerfrei Abschlie ende Testl ufe Mehrere unabh ngige und bei wechselnden Beleuchtungen durchgef hrte Testl ufe be st tigen dass das Kommunikationsprotokoll fehlerfrei funktioniert Alle vom Spielfeld gesendeten Pakete kommen in Wert und Reihenfolge konsistent beim Roboter an Der n tige gro e zeitliche Abstand zwischen dem Senden zweier Pakete wird von einem Fehler in der Sende Queue des Spielfeldes verursacht der nicht direkt mit der Implemen tierung des Kommunikationsprotokolles zusammenh ngt Dieser Fehler wurde behoben und die Kommunikation funktionierte daraufhin ohne Pause zwischen den einzelnen Pa keten Durch die Umsetzung des Roboters auf andere Felder der Testbox stellte sich heraus dass nur bei Feld 0 und Feld 1 eine initiale Synchronisation der beiden Seiten zustande kommt also nur die Vorwiderstandswerte 1 kQ und 2 kQ am Fototransistor geeignet sind vgl Abb 3 70 und Fu note 17 auf S 143 F r eine bessere Empfindlichkeit bei hellerer Belechtung wird der Widerstan
242. tung ist insbesondere die Motorsteuerung der Nebenpla tine vollst ndig zu testen da alle Ansteuerungen nach Au en gef hrt sind Dieser Test stellt folgendes sicher e die Motoren werden nicht mit zu hoher Spannung betrieben e die Mikrocontrollerausg nge werden durch die Motoransteuerung nicht zu stark belastet Als weiterer Schritt der Motoransteuerungstests werden dann die Motoren direkt angeschlosen um die tats chliche Betriebslast zu erreichen 3 Test des Mikrocontrollers Der Mikrocontroller kann in Betrieb genommen werden Am Quarz wird gemessen dass die Inbetriebnahme erfolgreich ist da dieser mit der Zielfrequenz schwingen muss im Testaufbau also mit etwa 12 MHz 4 Integrativer Test Die Komponenten werden angeschlossen ber den Mikrocontroller sind dann Mo toren und LED anzusteuern sowie Fototransistoren auszulesen Der Abschluss ist also ein alles umfassender Test haben die Platinen ihn erfolgreich berstanden so ist ihre Einsatzf higkeit sichergestellt 89 3 Hardware 3 3 7 Programmierung Grundlegende Designentscheidung der Projektgruppe RgD3 war dass die Spielintelligenz in den Spielfeldern zu realisieren ist da diese 1 ber beliebig viel Energie verf gen und so a leistungsf higere Prozessoren versorgen k nnen und b diese beliebig lange betreiben k nnen ohne dass es in Folge von Energiever sorgungsengp ssen zu Datenverlusten kommt 2 ber schnelle Kommunikationsverbindunge
243. tzt auf der Au enseite die zwei Kontaktfl chen und die zwei Federn siehe Abschnitt 3 4 3 1 zur Verbindung mit dem Feld F r die Verbindung zum Rechner enth lt der Adapter eine Sub D Buchse um ein serielles Kabel anzuschlie en Ein weiterer Aspekte ist die Unterbringung der Elektronik Fine Platine ist im Aufbau schon enthalten die jedoch auf der einen Seite durch die Kommunikationsverbindungen und an den R ndern durch die Winkel belegt ist Es bestand die M glichkeit eine weitere Platine vorzusehen um eine Erleichterung des Layoutroutings durch eine zweiseitige Platine zu erreichen Es gibt aber das Ziel den Adapter so kompakt wie m glich und auch m glichst kosteng nstig zu halten Daher ist die Elektronik auf der anderen Seite der schon vorhandenen Platine untergebracht Diese Reduktion des ben tigten Platzes bietet die M glichkeit die beiden Winkel jeweils auf einer Seite zu k rzen Die Verkleidung der noch offenen Seiten au er der Unterseite soll durch d nne Makro lonplatten die auch im Feldaufbau Verwendung finden erreicht werden So ergeben sich folgende Ma e Der Adapter ist wie die Spielfeldboxen 5 cm hoch 15 cm breit aber nur rund 1 cm tief 146 3 6 Host Interface 3 6 2 Elektronik Die Elektronik enth lt in erster Linie nat rlich den Mikrocontroller LPC2124 Phi03 von Philips welcher auch in der Elektronik der Spielfeldboxen Anwendung findet F r diesen wird ein Quarz mit 14 7456 Mhz eingesetzt
244. um Low Level Protokoll der Spiel felder ist vgl 3 2 1 Aus diesem Grund gibt es eine Host Feld Schnittstelle mit deren Hilfe der Host mit dem Feld kommunizieren kann In den weiteren Kapiteln werden die einzelnen Protokollschichten n her erleutert Der Low Level Layer wurde bereits in 3 2 3 beschrieben so dass hier jetzt noch der Routing Layer und die RoboRally Kommunikation n her erleutert werden m ssen 4 3 2 Routing Protokoll 4 3 2 1 Allgemeine Aufgaben Im Allgemeinen bezeichnet Routing das Finden eines Weges durch ein Netzwerk bei gege benem Start und Zielknoten Die meisten Routing Protokolle kommen im Internet zum Einsatz weil es sich um das gr te und bekannteste Netzwerk handelt Diese Protokolle m ssen allerdings auf ihre Verwendbarkeit gepr ft werden da an das Routing Protokoll von RgD3 einige zus tzliche Anforderungen gestellt werden e Roboter Orientierung F r die Abarbeitung von Befehlen zum Beispiel ein Feld vorw rts muss f r Feld und Roboter eine Kodierung f r Position und Blickrichtung gefunden werden Nur so kann das Spielfeld herausfinden wo die neue Position des Roboters nach der Befehlsverarbeitung ist und welche Eigenschaften das neue Feld hat Grube Brenner etc e Host Anschluss Der Host PC muss die gleichen Kommunikationsprotokolle im plementieren wie die Felder untereinander damit eine Verst ndigung m glich ist Ebenso muss das gleiche Protokoll auf die in 1 4 als Erweiterungsm glichke
245. um Stehen Selbst wenn der Befehl den der Roboter gerade ausf hrt ihn ein Feld weiter ziehen lassen w rde wird sein Zug an der Stelle abgebrochen und er bleibt stehen Das gilt ebenso f r R ckw rtsbewegungen Dies gilt auch beim Verschieben eines anderen Roboters e F llt ein Roboter in eine Grube so wird dieser vollst ndig zerst rt Ein Roboter kann nicht ber eine Grube hinweg ziehen e Wenn sich ein Roboter ber den Spielfeldrand hinaus bewegt an dem kein anderes Spielfeldbrett anliegt dann wird dieser ebenfalls vollst ndig zerst rt e Eine llache verursacht keinen Schaden Wenn ein Roboter seine Bewegung auf ei ner llache beendet so rutscht er solange in seiner Bewegungsrichtung weiter bis er auf einem Feld ohne l steht oder von einer Wand oder einem anderen Roboter blockiert wird Wenn sich zwei Roboter auf derselben llache befinden so kann ein Roboter einen anderen schieben Sie rutschen dann so lange bis der vordere Robo ter auf einem Feld ohne l zum Stehen kommt Wichtig ist dass ein Roboter erst dann rutscht wenn er seine Bewegung beendet nicht solange er noch in Bewegung ist Startet ein Roboter seine Bewegung auf einem Feld mit einer llache so be wegt er sich ein Feld weniger weit als auf der Programmierkarte angegeben Wenn der Befehl eine Vorw rtsbewegung um ein Feld vorsieht so bleibt der Roboter auf der Stelle stehen Drehbefehle werden von llachen nicht beeinflusst e Bewegt sich ein Robot
246. urch initialisiert dabei auch den PIT e com_send_one bzw com_send_zero Grundlegende Senderoutinen sind in der Reihenfolge com_send_one Databit Com send_zero aufzurufen e com_send_end Sendet abschlie ende Eins damit der Empf nger eine letzte steigende Flanke be kommt und deaktiviert den PIT um Energie zu sparen Diese Funktionen werden gem Abbildung 3 36 aufgerufen Empfangen Zum Empfangen werden hingegen folgende hardwarenahe Funktionen genutzt com_rev_init F hrt die Kommunikationsinitialisierung gem Kommunikationsprotokoll durch initialisiert dabei auch den PIT com_waitfor_posedge Wartet auf den Sender dessen Kommunikationsinitialisierung lt Kommunikations protokoll l nger dauert com rev but Wertet das Signal am Fototransistor mit 12 kHz von einer steigenden bis zur n chsten steigenden Flanke aus entscheidet dann per Majorit tsentscheidung ob eine 1 oder eine 0 empfangen wurde calcBit Berechnet zu den ersten sieben empfangenen Bits das Parit tsbit um dieses auf h herer Ebene mit dem empfangenen Parit tsbit zu vergleichen Diese Funktionen werden gem f Abbildung 3 35 aufgerufen Da jedoch beim Empfang von Nachrichten Fehler m glich sind wird eine Fehlerdetektion wie folgt unterst tzt 98 3 3 Roboter e Timeout nach Initialisierung Zum einen kann auf Seiten des Spielfeldes ein Problem auftreten zum anderen kann der Roboter auf eine
247. ut Zus tzlich sind als berspannungsschutz Dioden auf den Leitungen platziert Abbildung 3 11 Schema der Kommunikationsverbindungen Box Box TODO DIODEN Der Leitungszustand befindet sich i d R auf 1 falls kein Controller kommuniziert Dieser Zustand wird erreicht indem die beiden Controller an den Leitungsenden einen hohen Innenwiderstand zur Masse geschaltet haben Dazu schaltet der Controller seinen Pin auf INPUT Beide Controller haben jederzeit die M glichkeit die Leitungen auf den Zustand 0 zu setzen Damit initiieren sie den Sendevorgang Dies ist m glich indem der jeweilige sendende Controller die Leitung auf Masse zieht Dazu muss der Controller den Pin auf OUTPUT schalten und eine 0 ausgeben In Abbildung 3 12 sind die Testergebnisse der Schaltung auf dem Oszillographen zu sehen Verwendet wurden f r R1 R4 4 7kQ und f r R5 R8 479 55 3 Hardware EE Abbildung 3 12 Ergebnisse des Oscillographentests In Abb 3 12 sind die beiden Leitungsstati zu sehen die mithilfe der Schaltung aus Abb 3 11 realisiert werden Diese Zust nde k nnen nun zur Kommunikation zwischen den Spielfeldboxen genutzt werden Zur Realisierung der Kommunikation wird ein sehr einfaches Protokoll genutzt Der sen dende Controller legt das zu sendende Datum an der DATA Leitung an und signalisiert daraufhin dem Nachbarspielfeld ber die CLOCK Leitung dass ein neues Bit bereit steht Falls beide Controller gleichzeitig sen
248. vigation als auch f r die Kommunikation zum Einsatz kommen soll e Neben der Kommunikations LED mittlere Leuchtdiode sollen jeweils Fototran sistoren platziert werden mit denen festgestellt werden soll ob sich ein Roboter auf dem Feld befindet Die Platzierung der Leuchtdioden und Fototransistoren ist Abbildung 3 72 zu entnehmen e Weiterhin muss eine Markierung einzelner Felder als Checkpoints m glich sein e Zur Kommunikation mit anderen Spielfeldern werden Anschl sse an jeder Seite der Spielfeldbox ben tigt Zu Beginn wurden daf r 4 Pins pro Seite eingeplant Im weiteren Verlauf stellte sich jedoch heraus dass 2 Pins hier ausreichen e Die Spielfelder sollen Ger usche zu bestimmten Aktionen die auf dem Spielfeld stattfinden abgeben Daraus ergibt sich ein Bedarf von 63 Anschl ssen zur Ansteuerung der LEDs Photo transistoren und Checkpoints Zus tzlich werden noch acht Anschl sse f r die Kommu nikation und 1 2 Anschl sse f r den Sound ben tigt Die Suche nach Mikrocontrollern mit entsprechend vielen Ausg ngen verlief wenig erfolgreich Zum Ersten bieten nur we nige Hersteller solche Mikrocontroller berhaupt an Zum Zweiten sind diese speziellen Controller dann nicht oder nur in gro er St ckzahl lieferbar Als Ausweg wurde gew hlt die reinen Navigations LEDs ber eine gesonderte Schaltung mit TTL Bausteinen anzusteuern Dies kann die Schaltgeschwindigkeit der LEDs beein flussen Da die Navigations LEDs aber ni
249. wird als eine externe Hardwareanfrage die ISP Routine zu starten interpretiert 138 3 4 Spielfeld 3 4 9 2 In Application Programming Mit Hilfe des IAPs lasst sich aus einer Applikation der Mikrocontroller programmieren Diese Methode hat den Vorteil dass der Mikrocontroller auch im Betrieb programmiert werden kann w hrend bei der ISP Methode der Mikrocontroller manuell in einen Flash Modus versetzt werden muss Durch die AP Methode lassen sich besonders gut mit Hilfe des Routing Protokolls die gesamten Spielfelder schnell programmieren Die AP Routine wird mit Hilfe des im Register RO enthaltenden Zeigers der auf den Speicherbereich zeigt wo die Parameter sind ausgef hrt Die Ergebnisse der IAP Befehle werden in der Tabelle gespeichert worauf der Zeiger im Register R1 gerichtet ist siehe Abbildung 3 78 Die Command Code Result n Command parameter table Command result table Abbildung 3 78 Pointer auf Parameter IAP Routine befindet sich im Register 0x7FFFFFFO und kann wie folgt in C aufgerufen werden Es wird zuerst definiert wo die AP Routine im RAM gespeichert ist Dies erfolgt mit dem folgenden Befehl define IAP_LOCATION Ox7ffffff1 Damit die Routine ausgef hrt wird werden Datenstrukturen oder Zeiger definiert um IAP Befehle und Resultat Tabelle mit der Funktion zu verbinden Dies wird ausgef hrt indem die folgenden Befehle geschrieben werden 139 3 Hardware U
Download Pdf Manuals
Related Search
Zwischenbericht zwischenbericht zwischenbericht englisch zwischenbericht stpo zwischenbericht teilgebiete zwischenbericht synonym zwischenberichterstattung hgb zwischenbericht bibb zwischenbericht air india zwischenbericht f5 zwischenbericht bg zwischenbericht agh zwischenbericht auf englisch zwischenbericht english
Related Contents
Chief CMA395W flat panel wall mount Manual Básico do Usuário Mode d`emploi Liste des pièces de rechange &NOTTV対応 感動美映像エンタテインメント KUDA 081030 holder Verbatim SecureDigital SDHC Class 6 4GB カタログを見る Copyright © All rights reserved.
Failed to retrieve file