Arexx AAR User guide [de]

AREXX ARDUINO ROBOT
AAR
BAUANLEITUNG: AAR-04
© AREXX - DIE NIEDERLANDE V022014
- 1 -
Inhaltsverzeichnis
1. PRODUKTBESCHREIBUNG AAR 5
1.1 Die ARDUINO Roboterfamilie 5
1.2 Spezifikationen 5
1.3 Warnungen 5
2. ARDUINO ALLGEMEINE INFO 7
3. Der AREXX ARDUINO ROBOTER 12
3.1 LED Information des ARDUINO ROBOTERS 12
3.2 AAR Platinelayout 13
4. Erste Schritte auf dem Weg zur Installation 16
4.1 Download und Installation der Arduino Software 16
4.2 Die Programmiersprache Arduino 16
4.3 Installation eines USB-Treibers 16
4.4 Das Anschließen von Akkus 17
4.5 Programmierung des Roboters mit der Arduino Software. 18
4.6 Selektieren eines Arduino Programms 18
4.7 Festlegung der Com-Schnittstelle 19
4.8 Übertragung eines Programms zum Arduino Roboter 20
4.9
4.10 AAR Selbsttest 22
5. AAR Erweiterungsmodules
6. Hintergrundinformation zur H-Brücke 27
7. Odometrie-Systeme 30
8. Programmierung des Bootloaders 33
APPENDIX A. Teileliste 35 B. Hauptplatine Oberseite 37 C. Hauptplatine Unterseite 38 D. Schaltbild AAR 39 E. 3D Platine 40
Fehlersuche und -Beseitigung 21
AREXX und AAR sind registrierte Warenzeichen von AREXX Engineering - HOLLAND.
© Deutsche Übersetzung/German translation (2014): AREXX Engineering (NL). Diese Beschreibung ist urheberrechtlich geschützt. Der Inhalt darf auch nicht teilweise kopiert oder über-nommen werden ohne schriftlicher Zustimmung des europäischen Importeurs:
AREXX Engineering - Zwolle (NL).
Hersteller und Vertreiber sind nicht haftbar oder verantwortlich für die Folgen unsachgemäßer Behandlung, Einbaufehler und oder Bedienung dieses Produkts bei Mißachtung der Bauanleitung. Der Inhalt dieser Gebrauchsanleitung kann ohne vorheriger Ankündigung unsererseits geändert werden.
Technische Unterstützung beim Bauen
des Roboters:
WWW.AREXX.COM
Fabrikant: AREXX Engineering JAMA Oriental
© AREXX Holland und JAMA Taiwan © Deutsche Übersetzung: AREXX - Die Niederlande
Europäischer Importeur: AREXX Engineering ZWOLLE Die Niederlande
WWW.ROBOTERNETZ.DE
- 2 -
Impressum
©2014 AREXX Engineering
Nervistraat 16 8013 RS Zwolle The Netherlands
Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482
E-Mail: Info@arexx.nl
“AAR und AREXX” sind eingetragenes Warenzeichen von AREXX Engineering. Alle anderen Warenzeichen stehen im Besitz ihrer jeweiligen Eigentümer. Wir sind nicht verantwortlich für den Inhalt von externen Webseiten, auf die in dieser Anleitung verlinkt wird!
Hinweise zur beschränkten Garantie und Haftung
Die Gewährleistung von AREXX Engineering beschränkt sich auf Austausch oder Reparatur des Roboters und seines Zubehörs innerhalb der gesetzlichen Gewährleistungsfrist bei nachweislichen Produktionsfehlern, wie mechanischer Beschädigung und fehlender oder falscher Bestückung elektronischer Bauteile, ausgenommen aller über Steckverbinder/Soc­kel angeschlossenen Komponenten. Es besteht keine Haftbarkeit für Schäden, die unmittel­bar durch, oder in Folge der Anwendung des Roboters entstehen. Unberührt davon bleiben Ansprüche, die auf unabdingbaren gesetzlichen Vorschriften zur Produkthaftung beruhen. Sobald Sie irreversible Veränderungen (z.B. Anlöten von weiteren Bauteilen, Bohren von Löchern etc.) am Roboter oder seinem Zubehör vornehmen oder der Roboter Schaden in­folge von Nichtbeachtung dieser Anleitung nimmt, erlischt jeglicher Garantieanspruch!
Es kann nicht garantiert werden, dass die mitgelieferte Software individuellen Ansprüchen genügt oder komplett unterbrechungs und fehlerfrei arbeiten kann. Weiterhin ist die Soft­ware beliebig veränderbar und wird vom Anwender in das Gerät geladen. Daher trägt der Anwender das gesamte Risiko bezüglich der Qualität und der Leistungsfähigkeit des Gerätes inklusive aller Software. Bitte beachten Sie auch die entsprechenden Lizenzvereinbarungen auf der CD-ROM!
Diese Bedienungsanleitung ist urheberrechtlich geschützt. Der Inhalt darf ohne vorherige schriftliche Zustimmung des Herausgebers auch nicht teilweise kopiert oder übernommen
werden! Änderungen an Produktspezikationen und
Lieferumfang vorbehalten. Der Inhalt dieser Bedienungs­anleitung kann jederzeit ohne vorherige Ankündigung geändert werden.
Neue Versionen dieser Anleitung erhaltenSie kostenlos auf
http://www.arexx.com/
AREXX Engineering garantiert die Funktionalität der mitgelieferten Applikationsbeispiele
unter Einhaltung der in den technischen Daten spezizierten Bedingungen. Sollte sich der
Roboter oder die PC-Software darüber hinaus als fehlerhaft oder unzureichend erweisen, so übernimmt der Kunde alle entstehenden Kosten für Service, Reparatur oder Korrektur.
WICHTIG
Vor dem ersten Gebrauch dieses Robot Arms lesen Sie bitte zuerst die Gebrauchsanleitung aufmerksam durch! Sie erklärt die richtige Handhabung und informiert Sie über mögliche Gefahren. Zudem enthält sie wichtige Informationen, die nicht allen Benutzern bekannt sein dürften
- 3 -
Symbole
Im Handbuch werden folgende Symbole verwendet:
Das “Achtung!” Symbol weist auf besonders wichtige Ab­schnitte hin, die sorgfältig beachtet werden müssen. Wenn Sie hier Fehler machen, könnte dies ggf. zur Zerstörung des Roboters oder seines Zubehörs führen und sogar Ihre eigene oder die Gesundheit anderer gefährden!
Das “Information” Symbol weist auf Abschnitte hin, die nüt­zliche Tipps und Tricks oder Hintergrundinformationen en­thalten. Hier ist es nicht immer essentiell alles zu verstehen, aber meist sehr nützlich.
Sicherheitshinweise
- Prüfen Sie die Polung der Batterien.
- Halten Sie die Elektronik stets trocken. Wenn das Gerät einmal nass geworden ist, entfernen Sie sofort die Batterien oder die Stromversorgung
- Bei längerem Nichtgebrauch die Batterien entfernen bzw. die Stromversorgung trennen.
- Bevor Sie die Robot in Betrieb nehmen, prüfen Sie stets seinen Zustand sowie auch den der Kabel.
- Wenn Sie meinen, dass das Gerät nicht länger sicher betrieben werden kann, trennen Sie es sofort von der Stromversorgung und stellen Sie sicher, dass es nicht unabsichtlich benutzt werden kann.
- Befragen Sie einen Fachmann, wenn sie sich der Bedienung, Sicherheit oder Anschluss des Robot nicht sicher sind.
- Niemals de Robot in Räumlichkeiten oder unter ungünstigen Bedingungen betreiben.
- Die Robot besitzt hochempndliche Bauteile. Elektronische Bauteile sind sehr gegen statische Elektrizität empndlich. Fassen Sie die Platine nur an den Rändern an und
vermeiden Sie direkten Kontakt mit den Bauteilen auf der Platine.
Normaler Gebrauch
Dieses Produkt wurde als Experimentierplattform für alle an Robotik interessierten Personen entwickelt. Das Hauptziel besteht darin zu lernen, wie man das Gerät in C-Sprache programmieren kann. Das Gerät ist kein Spielzeug! Es eignet sich nicht für Kinder unter 14 Jahren.
Das Gerät ist nur für Innengebrauch bestimmt. Es darf weder feucht noch nass werden. Bitte achten Sie auch auf Kondenswasser, das sich bei einem Wechsel von einem kalten in einen warmen Raum entwickeln kann. Warten Sie eine Weile, bis sich das Gerät an die neuen Umgebungsbedingungen angepasst hat, bevor Sie es in Betrieb nehmen.
Jede andere Einsatzart als oben beschrieben kann zu Schäden und Risiken wie Kurzschluss, Brand, Stromschlag usw. führen
- 4 -
1. PRODUKTBESCHREIBUNG AAR
1.1 Die ARDUINO Roboterfamilie
Arduino ist eine „open source “-Plattform1 zur Entwicklung von Elek­tronikprototypen, die uns einen Mikrocontroller einschließlich aller peripheren Schnittstellen und benötigter Software zur Verfügung stellt.
Das Arduino-Konzept wurde entwickelt um auf möglichst einfacher Weise die Handhabung mit der modernen Elektronik zu erlernen, die man in der Roboterwelt, Softwaresteuerung und Sensoren verwen­det.
Als Nachfolger des ASURO-Roboters, der in der Programmiersprache C programmiert wird, ist jetzt der AREXX Arduino Roboter entstan­den, der seinem Vorgänger ASURO ziemlich stark ähnelt, sich aber aufgrund der „open source“-Programmiersprache Arduino wesentlich
einfacher programmieren lässt.
1 Open Source und quelloffen ist eine Palette von Lizenzen für Software, deren Quell text öffentlich zugänglich ist und durch die Lizenz Weiterentwicklungen fördert.
1.2. Spezikationen:
Motoren 2 Gleichstrommotoren (3 Volt) Prozessortyp ATmega328P-AU Programmiersprache ARDUINO Spannung 4 St. AAA Akku oder Batterie 4,8 - 5,5 Volt Max. Stromverbrauch Min. 10 mA Max. 600 mA Kommunikation USB-Stecker Erweiterungen die ASURO-Erweiterungen sind einsetzbar Höhe 40 mm Breite 120 mm
Tiefe 180 mm
- 5 -
1.3 Warnungen
1. Sie müssen dieses Handbuch gelesen haben ehe Sie auf einem der Anschlüssen eine Stromquelle anschließen! Fehlerhafte Anschlüsse können die Hardware schädigen.
2. Überprüfen Sie bitte sorgfältig die Anschlussbelegung! Arbeiten Sie bei der Verdrahtung des Systems sehr sorgfältig. Falsche Anschlüsse können Komponenten beschädigen. Beachten Sie die korrekte Polarität der Stromversorgungsanschlüsse. Eine Umpolung der Stromversorgungsanschlüsse kann die Hardware beschädigen.
3. Verwenden Sie keine Stromversorgungssysteme mit Spannungen, die über den spezifizierten Werten liegen! Benutzen Sie stabilisierte und gefilterte Stromversorgungssysteme um Spannungsspitzen zu vermeiden.
4. Die Leiterplatte bietet keinerlei Schutz gegen Wasser- oder Feuchtigkeitseinwirkung. Zur Aufbewahrung und Benutzung des Systems sind nur trockene Räume geeignet.
5. Vermeiden Sie Kurzschlüsse mit jeglichen Metallgegenständen und vermeiden Sie jegliche Überbelastung der Leiterplatte oder Anschlüssen durch Ziehen, Drücken oder Gewichten.
6. Vermeiden Sie elektrostatische Entladungen die Vorsichtsmaßnahmen, Warnungen und Dokumentation in Wikipedias Eintrag „Elektrostatische Entladung“).
2
(siehe dazu
1.4 Algemein
* Mit dem Öffnen der Plastikbeutel mit Komponenten und Teilen erlischt das Rückgaberecht. * Lese vor dem Bauen zuerst die Gebrauchsanleitung aufmerksam durch. * Sei vorsichtig beim Hantieren der Werkzeuge. * Baue nicht im Beisein kleiner Kinder. Die Kinder können sich verletzen an den Werkzeugen oder kleine Komponenten und Teile in den Mund stecken. * Achte auf die Polung der Batterien. * Sorge dafür, daß die Batterien und die Batteriehalter trocken bleiben. Falls der Roboter naß wird, entferne dann die Batterien und trockne alle Teile, so gut es geht. * Entferne die Batterien, wenn der Roboter mehr als eine Woche ruht.
2
Engl. electrostatic discharge, kurz ESD
- 6 -
2. ARDUINO ALLGEMEINE INFO
2.1. Wer oder was ist ARDUINO?
Arduino ist ein open source-Einplatinen Mikrocontroller, der ins­besondere Künstlern, Designern, Bastlern und anderen Interessier­ten den Zugang zur Programmierung und zu Mikrocontrollern und die Projektarbeit an interaktiven Objekten erleichtern soll.
Die Arduino-Plattform basiert auf einer Atmega 168 oder Atmega 328 Mikrocontroller von Atmel. Das System stellt dem Anwender sowohl digitale Ein- und Ausgänge als analoge Eingänge zur Verfü­gung. Damit kann das Arduino-System aus der Umgebung Signale empfangen und anschließend darauf reagieren.
Es werden verschiedene Arduino-Platinen auf dem markt angebo­ten, wie zum Beispiel Arduino Uno, Arduino LilyPad und Arduino
Mega 2560. Da jede Arduino-Platine individuell seine spezischen
Eigenschaften aufweist kann man für wohl jedes Projekt die ideale Arduino-Baugruppe auswählen.
Eingangssignale können zum Beispiel durch Schaltern, Lichtsenso­ren, Bewegungssensoren, Abstandssensoren und Temperatursenso­ren geliefert werden. Auch kann man Kommandos aus dem Inter­netbereich als Eingangssignale zuliefern. Ausgangssignale wiederum können Motoren, Lämpchen, Pumpen und Bildschirme ansteuern. Zur Programmierung verfügt das System über einem Compiler für eine standardisierte Programmiersprache und einem Bootloader. Die Programmiersprache basiert auf die Wiring-Programmiersprache, die mit C++ übereinstimmt.
Arduino wurde zunächst in 2005 als Projekt gestartet in Ivrea, Italien. Erklärtes Ziel war ursprünglich die Idee Studenten in Projektarbeiten zu unterstützen, wobei die Prototyp-Erstellung deutlich preiswerter sein sollte als bei vergleichbaren herkömmlichen Methoden.
Die Entwicklergruppe um Massimo Banzi und David Cuartielles benannten das Projekt nach einer historischen Gestalt mit dem namen ‘Arduin von Ivrea’. Das Wort ‘Arduino’ bedeutet ‘Kräftiger Freund’.
- 7 -
2.2 Mikrocontroller!
Anwendungen
Ein Mikrocontroller (manchmal in der verkürzten Schreibweise auch
μC, uC oder MCU genannt) ist ein kleiner Computer in einer
integrierten Einzelschaltung, der den Prozessorkern, Speicher und und einen Satz programmierbarer Ein-/Ausgangsanschlüsse enthält.
Programmspeicher und ein kleiner Datenspeicher, RAM (beziehungs­weise Random Access Memory) gehören oft ebenfalls zur Ausstatt­ung des Chips. Mikrocontroller werden in automatisch gesteuerten Anlagen und Systemen eingesetzt, wie zum Beispiel in der Motoren­steuerung, Implantaten, Fernsteuerungen, Bürosystemen, Spielzeug und Hochleistungswerkzeugen.
Die Gewichtseinsparung und Kosteneinsparung durch Integration des Mikroprozessors, Speicher und Ein-/Ausgangsanschlüsse auf ei­nem Einzelchip führt dazu dass die Digitalsteuerung für immer mehr Anwendungsbereiche noch wirtschaftlicher wird.
Ein typischer Haushalt in einer fortschrittlichen Wohngegend verfügt über vier allgemeinen Mikroprozessoren und drei Dutzend Mikrocon­troller Schaltungen. Ein Durchschnittstyp eines Mittelklassen-PKW
verwendet 30 oder mehr Mikrocontroller. Auch ndet man diese
Bauteile in vielen elektrischen Maschinen wie Waschmaschinen, Mikrowellenherden und Telefonen.
- 8 -
2.3. Leistungsverbrauch und Geschwindigkeit
Manche Mikrocontrollers arbeiten bei einer niedrigen Taktfrequenz von 4 kHz und weisen einen geringen Leistungsverbrauch im Milliwatt- oder Mikrowatt-Bereich auf. Sie können üblicherweise so­fort auf einem Knopfdruck oder Interrupt-Prozess aktiviert werden. Der Leistungsverbrauch liegt beim Warten (bei abgeschaltetem CPU­Clockgenerator sowie fast der kompletten Zusatzbeschaltung) im Nanowattbereich, was eine Langlebigkeit der Batterien sicherstellt. Andere Mikrocontroller werden eher im Hochleistungsbereich ver­wendet, wo man sie zum Beispiel als Digitale Signalprozessoren (DSP) mit höheren Taktraten und höherem Leistungsverbrauch ein­setzt.
Das Arduino-System arbeitet mit einem leistungsfähigen Atmel 328P-AU Single-Chip, der mit einem 8-bit Mikrocontroller (getaktet mit 20MHz) und 32K Bytes In-System programmierbarem Flash-
Speicher ausgestattet ist. Die Stromversorgung ist recht exibel im
Bereich von DC7-12V, gewählt worden, wodurch man auf stabilen und ordentlich abgesicherten Arbeitsbedingungen für den Chip und abgetrennten Leistungsleitungen bis 2A für die Motorenversorgung aufbauen kann.
2.4 Mikrocontroller Programme
Die Software für Mikrocontroller muss im auf dem Chip verfügba­ren Speicherplatz passen, denn ein externer Zusatzspeicher wäre zu kostspielig. Die Compiler und Assembler sind optimiert für die Umsetzung der Hochsprache und Assemblercodes in kompakte Ma­schinenbefehle, die in den Speicher des Mikrocontrollers abgelegt
werden.
- 9 -
3
Je nach Chiptyp kann das Programm in einem permanenten ROM
-Speicher, der nur während der Fertigung des Chips beschrieben werden kann, oder in einem immer wieder beschreibbaren Flash – oder mehrfach beschreibbarem ROM-Speicher gespeichert werden.
Ursprünglich hat man Mikrocontroller nur in Assemblersprache programmiert, aber zur Zeit sind auch verschiedene höheren Programmiersprachen für die Programmierung der Mikrocontroller verfügbar. Diese Sprachen sind entwe­der Spezialsprachen oder Varianten der allgemeinen Hochsprachen wie zum Beispiel C. Verkäufer der Mikrocontroller bieten oft gratis Werkzeuge an um die Implementierung der Hardware zu vereinfachen. Das Arduino-System stellt uns etwa 16 kBytes Flash-Speicher für die sogenannten Sketch-Programme zur Verfügung, die in C programmiert werden können.
2.5 Schnittstellenarchitektur
Mikrocontroller verfügen in der Regel über verschiedenen bis Dutzenden von frei programmierbaren Ein-/Ausgangspins (GPIO). Die GPIO-Anschlüsse sind mittels Softwarekommandos programmierbar als Eingangs- beziehungsweise Ausgangspins. Bei Programmierung als Eingangspins werden sie oft zum Ablesen der Sensoren oder externen Signalen verwendet. Programmiert man sie als Ausgangspins kann man sie zum Beispiel zur LED- oder Motoransteu­erung verwenden.
Eine Vielzahl an eingebetteten Systemen benötigt die Ablesemöglichkeit der Analogsignalen von den Sensoren. Zu diesem Zweck werden Analog/Digital­wandler (A/D-Wandler oder in Englisch ADC4) eingesetzt.
Da die Prozessoren speziell zur Verarbeitung von Digitaldaten, das heißt Nul­len und Einsen, entwickelt worden sind, können sie mit den Analogsignalen der Sensoren an sich nichts anfangen. Deshalb werden die A/D-Wandler ein­gesetzt um die eintreffenden Daten in eine für den Prozessor lesbaren Form zu verwandeln.
3
ROM = Read Only Memory (nur lesbarer Speicher)
4
Analog-to-digital converter (ADC)
- 10 -
Ein weniger üblichen Form der Datenverwandlung in Mikrocontroller ist die Di-
5
gital zu Analog-Umwandlung (im D/A-Wandler oder DAC
) womit der Prozes-
sor Analogsignale oder Spannungspegel erzeugen kann.
Zusätzlich zu den Konvertern verfügen einige eingebettete Systeme auch noch über Zeituhr-Schaltungen (Timers). Eins der gängigen Zeituhrtypen ist die Programmierbare Intervall-Zeituhr (PIT6) , der von einem beliebigen Anfangswert herabzählt nach Null. Nachdem es die Null erreicht hat sendet die Uhr einen Interrupt an den Prozessor als Signal, dass die eingestellte Zeit abgelaufen ist. Das ist eine nützliche Funktion für zum Beispiel Thermostaten, die regelmäßig die Umgebungstemperatur registrieren und prüfen sollen, um - falls notwendig – die Klimaanlage beziehungsweise Heizung ein zu schalten.
Das universelle asynchrone UART7-Transceivermodul erlaubt uns ohne allzu viel Prozessoraufwand Kommunikationsdaten über einer seriellen Leitung mit anderen Systemen aus zu tauschen (das heißt zu versenden und zu empfan­gen).
Spezielle integrierte Hardware im Chip ermöglicht oft auch die Kommunikation mit anderen Chips in Digitalformaten wie I2C und Serial Peripheral Interface (SPI).
Das Arduinosystem stellt uns 14 digitale I/O-Anschlüsse und 7 analoge I/O­Anschlüsse zur Verfügung (I/O- das heisst: Eingang/Ausgangs-).
5
Digital-to-analog converter (DAC)
6
Programmable Interval Timer (PIT)
7
Universal Asynchronous Receiver/Transmitter (UART)
- 11 -
3. AREXX ARDUINO ROBOT
Abb.: AAR PCB
3.1 ARDUINO ROBOTER LEDS
LED 1. Rot Liniensensor (Boden) LED 2. Blau Frei programmierbar LED 3. Rot USB-Daten LED 4. Grün USB-Daten LED 5. Blau Power LED LED 6. IR Infrarot LED für den linksseitigen Radsensor LED 7. NA entfällt (NA = Not Applicable) LED 8. Rot Motoranzeige Links Vorwärts LED 9. Rot Motoranzeige Links Rückwärts LED 10. Rot Motoranzeige Rechts Rückwärts LED 11. Rot Motoranzeige Rechts Vorwärts LED 12. Grün Sendesignal - TX serial LED 13. Rot Empfangssignal - RX serial LED 14. Blau Frei programmierbar LED 15. NA entfällt (NA = Not Applicable) LED 16. Rot Impuls für den rechtsseitiger Radsensor LED 17. Rot Impuls für den linksseitiger Radsensor LED 18. IR Infrarot LED für den rechtsseitigen Radsensor
LED 14 blinkt nur bei Betrieb eines Bootloaders LED 14 ist abgeschaltet falls kein Bootloader in Betrieb ist LED 14 blinkt kurz nach dem Einschalten, während ein Programm geladen wird.
- 12 -
3.2. ARDUINO ROBOT Leiterplattenlayout
Siehe Abbildungsnummern in Abb.: AAR PCB
1. Verbindungsstecker für die Batteriehalterung. (Beachten Sie beim Anschluss die korrekte Polarität!)
2. (Ein/Aus) Hauptschalter des Roboters.
3. Status-LED: Anzeige, das der Roboter von der Strom­ versorgung mit Leistung versorgt wird.
4. Falls Sie Akkus verwenden, können Sie diesen Doppel­ stecker benutzen um den Roboter mit der korrekten Betriebsspannung zu versorgen.
5. USB-Anschluss: um den Roboter mit Hilfe der Arduino- Software zu programmieren.
6. Reset-Taste: um den Roboter manuell zurück zu setzen.
7. ISP-Anschluss: erlaubt Ihnen ein anderes Bootloader­ Programm zu installieren.
8. LED 14: Ist für alle Programmierfunktionen frei ansteuer­ bar und wird blinken sobald der Bootloader (erneut) gestartet wird.
9. Linienfolgemodul: Dieses Modul ist frei programmierbar und ermöglicht den Roboter Linien zu folgen.
10. Linksseitiger Radsensor: dieses Modul generiert eine Impulsreihe, welche (als eine proportionale Funktion) die Raddrehung des linken Rades beschreibt.
11. Rechtsseitiger Radsensor: dieses Modul generiert eine Impulsreihe, welche (als eine proportionale Funktion) die Raddrehung des rechten Rades beschreibt.
12. Status LEDs für den linksseitigen Motor: Diese LEDs markieren die Vorwärts- beziehungsweise Rückwärts­ bewegung des betreffenden Motors.
13. Status LEDs für den rechtsseitigen Motor: Diese LEDs markieren die Vorwärts- beziehungsweise Rückwärts­ bewegung des betreffenden Motors.
14. Anschlussstecker für die Erweiterungsplatine, auf dem zum Beispiel ein drahtloses APC220-Modul oder ein „Snake Vision“ (Schlangenblick) Modul mit Arduino-Anschluss installiert werden kann.
15. Status LEDs für das RS232 Kommunikationsschnittstelle.
16. Status LED 2: frei programmierbare LED.
17. Status LEDs für die USB Datenschnittstelle.
18. Motor Steuerung
Auf der CD haben wir die AAR Selbsttestsoftware AAR_Selftest hinzugefügt. Mit diesem Programm können Sie alle Grundfunktionen des AAR-Roboters testen.
- 13 -
3.3 Hintergrundinformation zum AAR
Der AAR ist ein Arduino-Roboter, der speziell entworfen wurde zum
Erlernen der Arduino Software. An der Vorderseite bendet sich die
USB-Schnittstelle mit dem FT232 IC, welches das USB-Signal in ein RS232 UART-Signal verwandelt, das vom ATMEGA328P Prozessor (rechts vorne) verarbeitet werden kann.
Auf der gegenüberliegenden Seite wurde der EIN/AUS-Schalter mit dem JP3-Steckerplatz für den Stromversorgungsanschluss und den
Motortreiber IC2 montiert. An der Rückseite der Leiterplatte benden
sich die beiden Motoren und Radsensoren.
Die Radsensoren enthalten eine Lichtschleuse. Die Zahnräder sind mit vier Löchern ausgestattet, die in einem 90°-Muster angeordnet wur­den. Sobald das Licht des LEDs durch die Löcher den Sensor erreicht, meldet der Radsensor dem Prozessor für das betreffende Rad einen Impuls. Dabei wird LED16 beziehungsweise LED17 zur optischen An­zeige aktiviert. Auf dieser Weise kann man ziemlich genau die Dreh­geschwindigkeit der einzelnen Hinterräder messen.
An der Vorderseite benden sich die Steckplätze für die Erweite­rungsplatinen und an der Unterseite der Leiterplatte die Sensoren für den Linienfolger. Der Linienfolger enthält eine LED, der an zentraler Stelle den Boden ausleuchtet. Daneben wurden zwei Infrarotsenso-
ren angeordnet, die das reektierte Licht vom Boden registrieren.
Außerdem enthält die Leiterplatte noch die benötigten Bauteile (LEDs, Widerstände und Kondensatoren) um den Linienfolge zu einem funk­tionsfähigen Modul zu gestalten.
Der Roboter wurde ausgestattet mit einer Arduino-Leiterplatte, die mit der Arduino Duemilanove Platine verglichen werden kann. Als Systemherz des Arduino-Roboters gilt der ATMEGA328P. Dieser Mik­rocontroller verfügt über 14 digitale Ein- und Ausgängen, wobei 6 als PulsBreitenModulierten (PBM-) Ausgänge verwendbar sind. Außerdem verfügt der Roboter über 6 Analogeingängen, einem 16MHz Kristal­loszillator und einem USB-Anschluss zur Programmierung und Steu­erung. Außerdem gibt es noch einen ISP-Steckverbinder, mit dem die mehr erfahrenen Hobbyisten selbst einen Bootloader programmieren
können.
Der Roboter arbeitet mit einer Bordspannung von 5V und ist eventuell auch zufrieden mit der USB-Spannungsquelle, was beim testen und programmieren einige Handgriffe einspart.
- 14 -
Ausgesprochen nützlich sind in diesem Roboterkonzept die Steckplätze, auf denen Sie die eigenen oder die AREXX-Erweite­rungsplatinen aus der ASURO-Reihe platzieren können
3.4 HINTERGRUNDINFO ZUR ARDUINO SOFTWARE
Die Arduino Software gehört zur Open Source-Kategorie und ist deshalb für jeden verfügbar. Deshalb sind auch die Quellcodes der Programmierumgebung frei verfügbar.
Die Arduino Programmierumgebung verfügt über einem Texteditor, einem Meldefenster und einer Textkonsole. Die Programmierumge­bung kann direkt mit dem AAR kommunizieren und auf einfachster Weise Programme in den Prozessor zu übertragen. In Arduino geschriebenen Programme werden „Sketches“ (in Deutsch: „Skizzen“) genannt. Der Quellcode wird mit dem Texteditor geschrieben. Die Sketch-Datei wird mit der Extension „.ino“ auf der Festplatte des PCs gespeichert.
Im Meldefenster erscheint die Mitteilung dass die Datei gespeichert wird und eventuell eine Meldung überetwaigen Fehler im Quellcode. Rechts unten im Bildschirmfenster wird das aktuelle Arduino-Board und die seriellen Schnittstelle dargestellt .
Arduino verfügt über Bibliotheken („Libraries“) mit extra Funkti­onen. Eine Bibliothek („Library“) ist ein Paket mit verschiedenen zusammengesetzten Funktionen, die nun nicht mehr wiederholt neu geschrieben werden müssen. Diese Funktionen können in Arduino einfach aufgerufen werden.
Man kann ein Arduino-Programm in drei Teilen gliedern: Struktur,
variable beziehungsweise konstante Denitionen und Funktionen.
Eine Arduino-Struktur besteht aus einem Setup und einer Schleife (die „Loop“-Funktion). Der Setup ist zuständig für die Initialisierung der Variablen, Pin-Einstellungen („Pin-Modes“) und Bibliotheken („Libraries“).
Die Schleife („Loop“) wird ständig wiederholt, sodass das Programm
immer wieder reagieren kann. „Variable“-Denitionen werden zur
Datenspeicherung benötigt, während Konstanten zum Beispiel verwendet werden um einen Pin als Ein- beziehungsweise Ausgang
zu denieren und dafür zu sorgen, dass einem Pin eine Spannung
zugeordnet wird.
- 15 -
4. Erste Schritte auf dem Weg zur Installation
4.1 Download und Installation der Arduino Software
Installieren Sie bitte zuerst die Erstversion der Arduino Software von der CD, da wir dann sicher sind, dass diese Version richtig funktio­niert. Später können Sie auch die Arduino Webseite besuchen und von dort die aktuelleren Versionen abrufen.
WICHTIG:
Es ist möglich dass manche ARDUINO-Softwareversionen mit diver­sen Versionen der Applikationssoftware Schwierigkeiten bereiten. Manchmal muss man auch nach der Aktualisierung der ARDUINO Software Ihre Applikationsprogramme bei Bedarf (insbesondere bei Fehlfunktionen) nacharbeiten!
4.2 Die Programmiersprache Arduino
Der Syntax der Programmiersprache Arduino wird in der ofziellen
Arduino-Webseite dokumentiert. Vertiefen Sie bitte Ihre Sprachken­ntnisse dieser Programmiersprache soweit Sie diese benötigen.
4.3 Installation eines USB-Treibers
Wenn Sie die Arduino-Platine erstmalig mit dem PC verbinden sollte Windows den Installationsprozess für den Treiber starten. Auf Win­dows Vista und aktuelleren Windowsinstallationen wird der Treiber normalerweise automatisch aus dem Netz geladen und installiert.
Selektieren Sie dann bitte die serielle Schnittstelle für die Arduino­Platine im Menü Tools > Serial Port. In der Regel bietet das System COM3 oder höher an. COM1 und COM2 sind normalerweise für in
der Hardware denierten serielle Ports reserviert. Um das herauszu­nden können Sie das Arduino System abkoppeln und das besagte
Menü nochmals eröffnen. Der nun neu hinzugefügte Eintrag ist dann vermutlich der korrekte Port. Schließen Sie die Platine wieder an und selektieren Sie dann diesen seriellen Port
- 16 -
4.4 Das Anschließen von Akkus
Der Roboter wurde dimensioniert für eine Stromversorgung aus einem Batteriebehälter für vier 1,5V Batterien. Falls Sie stattdessen auadbare Akkus verwenden, sollte die Drahtbrücke JP4 für die Ver­wendung von Akkus durchverbunden werden. (siehe Abb. 1 Nummer 4).
ACHTUNG!
Sobald die Drahtbrücke JP4 platziert wird, geht der Schutz gegen fehlerhaften Polarität der Stromversorgung verloren. Fehlerhafte
AnschlüssekanndanndenRoboterunwiderruichbeschädigen.
Schließen Sie den Batteriebehälter an sowie in der Abbildung dokumentiert (siehe Abb.. 2)
Abb. 2: Anschluss des Batterie­behälters
Schalten Sie nun den Roboter ein mit dem Schalter. Der neben dem
Schalter platzierten LED5 wird jetzt aueuchten.
- 17 -
4.5 Programmierung des Roboters mit der Arduino Software.
Schließen Sie den Roboter mit einem USB-Kabel auf dem PC an. Falls der Roboter auf dem USB-Port angeschlossen ist, benötigt Ar­duino nicht unbedingt eine Batteriespannung. Der USB-Anschluss des
PCs übernimmt dann die Funktion der Stromversorgung.
ACHTUNG:
Der Roboter ist immer eingeschaltet sobald dieser auf dem PC angeschlossen ist, der Schalter und LED5 sind nur bei Batteriebetrieb aktiv.
Öffnen Sie jetzt die Arduino-Software (siehe Abb. 3a).
Abb. 3a Arduino Software Abb. 3b Öffnen des Blink-Programms
4.6 Selektieren eines Arduino Programms
Als einfaches Beispiel laden wir zuerst das Programm „blink“ in den Roboter, das dafür sorgt, dass LED1 anfängt zu blinken.
Klicken Sie dazu in der Arduino Software auf File>Examples>1. Basics>Blink (siehe Abb. 3b), sodass nachfolgende Informationen auf
dem Bildschirm erscheinen (Abb. 4a).
- 18 -
Abb. 4a) Programm Blink Abb. 4b) Board Festlegen (Selektieren)
Wir müssen jetzt den korrekten Arduino-Platinentyp festlegen.
Klicken Sie dazu auf Tools>Board> Arduino Duemilanove or11 Nano w/Atmega328 (siehe Abb. 4b)
4.7 Festlegung der COM-Schnittstelle
Der nächste Schritt legt die korrekten COM-Schnittstelle in der Arduino-Software fest. Die richtige COM-Schnittstelle (COM-Port) für den Anschluss des Roboters ist normale weise höher dan COM 3. Zur Festlegung der COM-Schnittstelle folgen Sie die Menuwahl: Tools>Serial Port>COM x.
(Siehe Abb. 5)
Abb. 5 Festlegung des Com-Ports
11
Englischer Ausdruck für: „oder“
- 19 -
4.8 Übertragung eines Programms zum Arduino Roboter
Klicken Sie anschließend auf die mit einem roten Pfeil markierte Taste (oder im Menu auf „File>Uploading to I/O board“) um dieses Programm an den angeschlossenen Arduino Roboter zu übertragen (siehe Abb. 6a).
Im Statusbalken meldet die Software jetzt dass das System das Programm compiliert und anschließend einen Upload startet.
Afb. 6a) Übertragung eines Afb. 7) „Done uploading“ ­Programms zum Arduino Roboter Meldung: „Upload­(Upload-Vorgang). Vorgang beendet“
Jetzt können Sie den Roboter vom PC abkoppeln indem Sie das USB­Kabel entfernen, die Batteriespannung anschließen und den Roboter
starten.
Für weitere Informationen und Downloads laden wir
Sie ein die Foren zu besuchen auf den Webseiten:
www.arexx.com --> Forum
www.roboternetz.de --> Forum
- 20 -
4.9 FEHLERSUCHE UND -BESEITIGUNG
ZUALLERERST sollten Sie immer prüfen ob der Roboter genug
Leistung aus dem USB-Anschluss erhält. Das können Sie leicht testen indem Sie die Batterien entfernen und Brücke JP4 schließen.
Dann sollte die Power LED aufleuchten
PROBLEM; Keine Verbindung zum AAR Roboter.
Prüfen Sie ob die Daten LEDs (LED 3 und 4) auf dem Roboter kurz blinken wenn Sie das USB-Kabel mit dem Roboter verbinden.
Prüfen Sie im Windows Gerätemanager ob der Roboter mit dem PC verbunden ist.
Abb. 6c)
Windows Gerätemanager
(Niederländische Version des WIN7)
Normalerweise wird der Roboter FTDI port als “USB SERIAL PORT” unter „Ports“ angezeigt.
Prüfen Sie bitte ob der korrekte FTDI Treiber installiert worden ist. Ein falscher Treiber dürfte der Hauptgrund für Probleme bilden. Laden Sie den aktuellsten FTDI Treiber aus dem Internet und installieren Sie diesen auf Ihrem PC.
PROBLEM; Sie können keine .INO-Datei zum Roboter übertragen.
Prüfen Sie bitte ob Sie den korrekten COM-Port gewählt haben. Dieser soll anders heißen als COM1 beziehungsweise COM3.
Prüfen Sie ob Sie den korrekten Arduino Boardtyp mit dem korrekten Prozessortyp (Atmega328) gewählt haben.
Überprüfen Sie ob Sie in ihrer Sketch-Datei alle benötigten Bibliotheken (Englisch: „Libraries“) installiert haben. Siehe dazu den Menüeintrag “sketch-->Library --> (sehe seite 22).
- 21 -
4.10 AAR ARDUINO SELBSTEST (SELFTEST)
Öffnen Sie bitte auf der CD das AAR_selftest program1 und über­tragen Sie die .ino-Datei in den AAR-Roboter. Aktivieren Sie den Schalter, der mit einem roten Pfeil markiert wurde (oder folgen Sie die Menüstruktur über „File>Uploading to I/O board“) um die sele­ktierte Programmdatei in den angeschlossenen Arduino Roboter zu transferieren (Siehe Abb. 7).
Laden der Bibliotheken:
Menüeintrag “Sketch”--> “Library” --> SoftPWM und TimerOne von der CD (Examples).
Fig.6d) libraries
Open libraries (Aus holländisch Version)
Diese Bibliotheken sind wichtig für Selbsttest!
serieller monitor
Abb. 7 (Upload) Softwaretransfer Abb. 8 Serieller Monitor
Öffnen Sie den seriellen Monitor wie in Abb. 8 dargestellt wird
Lassen Sie die USB-Kabelverbindung zum Roboter unverändert angeschlossen! Sorgen Sie dafür das die Batterien / Akkus instal­liert worden sind und diese vollgeladen sind. Schalten Sie den Roboter mit dem „Power“-Schalter ein. Starten Sie den ersten Test und folgen Sie die Testschritte auf dem seriellen Monitor. Monitor muss auf neue Regel stehn und
Vergessen Sie die Bibliotheken nicht!
- 22 -
5. ARDUINO ROBOT ERWEITERUNGSMODULE (EXTENSION KITS)
5.1 ASURO Erweiterungsmodule für den AAR Roboter.
Der AREXX Arduino Roboter verfügt über verschiedene Anschlüsse für Erweiterungsmodule. Die AAR-Anschlüsse sind Pin-kompatibel mit dem AREXX ASURO Roboter (Ein Roboterbausatz, der in C program­miert wird). Das bedeutet, dass Sie alle AREXX ASURO Bausätze auch für diesen Arduino Roboter verwenden können.
Auf dem CD stellen wir auch einige Arduino Beispielprogramme zur Verfügung, sodass Sie sofort mit den Erweiterungsbausätzen loslegen können. Der ASURO Roboter verfügt auch über einem allgemeinen Experimentalbausatz (ARX-EXP2) der auch für ihre, eigene Arduino­Module verwendbar ist.
Weiter unten dokumentieren das PIN-Layout für den Anschluss des AAR Erweiterungsbausatzes.Es betrifft die Anschlussstecker SV8, SV9
und SV10 auf der Leiterplatte.
SV1
SV8, SV9 and SV10 SV2
1. D8
2. D4
3. A3
4. GND
5. VCC
6. A2
7. TXD
8. RXD
1. SCK/PB5
2. SCL/ ADC5/PC5
3. WS_RIGHT/INT0/PD2
4. RGND
5. PWM1_L/AIN0/OC0A/PD6
6. MOSI/OSC2A/PB3
7. MISO/PB4
8. SDA/ ADC4/PC4
ARX-EXP2
AREXX EXPERIMENT BOARD
1. SET
2. AUX
3. TXD
4. RXD
5. EN
6. VCC
7. GND
Abb. 9. AAR Erweiterungs Konnektoren
Rote Punkt ist 1.
- 23 -
5.2ASUROErweiterungsbausatzkongurationen.
ARX-ULT10 AREXX ULTRA SOUND KIT (Ultraschallmodul)
Benutzen Sie bitte das Arduino Beispielprogramm AAR_ULTRA,
das sich auf dem CD bendet.
Mit diesem Beispielprogramm wird sich der Roboter rückwärts bewegen, sobald es einen Gegenstand detektiert.
ARX-SNK20 AREXX SNAKE VISION (PYRO) KIT (Schlangenblicksatz)
Benutzen Sie bitte das Arduino Beispielprogramm AAR_SNAKE,
das sich auf dem CD bendet.
Mit diesem Beispielprogramm wird der Roboter ein warmes Objekt folgen.
ARX-DSP30 AREXX DISPLAY KIT (Anzeigesatz)
Benutzen Sie bitte das Arduino Beispielprogramm AAR_DISPLAY,
das sich auf dem CD bendet.
Mit diesem Beispielprogramm können Sie Texte auf der Anzeige darstellen. Die Tasten sind frei programmierbar.
- 24 -
ARX-MNSP55 AREXX MINE SWEEPER KIT
(Minenräumersatz)
Benutzen Sie bitte das Arduino Beispielprogramm AAR_MINE,
das sich auf dem CD bendet.
Mit diesem Beispielprogramm kann der Roboter Metalle detektieren.
ARX-APC220 AREXX WIRELESS KIT (Drahtlos-Satz)
Mit dem AREXX ARX-APC-220
RP6v2 USB Programmierer und den APC-220
Satz können Sie mit PC den AAR drahtlos steuern.
Sehe Ordner Examples AAR_APC220 auf CD.
Benutzen Sie bitte das Arduino Beispielprogramm AAR_INO.SRC, das sich
auf dem CD bendet.
Sie benötigen dabei ebenfalls die Visual-Basic Applikationssoftware auf dem PC (AAR_VB_Software).
Kurze schrittweise Arbeitsfolge:
- Verbinden Sie den RP6v2 USB Programmierer und den APC-220 mit dem PC.
- Verbinden Sie den zweiten APC mit dem AAR (mittlere Steckverbinder).
- Transferieren (Upload) Sie die Datei AAR_INO_SRC in den AAR-\ Robot Prozessor.
- Installieren Sie die AAR_VB_Software auf Ihrem PC.
- Wählen Sie den richtigen COM Port in der AAR-VB Software.
- 25 -
ANDROID – PROGRAM MIT BLUETOOTH
ARX-BT3
AREXX BLUETOOTH KIT (Satz)
Unser ARX-BT03 Satz ermöglicht Ihnen den Arduino Roboter via Bluetooth aus einer Android Umgebung zu steuern.
Benutzen Sie bitte das Arduino Steurprogramm Bluetooth_AAR.APK, das sich in ANDROID_APP Ordner
(AAR_APP) auf dem CD bendet. Sie sollten die Bluetooth_AAR.
APK auf Ihrem Android System installieren und die Asrduino software AAR_SRC_Bluetooth in die AAR Roboter Hochladen.
Kurze schrittweise Arbeitsfolge:
- Verbinden Sie das Bluetooth Modul mit der Leiterplatte auf dem Roboter
- Transferieren Sie die Datei AAR_SRC_Bluetooth in den Roboter­ prozessor.
- Installieren Sie die Datei Bluetooth_AAR_APK auf Ihrem Smartphone oder Tablett.
* Sie nden diese Dateien auf Ihrer CD
und in der Google Play Store.
- 26 -
6. Hintergrundinformation zur H-Brücke
Die H-Brücke ist eine Elektronikschaltung womit man mittels vier Schalter zum Beispiel einen Gleichstrommotor umpolen kann. Ein sol­cher Schalter wird in der Robotertechnologie oft angewandt um Moto­ren in zwei Richtungen an zu steuern.
Meistens sind für solche Schaltungen integrierte Module verfügbar, aber zur Verdeutlichung der Funktionsweise und Dimensionierung der Stromversorgung kann es gelegentlich interessant sein auch eine ältere Schaltung zu studieren.
6.1 Eine H-Brücke für 3 Volt Stromquellen
In der Endstufe des Hyper-Peppy roboters wurden die vier Schalter der H-Brücke als zwei PNP-Transistoren TR7 und TR8, beziehungsweise NPN-Transistoren TR9 und TR10 gestaltet. In dieser Schaltung dürfen immer nur zwei dieser Transistoren den Strom durchlassen und zwar so, dass der Strom: über TR7 und TR10 oder aber über TR8 und TR9 durch den Motor M geführt wird.
Mit Hilfe des (kostenlosen) Microcap-Simulators können wir recht einfach die Gleichstromeinstellung dieser Schaltung kalkulieren lassen
und im Schaltbild ablesen.
Afb. 10: Gleichstrom­ einstellung der H-Brücke des Hyper Peppy Roboters
- 27 -
In der Endstufe ist M der Motor und wird die Steuerungsstufe des Vorverstärkers mit einem Widerstand R14 simuliert. Dieser Widerstand R14 erdet die Basisanschlüsse der Transistoren TR6 und TR5. Es leitet deshalb auch nur die Endstufe auf der rechten Seite einen nennenswerten Strom.
Die Transistoren TR8, TR5 und TR9 führen Strom und die drei übrigen sind gesperrt. Falls wir R14 an einer positiven Spannung anschließen, sperren wir den linken Zweig der Endstufe und wird der Motorstrom umgepolt.
Der Microcap Simulator erlaubt uns die Stromstärke in jedem Bauteil zu berechnen und im Schaltbild an Bildschirm abzulesen. Der Gesam­tstromverbrauch der Endstufe beträgt etwa 300mA bei 3Volt Batterie­spannung.
Das erstaunliche dieser Schaltung ist dass die Endstufe bei 3V mit Si­lizium Transistoren arbeitet. Normalerweise beträgt die Kniespannung eines Silizium Transistors 0,7V. Der Motor wurde jedoch zwischen den Kollektoren geschaltet, die im Idealfall nur 0,3V Spannungsabfall ver­zeichnen. Für den Motor bleibt in der Praxis immer noch ein großzügi­ger Restwert von 1,5V übrig. Die vom Microcapsimulator berechnete Spannungswerte sind in Abbildung 10 dokumentiert.
Abb. 11: H-Brücke mit dem L293D-Chip
- 28 -
Die 3V-Stromversorgung ist eine ideale Ausgangsbasis für ein Ro­boter, der von nur 2 Batterien gespeist wird. Die PNP-Transistoren sind jedoch schlecht geeignet für eine Implementierung in einen integrierten Schaltkreis wie der L293D. Ein IC ist dagegen in anderer Hinsicht vorteilhaft, wie zum Beispiel im Bereich der Zuverlässigkeit, Absicherung gegen Schaltfehler und geringeres Platzbedarfes so­wie Gewichts. Aus diesen Gründen haben wir den AAR-Roboter mit einem L293D-chip mit doppelter H-Brückenschaltung ausgestattet, der uns erlaubt gleichzeitig zwei Motoren anzusteuern.
6.2 Eine H-Brücke für 4,5 Volt
Der Schaltkreis L293D (siehe Abb. 11 kann pro Ausgangsstufe einen Ausgangsstrom von 600 mA (maximal: 1,2A Spitzenwert) ansteuern. Die Stromversorgung der Endstufe (VCC2) darf zwischen 4,5V und 36V variieren, sodass wir den L293D-Chip als Ideallösung zur Ansteuerung von Gleichstrommotoren betrachten dürfen.
Die minimale Stromversorgungsspannung (VCC2) beträgt jedoch 4,5V, sodass wir minimal 4 Batteriezellen oder Akkuzellen einsetzen müssen. Diese Investition erhöht selbstverständlich wiederum das Gewicht des Roboters. Das ist der Preis den wir für den Einsatz des modernen ICs bezahlen müssen.
- 29 -
Afb. 12 H-Brücke mit dem L293D-Chip
7. Odometrie-Systeme
In diesem Kapitel werden wie einige interessante Konzepte für die Anwendung des AAR-Roboters beschreiben. Es sind Ideen für Stu­dien und Kunstprojekte. Die Entwicklung solcher Arduino-Software
mag uns beim Programmieren des Mikrocontrollers beügeln und
beseelen.
7.1 Linienfolger,FarbsucherundFarbüchter
Mit lichtempndlichen Sensoren kann man einen Roboter zum Linienfolger, Farbsucher und Farbüchter programmieren. Im er-
sten Fall soll der Roboter artig und getreu durchgezogenen Linien in einem 8-Muster folgen, in dem die Endloslinie ihn wie in einer Tret­mühle herumirren lässt.
Im zweiten und dritten Fall wird der Roboter grundsätzlich rotes Licht aus dem Weg gehen und dabei vielleicht gleichzeitig vom grünen Licht angezogen werden. Solche Verhaltensmuster gehören bereits zu den praktischen Strategien der einfachen Lebensformen.
7.2 Angsthasen und Musikliebhaber
Interessant ist auch das Verhaltensmuster, das auf die umgeben­den Geräuschkulisse reagiert. Ein schreckhafter Roboter mit einge­bautem Mikrofon könnte eine Musik mit vielen schweren Bässen aus dem Weg gehen, aber gleichzeitig eine Vorliebe für hohen Flötentöne zeigen. Die Vorliebe für hohen Flötentöne könnte gar die Angst vor schweren Bässen übertönen. So kann man den Roboter zwingen
trotz schwerer Rockmusik die Quelle der zauberhaften Blocköten aus zu ltern und zu suchen.
Verhaltensmuster, die auf Bässen und Hochfrequente Musiktönen, Licht und Farben reagieren, benötigen nur einige wenigen Senso-
ren, wie zum Beispiel ein Mikrofon, zwei Tonltern, und wenige licht­empndlichen Sensoren, die mit Farbltern ausgestattet werden.
- 30 -
7.3 Komplexe Linienfolger
Roboter, die Linien folgen oder Linienmuster aus dem Weg gehen, verwenden in der Regel eine Lichtquelle und zwei oder mehr Licht-
sensoren, womit das Suchsystem eine Linie identizieren und folgen
kann. Zunächst einmal kann man den Roboter mit einer speziellen Suchroutine ausstatten, in dem der Detektor im Suchmodus nach ei­ner ganz speziellen Taktik zu suchen beginnt, zum Beispiel in einem Spiralmuster in immer größeren Kreisen herumfährt bis der Sensor ein auffälliges Linienmuster entdeckt und die gefundene Linie zu folgen beginnt.
Das Schreiben einer Software, die eine solche Suchprozedur für willkürliche Linienmuster statistisch gesehen befriedigend löst, ge­hört bereits zu den ausgesprochen schwierigen Programmieraufga-
ben.
7.3.1 Komplexes Verhaltensmuster (als Programmieraufgabe)
Das Projekt kann jedoch noch erweitert werden indem man die Suchprozedur in einem willkürlich buntgefärbtem Linienmuster stat-
tnden lässt, in dem der Roboter durch Lärmmuster verscheucht
wird und daraufhin sofort die nächstbeste rote Linie sucht, die ihn in die sichere Unterkunft einer dunklen „Garage“ führt.
Sobald die Geräuschkulisse sich für eine gewisse Zeit beruhigt hat, kann nun der Roboter sich vorsichtig aus seiner „Garage“ heraus begeben und die Suche nach einer grünen Linie, welche das Fahr­zeug nach eine zweite „Garage“ mit intensiver grünen Beleuchtung führt, in dem sich der Roboter auch unter lauter Bassmusik sicher „daheim“ fühlt.
Sobald man jedoch der Musik hohe Blockötentöne beimischt, wird
der Roboter unruhig. Er verlässt seine grüne Behausung um die rote Linien zu seinem dunklen Verlies zu suchen.
Man kann sich denken, dass dieses Verhaltensmuster mit Linien­folger, Farbabhängigkeiten, unterschiedlichen Geräuschquellen und einem komplexen Rollenmuster eine systematische Organisation der Softwarestruktur erfordert. Nur eine sauberes, modular strukturier­tes Konzept führt in solchen Fällen zum Ziel, indem der Roboter sich unter allen Bedingungen stabil und zuverlässig am zuvor spezizier­te Verhalten orientiert.
- 31 -
Aus der Komplexität der benötigten Software mag der Program­mierer in Staunen versetzt werden und eine Bewunderung für die lebende Organismen entwickeln, die ein solches Verhaltensmuster kombinieren mit der regelmäßigen Suche nach Nahrung und einer
erfolgreichen Fortpanzungsstrategie. Es ist wahrlich die großartige
Leistung der Natur solche Verhaltensmuster immer wieder zu per­fektionieren und am Leben zu erhalten.
- 32 -
8. Programmierung des Bootloaders
Achtung!
Die Verfahren in diesem Kapitel setzen Programmiererfahrung voraus !
Man kann den Arduino Bootloader zum Beispiel mittels STK500 hochladen. Zur Übertragung der in Arduino geschriebenen Programmen in den Atmega Mikrocontroller muss der Atmega-Prozessor von einer speziellen Arduino-Bootloader versehen werden. Der Bootloader sorgt dafür, dass die übertragene Codezeichen an der korrekten Stelle des Atmega-Speichers geschrieben werden.
Zum Anlegen des Bootloaders benötigen wir folgende Komponenten:
* ein AVR Programmer Board (zum Beispiel das STK500 Board) * eine 12 Volt Stromversorgung (für STK500) * AAR Roboter mit einer auf der Leiterplatte verfügbaren ISP-Steckverbinder (Abb. 11) * PC mit einem physikalischen COM-Port (vorzugsweise kein USB-RS232 Konverter, zur Vermeidung der Risiken durch Timing-Fehlern)
Installieren (oder aktualisieren) Sie die aktuellen Version der Arduino­Software, die sich auf der Webseite www.arduino.cc befindet. Die abgerufene Datei wird normalerweise vom Typ .ZIP oder .RAR sein. Entpacken Sie diese Dateien und platzieren sie diese auf Ihrer Festplatte.
Verwenden Sie nun zum Beispiel WINAVR um den Arduino Bootloader in den Roboter zu übertragen.
Achtung!
Die ARDUINO Software gehört komplett zur Kategorie Freeware und es kommt schon mal vor, dass unterschiedliche Versionen der Arduino Software und Arduino Bootloader-Programme sich nicht richtig vertra­gen!
Besuchen Sie bei Problemen in diesem Bereich die diversen
Arduino-Websites beziehungsweise Foren!
- 33 -
Abb. 13: ISP-Steckverbinder
APPENDIX
- 34 -
A. Teileliste
Part Value Package
C1 18pF 0805 C2 18pF 0805 C3 0.1uf C0805K C4 0,1uf 0805 C6 0,1uf 0805 C7 470uf CPOL-USF C8 0,1uf 0805 C9 4,7uf 1206 C11 0,1uf 0805 C12 0,1uf 0805 C13 0,1uf 0805 C14 0,1uf 0805 C15 0,1uf 0805 C16 470uf CPOL-USF C17 470u CPOL-USF C19 470uf CPOL-USF D1 MBR0520 SOD-123 D2 1N4001 DO41-10 IC1 FT232RL SSOP28 IC2 L293D DIL16 IC3 ATMEGA328-AU ATMEGA328P-AU IC4 74AHC1G14DCK 74AHC1G14DCK IC5 74AHC1G14DCK 74AHC1G14DCK JP1 M1 1X02 JP2 M2 1X02 JP3 BAT 1X02 JP4 4,8V 1X02 JP5 ISP 2X03 SV2 fem header FE07-1 T1 SFH300 LED5MM T2 SFH300 LED5MM T3 LPT80A LPT80A T4 LPT80A LPT80A U$1 3,3V PIN-T U$2 FE03-1 FE03-1 U$3 FE03-1 FE03-1 U$4 FE02-1 FE02-1 X1 PN61729-S PN61729-S LED1 Rd LED5MM LED2 Bl LEDCHIP-LED0805 LED3 Rd LEDCHIP-LED0805 LED4 Gn LEDCHIP-LED0805 LED5 Bl LEDCHIP-LED0805 LED6 Rd LEDIRL80A
- 35 -
Part Value Package
LED8 Rd LEDCHIP-LED0805 LED9 Rd LEDCHIP-LED0805 LED10 Rd LEDCHIP-LED0805 LED11 Rd LEDCHIP-LED0805 LED12 Gn LEDCHIP-LED0805 LED13 Rd LEDCHIP-LED0805 LED14 Bl LEDCHIP-LED0805 LED16 Rd LEDCHIP-LED0805 LED17 Rd LEDCHIP-LED0805 LED18 Rd LEDIRL80A Q1 16mhz CRYSTALHC49UP R1 20k R-US_R0805 R2 20k R-US_R0805 R3 1k5 R-US_R0805 R4 220 R-US_R0805 R5 1k5 R-US_R0805 R6 1k R-US_R0805 R7 680 R-US_R0805 R8 680 R-US_R0805 R9 20k R-US_R0805 R10 20k R-US_R0805 R11 220 R-US_R0805 R12 220 R-US_R0805 R13 10k R-US_R0805 R14 220 R-US_R0805 R15 220 R-US_R0805 R16 220 R-US_R0805 R17 220 R-US_R0805 R18 220 R-US_R0805 R19 220 R-US_R0805 R20 10k R-US_R0805 R21 10k R-US_R0805 R22 10k R-US_R0805 R23 10k R-US_R0805 R24 220 R-US_R0805 R25 220 R-US_R0805 R26 220 R-US_R0805 R27 220 R-US_R0805 R28 220 R-US_R0805 R29 1k R-US_R0805 R31 10k R-US_R0805 R32 12k R-US_R0805 S1 TACT SWITCH TACT_SWITCH S2 255SB 255SB SV1 fem header FE08-1
- 36 -
B. Hauptplatine Obenseite
T1
R9
C17
AREXX ARDUINO ROBOT
470u
JP5
R20
R22
SCL
SCK
R26
INT0
ISP
LED14
VCC
GND
C8
L293D
IC2
R21
R6
4,8V
D2
JP4
R23
RXD
TXDA2VCC
R25
R24
LED5
C7
470uf
1 2
S2
+
JP3
BAT
-
T2
LED1
R11
R10
RGND
SDA
PD6
MISO
MOSI
R4
TXD
AUX
RXD
EN
SET
1 7
SV2
R31
10k
R32
C6
D8
D4
A3
GND
1 8
SV1
LED13 LED12
LED2
R12
R13
S1
R29
1k
C9
4,7uf
IC3
ATMEGA328P-AU
C2
C4
470uf
C16
gn
TACT SWITCH
rd
LED3
LED4
R7
R8
680
18pF
0,1uf
Q1
16mhz
AREXX ARDUINO ROBOT
C1
0,1uf
18pF
3,3V3,3V
C11
680
FT232RL
470uf
IC1
0.1uf
C3
D1
MBR0520
C19
PN61729-S
E L E C T R O N I C S
X1
LED6
R15
R28
RD
RD
LED8
LED9
R16
R17
220
220
T3
IC4
LED17
R3
LEFT
0,1uf
0,1uf
C12
C15
MOTOR2 M2
0,1uf
JP2
C13
MOTOR1
0,1uf
M1
JP1
C14
T4
LED18
R14
R5
IC5
R27
LED16
RD
RD
LED10
LED11
RIGHT
R19
220
R18
220
- 37 -
C. Hauptplatine Unterseite
T1
R9
C17
AREXX ARDUINO ROBOT
470u
JP5
R20
R22
SCL
SCK
R26
ISP
LED14
VCC
GND
C8
L293D
IC2
R21
R6
4,8V
D2
JP4
R23
RXD
TXDA2VCC
R25
R24
LED5
C7
470uf
1 2
S2
+
JP3
BAT
-
T2
LED1
R11
R10
RGND
INT0
SDA
PD6
MISO
MOSI
R4
TXD
AUX
RXD
EN
SET
1 7
SV2
R31
10k
R32
C6
D8
D4
A3
GND
1 8
SV1
LED13 LED12
LED2
R12
R13
S1
R29
1k
C9
4,7uf
IC3
ATMEGA328P-AU
C2
C4
470uf
C16
gn
TACT SWITCH
rd
LED3
LED4
R7
R8
680
18pF
0,1uf
Q1
16mhz
AREXX ARDUINO ROBOT
C1
0,1uf
18pF
3,3V3,3V
C11
680
FT232RL
470uf
IC1
0.1uf
C3
D1
MBR0520
C19
PN61729-S
E L E C T R O N I C S
X1
LED6
R15
R28
RD
RD
LED8
LED9
R16
R17
220
220
T3
IC4
LED17
R3
LEFT
0,1uf
0,1uf
C12
C15
MOTOR2 M2
JP2
MOTOR1
0,1uf
0,1uf
M1
JP1
C13
C14
T4
LED18
R14
R5
R27
LED16
RD
RD
LED10
IC5
LED11
RIGHT
R19
220
R18
220
- 38 -
GND
R5
1k5
220
R14
R3
1k5
220
R15
SFH300
T2
LED_LS
T1
INT0
SCL
SCK
123
0,1uf C6
R32
12k
RX
TXD4D4
VCC
8
VCC
VCC
1
S2
2
BAT
bat
LED16
220
WS_RIGHT
R27
RD
RD LED18
LED17
220
WS_LEFT
R28
RD
T3 T4
2 4 2 4
Rd LED1
SFH300
GND GND
RD LED6
20k
R10
LIJN_SEN2
220
R11
GND
20k
R9
USBArduino
TX
RX
LIJN_SEN1
GND
220
R4
PD6
SDA
RGND
MOSI
MISO
123
1
2
SV10
FE03-1
SV9
10k
R31
D8
GND
1234567
MOSI
1 2
3 4
5 6
JP5
MISO
RESET
SCK
1N4001
D2
3
1
2
JP3
FE03-1
FE02-1
0,1uf C8
GND
RX
TX
EN
AUX
SET
GND
VCC
12345
6
7
SV2
GND
ISP
470uf
C7
GND
JP4
1 2
4,8V
Bl LED5
1k
R6
Motor Driver
VCC
VCC
LED4
rd
gn
LED3
680
R7
R8
680
TX
RX
RESET
0.1uf
C3
3
11
2
9
10RI6
23
18
26
21
22
13
14
CBUS0
CBUS1
17
C11
GND
3,3V
PN61729-S
1
2
JP2
14
13
4Y
GND3
GND14GND252Y62A7VCC2
M1
1
2
TX
INT0
PWM1_L
2
1
32
31
DIGITAL_2
DIGITAL_1(TX)
DIGITAL_3(PWM)
VCC2
VCC1
6
4
VCC
C4
7
12
GND
GND
GND
TEST
CBUS2
CBUS3
CBUS4
GND
3V3OUT
USBDP
USBDM
25
15
16
0,1uf
123
4
USB
GND
FT232RL
X1
D1
MBR0520
VCC
M2
0,1uf C13
LED9
220
R17
RD
0,1uf C12
LED8
220
R16
GND GND
RD
GND
12
10
9
3Y113A
GND4
3-4EN
10k
L293D
8
GND
VCC
0,1uf C15
LED11
220
R18
0,1uf C14
LED10
220
R19
JP1
10k
R23
GND
Bl
LED2
220
R12
D8
LED_LS
PD6
PWM2_L
PWM1_R
PWM2_R
MOSI
11
10
9
15
14
13
12
L_7
DIGITAL_4
DIGITAL_8
DIGITA
DIGITAL_6(PWM)
DIGITAL_5(PWM)
DIGITAL_9(PWM)
DIGITAL_11(PWM)
DIGITAL_10(PWM)
GND/ANALOG
ANALOG_REFERENCE
VCC/ANALOG
21
20
18
0,1uf
1k
R29
C16
470uf
4,7uf
C9
3V3
R21 10k
R20 10k
R22
GNDGND
RD
RD
GND
LED14
220
MISO
SCK
R26
GND
Bl
17
16
DIGITAL_13
DIGITAL_12
GND2
GND1
ATMEGA328P-AU
5
3
GND
1
5
TXD
RTS
CTS
DTR
RXD
DSR
DCD
VCC
OSCO
OSCI
VCCIO
RESET
IC1
4
19
20
28
27
470uf
C19
VCC
LED12
220
R24
GN
LED13
220
R25
RD
3V3
VCC
16
15
4A
VCC1
1-2EN
IC2
11A21Y3
VCC
C17
470u
GND
LIJN_SEN2
A2A2A3A3LIJN_SEN1
RX
WS_RIGHT
WS_LEFT
SDA
SCL
22
19
30
28
27
26
25
24
23
ANALOG_7
ANALOG_6
ANALOG_5
ANALOG_4
ANALOG_3
ANALOG_2
ANALOG_1
ANALOG_0
DIGITAL_0(RX)
CRYSTAL2
CRYSTAL1
RESET
IC3
8
7
29
16mhz
10k
RESET
Q1
R13
18pF
18pF
C1
C2
1 2
D. Schaltbild AAR
VCC
Wheel-sensors
VCC
VCC
VCC
Line tracing sensor
SV8
VCC
SV1
ICSP Extension board con.
POWER SUPPLY
- 39 -
E. 3D PLATINE AAR
- 40 -
Loading...