Arexx WTR-CK1 User guide [de]

LERNROBOTER
Wild Thumper Kontroller
Aufbauanleitung: Modell WTR-CK1
© AREXX - Die Niederland V0610
- 1 -
Inhaltsverzeichnis
1. Produkt beschreibung WT Kontroller 3
1.2. Specificationen 2
1.3. Was kann die Wild Thumper 3
2. Nötwendige Werkzeuge 5
3. Teilliste 6
4. ASEMBLIERUNG von WT 8
5. Erste Praxis Test 22
6. Software installation 23
7. Programmer and Loader 36
7.1 Robot loader 37
7.2 Connection of USB interface Windows 38
7.3 Connection of USB interface LINUX 41
7.4 Testing the USB interface 42
7.5 Opening a port Linux 43
7.6 Selftest 44
7.7 Calibration 46
7.8 Keyboard test 48
8. Programmer und Loader 49
9. Programmieren von die Wild Thumper 54
10. Drahtlose Aplications Software
xx. APPENDIX
A. Circuit diagram Wild Thuimper 63 B. Circuit diagram Power Supply 64 C. Circuit diagram Connectors 65 D. Circuit diagram Keyboard 66 E- Circuit Programmer 67
AREXX and Wild Thumper are registered trademarks of AREXX Engineering - HOLLAND.
© Deutsche Übersetzung (Juni 2011): AREXX Engineering (NL). Sämtliche Texte, Bilder, Grafiken dieses Handbuchs unterliegen den geltenden Urheberrechtsbestimmungen und dürfen nicht ohne Genehmigung des europäischen Importeurs verwendet werden.
AREXX Engineering - Zwolle (NL).
Der Hersteller und Vertriebspartner sind nicht haftbar für Schäden als Folge des Misbrauchs, Montagefehlern oder Missachtung der Anweisungen dieses Handbuchs. Dieses Manuskript kann jederzeit ohne Benachrichtigung geändert werden.
Technische Unterstützung:
WWW.AREXX.COM
Hersteller: AREXX Engineering
Europäischer Importeur AREXX Engineering ZWOLLE The Netherlands
© AREXX Holland © Deutsche Übersetzung: AREXX - die Niederlande
WWW.ROBOTERNETZ.DE
- 2 -
1. PRODUKTBESCHREIBUNG WTR-CK1
Das Wild Thumper Ansteuerungsmodul bildet die komplette Ansteuerungs­elektronik für den Wild Thumper “ALLRAD GELÄNDE CHASSIS JSR-6WD”. D
Die Steuerungsplatine basiert auf zwei ATMEL Mikroprozessoren, die mi­teinander kommunizieren. Einer dieser Prozessoren kümmert sich um die Kommunikation und das Ablesen der Sensoren. Der zweite Prozessor ist zus-
tändig für die Ansteuerung der sechs Motoren mittels hochefzienten
H-Brücken.
Zur Ansteuerungselektronik gehören standardmäßig zwei APC-220 Funk­transceivers für das 433MHz Frequenzband. Außerdem liefern wir zum System einen Programmieradapter einschließlich der benötigten Loader-Soft­ware, sodass beide Prozessoren auf einfacher Weise programmiert werden können. Die Ansteuerungsprogramme werden in C geschrieben, mit Hilfe des WINAVR compiliert und anschließend in eine HEX-Datei verwandelt.
Wie bei allen AREXX-Robotersystemen stehen auch für den Wild Thumper wieder viele Anschlüsse für Ein-/Ausgänge und ein I2C-Bus zur Verfügung, damit sie am System selbst verschiedene Applikationen anschließen können.
Lieferumfang.
1 Stück. Hauptplatine 1 Stück. Frontplatine mit Berührungsschalter, Licht- und Infrarot-Strahlungssensoren 1 Stück. Programmieradapter mit USB- und Funkkommunikation 2 Stück. APC-220 Module 6 Stück. Rad-Encoder-Module mit HALL Sensoren 6 Stück. Encoder-Magnetringe zur Befestigung auf de Radachse 1 Stück. CD mit der Betriebsanleitung und Software
Montageteile, Anschlusskabel und Steckverbinder
Warnungen
* Das Rückgaberecht erlischt nach dem Öffnen der Plastikverpackungen der Bauelementen. * Lesen die das Handbuch bitte vor der Aufbauphase vollständig bis zum Schluss. * Wir bitten Sie vorsichtig mit den Werkzeugen zu arbeiten. * Bauen Sie den Roboter bitte nicht in Anwesenheit von kleinen Kindern auf. Diese können sich an den Werkzeugen verletzen oder kleine Bauteile verschlucken. * Überprüfen Sie die korrekte Polarität beim Einlegen der Batterien. * Sehen Sie zu, dass die Batterien und die Batteriehalter immer trocken sind. Falls das System Feuchtigkeit aufnimmt sollten Sie die Batterien entfernen und alle Teile gut trocknen. * Entfernen Sie bitte die Batterien falls Sie das Gerät mehr als 1 Woche nicht benutzen.
- 3 -
1.2. Spezikationen:
Stromversorgung: 7,2 Volt sub C Batterie Pakete (nicht im Lieferumfang enthalten) 2 St. ATMEGA 644 Prozessoren 6 St. Magnet-Drehzahlgeber für Odometrie 6 St. HAL Odometrie Sensoren Motor-Stromwächter für alle 6 Motoren Spannungsüberwachung Lichtsensoren IR-Sensoren Tastsensoren Zahlreiche Externe I/O und I2C-Anschlüsse 12 LEDS Hauptplatine mit APC-220 drahtlosem Transceiver-Module USB-Schnittstelle mit APC-220 drahtlosem Transceiver-Module
Beide Prozessoren sind frei programmierbar in der Hochsprache “C“ Die Programme können mit dem mitgelieferten USB-interface und der AREXX Robotloader Software einfach in den Mikroprozessor geladen werden.
Abmessungen: (LxB) 360 x 120 (mm) Hinweis: Max 2 St. 7,2V sub C Batteriepakete
- 4 -
1.3. WILD THUMPER
- Selbst Programmieren in C mit WINAVR
- Beispiel- und Neuprogramme in den Wild Thumper übertragen.
- Den Wild Thumper mit einem PC und WTC Software drahtlos kontrolieren
- Ihre eigene drahtlose Kamerabilder in WTC PC Software einfügen
- Den Wild Thumper mit Erweiterungsmodulen ausbauen, so dass er hören, fühlen und sehen kann und somit auf seine Umgebung reagiert
- Mittels I2C Schnittstelle kann der Wild Thumper mit seinem Umfeld und vielen anderen Geräten kommunizieren.
- Künstliche Intelligenz: mit Hilfe von selbstlernender Software kann der Wild Thumper seine Software ständig selbsttätig verbesseren.
- 5 -
2. Benötigte Werkzeuge
Spitzzange
Selbstschneidende Schrauben
Seitenschnei­der
Schraubenziehersatz
Inbusschlüssel
Kontermutter
Selbstschneidende Schrauben verhalten sich wie Holzschrauben, d.h. sie schneiden ein spiralförmi­ges Gewinde ins Material, das sich wie eine Mutter verhält. Zum Ende weist dieser Schraubentyp ein größeres Gewinde und eine schärferen Spitze auf als eine normale Schraube.
2
3
1
Selbstschneidende Schrauben haben einen Spalt an der Spitze, so dass man sie besser ins Material eindrehen kann. Am einfachsten dreht man die Schrauben wie folgt fest:
Falls die Schrauben zu oft gelöst und wieder festgeschraubt werden, kann das Loch im Laufe der zeit immer größer werden und passt die Schraube irgendwann nicht mehr richtig.
1 Drehen Sie die Schraube fest 2 Lockern Sie die Schraube 3 Jetzt nochmals festschrauben.
Kontermutter
Das Festschrauben einer Kontermutter
Kontermutter
Schraubenschlüssel:
Der Bausatz enthält einen Doppelmaulschlüssel, den Sie (anstatt der Zange) für die M2 und M3 Mutter verwenden sollten.
- 6 -
Gewaltanwendung beim Schrauben würde das Plastik zerstören !
3. TEILLISTE
Hauptplatine
O 1x
Magnet-Encoder-Ring
O 6x
Flachbandkabel
Programmieradapter
O 1x O 1x
Abstandshalter(Scheibe)
Encoderkabel
Wild Thumper chassis
Encoderplatine
O 6xO 6x
Frontplatine
O 1x 10 Pol
O 1x 14 Pol
Power-Anschluss
O 2x
O 6x
Motorstecker
O 6x
USB-Kabel
- 7 -
O 1x
O 1x
APC-220
O 2x
Rundkopf­Schraube M3x6
Inbus schraube
Mutter M3
Abstandshalter M3
O 24x
O 6x
Vorbereitung des Chassis für den Wild Thumper:
Folgende Teile werden benötigt
Entferne die Abdeckung des WT Chassis.
Befestige die 6 Motorstecker an die Motorkabel.
Die ROTE Ader wird immer zur Frontseite des Steckers gepolt.
1x WT Chassis 6x Motorstecker
O 12xO 4x
- 8 -
4. ZUSAMMENBAU des WT
Vorzugsweise sollte man alle Mechanikteile in folgender Reihenfolge einbauen
- Entferne die Abdeckung
- Befestige die Motorstecker (Rot + gehört zur Frontseite)
- Befestige die Abstandshalter der Leiterplatte
- Befestige die Abdeckung (Befestigen mit Abstandshalter)
- Montiere die Achsen an den Rädern
- Schraube den Inbusschraube vollständig in die radachse
- Befestige die Magnetringe
- Befestige den Abstandshalter und die Hall-Encoderplatine auf den Motoren
- Befestige die Leiterplatten (Front- und Hauptplatine)
- Verdrahte alle Kabel
- 9 -
Montage der WT-CK1 Leiterplatte:
Ehe Sie die Montage der Leiterplatte des Wild Thumpers starten sollten Sie das Chassis des Wild Thumpers teilweise entfernen um einen guten Zugang zu den Motoren zu bewerkstelligen.
Die Montage der Räder:
Folgende Teile werden benötigt:
Befestige die Radachse zum Rad (6 x). Befestige auch eine Inbusschraube in die Radachse und drehe die Schraube ganz hinein. Siehe die Detailzeichnung!
Montage des Magnetrings:
6x Magnetring 6x Radachse 6x Rad 6x Inbusschraube M2 6x inbusschraube M4x8
M4*8
Radachse
Inbusschraube M2
Montiere den Magnetring auf die Radachse und befestige diesen mit einem Kleber oder Siegellack an das Rad
Magnetring
- 10 -
So sollte der Magnetring auf die Radachse befestigt werden. Anschließend wird der Magnetring mit Kleber an die Achse oder an das Rad befestigt.
Die Montage der Encoder:
6x Encoder-Platine
Folgende Teile werden benötigt:
Vor der Befestigung der Räder müssen wir die Encoder einbauen. Die Steckerstifte stecken am Encoder ein wenig heraus und müssen zuerst maßgerecht gestutzt werden. Schneiden Sie mit einem Seitenschneider die Konnektorstifte so kurz wie möglich ab. Die Stifte können nie ganz bis zur Leiterplatte abgeschnitten werden. Deshalb benötigen wir einen Abstandshalter. Auch der Abstandshalter muß maßgerecht vorbereitet werden. Die Löcher im Abstandshalter sind bereits an der richtigen Stelle vorgebohrt worden. Sie müssen noch etwas nachgebohrt werden. Benutzen Sie zum Nachbohren bitte einen kleinen 2mm Bohrer.
Siehe die Fotoserie für Details zu diesen Arbeiten
Schneiden Sie die Konnektorstifte so kurz wie möglich ab
6x Abstandshalterscheibe 6x Encoderkabel 12x Schraube M2x10
Abstandshalter
Encoderplatine
Benutzen Sie zum Nachbohren bitte einen kleinen 2mm Bohrer
Vor dem Einbauen der Encoder und Abstandshalter müssen wir überprüfen ob die Konnektorstifte nicht über den Abstandshalter herausragen und das Motorgehäuse berühren können. Sollte das der Falls sein müssen die Stifte weiter gekürzt werden. Nach dem Einbau des Encoders muss der Magnetring noch auf der Achse befestigt werden.
- 11 -
Befestigung des Encoders:
Folgende Teile werden benötigt:
Einbau der Frontplatine:
Folgende Teile werden benötigt:
1x WT Chassis 6x Encoderplatine 6x Abstandshalter 6x Schraube M3x12 6x Encoder Kabelsatz
Befestigen Sie die Encoder zu den Motoren wie auf dem Foto angegeben.
Schließen Sie auch die Encoderkabel an.
Die Abstand von HAL-Sensor nach Magnet muss nicht zu Groß sein!
1x Frontplatine 4x Abstandshalter M3 4x Schraube
Abstandshalter
Schraube M2x12
Befestigen Sie die Frontplatine zur Vorderseite des Chassis des Wild Thumpers wie es auf diesem Bild skizziert wird.
- 12 -
Befestigung der Abstandshalter für die Hauptplatine:
Folgende Teile werden benötigt:
Platzieren Sie die obere Leiterplatte auf dem WT Chassis und befestigen Sie dieses Teil mit den 8 Abstandshaltern,
Endmontage:
Folgende Teile werden benötigt:
1x WT Chassis 1x Obere Leiterplatte 8x Abstandshalter
1x WT Chassis 1x Leiterplatte 1x APC-220 1x Flachbandkabel (für die Frontplatine)
Befestigen Sie die Leiterplatte auf der oberen Platte. Schließen Sie alle Kabel zur Leiterplatte an und befestigen Sie die Räder auf den Achsen. Bestücken Sie zum Schluss die APC-220 in den Sockel wie es in der Abbildung skizziert wird.
- 13 -
Wild Thumper Platine
Front Platine
Haupt Platine
- 14 -
5. WILD THUMPER ELECTRONIK BESCHREIBUNG:
5.1. Stromversorgung
Der Wild Thumper soll drahtlos gelenkt werden und deshalb müssen wir das System mit Akkus speisen. Die Batterien liefern eine 7,2 Volt Spannung. Da die Elektronik nur maximal 5 Volt verträgt müssen wir die Spannung mit einem Spannungsregler auf einen geringeren Wert herabsetzen. Um den geringen Spannungsbereich optimal zu regeln verwenden wir einen Regler L4940V5 von STMicroelectronics mit einem Spannungsabfall von nur 0,5 Volt.
Die Stromversorgung wird beim Anschließen gegen falscher Verpolung geschützt mit einer Diode (D2). Diese Diode sperrt den Strom bei falscher Polarität. Zur Entstörung wurden Entstörungskondensatoren (C7 und C8) vorgesehen. Auch wurden am Ein- und Ausgang zwei Pufferkondensatoren (C6 und C9) eingebaut.
5.2. Ladeschaltung
Die angeschlossenen Akkus können in eingebautem Zustand aufgeladen wer­den. Dazu wurde eine Stromquelle auf der Basis eines einstellbaren Reglers
LM317 eingebaut. Bei Auaden wird dieser Regler als Stromquelle geschaltet.
Sobald das Akku aufgeladen ist wird der Strom abgeschaltet und wechselt die Schaltung mittels Transistor T1 von Stromquelle in eine Spannungsquelle.
5.3. Motorsteuerung
Die Motorsteuerung enthält sechs identischen Module die jeweils einen Motor ansteuern. Jedes Modul enthält eine H-Brücke, eine Logikschaltung (zwei NAND-Gatter) zur Einsparung der Mikroprozessorausgängen und eine Strom­messungsschaltung. Die Schaltung erlaubt die Links- und Rechtsdrehrich­tung sowie die Abbremsung. Die H-Brücke verwendet Pulsbreitenmodulation (PBM) zur Geschwindigkeitssteuerung.
- 15 -
5.4. Motorstrommessung
Jedes Modul zur Motorstrommessung enthält einen Leistungswiderstand. Das Ohmsche Gesetz besagt dass der Strom durch den Leistungswiderstand sich proportional zum Spannungsabfall verhalten wird. Zur Begrenzung des Spannungsabfalls wählen wir einen geringen Widerstandswert, der in unse­rem Entwurf 0,1 Ohm beträgt. Bei diesem Wert ist der Spannungsabfall gering (d.h. 0,1V bei einer Stromstärke von 1A) und dieser muss daher angehoben werden. Diese Verstärkung wird geleistet von einem sogenannten Operations-
verstärker (Englisch: „operational amplier“, abgekürzt: „opamp“).
In dieser Schaltung wird die Verstärkung mit den Widerständen R1 und R2 festgelegt. Folgende Formeln werden benötigt um die Schaltung zu dimensio­nieren: U_ein=I_motor×R_3
U_aus=A_((Verstärkung))×U_ein
A_((Verstärkung))=1+R_1/R_2
Dimensionierung:
R_3=0,1Ω
I_(motor_max )=5,5A U_(aus_max )=4V bei einer Stromversorgungsspannung von 5V.
U_(ein_max )=I_(motor_max )×R_3= 5,5A*0,1Ω=0,550V
A=U_(aus_max )/U_(ein_max ) =4V/0,550V=7,27 R_2/R_1 =A-1=7,27-1=6.27 R_2/R_1 =6.27
Auf der Basis der oben stehenden Formel wählen wir die Werte für R1 und R2. Aus wirtschaftlichen Gründen wählen wir Widerstandswerte aus der E12, beziehungsweise E24-Reihe. Mit folgenden Werten erreicht der Operations­verstärker die optimale Verstärkung:
R1 = 6200 Ohm R2 = 39000 Ohm A=1+R_1/R_2 =1+39000/6200=7,29
In diesem Fall ist die Abweichung zum Sollwert sehr gering: (7,29 – 7,27 = 0,02), was wir akzeptieren dürfen.
- 16 -
5.5. Encoder
Hoofd-
Controller
controller
Zur Geschwindigkeitsmessung jedes Einzelrades erhält Rad einen eigenen Encoder. Dieser Encoder besteht aus einem Magnetring mit einem Hall­Sensor. Der Magnetring enthält 6 Magnetpolpaare. Ein drehender Magnetring erzeugt ein magnetisches Wechselfeld. Sobald der angewandte Hall-Sensor einen Südpol detektiert wechselt der Ausgang zu 5V und bei einem Nordpol zu 0V. Eine Pulsbreitenmessung der eingehenden Impulsen liefert die Geschwindigkeit jedes Einzelrades.
5.6. Motorsynchronisation
Die Spezikationstoleranzen der Motoren können +/- 10% betragen. Aus
diesem Grund erhält jeder Motor ein eigenes Steuerungsmodul, dass eine einheitliche Geschwindigkeit für alle Motoren sicherstellt. Das Steuerungsmo­dul funktioniert wie folgt: Der gewünschte Geschwindigkeitswert wird (mittels I²C) aus der Zentral­steuerung vorgegeben und in der Motorsteuerung mit einem PID-Regler in eine Sollvorgabe umgesetzt. Mit diesem Wert berechnet das System einen PBM-(PulsBreitenModulation)-Wert, der den Motor ansteuert. Danach wird die Motorgeschwindigkeit wieder gemessen, wobei ein neuer Steuerungswert festgelegt wird.
5.7. Mikrokontroller
Wie in der Spezikation bereits erläutert verwendet der Roboter zwei Mikro­kontroller. Es handelt sich um zwei Prozessoren des Herstellers Atmel, wobei wir einfachheitshalber den gleichen Typ ATmega644 gewählt haben. Beide Mikrokontroller verwenden I²C zur internen Kommunikation. Eine Übersicht des Systems wird in Abb. 16 abgebildet.
PC
Abb. 16 : Darstellung Motordata Strom
Main
- 17 -
I2CFunk
Motor
5.7.1. Hauptkontroller
Der Hauptkontroller verwaltet alle Aufgaben im Bereich des Wild Thumpers und trifft alle Entscheidungen, die anschließend gegebenenfalls zu Aktionen führen. Zu den Aufgaben des Hauptkontrollers gehören:
Verarbeitung der eingehenden PC-Daten
Zusammensetzung der Berichten, die an den PC versandt werden,
wenn der Auftrag dazu vorliegt.
Kommandos an die Motorkontroller zur Ansteuerung der Motoren.
Der Betrieb der I²C Schnittstelle.
Regelmäßige Aktualisierung der Messdaten der Motorkontroller.
Aktualisierung der Sensordaten.
Der Hauptkontroller arbeitet mit zwei Schnittstellen, und zwar einem extra UART Interface beziehungsweise einem JTAG Interface. Das UART Inter­face steht zur Verfügung zur Kommunikation mit einem dritten system. Die JTAG Schnittstelle steht zur Verfügung zum Debuggen des Hauptkontrol­lers.
5.7.2. Motorkontroller
Der Motorcontroller erledigt Aufgaben, die aus dem Hauptkontroller stam­men und mittels I²C-Schnittstelle bereitgestellt werden. Aus den Aufträgen wird mit einer in Software aufgebauten PID-Regler für jeden Motor einen Regelwert berechnet. Der Wert stellt sicher, dass jeder Motor mit der glei­chen Drehzahl arbeitet. Abgesehen von diesen Aufgaben aus dem Hauptkontroller misst der Motor­kontroller regelmässig den Strom und die Geschwindigkeit. Die Stromwerte und Drehzahlwerte können vom Hauptkontroller jederzeit abgelesen wer­den.
- 18 -
5.7.3. Kommunikation zwischen Haupt- und Motorkontroller (I2C)
Die Kommunikation zwischen beiden Mikrokontroller verwendet das serielle I2C-Bussystem. Es handelt sich dabei um einem Zweidraht-Systembus, der einen Draht (SDA) für Daten und einen anderen Draht (SCL) für das System­taktsignal verwendet. Beide Datenleitungen sind mit einem Pullup-Widerstand auf der Stromver­sorgungsspannung angeschlossen. Im passiven Zustand ist der Signalpegel deshalb hoch. Sobald ein Mikrokontroller Daten versenden möchte wird zuerst eine Startbedingung generiert. Danach folgen acht Bits für die Adresse, die gefolgt wird von einer Information für das zuständige IC. Jede 8 Bitreihe wird mit einem Bestäigungs (Acknowledge)-Bit abgeschlossen, womit das System den korrekten Eingang der Daten überprüft. Nach dem Transfer aller Daten generiert das System ein Stopsignal, womit der Transfer abgeschlossen wird.
Im Motorkontroller stehen zwei Register zum Ablesen zur Verfügung. Diese Register enthalten Messdaten und den Status des Motorkontrollers. Außerdem gibt es einige Kommandos zur Generierung von Steuerungskommandos für den Wild Thumpers.
5.8. Schieberegister
Weil der gewählte Mikrokontroller nicht genügend Ein- und Ausgänge zur Verfügung stellt wurden einige externe Ausgänge hinzugefügt. Dazu werden Schieberegister verwendet. Ein Schieberegister besteht aus einer Reihe
zusammengeschalteten D-Flipops womit serielle Daten in Paralleldaten
umgesetzt werden. Das D-Datensignal wird bei jeder positiven Flanke des Taktsignals auf den Ausgang übertragen. Indem man nun acht D-Flipops fol­gendermassen in Serie zusammenschaltet kann ein serielles Datensignal auf parallel geschalteten Ausgänge bereitsgestellt werden.
D Q
D Q
D Q
D Q
D Q
- 19 -
D Q
D Q
D Q
In diesem Projekt verwenden wir Schieberegister in der Form des ICs HEF4094, das eine seriellen Schnittstelle mit drei Signalen bereitstellt:
Daten
Taktsignal
Latch
Das zusätzliche „Latch“-Signal wird benutzt um Daten in die Ausgangsregister zu übertragen. Solange dieses Signal 0V ist werden Daten intern gespeichert aber noch nicht auf den Ausgang übernommen. Im folgenden Bild wird an­gedeutet wie die Daten übernommen werden, wobei Ausgang sechs aktiviert wird.
Zur Ansteuerung eines Schieberegisters aus einem Mikrokontroller wird ein sogenannter SPI-bus benutzt, der mit drei Datenleitungen arbeitet:
MOSI (Master out, Slave in)
MISO (Master in, Slave out)
CLOCK (Taktsignal)
Man verwendet einen SPI-bus häug zur Kommunikation zweier Systemen.
Dabei sind zwei Datenleitungen im Einsatz und zwar für jedes Gerät eine Leitung. Wie beim Schieberegister werden die Daten zur positiven Flanke des Taksignals übertragen. Weil die Schieberegister nichts zurücksenden ist eine Datenleitung zur An­steuerung eines Schieberegisters ausreichend, das heißt die Signale MOSI und CLOCK sind in der Lage das Schieberegister zu versorgen.
- 20 -
5.9. Das RF-Modul (d.h. das Radio Frequenz Modul)
Das RF-Modul wird mit Hilfe einer seriellen Schnittstelle (UART) mit dem Hauptkontroller verbunden. Zur Anpassung der Onboard-Einstellungen wurde die SET-Signalleitung des Transceivers auch zum Mikrokontroller geleitet.
5.10. Sensoren
Die Sensoren wurden auf zwei Leiterplatten aufgeteilt und zwar auf der vor­deren Stoßstange des Wild Thumpers und auf der Leiterplatte mit dem Rest der Elektronikbaugruppen. Der Wild Thumper verfügt über nachfolgenden Sensoren.
5.10.1. LDR
Auf der vorderen Stoßstange des Wild Thumpers benden sich sowohl links als rechts ein LDR. Ein LDR ist ein lichtempndlicher Widerstand. Sobald
ein LDR mehr Licht empfängt nimmt sein Widerstand zu. Wie beim Akku­spannungssensor verwenden wir auch in diesem Fall einen Spannungstei­ler, nur wird jetzt eine 5V-Spannung anstatt einer Akkuspannung geteilt. Wir verwenden im Teiler einen Festwiderstand und einen LDR, womit wir wie im beigefügten Schaltbild die Lichtintensität messen können. Die Ausgangsspannung des Teilers wird am ADC-Eingang des Mikrokontrollers eingelesen.
5.10.2. Infrarot Kollisionsdetektor
Auf der Frontleiterplatte des Wild Thumpers benden sich Infrarot LEDs,
die Datenpakete versenden. Diese Datenpakete werden an Hindernisse
reektiert und in Infrarotsensoren auf der Hauptplatine empfangen. Falls ein Hindernis entdeckt wird, treffen die Signale der reektierten Datenpakete
ein und kann der Roboter eine geeignete Aktion starten.
5.10.3. Die Stoßstange
Es wurde eine kleine Leiterplatte entworfen, die vorne am Wild thumper befestigt wird. Auf dieser Platine wurden zwei Mikroschalter montiert, die auf Hindernisse reagieren und im Roboter eine geeigneten Aktion auslösen.
- 21 -
6. DER ERSTE WT-PRAXIS TEST
1. Bauen Sie zuerst die Mechanik- und Elektronikmodule des Wild Thumpers mit Hilfe der Bauanleitung zusammen.
2. Schließen Sie ggf. das 7.2 Volt Akkupack (oder ein Netzteil) an.
3. Schalten Sie bitte das System mit dem Hauptschalter ein.
Spannung anschließen
Netzgerät
Es gibt 2 Möglichkeiten zur Stromversorgung. Die einfachste Lösung ist der Anschluss eines Netzgeräts mit einer Spannung von 8 bis 12 Volt / 2 Ampere am DC Stecker. Dabei wird die Spannung auf den Eingang des Spannungsreglers angeschlossen.
Batterien
Die zweite Möglichkeit ist die Verbindung eines Akkupacks über dem Batterie­Anschluss. Dabei wird die Akkuspannung nach dem Ausgang des Span-
nungsreglers angeschlossen und darf deshalb auch niemals größer werden als 7,2 Volt!!
WARNUNG!
Die maximale Akku- bzw. Batteriespannung für den Wild Thumper Kontroller ist 7.2 V!
Sobald der Roboter Arm auf einer Stromversorgung angeschlossen wird, können Sie den Roboter mit dem Hauptschalter einschalten und leuchtet die Grüne LED (LED1) auf.
Bei Laden der Batterien leucht die Gelbe LED (LED 3) auf.
Nun, das war für den Anfang gar nicht so schwierig und es sieht aus, als ob
man jetzt bereits fertig wäre. Jetzt aber fängt die Arbeit erst richtig an ...... !
Jetzt aber folgt zuerst Kapitel 7, in dem wir die Software installieren
- 22 -
7. Software Installation
Als nächstes kommen wir zur Installation der Software. Die korrekt installierte Software wird für alle nachfolgenden Kapitel unbedingt benötigt.
Es sind Administrator-Rechte erforderlich, also melden Sie sich ggf. vorher als Administrator in Ihrem PC an!
Wir empfehlen Ihnen zuerst das gesamte Kapitel in Ruhe durchzulesen und erst dann Schritt für Schritt die Installationsanleitung durchzugehen!
Grundlegende Kenntnis der Bedienung von Computern mit Windows oder Linux Betriebssystemen und den gängigen Programmen wie Dateimana­ger, Webbrowser, Texteditor, Packer (WinZip, WinRAR, unzip o.ä.) und ggf. Linux-Shell etc. muss vorausgesetzt werden! Wenn Sie sich also nur wenig mit Computern auskennen, sollten Sie sich auf jeden Fall gut damit vertraut machen bevor Sie den Wild Thumper in Betrieb nehmen! Eine Einführung in die Bedienung von Computern ist nicht Ziel dieser Anleitung und würde den Rahmen bei weitem sprengen! Hier geht es nur um den Wild Thumper, dessen Programmierung und die speziell dafür benötigte Software.
Die CD-ROM zum Wild Thumper
Sie haben vermutlich die CD-ROM zum Wild Thumper bereits im Laufwerk Ihres Computers eingelegt – falls doch nicht, legen Sie diese nun bitte ein! Es sollte unter Windows kurz darauf per Autostart das CD Menü erscheinen. Andernfalls können Sie über einen Dateimanager die Datei “start.htm” im Hauptverzeichnis der CD mit einem Webbrowser wie z.B. Firefox öffnen. Die
Installationsdateien für Firefox nden Sie übrigens auf der CD im Ordner
<CD-ROM-Laufwerk>:\Software\Firefox
sofern Sie noch keinen aktuellen Webbrowser installiert haben sollten. (Es sollte mindestens Firefox 1.x oder der Internet Explorer 6 sein...)
Nach Auswahl der Sprache nden Sie im CD-Menü neben dieser Anleitung
(die es auch zum Download auf unserer Homepage gibt), vielen Informatio­nen, Datenblätter und Fotos auch den Menüpunkt “Software”. Hier sind alle Software-Tools, der USB Treiber und die Beispielprogramme mit den Quell-
codes für den Wild Thumper zu nden.
Je nach Sicherheitseinstellungen Ihres Webbrowsers können Sie die Installati­ons-Programme direkt von der CD starten!
- 23 -
Wenn Ihr Browser dies aufgrund der Sicherheitseinstellungen nicht erlaubt, müssen Sie die Dateien zunächst in ein Verzeichnis auf Ihrer Festplatte spei­chern und dann von dort starten. Genaueres dazu steht auf der Software Seite des CD Menüs. Alternativ können Sie natürlich auch direkt in einem Dateima­nager auf das CD-Laufwerk wechseln und die Software von dort installieren. Die Verzeichnisnamen sind so gewählt, dass sie eindeutig den entsprechen­den Softwarepaketen und Betriebssystemen zugeordnet werden können.
WinAVR - für Windows
Als erstes werden wir WinAVR installieren. WinAVR ist aber - wie der Name schon andeutet- nur für Windows verfügbar !
Linux Anwender müssen beim nächsten Abschnitt weiterlesen.
WinAVR (das wird wie das englische Wort “whenever” ausgesprochen) ist eine Sammlung von vielen nützlichen und notwendigen Programmen für die Soft­ware Entwicklung für AVR Mikrocontroller in der Sprache C. WinAVR enthält neben dem GCC für AVR (das nennt sich dann insgesamt “AVR-GCC”, mehr Infos dazu folgen später) auch den komfortablen Quelltexteditor “Program­mers Notepad 2”, den wir auch für die Programmentwicklung für den Wild Thumper einsetzen werden!
WinAVR ist ein privat organisiertes Projekt, hinter dem keine Firma o.ä. steht ­es ist kostenlos im Internet verfügbar. Neuere Versionen und weitere Informa-
tionen nden Sie hier:
http://winavr.sourceforge.net/
Inzwischen wird das Projekt aber auch ofziell von ATMEL unterstützt, und der
AVRGCC lässt sich in AVRStudio, die Entwicklungsumgebung für AVRs von ATMEL, einbinden. Das werden wir in diesem Handbuch aber nicht beschrei­ben, für unsere Zwecke ist Programmers Notepad besser geeignet.
Die WinAVR Installationsdatei nden Sie auf der CD im Ordner:
<CD-ROM-Laufwerk>:\Software\AVR-GCC\Windows\WinAVR\
Die Installation von WinAVR ist sehr einfach und selbsterklärend - normaler­weise brauchen keinerlei Einstellungen geändert werden – also einfach immer auf “Weiter” klicken!
- 24 -
Wenn Sie Windows Vista oder Windows 7 benutzen, müssen Sie auf jeden Fall die neueste Version von WinAVR verwenden! Auch mit Windows 2000 und XP sollte es problemlos klappen. Falls nicht, können Sie eine der beiden
älteren Versionen ausprobieren, die ebenfalls auf der CD zu nden sind (vor
Neuinstallation immer bereits installierte WinAVR Versionen wieder deinstal-
lieren!). Ofziell wird Win x64 noch nicht unterstützt, aber auf der CD ndet sich ein Patch für Win x64 Systeme falls es Probleme geben sollte. Mehr Infos dazu nden Sie auf der Software Seite des CD Menüs!
AVR-GCC, avr-libc und avr-binutils - für Linux
(Windows Anwender können diesen Abschnitt überspringen!)
Unter Linux kann es schon ein wenig aufwändiger werden. Bei einigen Distri­butionen sind die benötigten Pakete zwar schon vorhanden, aber meist nur veraltete Versionen. Deshalb müssen Sie neuere Versionen kompilieren und einrichten. Wir können hier nicht im Detail auf jede der zahlreichen Linux Dis­tributionen wie SuSE, Ubuntu, RedHat/Fedora, Debian, Gentoo, Slackware, Mandriva etc. pp. in zig verschiedenen Versionen mit ihren jeweiligen Eigen­heiten eingehen und beschreiben das daher nur allgemein.
Das gilt auch für alle anderen Linux Abschnitte in diesem Kapitel!
Das hier beschriebene Vorgehen muss also bei Ihnen nicht unbedingt zum Erfolg führen. Oft kann es hilfreich sein, wenn Sie im Internet z.B. nach “<Li­nuxDistribution> avr gcc” o.ä. suchen (Verschiedene Schreibweisen auspro­bieren). Auch das gilt für alle anderen Linux Abschnitte - natürlich mit ange­passten Suchbegriffen! Falls Sie Probleme bei der Installation des AVR-GCC haben, können Sie auch mal in unserem oder im Roboternetz Forum nach­schauen bzw. in einem der zahlreichen Linux Foren. Zunächst müssen Sie evtl. schon installierte Versionen des avr-gcc, der avr-binutils und der avr-libc deinstallieren – wie schon gesagt sind diese meist veraltet. Das können Sie mit dem jeweiligen Paketmanager ihrer Distribution tun indem Sie nach „avr“ Inbetriebnahme suchen und die drei oben genannten Pakete deinstallie­ren – sofern diese überhaupt vorhanden sind. Ob der avr-gcc schon installiert ist oder nicht und wenn ja wo, können Sie über eine Konsole z.B. leicht mit
> which avr-gcc herausnden.
- 25 -
Sollte hier ein Pfad angezeigt werden, ist schon eine Version installiert. Geben Sie in diesem Fall einfach mal:
> avr-gcc --version
ein und schauen Sie sich die Ausgabe an. Sollte eine Versionsnummer kleiner als 3.4.6 angezeigt werden, müssen Sie diese alte Version auf jeden Fall deinstallieren.
Wenn die Versionsnummer zwischen 3.4.6 und 4.1.0 liegt, können Sie erstmal versuchen ob Sie Programme kompilieren können (s. nachfolgende Kapitel) und erst wenn das fehlschlägt,die neuen Tools installieren. Wir installieren im Folgenden die derzeit aktuelle Version 4.1.1 (Stand von März 2011) mit eini­gen wichtigen Patches.
Werden die oben genannten Pakete nicht im Paketmanager angezeigt, ob­wohl denitiv schon ein avr-gcc vorhanden ist, müssen Sie die entsprechen­den Binärdateien manuell löschen – also die /bin, /usr/bin usw. Verzeichnisse nach allen Dateien, die mit „avr-“ anfangen absuchen, und diese dann löschen (natürlich NUR diese Dateien und sonst nichts anderes!). Eventuell vorhande­ne Verzeichnisse wie /usr/avr oder /usr/local/ avr müssen ebenfalls gelöscht werden.
Achtung: Sie müssen unbedingt sicherstellen, dass die normalen Linux Ent­wicklungstools wie GCC, make, binutils, libc, etc. installiert sind, bevor Sie mit dem Übersetzen und der Installation beginnen können! Das tun Sie am besten über den Paketmanager Ihrer Distribution. Jede Linux Distribution sollte die benötigten Pakete schon auf der Installations-CD mitliefern bzw. aktuelle Pakete über das Internet bereitstellen.
Stellen Sie sicher, dass das Programm „texinfo“ installiert ist. Installieren Sie bitte ggf. das entsprechende Paket, bevor Sie weitermachen – sonst klappt es nicht!
Ist das erledigt, kann mit der eigentlichen Installation begonnen werden.
Es gibt nun zwei Möglichkeiten, entweder man macht alles von Hand, oder man nutzt ein sehr einfach anzuwendendes Installationsskript.
Wir empfehlen es zunächst mit dem Skript zu versuchen. Wenn das nicht klappt, kann man immer noch den Compiler von Hand einrichten!
- 26 -
Achtung:
Sie sollten für die Installation noch genug freien Speicherplatz auf der Fest­platte zur Verfügung haben! Temporär werden mehr als 400MB benötigt. Über 300MB davon können nach der Installation wieder gelöscht werden, aber wäh­rend der Übersetzung braucht man den Platz.
Viele der nachfolgenden Installationsschritte erfordern ROOT RECHTE, also loggen Sie sich ggf. mit „su“ als root ein oder führen Sie die kritischen Befehle mit „sudo“ o.ä. aus, wie man es z.B. bei Ubuntu machen muss (das Installa­tionsskript, mkdir in /usr/local Verzeichnissen und make install brauchen root Rechte).
Achten Sie im Folgenden bitte auf EXAKTE Schreibweise aller Befehle!
Jedes Zeichen ist wichtig und auch wenn einige Befehle evtl. etwas seltsam aussehen – das ist alles richtig so und kein Tippfehler! ( <CD-ROM-Laufwerk> muss man natürlich trotzdem mit dem Pfad des CD­ROM-Laufwerks ersetzen!)
Alle für uns relevanten Installationsdateien für den avr-gcc, avr-libc und binutils
nden Sie auf der CD im Ordner:
<CD-ROM-Laufwerk>:\Software\avr-gcc\Linux
Zunächst müssen Sie alle Installationsdateien in ein Verzeichnis auf Ihrer Fest­platte kopieren – das gilt für beide Installationsvarianten! Hier nutzen wir das Home Verzeichnis (übliche Abkürzung für das aktuelle Home Verzeichnis ist die Tilde: „~“):
> mkdir ~/Wild Thumper > cd <CD-ROM-Laufwerk>/Software/avr-gcc/Linux > cp * ~/Wild Thumper
Die Dateien können Sie nach der erfolgreichen Installation natürlich wieder löschen um Platz zu sparen!
- 27 -
Automatisches Installationsskript
Wenn man das Skript mit chmod ausführbar gemacht hat, kann es sofort losgehen:
> cd ~/Wild Thumper > chmod -x avrgcc_build_and_install.sh > ./avrgcc_build_and_install.sh
Die Nachfrage, ob man mit dieser Konguration installieren möchte oder nicht,
können Sie mit „y“ beantworten.
ACHTUNG: Das Übersetzen und Installieren wird dann je nach Rechenleis­tung Ihres Systems einige Zeit in Anspruch nehmen. (z.B. etwa 15 min auf einem 2GHz CoreDuo Notebook – bei langsameren Systemen evtl. entspre­chend länger)
Das Skript spielt auch einige Patches ein – das sind diese vielen .diff Dateien, die in dem Verzeichnis liegen. Wenn alles klappt, sollte ganz zum Schluss folgendes erscheinen:
(./avrgcc_build_and_install.sh) (./avrgcc_build_and_install.sh) installation of avr GNU tools complete (./avrgcc_build_and_install.sh) add /usr/local/avr/bin to your path to use the avr GNU tools (./avrgcc_build_and_install.sh) you might want to run the following to save disk space: (./avrgcc_build_and_install.sh)
(./avrgcc_build_and_install.sh) rm -rf /usr/local/avr/source /usr/local/avr/build
Dann können Sie wie es dort vorgeschlagen wird
rm -rf /usr/local/avr/source /usr/local/avr/build
ausführen! Das löscht alle temporären Dateien, die Sie normalerweise nicht mehr benötigen.
Jetzt können Sie den nächsten Abschnitt überspringen und noch den Pfad auf die avr tools setzen.
Sollte die Ausführung des Skriptes fehlschlagen, müssen Sie sich genau die Fehlermeldungen ansehen (auch mal in der Konsole etwas hochscrollen) – meist fehlen dann irgendwelche Programme, die man vorher noch installie­ren muss (wie z.B. das oben erwähnte texinfo). Bevor Sie nach einem Fehler weitermachen, sollten Sie die bereits erzeugten Dateien im Standardinstallati­onsverzeichnis „/usr/local/avr“ vorsichtshalber löschen – am besten das ganze Verzeichnis.
- 28 -
Wenn Sie nicht wissen, was da genau falsch gelaufen ist, bitte alle Kommando-zeilenausgaben in einer Datei speichern und damit an den Support wenden. Bitte immer so viele Informationen wie möglich mitsenden! Dann wird es einfacher, Ihnen zu helfen.
GCC für den AVR
Der GCC wird ähnlich wie die Binutils gepatcht, übersetzt und installiert:
> cd ~/Wild Thumper> bunzip2 -c gcc-4.1.1.tar.bz2 | tar xf ­> cd gcc-4.1.1 > patch -p0 < ../gcc-patch-0b-constants.diff > patch -p0 < ../gcc-patch-attribute_alias.diff > patch -p0 < ../gcc-patch-bug25672.diff > patch -p0 < ../gcc-patch-dwarf.diff
> patch -p0 < ../gcc-patch-libiberty-Makele.in.diff
> patch -p0 < ../gcc-patch-newdevices.diff > patch -p0 < ../gcc-patch-zz-atmega256x.diff > mkdir obj-avr > cd obj-avr
> ../congure --prex=$PREFIX --target=avr --enable-languages=c,c++ \
--disable-nls --disable-libssp –with-dwarf2 > make > make install
Nach dem \ kann man einfach Enter drücken und weiterschreiben – so kann der Befehl auf mehrere Zeilen aufgeteilt werden. Kann man aber auch ganz weglassen.
AVR Libc
Und schließlich noch die AVR libc:
> cd ~/Wild Thumper > bunzip2 -c avr-libc-1.4.5.tar.bz2 | tar xf ­> cd avr-libc-1.4.5
> ./congure --prex=$PREFIX --build=`./cong.guess` --host=avr
> make > make install
- 29 -
Achtung: bei –build=`./cong.guess` darauf achten auch den Gravis, auch
„accent grave“ genannt (à <-- den Strich da auf dem a! Neben der Backspace Taste – rechts oben auf der Tastatur, einmal mit Shift diese Taste drücken und danach die Leertaste) und kein normales Hochkomma oder Anführungszei­chen zu benutzen, sonst klappt es nicht.
Pfad setzen
Sie müssen jetzt dafür sorgen, dass das Verzeichnis /usr/local/avr/bin auch in der Pfad Variablen eingetragen ist – sonst kann man den avr-gcc nicht aus
der Konsole bzw. aus Makeles heraus aufrufen. Dazu müssen Sie den Pfad in die Datei /etc/prole bzw. /etc/environment o.ä. (variiert von Distribution zu
Distribution) eintragen – mit einem Doppelpunkt „:“ getrennt von den ande­ren schon vorhandenen Einträgen. In der Datei könnte das dann in etwa so aussehen:
PATH=”/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/avr/bin“
Jetzt in einer beliebigen Konsole „avr-gcc -–version“ eingeben wie weiter oben beschrieben – wenn das funktioniert, ist die Installation gelungen!
- 30 -
Manuelle Installation
Wenn Sie den Compiler lieber von Hand einrichten wollen oder die Installation mit dem Skript nicht klappt, können Sie nach den Anweisungen im folgenden Abschnitt vorgehen.
Die Beschreibung hier orientiert sich an diesem Artikel:
http://www.nongnu.org/avr-libc/user-manual/install_tools.html
der auch in der AVR Libc Dokumentation im PDF Format auf der CD zu nden
ist:
<CD-ROM-Laufwerk>:\Software\Documentation\avr-libc-user-manual-1.4.5.pdf
Wir fassen uns hier zwar sehr viel kürzer, spielen aber gleich noch ein paar wichtige Patches ein – ohne diese funktionieren einige Dinge nicht richtig.
Zunächst müssen wir uns ein Verzeichnis erstellen, in das wir alle Tools instal­lieren werden. Das sollte /usr/local/avr sein. Also in einer Konsole ALS ROOT folgendes eingeben:
> mkdir /usr/local/avr > mkdir /usr/local/avr/bin
Es muss nicht unbedingt dieses Verzeichnis sein. Wir legen dafür einfach die
Variable $PREFIX für dieses Verzeichnis an:
> PREFIX=/usr/local/avr > export PREFIX
Das muss nun noch unbedingt der PATH Variable hinzugefügt werden:
> PATH=$PATH:$PREFIX/bin > export PATH
- 31 -
Binutils für AVR
Nun müssen Sie den Quellcode der Binutils entpacken und ein paar Patches einspielen. Wir nehmen hier an, dass Sie alles ins Home Verzeichnis ~/Wild Thumper kopiert haben:
> cd ~/Wild Thumper > bunzip2 -c binutils-2.17.tar.bz2 | tar xf ­> cd binutils-2.17 > patch -p0 < ../binutils-patch-aa.diff > patch -p0 < ../binutils-patch-atmega256x.diff > patch -p0 < ../binutils-patch-coff-avr.diff > patch -p0 < ../binutils-patch-newdevices.diff > patch -p0 < ../binutils-patch-avr-size.diff > mkdir obj-avr
> cd obj-avr
Nun wird das congure Skript ausgeführt:
> ../congure --prex=$PREFIX --target=avr --disable-nls
Dieses Skript ermittelt, was auf Ihrem System verfügbar ist und erzeugt dem-
entsprechend passende Makeles. Jetzt können die Binutils übersetzt und
installiert werden:
> make > make install
Das kann je nach Rechenleistung Ihres Systems schon ein paar Minuten dau­ern – das gilt auch für die beiden nächsten Abschnitte – vor allem für den GCC!
Java 6
Der RobotLoader (Infos dazu s.u.) wurde für die Java Plattform entwickelt und ist unter Windows und Linux verwendbar (theoretisch auch andere Betriebsys­teme wie OS X, aber hier kann AREXX Engineering leider noch keinen ofziel­len Support leisten). Damit das funktioniert, ist es notwendig, ein aktuelles Java Runtime Environment (JRE) zu installieren. Oft haben Sie dies bereits auf dem Rechner, allerdings muss es mindestens Version 1.6 (= Java 6) sein! Falls Sie also noch kein JRE oder JDK installiert haben, müssen Sie zunächst das auf der CD mitgelieferte JRE 1.6 der Firma SUN Microsystems installieren, oder alternativ eine neuere Version von http://www.java.com oder http://java.sun.com downloaden.
- 32 -
Windows
Das JRE 1.6 befindet sich für Windows in folgendem Ordner:
<CD-ROM-Laufwerk>:\Software\Java\JRE6\Windows\
Unter Windows ist die Installation von Java sehr einfach - Sie müssen nur den Setup starten und den Anweisungen auf dem Bildschirm folgen - fertig. Den nächsten Abschnitt können Sie überspringen.
Linux
Unter Linux ist die Installation meistens auch relativ problemlos möglich, bei einigen Distributionen kann es aber ein wenig Handarbeit erfordern.
In diesem Ordner:
<CD-ROM-Laufwerk>:\Software\Java\JRE6\
finden Sie das JRE1.6 als RPM (SuSE, RedHat etc.) und als selbstext­rahierendes Archiv „.bin“. Unter Linux ist es besser wenn Sie zunächst im Paketmanager Ihrer jeweiligen distribution nach Java Paketen suchen (Suchbegriffe z.B. „java“, „sun“, „jre“, „java6“ ...) und dann diese distributions­eigenen Pakete verwenden und nicht die auf dieser CD-ROM! Achten Sie aber unbedingt darauf Java 6 (= 1.6) oder ggf. eine neuere Version zu instal­lieren und keine ältere Version!
Unter Ubuntu oder Debian funktioniert das RPM Archiv nicht direkt – hier müssen Sie die Paketmanager Ihrer jeweiligen Distribution bemühen, um an ein passendes Installationspaket zu kommen. Das RPM sollte bei vielen anderen Distributionen wie RedHat/Fedora und SuSE aber problemlos funkti­onieren. Falls nicht, bleibt noch der Weg das JRE aus dem selbstextrahieren­den Archiv (.bin) zu entpacken (z.B.nach /usr/lib/Java6) und dann manuell die Pfade zum JRE zu setzen (PATH undJAVA_HOME etc.).
Bitte beachten Sie hier auch die Installationsanweisungen von Sun – die ebenfalls im oben genannten Verzeichnis und auf der Java Website (s.o.) zu finden sind!
- 33 -
Ob Java korrekt installiert wurde, können Sie in einer Konsole überprüfen, indem Sie den Befehl „java -version“ ausführen. Es sollte in etwa folgende Ausgabe erscheinen:
java version “1.6.0” Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
Steht dort etwas ganz anderes, haben Sie entweder die falsche Version installiert, oder auf Ihrem System ist noch eine andere Java VM installiert.
Robot Loader
Der Robot Loader wurde entwickelt, um komfortabel neue Programme in den Robot Arm und alle Erweiterungsmodule laden zu können (sofern diese über einen Mikrokontroller mit kompatiblem Bootloader verfügen). Weiterhin sind ein paar nützliche Zusatzfunktionen integriert, wie z.B. ein einfaches Terminal­Programm.
Den Robot Loader selbst braucht man nicht zu installieren – das Programm kann einfach irgendwo in einen neuen Ordner auf die Festplatte kopiert wer-
den. Der Robot Loader bendet sich in einem Zip-Archiv auf der CD-ROM:
<CD-ROM-Laufwerk>:\Software\RobotLoader\RobotLoader.zip
Dieses müssen Sie nur irgendwo auf die Festplatte entpacken – z.B. in einen
neuen Ordner C:\Programme\RobotLoader (o.ä.). In diesem Ordner nden
Sie dann die Datei RobotLoader.exe und können sie mit einem Doppelklick starten.
Das eigentliche Robot Loader Programm liegt im Java Archive (JAR) Robot­Loader_lib.jar. Dieses können Sie alternativ auch von der Kommandozeile aus starten.
Unter Windows:
java -Djava.library.path=”.\lib” -jar RobotLoader_lib.jar
Linux:
java -Djava.library.path=”./lib” -jar RobotLoader_lib.jar
- 34 -
Diese lange -D Option ist notwendig, damit die JVM auch alle verwendeten Bi-
bliotheken nden kann. Unter Windows braucht man das aber nicht und kann
einfach die .exe Datei zum Starten verwenden und für Linux gibt es ein Shell Skript „RobotLoader. sh“. Das Skript muss evtl. zunächst noch ausführbar gemacht werden (chmod -x ./RobotLoader.sh). Danach kann man es in einer Konsole mit „./RobotLoader.sh“ starten.
Es empehlt sich, eine Verknüpfung auf dem Desktop oder im Startmenü
anzulegen, um den Robot Loader bequem starten zu können. Unter Windows geht das z.B. einfach indem man rechts auf die Datei RobotLoader.exe klickt und dann im Menü „Senden an“ auf „Desktop (Verknüpfung erstellen)“ klickt.
Wild Thumper Library, WT CONTROL Library und Beispielprogramme
Die Wild Thumper Library und die zugehörigen Beispielprogramme benden
sich in einem Zip-Archiv auf der CD:
<CD-ROM-Laufwerk>:\Software\Wild Thumper Examples\Wild Thumper Examples [PRO].zip
Sie können diese einfach direkt in ein Verzeichnis Ihrer Wahl auf die Festplatte entpacken. Am besten entpacken Sie die Beispielprogramme in einen Ordner auf einer Daten Partition. Oder in den „Eigene Dateien“ Ordner in einem Un­terordner „Wild Thumper\Examples\“ bzw. unter Linux ins Home Verzeichnis. Das steht Ihnen aber völlig frei.
Die einzelnen Beispielprogramme werden noch später im Softwarekapitel besprochen!
- 35 -
8. Programmer und Loader
Zum Laden eines beliebigen HEX Wild Thumper-Programms vom PC in den Wild Thumper verwenden wir den USB Programmier adapter und unsere RobotLoader Software.
Der im Lieferumfang enthaltene lose USB-Port-Adapter Sender/Empfänger (Transceiver) wird einerseits an einem USB-Port des Computers angeschlossen und andererseits an den Prog/UART- Port der Wild Thumper­Platine.
Der Ladevorgang eines Programms in den Wild Thumper überschreibt automatisch das bereits zuvor vorhandene Programm.
USB-Programmieradapter
RobotLoader-Software
- 36 -
8.1. Der RobotLoader
Wie bereits gesagt wurde der RobotLoader entwickelt um komfortabel neue Programme in den Wild Thumper und alle unsere Roboter übertragen (sofern diese über einen Mikrocontroller mit kompatiblem Bootloader verfügen).
RobotLoader
Mit dem neuen Programmier­adapter kan den Wild Thumper
drahtlos verbinden.
Weiterhin sind ein paar nützliche Zusatzfunktionen integriert, wie z.B. ein einfaches Terminalprogramm.
Robotloader Einstellungen
Den RobotLoader selbst braucht man nicht installieren – man kann das Pro­gramm einfach irgendwo in einen neuen Ordner auf die Festplatte kopieren..
- 37 -
8.2. Anschluss des USB Interfaces – Windows
Linux Anwender können beim nächsten Abschnitt weiterlesen!
Zur Installation des USB Interfaces gibt es mehrere Möglichkeiten. Die einfachste Möglichkeit ist es, den Treiber VOR dem ersten Anschließen des
Geräts zu installieren.
Auf der CD bendet sich ein Installationsprogramm für den Treiber.
Für 32 und 64 Bit Windows 7, XP, Vista, Server 2003 und 2000 Systeme:
<CD-ROM-Laufwerk>:\Software\USB_DRIVER\Win2k_XP\CDM_Setup.exe
Für alte Win98SE/Me Systeme gibt es so ein komfortables Programm leider nicht. Hier muss ein älterer Treiber von Hand installiert werden nachdem man das Gerät angeschlossen hat (s.u.).
Das CDM Installationsprogramm müssen Sie einfach nur ausführen – es gibt nur eine kurze Rückmeldung, sobald der Treiber installiert wurde, sonst passiert nichts weiter.
Dann können Sie das USB Interface an den PC anschließen. BITTE NOCH NICHT MIT DEM ROBOTER VERBINDEN! Einfach nur über das USB Kabel mit dem PC verbinden! Dabei sollten Sie darauf achten, die Platine des USB Interfaces nur am Rand oder am USB Stecker bzw. an der Kunststoffwanne des Programmiersteckers anzufassen (siehe Sicherheitshinweise zu statischen Entladungen)! Sie sollten besser keine der Bauteile auf der Platine, Lötstellen oder die Kontakte des Wannensteckers berühren, wenn nicht unbedingt nötig, um statische Entladungen zu vermeiden!
Der zuvor installierte Treiber wird nun automatisch für das Gerät verwendet, ohne dass Sie noch etwas zu tun brauchen. Es erscheinen bei Windows XP/2k kleine Sprechblasen unten über der Taskleiste – die letzte Meldung sollte in etwa „Die Hardware wurde installiert und kann nun verwendet werden!“ lauten!
Wenn Sie das USB Interface doch schon vor der Installation angeschlossen haben (oder Win98/Me benutzen) – auch nicht schlimm.
Dann werden Sie von Windows nach einem Treiber gefragt. Auch diese
Installationsvariante ist möglich, der Treiber bendet sich auch in entpackter
Form auf der CD!
- 38 -
Wenn dies bei Ihnen der Fall ist, erscheint (unter Windows) für gewöhnlich ein Dialog zum Installieren eines neuen Gerätetreibers. Sie müssen dem System
dann den Pfad angeben, unter dem es den Treiber nden kann. Bei Windows
2k/XP muss man erst auswählen, den Treiber manuell zu installieren und na-
türlich keinen Webdienst o.ä. zu suchen. Der Treiber bendet sich in
unserem Fall auf der CD in den oben genannten Verzeichnissen.
Also einfach das jeweilige Verzeichnis für Ihre Windows Version angeben und
evtl. noch ein paar Dateien, die das System nicht selbstständig ndet (sind
alle in den weiter unten genannten Verzeichnissen!)...
Bei Windows XP oder späteren Versionen folgt oft (hier normalerweise nicht, da die FTDI Treiber signiert sind) noch ein Hinweis das der Treiber nicht von Microsoft signiert/veriziert worden ist - das ist irrelevant und kann bedenken­los bestätigt werden.
Inbetriebnahme
Für 32 und 64 Bit Windows 7, XP, Vista, Server 2003 und 2000 Systeme:
<CD-ROM-Laufwerk>:\Software\USB_DRIVER\Win2k_XP\FTDI_CDM2\
Überprüfen, ob das Gerät richtig angeschlossen ist
Um zu überprüfen ob das Gerät korrekt installiert worden ist, kann man unter Windows XP, 2003 und 2000 neben dem Robot Loader auch den Gerätema­nager verwenden: Rechtsklick auf den Arbeitsplatz --> Eigenschaften --> Hardware --> Gerätemanager
- 39 -
ODER alternativ: Start --> Einstellungen --> Systemsteuerung --> Leistung und Wartung --> System --> Hardware --> Gerätemanager und dort in der Baumansicht unter “Anschlüsse (COM und LPT)” nachsehen ob ein “USB­Serial Port (COMX)” zu sehen ist - wobei das X für die Portnummer steht oder unter „USB-Controller“ nach einem „USB Serial Converter“ suchen!
Treiber später wieder Deinstallieren
Sollten Sie den Treiber jemals wieder deinstallieren wollen (Nein, das tun Sie jetzt bitte nicht - ist nur ein Hinweis falls Sie das jemals brauchen sollten): Wenn Sie das CDM Installationsprogramm verwendet haben, können Sie das direkt über Start-->Einstellungen--> Systemsteuerung-->Software tun. In der dortigen Liste nden Sie einen Eintrag des „FTDI USB Serial Converter Dri­vers“ – diesen auswählen und dort dann auf deinstallieren klicken!
Wenn Sie den Treiber von Hand installiert haben, können Sie das Programm “FTUNIN.exe” im Verzeichnis des jeweiligen USB Treibers für Ihr System aus­führen! Achtung: USB-->RS232 Adapter mit FTDI Chipsatz verwenden meist ebenfalls diesen Treiber!
- 40 -
8.3. Anschluss des USB Interfaces – Linux
Windows Anwender können diesen Abschnitt überspringen!
Bei Linux mit Kernel 2.4.20 oder höher ist der benötigte Treiber schon vorhan­den (zumindest für das kompatible Vorgängermodell FT232BM des Chips auf unserem USB Interface, dem FT232R), das Gerät wird automatisch erkannt und Sie brauchen nichts weiter zu tun. Falls es doch mal Probleme gibt, erhal­ten Sie Linux Treiber (und Support und auch evtl. neuere Treiber) direkt von FTDI:
http://www.ftdichip.com/
Unter Linux kann man, nachdem man das Gerät angeschlossen hat, mit:
cat /proc/tty/driver/usbserial
anzeigen lassen, ob der USB-Serial Port korrekt installiert worden ist. Mehr braucht man hier normalerweise nicht zu tun.
Allerdings sei noch darauf hingewiesen, dass der Robot Loader unter Win­dows die D2XX Treiber verwendet und dort die vollständigen USB Bezeich­nungen in der Portliste auftauchen (z.B. „USB0 | Robot USB Interface | serialNumber“). Unter Linux sind es stattdessen die virtuellen Comport Be­zeichnungen /dev/ttyUSB0, /dev/ttyUSB1 etc.. Es werden auch die normalen Comports angezeigt, als „dev/ttyS0“ usw.. Hier müssen Sie ausprobieren welcher Port der richtige ist!
Für Linux ist leider kein so einfach zu installierender Treiber verfügbar der bei­des bereitstellt. Von daher war es hier sinnvoller die Virtual Comport Treiber, die ohnehin schon im Kernel vorhanden sind, zu verwenden. Die D2XX Trei­ber würden bei der Installation auch noch einiges an Handarbeit erfordern...
Software Installation abschließen
Das war es auch schon mit der Installation der Software und des USB In­terfaces! Jetzt könnten Sie noch die wichtigsten Dateien von der CD auf die Festplatte kopieren (vor allem den kompletten Ordner „Documentation“ und, falls nicht schon geschehen, die Beispielprogramme). Dann müssen Sie nicht ständig die CD suchen, wenn Sie diese Dateien benötigen! Die Ordner auf der CD sind alle so benannt, dass sie eindeutig den jeweiligen Softwarepaketen bzw. der jew. Dokumentation zugeordnet werden können!
Sollten Sie die CD einmal “verlegen”, können Sie die wichtigsten Dateien wie dieses Handbuch, den Robot
Loader und die Beispielprogramme auch von der AREXX Homepage downloaden. Dort nden Sie auch
Links zu den anderen Softwarepaketen, die Sie benötigen.
- 41 -
8.4. USB Interface Testen und RobotLoader starten
Als nächstes testen wir den Programmupload über das USB Interface. Verbinden Sie bitte das USB Interface mit dem PC (Immer zuerst mit dem PC verbinden!) und danach über das 10-pol. Flachbandkabel mit dem “PROG/ UART” Anschluss des Wild Thumpers! (Der Wild Thumper MUSS ABGE­SCHALTET SEIN!). Es gibt bei WT zwei Prozessoren und zwei PROG/
UART Konnektoren! Jumper JP3 und JP4 mussen eingesteckt sein!
Das 10-polige Flachbandkabel ist mechanisch gegen Verpolung geschützt, sofern man es also nicht mit Gewalt behandelt, kann man es gar nicht verkehrt herum anschließen.
Starten Sie danach den RobotLoader. Je nachdem welche Sprache Sie gewählt haben, können die Menüs natürlich etwas anders beschriftet sein. Auf den Screenshots ist die englische Sprache dargestellt, über den Menüpunkt „Options->Preferences“ und dann bei „Language /Sprache“ kann man die Sprache anpassen (Englisch oder Deutsch) und danach auf OK klicken.
Nach Änderung der Sprache muss man den RobotLoader aber erst einmal neu starten bevor sich etwas ändert!
Port öffnen - Windows
Falls doch mehrere Ports vorhanden sind, können Sie den Port anhand des
Namens „Robot USB Interface“ identizieren (oder „FT232R USB UART“).
Dahinter wird noch die einprogrammierte Seriennummer angezeigt.
Sollten keine Ports angezeigt werden, können sie im Menü über „RobotLoader-->Refresh Portlist“ („RobotLoader-->Portliste aktualisieren“) die Portliste aktualisieren!
Jetzt können Sie den USB Port auswäh­len. Sofern kein anderer USB->Seriell Adapter mit FTDI Controller am PC angeschlossen ist, sehen sie in der Portliste nur einen einzigen Eintrag den Sie dann bitte auswählen.
ACHTUNG!
Mit dem neuen Programmieradapter und der APC-220 kann der Wild Thumper drahtlos kommunizieren.
- 42 -
8.5. Port öffnen – Linux
Unter Linux wird der USB-Seriell Adapter wie ein normaler Comport behan­delt. Die D2XX Treiberinstallation von FTDI unter Linux wäre nicht ganz so einfach und die normalen Virtual Comport (VCP) Treiber sind in aktuellen Linux Kerneln sowieso schon enthalten. Es funktioniert alles fast genauso wie unter Windows, nur muss man erst noch kurz ausprobieren welchen Namen das Wild Thumper-USB Interface hat und darauf achten, den USB Port nicht vom PC zu trennen solange die Verbindung noch offen ist (ansonsten muss der RobotLoader eventuell neu gestartet werden damit die Verbindung wieder klappt). Die Virtual Comports heissen unter Linux „/dev/ttyUSBx“, wobei x eine Nummer ist, z.B. „/dev/ttyUSB0“ oder „/dev/ttyUSB1“. Die normalen Comports heissen unter Linux „/dev/ttyS0“, „/dev/tty- S1“ etc.. Diese tauchen ebenfalls in der Portliste auf sofern vorhanden.
Der RobotLoader merkt sich – wenn es denn überhaupt mehrere Ports gibt
- welchen Port Sie zuletzt verwendet haben und selektiert diesen bei jedem Start des Programms automatisch (generell bleiben die meisten Einstellungen und Selektionen erhalten).
Nun können Sie auf den Button „Connect“ (=„Verbinden“) klicken! Der Ro­botLoader öffnet nun den Port und testet, ob die Kommunikation mit dem Bootloader auf dem Roboter funktioniert. Es sollte dann unten im schwarzen Feld „Status“ die Nachricht “Connected to: Wild Thumper ...” o.ä. zusammen mit einer Info über die aktuell gemessene Spannung erscheinen. Falls nicht, probieren Sie es nochmal! Wenn es dann immer noch nicht klappt, liegt ein Fehler vor! Schalten Sie in diesem Fall den Roboter am Besten sofort aus und fangen Sie an mit Fehlersuche!
- 43 -
8.6. SELBSTTEST
Sobald der Wild Thumper eingeschaltet wird leuchtet die Spannung-LED (1) Grün.
HDR 3 JP3
HDR 14
Wann kein program geladen ist blinkt LED 13. Mit ein program geladen leuchtet LED 13.
Main Prozessor programieren mit UART HDR 14 und Jumper JP4 eingesteckt Motor Prozessor programieren mit UART HDR 3 und Jumper JP3 eingesteckt
Die Status-LED 8, 9 und 10 blinkt beim Upload einer HEX Datei in Main Prozessor. Die Status-LED 6 und 7 blinkt beim Upload einer HEX Datei in Mo­tor Prozessor.
JP4
Sobald wir ein Programm starten blinken alle Status-LED auf wie ein Lauicht.
Wenn das geklappt hat, können Sie ein kleines Selbsttestprogramm ausführen, um die Funktionsfähigkeit aller Systeme des Roboters zu überprüfen. Klicken Sie dazu unten im Robot Loader Fenster auf den Button „Add“ („Hinzufügen“) und wählen Sie die Datei Wild Thumper Examples:
„WTExample_Selftest\WT_Main.hex“ UND „WT_Motor.hex“
im Beispielverzeichnis aus.
Für die Selbstest Starten Sie dan die WT Software sehe Kapitel 9. Die Software Anleitung steht in kapitel 10
Bei Drahtlose Funktion beide APC-220 Installieren!
ACHTUNG!
Beim Wild Thumper gibt es 2 Prozessoren zum Programmieren!
- 44 -
In dieser Datei bendet sich auch das Selbsttestprogramm im hexadezimalen
Format – daher werden solche Programmdateien auch „Hexdateien“ genannt. Die eben ausgewählte Datei taucht anschließend in der Liste auf. So können Sie später auch noch andere Hexdateien von Ihren eigenen Programmen und den Beispielprogrammen hinzufügen Der Robot Loader kann auch verschie­dene Kategorien von Hexdateien verwalten.
Damit lassen sich die Dateien übersichtlicher sortieren. Beispielsweise wenn man mehrere programmierbare Erweiterungsmodule auf dem Wild Thumper hat, oder verschiedene Varianten von Programmen verwendet. Die Liste wird immer automatisch beim Beenden des Programms gespeichert! Es werden hier natürlich nur die Pfade zu den Hexdateien gespeichert – nicht die Hex­dateien selbst. Wenn Sie an einem Programm arbeiten, brauchen Sie die Hexdatei nur einmal hinzuzufügen und auszuwählen, und können danach sofort nach jedem erneuten Übersetzen des Programms, das neue Programm in den Mikrocontroller laden (auch per Tastenkombination [STRG+D] oder [STRG+Y], um das Programm direkt nach dem Übertragen zu starten). Unter verschiedenen Betriebssystemem sind die Pfadnamen natürlich komplett an­ders. Sie können den Robot Loader trotzdem ohne weitere Änderungen direkt unter Windows und Linux verwenden, denn es gibt für Windows und Linux jeweils eine extra Liste.
Sie können nun entweder mit den anderen Beispielprogrammen (Examples) des Robot Arm weitermachen oder mit Ihrer eigenen Softwareprogrammie­rung anfangen.
- 45 -
9.0. Programmierung des WT
Nun kommen wir so langsam zur Programmierung des Roboters.
Einrichten des Quelltexteditors
Erstmal müssen wir uns eine kleine Entwicklungsumgebung einrichten. Der sog. „Quelltext“ (auch Quellcode oder engl. Sourcecode genannt) für unsere C Programme muss ja irgendwie in den Computer eingegeben werden!
Dazu werden wir natürlich auf gar keinen Fall Programme wie OpenOfce
oder Word verwenden! Vielleicht ist das nicht für jeden offensichtlich, deshalb wird es hier explizit betont. Damit kann man zwar gut Handbücher wie dieses hier schreiben, aber zum Programmieren ist das absolut ungeeignet. Quelltext ist reiner Text – ohne jegliche Formatierung. Schriftgrösse oder Farbe interes­sieren den Compiler nicht...
Für einen Menschen ist es natürlich übersichtlicher, wenn bestimmte Schlüs­selwörter oder Arten von Text automatisch farbig hervorgehoben werden. Das und noch einiges mehr bietet Programmers Notepad 2 (im folgenden kurz „PN2“ genannt), der Quelltexteditor, den wir verwenden werden (ACHTUNG: Unter Linux müssen Sie einen anderen Editor verwenden, der ähnliches wie PN2 bietet. Es sind für gewöhnlich mehrere bereits vorinstalliert! (z.B. kate, gedit, exmacs o.ä.)). Neben dem Hervorheben von Schlüsselwörtern und ähnlichem (sog. „Syntax Highlighting“) gibt es auch eine rudimentäre Projekt­verwaltung. Man kann so mehrere Quelltextdateien in Projekten organisieren und in einer Liste alle zu einem Projekt gehörenden Dateien anzeigen lassen. Weiterhin kann man aus PN2 komfortabel Programme wie den AVR-GCC aufrufen und so die Programme bequem über einen Menüeintrag übersetzen lassen. Der AVR-GCC ist ja normalerweise ein reines Kommandozeilenpro-
gramm ohne graphische Oberäche...
Neuere Versionen von Programmers Notepad nden Sie auf der
Projekthomepage: http://www.pnotepad.org/
Mit den neuesten Versionen von WINAVR ist es nicht mehr notwendig die Menüeinträge zu erstellen!
ACHTUNG: In diesem Abschnitt beschreiben wir nicht mehr, wie Sie in PN2 die Menüeinträge erstellen müssen! Mit den neuesten WINAVR Versionen sind diese bereits erstellt.
Bei Drahtlose Funktion beide APC-220 Installieren!
- 46 -
Siehe Seite xx „Beispielprojekt öffnen und kompilieren“ wie Sie ein Bei­spiel Programm öffnen können!
Wenn Sie ein Beispielprojekt geöffnet haben, sollte es im PN2 Schirm etwa so aussehen:
Datei „Wild Thumper Examples.ppg“.
Das ist eine Projektgruppe für PN2, die alle Beispielprogramme sowie die WT Library in die Projektliste („Projects“) lädt.
Links sind alle Beispielprojekte zu sehen, rechts der Quelltexteditor (mit dem angesprochenen Syntax Highlighting) und unten die Ausgabe der Tools (in diesem Fall die Ausgabe des Compilers).
Sie können noch viele andere Sachen in PN2 umstellen und es gibt viele nützliche Funktionen.
- 47 -
Beispielprojekt öffnen und kompilieren
Jetzt probieren wir gleich mal aus, ob auch alles richtig funktioniert und öffnen die Beispielprojekte:
Im Menü „File“ den Menüpunkt „Open Project(s)“ wählen.
Es erscheint ein normaler Dateiauswahl Dialog. Hier suchen Sie bitte den Ordner „WTExamples\“ im Ordner in dem Sie die Beispielprogramme gespeichert haben.
Öffnen Sie nun bitte die Datei „WTExamples .ppg“. Das ist eine Projekt­gruppe für PN2, die alle Beispielprogram­me sowie die WT Library in die Projektlis­te („Projects“) lädt.
So hat man immer alle Beispielprogramme bequem zur Verfügung und kann sich zu Beginn besser an diesen orientieren oder Funktionen in der WT Library nachschlagen etc..
Öffnen Sie nun das erste Beispielprogramm ganz oben in der Liste („WT_LED“ und die Datei „WT_LED“ selektieren), die am linken Rand des Programmfensters zu sehen ist! Dazu einfach doppelt auf „WT_LED.c“ klicken! Es erscheint ein Quelltexteditor in einem Fenster innerhalb des Pro­gramms.
Unten im Programmfenster von PN2 sollte ein Ausgabebereich zu sehen sein – falls nicht, müssen Sie diesen Bereich im Menü mit View->Output aktivie­ren ODER, falls er zu klein ist, durch „ziehen“ mit der Maus vergrößern (der Mauscursor verändert sich unten im Programmfenster am oberen Rand des grauen Bereichs in dem „Output“ steht in einem recht schmalen Bereich in einen Doppelpfeil...).
Sie können sich das Programm in dem gerade geöffneten Quelltexteditor schonmal kurz anschauen, allerdings müssen Sie hier noch nicht verstehen, was da genau gemacht wird. Das wird weiter unten noch genauer erklärt. Schon mal vorweg: Bei dem grün eingefärbten Text handelt es sich um Kom­mentare die nicht zum eigentlichen Programm gehören und nur der Beschrei­bung/Dokumentation dienen.
- 48 -
Darauf gehen wird später noch genauer ein (es gibt auch eine Version dieses Programms OHNE Kommentare – damit man mal sieht, wie kurz das Pro­gramm eigentlich ist. Die Kommentare blähen das schon ziemlich auf, sind aber zur Erklärung notwendig. Die unkommentierte Version ist auch praktisch, um den Code in eigene Programme zu kopieren!).
Zunächst wollen wir nur ausprobieren, ob das Übersetzen von Programmen korrekt funktioniert.
Es sollten oben im Tools Menü die beiden eben angelegten Menüeinträge (s. Abb.) vorhanden sein (oder die standardmäßig in PN vorhandenen [WinAVR] Einträge, das ist egal, es funktioniert normalerweise mit beiden).
Klicken Sie jetzt bitte auf „MAKE ALL“!
PN2 ruft nun die oben angesprochene „make_all.bat“ Batch Datei auf. Diese wiederum ruft das Programm „make“ auf. Mehr zu „make“ folgt noch später.
Das Beispielprogramm wird nun übersetzt (das nennt man „kompilieren“ vom englischen „to complile“ bzw. „Compiler“=„Übersetzer“) und eine Hexdatei erzeugt. Diese enthält das Programm in der für den Mikrocontroller übersetz­ten Form und kann dann später in diesen geladen und ausgeführt werden! Es werden während dem Kompilieren noch viele temporäre Dateien erzeugt (En­dungen wie „.o, .lss, .map, .sym, .elf, .dep“). Die brauchen sie alle nicht weiter zu beachten! Mit dem eben angelegten Tool „make clean“ kann man diese bequem löschen. Davon ist nur die Hexdatei für Sie interessant! Die Hexdatei wird beim Aufruf von „make clean“ übrigens nicht gelöscht.
- 49 -
Es sollte nach dem Aufruf des MAKE ALL Menüpunktes folgende Ausgabe erscheinen (hier jedoch stark gekürzt! Einiges kann natürlich etwas anders aussehen):
> „make.exe“ all
avr-gcc -mmcu=atmega644pa -Wall -gdwarf-2 -Os -std=gnu99 -funsigned­char -funsigned-bitelds -fpack-struct -fshort-enums -MD -MP -MT WildT­humperLib_Main.o -MF dep/WildThumperLib_Main.o.d -c ../WildThumper­Lib_Main.c
avr-gcc -mmcu=atmega644pa -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-
char -funsigned-bitelds -fpack-struct -fshort-enums -MD -MP -MT WT_Led.o
-MF dep/WT_Led.o.d -c ../WT_Led.c
avr-gcc -mmcu=atmega644pa -Wl,-Map=WT_LED.map WildThumperLib_ Main.o WT_Led.o -o WT_LED.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature WT_LED.elf WT_LED.hex
avr-objcopy -j .eeprom --set-section-ags=.eeprom=“alloc,load“ --change-
section-lma .eeprom=0 --no-change-warnings -O ihex WT_LED.elf WT_LED. eep || exit 0
avr-objdump -h -S WT_LED.elf > WT_LED.lss
AVR Memory Usage
---------------­Device: atmega644pa
Program: 5514 bytes (8.4% Full)
(.text + .data + .bootloader)
Data: 296 bytes (7.2% Full)
(.data + .bss + .noinit)
> Process Exit Code: 0 > Time Taken: 00:02
- 50 -
Wichtig ist ganz unten das „Process Exit Code: 0“. Das bedeutet, dass es beim Übersetzen keinen Fehler gegeben hat. Steht dort ein anderer Code, gibt es einen Fehler im Quellcode, den man korrigieren muss, bevor es klappt. Der Compiler gibt in diesem Fall weiter oben diverse Fehlermeldungen aus, in
denen man mehr Infos dazu ndet.
Aber bitte beachten Sie, dass „Process Exit Code: 0“ nicht auf ein komplett
fehlerfreies Programm hinweist! Denkfehler in Ihrem Programm ndet der
Compiler natürlich nicht und er kann auch nicht verhindern, dass der Roboter vor die Wand fährt ;-)
WICHTIG: Weiter oben können auch noch Warnungen u.ä. stehen – diese sind oft sehr sehr hilfreich und weisen fast immer auf wichtige Probleme hin! Daher sollten diese immer beseitigt werden! PN2 hebt Warnungen und Fehler
farbig hervor, so dass man diese leicht identizieren kann. Es wird auch die
Zeilennummer angegeben, die der Compiler bemängelt. Wenn man auf diese farbig hervorgehobene Meldung klickt, springt PN2 im entsprechenden Editor direkt zu der jew. Zeile.
Auch sehr hilfreich ist die Angabe zum Schluss „AVR Memory Usage“.
Size after: AVR Memory Usage
---------------­AVR Memory Usage
---------------­Device: atmega644pa
Program: 5514 bytes (8.4% Full)
(.text + .data + .bootloader)
Data: 296 bytes (7.2% Full)
(.data + .bss + .noinit)
Das bedeutet hier, beim Atmega644 Prozessor, dass unser Programm 5514 Bytes groß ist und 296 Bytes RAM für statische Variablen reserviert sind (dazu kommen noch die dynamischen Bereiche für Heap und Stack, das würde an dieser Stelle aber zu weit führen... halten Sie einfach immer mindestens ein paar hundert Bytes Speicher frei). Wir haben insgesamt 64KB (65536 Bytes) an Flash ROM und 4KB (4096 Bytes) an RAM. Von den 64KB sind 1024 Bytes mit dem Bootloader belegt – also können wir nur 62KB nutzen. Immer darauf achten, dass das Programm auch noch in den verfügbaren Speicher passt! (Der RobotLoader überträgt das Programm nicht wenn es zu groß ist!)
- 51 -
Bei dem Beispielprogramm oben sind also noch 58998 Bytes frei. Das eigentlich recht kurze Beispielprogramm WTExample_LED.c ist übrigens nur deshalb schon so groß, weil die wird! Also keine Sorge, es ist genug Platz für Ihre Programme vorhanden und so kleine Programme brauchen normalerweise nicht so viel Speicher. Die Funktionsbibliothek benötigt alleine nämlich schon mehrere KB vom Flashspeicher, nimmt Ihnen aber auch sehr viel Arbeit ab und daher werden Ihre eigenen Programme meist relativ klein sein im Vergleich zur Wild
Thumper
Das eben kompilierte Programm kann nun mit dem RobotLoader in den Roboter geladen werden.
Dazu fügen Sie die eben erzeugte Hexdatei in die Liste im RobotLoader mit „Add“ bzw. „Hinzufügen“ ein, selektieren diese und klicken auf den „Upload!“ Button, genau wie Sie es auch schon beim Selbsttestprogramm getan haben. Danach können Sie wieder auf den Terminal wechseln und sich die Ausgabe des Programms anschauen. Die Programmausführung muss dazu natürlich zunächst wieder gestartet werden, im Terminal ist es am bequemsten [STRG]+[S] auf der Tastatur zu drücken oder das Menü zu benutzen (oder einfach ein „s“ senden – nach einem Reset müssen Sie allerdings immer etwas warten, bis die Meldung „[READY]“ im Terminal erscheint!). Auch [STRG]+ [Y] ist eine sehr nützliche Tastenkombination, denn damit wird das aktuell selektierte Programm in den Robot Arm geladen und direkt danach gestartet! Man muss also nicht extra vom Terminal aus wieder auf den Karteireiter „Flash Loader“ wechseln oder das Menü benutzen.
BaseLibrary.
AUCHTUNG DER WILD THUMPER HAT ZWEI PROZESSOREN !
NICHT VERGESSEN! BEIDE PROZESSOREN PROGRAMMIEREN!!
WildThumperBaseLibrary mit eingebunden
Das Beispielprogramm ist sehr einfach und besteht nur aus einem kleinen
LED Lauicht und etwas Textausgabe.
Bei Drahtlose Funktion beide APC-220 Installieren!
-
- 52 -
9.1. Aktivieren der drahtlosen Steuerung in WT
Es gibt auch bereits vorab kompilierte Programme (HEX Files) auf der CD. Diese Hex-Dateien kann man mit dem RobotLoader direkt in den WT- Prozes­sor laden.
ACHTUNG ! DER WILD THUMPER HAT ZWEI PROZESSOREN ! Vergessen Sie Programjumpers JP3 und JP4 nicht die sind Absolut notwendig bei Programmieren!
Als Beispiel laden Sie die HEX-Datei für die Selbst Test in den Hauptprozessor (Wild_Thumper_Main.HEX) undMotorprozessor (Wild_Thumper_Motor.hex) JP3 und JP4 nicht vergessen!.
Starten sie die Wild Thumper Software aplication und sehe kapitel 10.
Dazu fügen Sie die eben erzeugten Hexdatei in die Liste im RobotLoader mit „Add“ bzw. „Hinzufügen“ ein, selektieren diese und klicken auf die „Upload!“­Taste, genau wie Sie es auch schon beim Selbsttestprogramm getan haben.
Danach können Sie wieder zum Terminal wechseln und sich die Ausgabe des Programms anschauen. Die Programmausführung muss dazu natürlich zunächst wieder gestartet werden, im Terminal ist es am bequemsten [STRG]+[S] auf der Tastatur zu drücken oder das Menü zu benutzen (oder einfach ein „s“ senden – nach einem Reset müssen Sie allerdings immer etwas warten, bis die Meldung „[READY]“ im Terminal erscheint!). Auch [STRG]+ [Y] ist eine sehr nützliche Tastenkombination, denn damit wird das aktuell selektierte Programm in den Wild Thumper geladen und direkt danach gestartet! Man muss also nicht extra vom Terminal aus wieder auf den Karteireiter „Flash Loader“ wechseln oder das Menü benutzen.
- 53 -
9.1. Installation der drahtlosen Steuerung
In Kapitel 10 wird die komplette Beschreibung der drahtlosen Steuerungsoftware dokumentiert. Vor der Anwendung müssen Sie diese Software auf Ihrem PC installieren.
Kopieren Sie die WT-Anwendung auf Ihre Festplatte oder installieren Sie die Software direkt von der CD.
Start der Anwendung
Falls Sie mit einer drahtlosen Kamera arbeiten wollen (Diese muss bereits Installiert sein auf Ihre PC!) sollten Sie diesen der Anwendung hinzufügen. Öffnen Sie dazu den Reiter Kamera und Selektieren Sie die Kamera von Ihre PC.
- 54 -
10. WT DRAHTLOSE STEUERUNG
Decoder
Encoder
Binnenkomende
data afhandelen
verwerken
10.1. Übersicht der drahtlosen Steuerung
Die Anwendung verfügt über zwei Verbindungen zur Außenwelt und zwar die serielle USB-Verbindung mit dem APC-220 Transceiver und die Verbin­dung zum Kamera-Modul. Die Anwendung selbst besteht aus verschie­denen Funktionen und eine Benutzerschnittstelle, die im nachfolgendem Blockschaltbild erläutert wird.
Protocol
USB
Protocol
Instellingen
Besturing van
de Wild
Gebruikers
Camera beelden
Camera
verbinding
Applicatie Wild Thumper
Weil die Anwendung aus verschiedenen Teilen aufgebaut wurde haben wir Reiterfunktionen zur Auswahl aufgebaut. Jeder Reiter umfasst eigene Funk­tionen, sodass diese für den Benutzer übersichtlich zugeordnet werden.
Vor dem Testen der drahtlosen Steuerung muss zuerst die zugehörige HEX-Datei mit dem RobotLoader in den Haupt­ prozessor übertragen werden (Siehe dazu Kapitel 9.1).
Außerdem müssen die beiden APC-220 Module eingesetzt werden.
1. St. auf der Hauptplatine des Wild Thumpers
1. St. auf dem Programmieradapter.
Zudem müssen Sie den Programmieradapter auf eine 5 volt Quelle anschließen.
- 55 -
Nachfolgende Reiter wurden vorbereitet:
Der Reiter Main:
Der Reiter ‘main’ umfasst folgende Funktionen:
Die Kommunikationsverbindung mit dem APC Dongle (USB)
Die Ansteuerung des Wild Thumpers
Die Darstellung der Messdaten (Stromstärke, Geschwindigkeit, usw..)
Der Reiter Test:
Dieser Reiter wurde zum testen aller Funktionen des Wild Thumpers. Folgende Tests wurden implementiert:
Jeder Motor kann einzeln angesteuert werden, wobei die Stromstärke
und die Geschwindigkeit des Motors dargestellt werden.
Alle LEDs können einzeln angesteuert werden.
Die I²C-Verbindung zwischen Hauptkontroller und Motorkontroller
kann getestet werden.
Die RF-Verbinding kann getestet werden.
Der Reiter Kamera:
Falls am PC eine drahtlose Kamera angeschlossen und auf dem WT installiert wurde können Sie diese vom Wild Thumper stammenden Kamerabilder mit dem „Kamera“-Reiter darstellen. Die Kamerabilder können in der Anwendung auch auf dem PC gespeichert werden. Auch kann man den Wild Thumper aus diesem Reiterbereich ansteuern und dazu die Kamerabilder heranziehen.
Der Reiter Settings:
Im Bereich des ‘Settings’-Reiter können Sie alle Einstellungen vornehmen. Es handelt sich dabei um folgenden Einstellungen:
Die Parameter für den APC-220
De Parameter für die Anwendung
Der Reiter Log:
Zum Rückblick auf die wichtigen Ereignissen wurde der Reiterbereich „LOG“
deniert, in dem die Log-Datei gelesen werden kann.
- 56 -
10.2. USB in Visual Basic
Die APC220 kann erst mit der Anwendung kommunizieren nachdem eine Ver­bindung aufgebaut worden ist. Dazu verwandeln wir die serielle UART-Verbin­dung des APC220 mit einem FTDI-Chip in eine USB-Verbindung. Der Vorteil dieses Chips liegt nun darin dass dieses neu kreierte „USB-Gerät“ als Gerät behandelt wird, das auf einem virtuellen COM-Port angeschlossen ist. Nach der Inbetriebnahme dieses seriellen Ports können wir die Port-Parameter auf einfachster Weise festlegen.
10.3. Die Steuerung des Wild Thumpers
Wie bereits im vorhergehenden Kapitel beschrieben kann man de Wild Thum­per aus den Reiterbereichen ‘Main’und ‘Kamera’ steuern. Zur Ansteuerung verfügt der Wild Thumper über folgendem Steuerpult:
Wie Sie im oben stehenden Bild sehen enthält das Steuerpult fünf Tasten und zwei Schieberegler. Mit den Tasten steuern wir die Richtung des Roboters. Die Schieberegler werden benötigt zur Einstellung der Geschwindigkeit und des Winkels für die Bewegung des Wild Thumpers.
- 57 -
10.5. Testfunktionen
Zum Testen des Wild Thumpers haben wir unter dem Reiter „Test“ ein Test­pult entworfen, das Tests für alle Funktionen und Teile des Roboters vorsieht. Nachfolgende Teile des Wild Thumpers können nun getestet werden.
Motortest:
Jeder Motor kann einzeln getestet werden, wobei das Testergebnis die Strom­stärke und Geschwindigkeit dieses Motors anzeigt. Sie können den Motor im Vorwärts oder Rückwärtsgang schalten und die Geschwindigkeit regeln.
LED-Test:
Alle LEDs können überprüft werden. Nach Ein- oder Abschalten eines LEDs wird dieser Auftrag mit dem WT-Protokoll zum Wild Thumper abgesandt, wo die betreffende LEDs anschließend angesteuert werden.
PID Regler:
Sie können die Verschiedene Funktionen von PID Regler Selbst Einstellen.
- 58 -
Sensortest:
Der Status mehrerer Sensoren wird im Reiterbereich „Test“ dargestellt, so dass Sie als Benutzer den Betrieb aller Sensoren leicht überprüfen können.
Kommunikationstest:
Es stehen zwei Kommunikationstests zur Verfügung: ein RF-Test und ein I²C- Test. Der RF-test testet die drahtlose Verbindung, wobei zunächst ein DatenPaket zur Generierung eines RF-Tests an den Wild Thumper abgesandt wird. Mit dem Paket wird der Roboter beauftragt anschließend zehn Datenpa­kete mit 100ms Intervall-Längen tu versenden. Sobald alle Bytes einwandfrei eingegangen sind wird der Test als bestanden registriert. Der I²C-Test wird gestartet indem das System per Funkverbindung das Kommando zum I²C-Test weiter reicht (Siehe Protokollbeschreibung). An­schließend testet der Roboter den I²C durch Übertragung einiger Bytes zum Motorkontroller und zum Ablesen einiger Bytes. Zum Abschluss wird ein I²C­Testbericht generiert und zur Darstellung zurückgesandt zur Anwendung.
- 59 -
10.6. Einstellungen für APPCON APC220
Aus der Anwendung heraus kann man die Einstellungen für das APC220­Modul anpassen beziehungsweise lesen. Dazu steht folgende Schnittstelle :zur Verfügung:
- 60 -
Zum Abschluss
Wir hoffen, dass unsere Roboter Ihnen auf den Weg in die Roboterwelt geholfen haben! Wie unsere japanischen Freunde glauben auch wir, dass Roboter nach den Computern und Mobiltelefonen die nächste technologische Revolution bilden werden. Diese Revolution wird auch neue wirtschaftliche Impulse auslösen. Leider haben Japan, andere asiatische Länder und auch die USA, Europa dabei längst überholt. Im Gegensatz zu Europa beginnt der Technikunterricht in Asien bereits in der Grundschule und ist ein wichtiger Bestandteil der Ausbildung.
Als Zielsetzung bei der Entwicklung unsere Roboter ASURO, YETI, Caterpillar und Robot Arm haben wir deshalb gewählt:
AUF ZU EINEM WISSENSCHAFT-
LICHEN GEIST...
- 61 -
APPENDIX
- 62 -
A. Schaltbild für die STROMVERSORGUNG
9-6-2011 14:42:15 f=0.72 O:\Techniek\Hein\Wild Thumper Final\PCBDesign\WT-Controlboard V1.1\Wild Thumper.sch (Sheet: 1/4)
A
B
S1
C
GRN-5V OK
LED1
2k2
R3
TP2TP1
U1
Vbat
GND
47u/16v
C9
+
+5V
C8
100n
GND
GND
IN OUT
L4940V5
100n
C7
+
C6
47u/16v
1N1004
D2
RED-ERROR+/-
LED2
3k3
R2
GND
100n
C5
+
GNDGND
C4
1000u/16v
3
1
2
Batteries
F2
F1
15A
15A
1
2J2341
JK2EDGRC-508-4
JK2EDGRC-508-4
2J33
4
GND
D
E
AREXX Engineering
R4
GND
C3
IN OUT
LM317BD2T
IC1
C2
C1
1N1004
D1
321
J1
R5
100n
LED3
ADJ
100n
+
GND-DC GND-DCGND-DC
1000u/16v
DC-JACK
1 2 3 4 5 6 7 8
A
B
C
- 63 -
1R5
2 Watt resistors
R6
470R
T1
BC847
GND-DC
1 2 3 4 5 6 7 8
D
E
1R5 0R68
R7 R8
JP1 JP2
1k5
270R
R1
B. Schaltbild für den WT MOTORSTEUERUNG
9-6-2011 14:41:55 f=0.72 O:\Techniek\Hein\Wild Thumper Final\PCBDesign\WT-Controlboard V1.1\Wild Thumper.sch (Sheet: 2/4)
A
MB-254-3PH
1
2J43
+5V
1
+5V
GND
SIG-MOTOR1
M
J6
JK2EDGRC-508
1
2
C13
220n
7
GND
OUT11OUT2
100n
C11
IN13IN2
GND
EF
VS
U3
Vbat
+5V
47k 47k
R69 R70
IC3A
1
TLE5206-2G
2
5
4
6
R11
27M2CLMD
3
5
5
CD40107
CD40107
IC3B
2
7
6
IC11B
MOTOR4-PWM
MOTOR4-FWD
MOTOR4-REV
EF-MOTOR4
I-MOTOR4
M
J5
JK2EDGRC-508
1
2
C12
220n
7
GND
OUT11OUT2
100n
C10
EF2IN13IN2
GND
VS
U2
Vbat
+5V
47k 47k
R63 R64
IC2A
1
TLE5206-2G
5
6
4
R10
27M2CLMD
3
5
3
CD40107
CD40107
IC2B
2
7
6
IC4A
MOTOR1-PWM
MOTOR1-FWD
MOTOR1-REV
EF-MOTOR1
I-MOTOR1
B
MB-254-3PH
2J73
GND
SIG-MOTOR2
MB-254-3PH
1
2J83
GND
+5V
SIG-MOTOR3
M
J10
JK2EDGRC-508
1
2
C23
220n
7
GND
OUT11OUT2
100n
C20
IN13IN2
EF
VS
U6
2
5
0R1
R13
10k
+++
C16
R17
10u/16v
6
39k
R15
7
C18
100n
6
GND
Vbat
+5V
47k 47k
R71 R72
6k2
3
5
CD40107
IC6A
IC6B
1
2
7
6
MOTOR5-PWM
MOTOR5-FWD
MOTOR5-REV
EF-MOTOR5
M
J9
JK2EDGRC-508
1
2
C22
220n
7
GND
OUT11OUT2
100n
C19
EF2IN13IN2
VS
U5
5
0R1
R12
10k
+++
C15
R16
10u/16v
2
1
39k
R14
C17
100n
6
GND
Vbat
+5V
47k 47k
R65 R66
6k2
3
5
CD40107
IC5A
IC5B
1
2
7
6
MOTOR2-PWM
MOTOR2-FWD
MOTOR2-REV
EF-MOTOR2
C
MB-254-3PH
J11
1
2
3
GND
+5V
SIG-MOTOR4
MB-254-3PH
J12
1
2
3
GND
+5V
SIG-MOTOR5
M
J14
JK2EDGRC-508
1
2
C32
220n
7
GND
OUT11OUT2
100n
GND
TLE5206-2G
4
R19
10k
C26
27M2CLMD
3
CD40107
IC7A
1
I-MOTOR5
C30
IN13IN2
EF
VS
U8
2
5
0R1
R21
R25
10u/16v
2
39k
R23
C28
100n
6
GND
Vbat
+5V
47k 47k
R73 R74
6k2
3
5
CD40107
IC9A
IC9B
1
2
7
6
WD
MOTOR6-PWM
MOTOR6-F
MOTOR6-REV
EF-MOTOR6
M
J13
JK2EDGRC-508
1
2
C31
220n
7
GND
OUT11OUT2
100n
GND
TLE5206-2G
4
R18
27M2CLMD
5
CD40107
IC4B
7
I-MOTOR2
C29
EF2IN13IN2
VS
U7
5
6
0R1
R20
GND
Vbat
10k
+5V
C25
R24
6k2
10u/16v
6
39k
R22
C27
100n
4
47k 47k
R67 R68
3
5
CD40107
IC8A
IC8B
1
2
7
6
MOTOR3-PWM
MOTOR3-FWD
MOTOR3-REV
EF-MOTOR3
D
J15
1
2
+5V
SIG-MOTOR6
GND
TLE5206-2G
4
0R1
R30
R28
10k
C34
10u/16v
27M2CLMD
6
5
CD40107
IC7B
39k
R32
7
C36
100n
I-MOTOR6
GND
TLE5206-2G
0R1
R29
R27
10k
C33
R33
10u/16v
27M2CLMD
2
3
CD40107
IC11A
39k
R31
1
C35
100n
I-MOTOR3
T
MOTOR1-FWD
MOTOR1-REV
MOTOR2-FWD
MOTOR2-REV
MOTOR3-FWD
MOTOR3-REV
MOTOR4-FWD
SR-STR
SR-DATA
SIG-MOTOR1
SIG-MOTOR2
SIG-MOTOR3
SIG-MOTOR4
SIG-MOTOR5
SR-CLK
MOTOR2-PWM
EF-MOTOR1
EF-MOTOR2
I-MOTOR1
30
33
32
31
RESET-MOTOR-UC
(PCINT6/ADC6)PA6
(PCINT7/ADC7)PA7
(PCINT5/ADC5)PA5
VCC
VCC
VCC
U4
5
17
1 2 3 4 5 6 7 8
38
+5V
C69 C70
A
MOTOR1-PWM
I-MOTOR2
I-MOTOR3
I-MOTOR4
I-MOTOR5
I-MOTOR6
43
42
37
36
35
34
3
2
1
44
(PCINT0/ADC0)PA0
(PCINT1/ADC1)PA1
(PCINT2/ADC2)PA2
(PCINT3/ADC3)PA3
(PCINT4/ADC4)PA4
(PCINT15/SCK)PB7
(PCINT14/MISO)PB6
(PCINT13/MOSI)PB5
(PCINT12/SS/OC0B)PB4
(PCINT11/AIN1/OC0A)PB3
GND28AREF
AVCC
RESET
4
29
27
R9
47k
+5V
100n
C14
100n
100n
I2C-IN
EF-MOTOR3
EF-MOTOR3
EF-MOTOR5
EF-MOTOR6
26
25
24
23
22
21
41
40
(PCINT21/TDI)PC5
(PCINT20/TDO)PC4
(PCINT19/TMS)PC3
(PCINT23/TOSC2)PC7
(PCINT22/TOSC1)PC6
(PCINT8/XCK0/T0)PB0
(PCINT9/T1/CLKO)PB1
(PCINT10/AIN0/INT2)PB2
8
12p
C21
GND
B
SIG-MOTOR6
MOTOR4-PWM
MOTOR5-PWM
MOTOR3-PWM
MOTOR6-PWM
I2C-SDA
I2C-SCL
TX-MOTOR-UC
20
(PCINT18/TCK)PC2
(PCINT17/SDA)PC1
XTAL1
RX-MOTOR-UC
19
16
15
14
13
12
11
10
9
(PCINT16/SCL)PC0
(PCINT25/TXD0)PD1
(PCINT24/RXD0)PD0
(PCINT31/OC2A)PD7
(PCINT29/OC1A)PD5
(PCINT30/OC2B/ICP)PD6
(PCINT27/TXD1/INT1)PD3
(PCINT26/RXD1/INT0)PD2
(PCINT28/XCK1/OC1B)PD4
GND
GND
GND6XTAL2
7
Q1
16Mhz
ATMEGA164PA
18
39
12p
C24
GND
GND
C
MOTOR4-REV
7QS9
Q14Q25Q36Q4
STR
IC10
1D2
SR-STR
10Q811Q712Q613Q514
QS*
CLK
OE
3
SR-DATA
SR-CLK
+5V
4094D
15
0R
R26
D
E
MB-254-3PH
3
GND
VDDVSS
VDDVSS
C37 C38 C39 C40 C41 C42 C43 C44 C45 C46 C47
AREXX Engineering
8 16
IC12P
IC11P
8 16
IC10P
GND VCC
4 8
IC9P
GND VCC
4 8
IC8P
GND
IC7P
GND VCC
4 8
IC6P
GND VCC
4 8
IC5P
IC4P
GND VCC
4 8
IC3P
100n 100n 100n 100n 100n 100n 100n 100n 100n 100n 100n
GND VCC
4 8
IC2P
GND
R34
6k2
+5V
2
10
RX
VCC
84
TX
GND
RESET
UART-2X5HDR
HDR3
3 4
5 6
1
7 8
9
0R/NP
R35
JP3
+5V
GND
6
10
2
4
8
INT
SCL
SDA
VCC
GND
GND
SDA
INT
VCC
SCL
I2C-2X5HDR/NP
HDR2
5
9
1
3
7
+5V
84
GND
NPNP
R39R38
GND
GND
+5V
4
2
6
6k2
VCC
GND
MOSI
84
RESET
SCK
MISO
HDR1
3
1
5
GRNGRNREDRED
LED7LED6LED5LED4
GND
2k2
2k2
2k2
2k2
MOTOR5-FWD
MOTOR5-REV
R36
R37
R40
R41
MOTOR6-FWD
MOTOR6-REV
7QS9
Q14Q25Q36Q4
STR
IC12
1D2
10Q811Q712Q613Q514
QS*
CLK
OE
3
4094D
15
1 2 3 4 5 6 7 8
E
- 64 -
C. Schaltbild für die WT-HAUPTPROZESSOR
9-6-2011 14:41:43 f=0.72 O:\Techniek\Hein\Wild Thumper Final\PCBDesign\WT-Controlboard V1.1\Wild Thumper.sch (Sheet: 3/4)
A
+5V
HDR5
1 2
3 4
5 6
7 8
9 10
ACS-R
ACS-RF
ACS-LF
ACS-L
IR-L
IR-H
GND
24
4n7
S2
3 1
C48
BUTTON BUTTON
Z-ACC/SPARE
Y-ACC/SPARE
X-ACC/SPARE
TEMPRATURE
LDR2
RESET-MAIN-UC
1234567
NP
HDR4
30
35
34
33
32
31
(PCINT6/ADC6)PA6
(PCINT7/ADC7)PA7
(PCINT3/ADC3)PA3
(PCINT4/ADC4)PA4
(PCINT5/ADC5)PA5
VCC
VCC
RESET
VCC
U11
4
5
38
17
R42
+5V
C71C72
100n100n
C49
100n
L1
+5V
1 2 3 4 5 6 7 8
11 12
BUMPER2
U9
+5V
LDR1
36
(PCINT2/ADC2)PA2
47k
GND
10uH
13 14
BUMPER1
LDR2
VS
3
470R
R43
BAT-VOLTAGE
8
37
(PCINT0/ADC0)PA0
(PCINT1/ADC1)PA1
GND
U10
GND
LDR1
OUT1GND
TSOP34836
2
C51
+
C50
IR-RECIEVER
MOSI
IR-L
SCK
MISO
1234567
NP
HDR6
3
2
1
44
(PCINT15/SCK)PB7
(PCINT14/MISO)PB6
(PCINT13/MOSI)PB5
(PCINT12/SS/OC0B)PB4
AVCC27GND
AREF
28
29
+
C73
2
VOUT
VSS
VIN
3
1
C52 C53
B
2k
1k
R44
R46
Vbat
100n
10u/16v
IR-H
IR-RECIEVER
43
42
(PCINT10/AIN0/INT2)PB2
(PCINT11/AIN1/OC0A)PB3
10u/16v
1u
MCP1541
GND
BUMPER2
BUMPER1
8
41
40
(PCINT8/XCK0/T0)PB0
(PCINT9/T1/CLKO)PB1
GND
R45
BAT-VOLTAGE
+5V
C54
TDI
ACS-L
ACS-LF
1234567
NP
HDR7
26
25
24
(PCINT21/TDI)PC5
(PCINT23/TOSC2)PC7
(PCINT22/TOSC1)PC6
100n
C55
5v1
D3
10k
RXD
VCC
M1
4
2
GND
100n
-APC RX
TCK
TDO
TMS
I2C-SDA
I2C-SCL
8
23
22
21
20
19
(PCINT18/TCK)PC2
(PCINT17/SDA)PC1
(PCINT20/TDO)PC4
(PCINT19/TMS)PC3
8
12p
C56
GND
TXD5AUX
3
TX-APC
I2C-INT
1234567
HDR8
16
(PCINT16/SCL)PC0
(PCINT31/OC2A)PD7
XTAL27XTAL1
Q2
16Mhz
C
123
HDR9
R50
100n
C60
LL4148/NP
LL4148/NP
D5
D4
+5V
100n
C58
+5V
8
4
U12
+VS
GND
VOUT
1
C59
TEMPRATURE
SET
EN
GND
APC220
7
6
1
SET-APC
RX-APC
ACS-R
ACS-RF
SET-APC
TX-MAIN-UC
TX-APC
8
NP
15
14
13
12
11
10
9
(PCINT25/TXD0)PD1
(PCINT29/OC1A)PD5
(PCINT30/OC2B/ICP)PD6
(PCINT27/TXD1/INT1)PD3
(PCINT26/RXD1/INT0)PD2
(PCINT28/XCK1/OC1B)PD4
GND
GND
6
39
18
12p
C57
GND
GND
2
15
U13
ST
VS14VS
GND
XOUT
LM35
10
12
100n
X-ACC/SPARE
GND
MOSI
SCK
MISO
RX-MAIN-UC
1D2
3
15
IC13
CLK
STR
Q1
Q2
Q3
4
5
6
7
(PCINT24/RXD0)PD0
R47
R48
R49
R51
1k1k1k1k1k
1k
GND
ATMEGA644PA
GND
D
E
NP
1k8/NP
R54
3k3/NP
GND
3
5
6
7
COM
COM
COM
COM
ADXL326/NP
ZOUT8YOUT
NPNPNP
C64C63C62
GND
Z-ACC/SPARE
Y-ACC/SPARE
+5V
2
10
RX
VCC
TX
GND
RESET
UART-2X5HDR
HDR14
3 4
5 6
1
7 8
9
0R/NP
R56
JP4
VDDVSS
8 16
+5V
GND
IC13P
0R
C61
100n
R53
OE
4094D
Q4
QS
QS*10Q8
Q7
Q6
Q5
9
11
12
13
14
R52
R55
1 2 3
HDR10
4 5
NP Vbat +5V
GND
ORG ORG RED REDGRN GRN
LED10 LED11 LED12LED13LED8 LED9
GND
6
2
8
10
4
INT
SCL
SDA
VCC
GND
GND
INT
VCC
SDA
SCL
I2C-2X5HDR
HDR12
1
3
5
7
9
GND
4k74k7
R58R57
GND
+5V
4
2
6
VCC
GND
MOSI
RESET
SCK
MISO
ISP-2X3HDR
HDR11
3
1
5
+5V
GND
10
7
6
2
VCC
GND
GND
RESET
TDI
TMS
TCK
VCC
TDO
JTAG-2X5HDR
HDR13
9
5
4 8
1
3
AREXX Engineering
+5V
100n
1 2 3 4 5 6 7 8
A
B
C
D
E
- 65 -
D. Schaltbild für die WT-Bumper (Front platine)
R59 R60 220 220
LED14 LED15 LED16 LED17
LD271 LD271 LD271 LD271
HDR15
1 2 3 4 5 6 7 8
9 10 11 12 13 14
C65
100n
LDR1 VT90N2
R61
3k3
LDR2
VT90N2
R62 3k3
C66
100n
S3
1 3
COMNCNO COM
BUMPER-SWITCH BUMPER-SWITCH
4n7 4n7
C67 C68
S4
2
2
NC
NO
- 66 -
13
E. Programmieradapter für den Wild Thumper
SET
AUX
RXD4TXD
EN
VCC
M1
5
2
VCC
Vtarget
R7
C7
100
100n
GND
TXDTXD
RXD
CBUS2
RXD
RTS
DSR
6
8
10
4
2
RX
RTS
DSR
GND
CBUS2
RI
DTR7TX
CBUS43VTARGET
HDR1
5
9
1
CBUS4
DTR
RI
GND
APC220
7
6
3
1
R8
100
DTR
VCC
GND
Vtarget
UART-FULL-HDR
T2
BC847
1K
R5
T1
BC847
3K9
R6
1K
R3
GND
R4
100K
CBUS0
CBUS1
CBUS2
CBUS3
CBUS023CBUS122CBUS213CBUS314CBUS4
+3V3
CBUS4
26
12
TEST
USBDM
USBDP
GND
3V3OUT
16
15
17
100n
25
C3
TXD
RXD
CTS
DTR
DSR
RTS
DCD
VCC
D1
C10
22uF
MBRS130LT3
+
C8
100n
2
GND
1
VOUT
REG1117
VIN
IC2
3
C5
GND
100n
Blue
VCC
CBUS0
CBUS1
Blue
LED_TX
LED_RX
R2
R1
470R
1
5
TXD
RXD
470R
VCCIO4RESET
VCC
IC1
20
C6
C4
22uF
+
RI
3
11
2
9
10RI6
RTS
CTS
DTR
DSR
DCD
OSCO28OSCI
27
19
100n
GND
GND
7
21
18
GND
GND
GND
FT232RL
GND
C9
22uF
J1
+
321
DC-JACK
L1
ferrite bead 600 ohm 100Mhz
C1 C2
10n 100n
123
4
USB
X1
- 67 -
- 68 -
- 69 -
Loading...