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.
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 Diese Bedienungsanleitung ist urheberrechtlich geschützt. Der Inhalt darf ohne vorherige schriftliche Zustimmung des Herausgebers auch nicht teilweise kopiert oder übernommen werden! Änderungen an Produktspezifikationen und Lieferumfang vorbehalten. Der Inhalt dieser Bedienungsanleitung kann jederzeit ohne vorherige Ankündigung geändert werden.
Symbole Im Handbuch werden folgende Symbole verwendet: Das “Achtung!” Symbol weist auf besonders wichtige Abschnitte 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ützliche Tipps und Tricks oder Hintergrundinformationen enthalten.
1. PRODUKTBESCHREIBUNG AAR 1.1 Die ARDUINO Roboterfamilie Arduino ist eine „open source “-Plattform1 zur Entwicklung von Elektronikprototypen, 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 verwendet.
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.
2. ARDUINO ALLGEMEINE INFO 2.1. Wer oder was ist ARDUINO? Arduino ist ein open source-Einplatinen Mikrocontroller, der insbesondere Künstlern, Designern, Bastlern und anderen Interessierten 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.
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 (beziehungsweise Random Access Memory) gehören oft ebenfalls zur Ausstattung des Chips.
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 sofort auf einem Knopfdruck oder Interrupt-Prozess aktiviert werden. Der Leistungsverbrauch liegt beim Warten (bei abgeschaltetem CPUClockgenerator sowie fast der kompletten Zusatzbeschaltung) im Nanowattbereich, was eine Langlebigkeit der Batterien sicherstellt.
Je nach Chiptyp kann das Programm in einem permanenten ROM3 -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.
Ein weniger üblichen Form der Datenverwandlung in Mikrocontroller ist die Digital zu Analog-Umwandlung (im D/A-Wandler oder DAC5) womit der Prozessor 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.
3. AREXX ARDUINO ROBOT Abb.: AAR PCB 3.1 ARDUINO ROBOTER LEDS LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
3.2. ARDUINO ROBOT Leiterplattenlayout Siehe Abbildungsnummern in Abb.: AAR PCB 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Verbindungsstecker für die Batteriehalterung. (Beachten Sie beim Anschluss die korrekte Polarität!) (Ein/Aus) Hauptschalter des Roboters. Status-LED: Anzeige, das der Roboter von der Stromversorgung mit Leistung versorgt wird. Falls Sie Akkus verwenden, können Sie diesen Doppelstecker benutzen um den Roboter mit der korrekten Betriebsspannung zu versorgen.
3.3 Hintergrundinformation zum AAR Der AAR ist ein Arduino-Roboter, der speziell entworfen wurde zum Erlernen der Arduino Software. An der Vorderseite befindet 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.
Ausgesprochen nützlich sind in diesem Roboterkonzept die Steckplätze, auf denen Sie die eigenen oder die AREXX-Erweiterungsplatinen 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.
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 funktioniert. 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 diversen Versionen der Applikationssoftware Schwierigkeiten bereiten.
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 aufladbare Akkus verwenden, sollte die Drahtbrücke JP4 für die Verwendung 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 unwiderruflich beschädigen.
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 Arduino 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. 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.
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 Programms zum Arduino Roboter (Upload-Vorgang). Afb.
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.
4.10 AAR ARDUINO SELBSTEST (SELFTEST) Öffnen Sie bitte auf der CD das AAR_selftest program1 und übertragen 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 selektierte 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.
5. ARDUINO ROBOT ERWEITERUNGSMODULE 5.1 (EXTENSION KITS) 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 programmiert wird). Das bedeutet, dass Sie alle AREXX ASURO Bausätze auch für diesen Arduino Roboter verwenden können.
5.2 ASURO Erweiterungsbausatzkonfigurationen. ARX-ULT10 AREXX ULTRA SOUND KIT (Ultraschallmodul) Benutzen Sie bitte das Arduino Beispielprogramm AAR_ULTRA, das sich auf dem CD befindet. 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 befindet.
ARX-MNSP55 AREXX MINE SWEEPER KIT (Minenräumersatz) Benutzen Sie bitte das Arduino Beispielprogramm AAR_MINE, das sich auf dem CD befindet. Mit diesem Beispielprogramm kann der Roboter Metalle detektieren. ARX-APC220 AREXX WIRELESS KIT (Drahtlos-Satz) Mit dem AREXX ARX-APC-220 Satz können Sie mit PC den AAR drahtlos steuern. RP6v2 USB Programmierer und den APC-220 Sehe Ordner Examples AAR_APC220 auf CD. Benutzen Sie bitte das Arduino Beispielprogramm AAR_INO.SRC, das sich auf dem CD befindet.
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 befindet. Sie sollten die Bluetooth_AAR. APK auf Ihrem Android System installieren und die Asrduino software AAR_SRC_Bluetooth in die AAR Roboter Hochladen.
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 solcher Schalter wird in der Robotertechnologie oft angewandt um Motoren 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.
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.
Die 3V-Stromversorgung ist eine ideale Ausgangsbasis für ein Roboter, 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 sowie Gewichts.
7. Odometrie-Systeme In diesem Kapitel werden wie einige interessante Konzepte für die Anwendung des AAR-Roboters beschreiben. Es sind Ideen für Studien und Kunstprojekte. Die Entwicklung solcher Arduino-Software mag uns beim Programmieren des Mikrocontrollers beflügeln und beseelen. 7.1 Linienfolger, Farbsucher und Farbflüchter Mit lichtempfindlichen Sensoren kann man einen Roboter zum Linienfolger, Farbsucher und Farbflüchter programmieren.
7.3 Komplexe Linienfolger Roboter, die Linien folgen oder Linienmuster aus dem Weg gehen, verwenden in der Regel eine Lichtquelle und zwei oder mehr Lichtsensoren, womit das Suchsystem eine Linie identifizieren und folgen kann.
Aus der Komplexität der benötigten Software mag der Programmierer 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 Fortpflanzungsstrategie. Es ist wahrlich die großartige Leistung der Natur solche Verhaltensmuster immer wieder zu perfektionieren und am Leben zu erhalten.
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.
APPENDIX - 34 -
A. Teileliste Part C1 C2 C3 C4 C6 C7 C8 C9 C11 C12 C13 C14 C15 C16 C17 C19 D1 D2 IC1 IC2 IC3 IC4 IC5 JP1 JP2 JP3 JP4 JP5 SV2 T1 T2 T3 T4 U$1 U$2 U$3 U$4 X1 LED1 LED2 LED3 LED4 LED5 LED6 Value Package 18pF 18pF 0.
Part LED8 LED9 LED10 LED11 LED12 LED13 LED14 LED16 LED17 LED18 Q1 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R31 R32 S1 S2 SV1 Value Package Rd Rd Rd Rd Gn Rd Bl Rd Rd Rd 16mhz 20k 20k 1k5 220 1k5 1k 680 680 20k 20k 220 220 10k 220 220 220 220 220 220
RD R15 IC4 R27 RD LED11 RD LED10 220 R18 220 R19 R14 IC5 R5 JP1 MOTOR1 M1 C14 0,1uf C13 0,1uf MOTOR2 JP2 M2 RIGHT R28 LED8 LED9 RD LED18 T4 T3 LED6 BAT MBR0520 ELECTRONI CS + X1 JP3 1 S2 D1 R16 LEFT C12 0,1uf C15 0,1uf LED17 R3 LED16 C7 470uf IC1 2 LED5 D2 C19 470uf 680 RXD gn R8 LED4 3,3V C16 Q1 470u C17 PD6 4,7uf R29 1k SDA MISO MOSI C9 R4 SCL INT0 SCK ISP LED14 R26 JP5 AREXX ARDUINO ROBOT C2 18pF C1 18pF 16mhz IC3 SET AUX TXD EN RXD
RD R15 IC4 R27 RD LED11 RD LED10 220 R18 220 R19 R14 IC5 R5 JP1 MOTOR1 M1 C14 0,1uf C13 0,1uf MOTOR2 JP2 M2 RIGHT R28 LED8 LED9 RD LED18 T4 T3 LED6 BAT MBR0520 ELECTRONI CS + X1 JP3 1 S2 D1 R16 LEFT C12 0,1uf C15 0,1uf LED17 R3 LED16 C7 470uf IC1 2 LED5 D2 C16 470u C17 PD6 4,7uf R29 1k SDA MISO MOSI C9 R4 SCL INT0 SCK ISP LED14 R26 JP5 AREXX ARDUINO ROBOT C2 18pF 18pF Q1 C1 16mhz IC3 SET AUX TXD EN RXD GND VCC R22 R20 ATMEGA328P-AU R32 R
GND 1 2 3V3 C9 4,7uf 470uf VCC R13 C1 18pF C2 18pF RESET 10k R29 1k C4 0,1uf Q1 16mhz R6 3 5 21 18 20 4 6 8 7 29 1k LED5 4,8V Bl 2 1 JP4 ATMEGA328P-AU GND1 GND2 GND/ANALOG DIGITAL_8 DIGITAL_9(PWM) DIGITAL_10(PWM) DIGITAL_11(PWM) DIGITAL_12 DIGITAL_13 DIGITAL_0(RX) DIGITAL_1(TX) DIGITAL_2 DIGITAL_3(PWM) DIGITAL_4 DIGITAL_5(PWM) DIGITAL_6(PWM) DIGITAL_7 ANALOG_0 ANALOG_1 ANALOG_2 ANALOG_3 ANALOG_4 ANALOG_5 ANALOG_6 ANALOG_7 Arduino VCC/ANALOG ANALOG_REFERENCE VCC1 VCC2 CRYST
E.