20
DARC e.V. P07 Reutlingen 1/20 V1.0 20.04.2013 Bauanleitung für den P07 BOT Arduino Roboter DARC e. V. P07 Reutlingen Tübingerstr. 21 72770 Reutlingen e Mail: [email protected] Bauanleitung für den P07 BOT

Bauanleitung für den P07 BOT...B5-2 Morse gibt Texte in Morse Code aus 25. B5-3 RTTTL spielt Handy Klingelton Melodien 26. B6-3 DirectionBlinker zeigt den Richtungswechsel mit Blinken

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

DARC e.V. P07 Reutlingen 1/20 V1.0 20.04.2013

Bauanleitung für den P07 BOT Arduino Roboter DARC e. V. P07 Reutlingen Tübingerstr. 21 72770 Reutlingen

e

Mail: [email protected]

Bauanleitung für den P07 BOT

DARC e.V. P07 Reutlingen 2/20 V1.0 20.04.2013

1 Bauanleitung für den P07 BOT Der P07-BOT beruht auf dem System Arduino. Arduino ist eine open-source Entwicklungs-Plattform basierend auf einer flexiblen und einfach zu benutzenden Hardware und Software. Sie ist gedacht für Hobbyisten, und jeden, der daran interessiert ist, einfach (inter)aktive Ob-jekte zu erstellen.

1.1 Die Baustufen des P07 BOT

Die einzelnen Baustufen des P07 Bot sind:

1. Arduino-Board das „Gehirn“ des P07 BOT 2. Chassis für die Bewegung und als Trägersystem für die einzelnen Baugruppen 3. Motorplatine steuert die Motoren und enthält Kontaktleisten für weitere Baugruppen 4. LCD Display zeigt Meldungen an 5. Lautsprecher gibt Morsetöne und RTTTL-Melodien aus 6. Sensorplatine enthält die „Line Follower“- und „Border Line“-Sensoren 7. Sonar Ultraschall-Abstandssensor auf Servo zur Abstandsmessung 8. Odometer misst die zurückgelegte Wegstrecke pro Rad 9. RF TRX überträgt Daten per Funk und empfängt Kommandos 10. Magnetkompass erkennt die Richtung in die P07-BOT orientiert ist

1.2 Die Programme zum P07 BOT

Die einzelnen Programme und Aktivitäten für den P07 Bot sind hier aufgeführt (Auszug)::

1. A1-1 SimpleMovement lernt sich zu bewegen 2. A1-2 CircleShape fährt im Kreis 3. A1-3 SquareShape fährt im Rechteck 4. A2-1 CollisionDetect 5. A2-2 TrappedIn Corner 6. A3-1 SimpleLCD das “HelloWolrd”-Beispiel 7. A4-1 RunningText gibt Lauftext auf dem LCD aus 8. A5-1 SensorAnalogRead liest die Sensorwerte aus 9. A6-1 BlackBorderMove fährt nur innerhalb einer Begrenzung 10. A7-1 PingPongMove fährt zick-zack-artig zwischen zwei Linien 11. A8-1 SimpleLineTracking folgt einer schwarzen Linie 12. A9-1 LineCrossingDetect folgt einer Linie und erkennt Kreuzungen 13. A10-1 LineCrossingDetect folgt einer Linie und biegt an der Kreuzung ab 14. A11-1 MultiLineCrossingDetect erkennt mehrere Kreuzungen 15. A12-1 WhiteLineDetect erkennt weisse Linien 16. A13-1 EdgeDetect erkennt eine Ecke und reagiert entsprechend 17. A14-1 SonarLCD misst den Abstand mit einem Sonar 18. A15-1 TouchlessObjectRobot weicht Objekten aus 19. A16-1 SimpleServo bewegt den ServoMotor 20. A16-2 SwitchControlServo das Servo kann mit Schaltern gesteuert werden 21. A17-1 SeekingObjectTest Radarartiges Suchen nach Objekten 22. A18-1 BallSeekerRobot der Roboter fährt auf ein gesuchtes Objekt zu 23. B5-1 SimpleTone gibt Töne aus 24. B5-2 Morse gibt Texte in Morse Code aus 25. B5-3 RTTTL spielt Handy Klingelton Melodien 26. B6-3 DirectionBlinker zeigt den Richtungswechsel mit Blinken an 27. B6-4 KnightRider das berühmte „Knightrider“ Lauflicht 28. B9-1 OdometerTest zeigt Wegstrecke pro Rad und Geschwindigkeit

DARC e.V. P07 Reutlingen 3/20 V1.0 20.04.2013

2 Zusammenbau des Arduino-Boards In dieser Baustufe wird die Hardware des Arduino aufgebaut und die Software zur Program-mierung des Arduino installiert. Es wird auch beschrieben, wie man Programme auf den Ar-duino lädt. Damit habt Ihr alle Voraussetzungen, dass es mit der Programmierung und dem Roboterbau richtig weitergehen kann Nach Aufbau des Arduino-Boards und Installation der Arduino-Softwareentwicklungsumgebung kann der P07 BOT die ersten einfachen Funktion ausführen. Mit jeder weiteren Baugruppe erweitern sich die Möglichkeiten des Roboters und ihr lernt die unterschiedlichen Möglichkeiten und Funktionen eines modernen Mikrokontrol-lers kennen.

2.1 Aufbau des Arduino-Boards Der in diesem Roboter verwendete Typ des Arduino ist der Arduino Severino (S3V3, http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3). Dieser Typ verwendet eine ein-seitig bestückte Leiterplatte und ist daher leichter aufzubauen. Die Zusammenbauschritte sollten in der angegebenen Reihenfolge erfolgen: 1. kleine Dioden (1N4148), auf die Polarität achten 2. Widerstände 10k (braun, schwarz, orange), 1k (braun, schwarz, rot), 4k7 (gelb, violett, rot) 3. große Diode (!N4004) 4. Stiftleisten gewinkelt (RS232, Autoreset), gewinkelte Stifte in die Platine 5. Quarz, liegend einbauen, Beschriftung nach oben 6. IC-Fassung, auf die Orientierung achten 7. Spannungsregler, liegend einbauen 8. Keramikkondensatoren 22pF, 100nF 9. Leuchtdioden, Taster, auf Polarität achten 10. Transistoren, Typ und Orientierung beachten 11. Elektrolyt-Kondensatoren, Polarität beachten 12. Stecker und Buchsenleisten (2x3pol, 6pol, 8pol.), senkrecht, kein Abstand zur Platine 13. Mikrokontroller in die Fassung stecken (vorher Board auf Kurschluss prüfen) Die folgende Zeichnung gibt die Lage der Bauteile an:

Bild 2.1 Bestückungsplan des Arduino Severino

DARC e.V. P07 Reutlingen 4/20 V1.0 20.04.2013

Wenn alles richtig aufgebaut ist, sollte die Platine ungefähr so aussehen:

Jetzt könnt Ihr die Spannungsversorgung anschließen: die LED13 sollte kurz aufleuchten und dann im Sekundentakt 5 mal blinken. Damit signalisiert der Bootloader (das Ladepro-gramm auf dem Arduino, dass er bereit ist Programme aufzunehmen Ist das der Fall, ist alles richtig aufgebaut und funktioniert (es ist schon das Beispiel-Programm „Blink“ installiert).

2.2 Installation der Software Dieses Kapitel ist eine Einführung in das Arduino-Entwicklungssystem (IDE = engl. Integra-ted Development Environment). Es beginnt mit der Installation der Entwicklungssoftware und erklärt danach die Arduino IDE Komponenten. (1) Rufe die Seite www.arduino.cc im Webbrowser auf, gehe dort auf die Download-Seite und lade die aktuelle Arduino-SW-Version für das Betriebssystem herunter. (2) Installiere die SW in einem geeigneten Verzeichnis auf dem Computer. (3) Installiere ggf den USB-Treiber für den Arduino (der Treiber für Windows befindet sich im Verzeichnis ../arduino-1.0.x/drivers/FTDI USB Drivers/i386)

2.3 Arduino Entwicklungsumgebung Nachdem die SW installiert ist, starte die Arduino-Entwicklungsumgebung, es sollte folgen-des Fenster erscheinen:

Bild 2.2 Startseite der Arduino Entwicklungsumgebung

DARC e.V. P07 Reutlingen 5/20 V1.0 20.04.2013

Die Arduino Entwicklungsumgebung hat folgende Bereiche: • Menu : dort wählt man die Funktionen aus • Toolbar : enthält die wichtigsten Funktionen als Icons • Tabs erlaubt Programme (sketches) mit mehreren Dateien zu handhaben • Text editor Text Editor Bereich in dem ein Sketch (Programm) erstellt wird • Message area : zeigt den Status wie z.B. Kompilierungsergebnisse • Text area : enthält die Kompilerinformation oder serielle Daten

2.4 Menu - Leiste In der Welt des Arduino nennt man den Programmkode “Sketch”. Alle Erläuterungen im De-tail hierzu und zu den weiteren Menu-Punkten finden sich unter dem Menu-Punkt „Help“ und dort unter dem Unterpunkt „Environment“. Die Erklärungen gibt es bisher nur in englischer Sprache. 2.4.1 File Das „File“-Menu enthält Funktionen wie „open“, „save“, „close“ und einige weitere. • New : erzeugt einen neuen Sketch mit dem Namen "sketch_<akt. Datum>“ • Sketchbook zeigt die bisher erzeugten Sketches an • Open öffnet einen existierenden Sketch • Save speichert den aktuellen Sketch aus dem Editorfenster • Save as speichert den aktuellen Sketch unter einem anderen Namen • Upload Lädt den Programmkode auf das Arduinoboard (der Sketch sollte

vorher immer gespeichert sein • Preference Erlaubt die Bearbeitung der Voreinstellungen der Arduino-IDE • Quit Beendet die Arduino DIE 2.4.2 Edit Das “Edit” Menu stellt eine Reihe von Kommandos für das Editieren von Arduino-Dateien zur Verfügung: • Undo : Macht das letzte Kommando oder die letzte Eingabe rückgängig • Redo Macht das letzte “Undo” rückgängig, Diese Option gibt es nur, wenn

vorher ein „Undo“ abgesetzt wurde • Cut Entfernt und kopiert die selektierten Zeichen in das Clipboard • Copy Kopiert den selektierten Text in das Clipboard • Paste Fügt den Inhalt des Clipboards an der Cursorstelle ein und entfernt

dabei ggf. selektierten Text • Select All Selektiert den gesamten Text der im Texteditor geöffneten Datei. • Find Sucht nach einer Zeichenkette in der Datei im Texteditor und bietet die

Option an, diese mit einem anderen Text zu ersetzen. • Find Next Findet da nächste Auftreten einer Zeichenkette in de rim Editor

geöffneten Datei 2.4.3 Sketch Dieses Menü bietet eine Reihe von Kommandos um Programmcode zu kompilieren und Programm-Bibliotheken zu verwalten: • Verify/Compile Überprüft und kompiliert den Programmcode • Stop Stoppt die laufenden Aktivität • Add file Öffnet den Dateinavigator, selektiert eine Codedatei fügt sie zu einem

Sketch hinzu • Import Library Importiert eine Bibliothek • Show Sketch folder Öffnet den Ordner des aktuellen Sketch

DARC e.V. P07 Reutlingen 6/20 V1.0 20.04.2013

2.4.4 Tools Dieses Menü beinhaltet Kommandos für Werkzeuge zur Entwicklung von Arduino Sketches und zur Einstellung der Arduino Hardware: • Auto Format Versucht den Programmcode in eine besser lesbare Form zu bringen • Archive Sketch Wandelt den aktuellen Sketch in eine ZIP-Datei um • Export Folder Öffnet den Ordner der den aktuellen Sketch enthält • Board Wählt die Arduino Hardware aus, wähle Arduino Uno für den P07 BOT • Serial Port Wählt den seriellen Port für das Upload aus oder die Zeichen die vom

Arduino kommen. Die Daten, die vom Arduino kommen, werden im Zeichenformat im Textbereich der Kommunikationskonsole angezeigt.

2.4.5 Help Dieses Menu beinhaltet Informationen im HTML Format um den Arduino Anwender zu unter-stützen: • Getting Start öffnet die erste Schritte mit Arduino Anleitung “How to start Arduino”. • Troubleshooting Solltest Du Dir ansehen wenn es Probleme mit dem Arduino gibt • Environment Beschreibt die Arduino Entwicklungsumgebung • Reference Öffnet die Referenzbeschreibung im Standard Web Browser • Frequently Asked Question Typische Fragen und Antworten rund um den Arduino • Visit www.arduino.cc Öffnet die Arduino Homepage im Standard Web Browser • About Arduino Gibt einige Information zum aktuellen Software Stand

2.5 Tools bar Hier einige Erläuterungen zu der Tools Leiste: • Verify/Compile Überprüft den Programmkode auf Fehler. • Stop Hält den seriellen Monitor an oder setzt Kommandos zurück. • New erzeugt einen neuen Sketch. • Open Zeigt die Liste der Sketche im Sketchbook an • Save Speichert den aktuellen Sketch • Upload to I/O Board Läd den aktuellen Kode in den Arduino, Du solltest vorher

immer den Sketch speichern • Serial Monitor Zeigt die seriellen Daten die vom Arduino an den PC gesendet werden

2.6 Laden eines Programms auf das Arduino-Board 2.6.1 Arduino Hardware Konfiguration Wähle im Menu „Tools“ unter „Board“ die Einstellung „Arduino Duemilanove w/ ATMega328“. Anschließend wähle unter „Port“ den USB-Port oder den virtuellen COM-Port des RS232-USB-Wandlers, die Nummer des virtuellen COM-Ports ist dabei größer oder gleich COM3. Der Arduino unterstützt nur COM-Port-Nummern kleiner oder gleich COM10 (z.B. COM4). Im Hardware-Manager sollte für diesen COM-Port 115000 Baud als Geschwindigkeit und Hardware.Fluss-Steuerung gewählt werden. Wenn ein Programm (Sketch) im Editorfenster eingegeben wurde, kann man über den „Veri-fy/Compile“ - „button“ den Programmkode auf Fehler überprüfen. Anschließend wird über den „Upload“-„button“ der kompilierte Programmkode in den Mikrokontroller geladen. In der Statusleiste am unteren Rand des Fensters erscheint der Status der Kompilation. Falls der Kode ohne Fehler übersetzt wird, erscheint „done“ als Status und die zugehörige Pro-grammgröße.

DARC e.V. P07 Reutlingen 7/20 V1.0 20.04.2013

3 Zusammenbau des Chassis Das Chassis des P07 BOT besteht aus zwei kreisrunden 4mm starken Holzbrettern mit 20cm Durchmesser, die durch Abstandshalter miteinander verbunden sind. Es enthält zu-sätzlich die beiden Gleichstrom-Getriebemotoren, den Batteriehalter und das Stützrad. Die Maß-Zeichnungen / Bohrschablonen der beiden Chassisbretter findet Ihr im Anhang. Nun die Zusammenbauschritte für das Chassis: 1. Zuerst werden die beiden kreisrunden Holzbretter ausgesägt. Zur Vereinfachung und

damit die Holzbretter später gut zusammenpassen, ist es ratsam vorher die 4 Befesti-gungslöcher für die Abstandshalter zu bohren und die beiden Bretter zusammen zu-schrauben und gemeinsam kreisrund auszusägen.

2. Danach könnt Ihr die Aussparungen für die Räder ausschneiden 3. Jetzt schraubt ihr Ober- und Unterseite auseinander und fahrt mit der Unterseite fort 4. Das Loch für das Stützrad bohren 5. Die restlichen Löcher entsprechend der Bohrschablone auf Ober- und Unterseite bohren. 6. Sind die Holzbretter fertig bearbeitet, könnt Ihr sie nach Eurem Geschmack farbig anma-

len. Am besten eignet sich hierfür Sprühfarbe aus dem Baumarkt. Anschließend mindes-tens 1 Tag trocknen lassen. Diesen Schritt könnt Ihr auch auslassen, wenn die Bretter unlackiert bleiben sollen.

7. Danach geht es an die Montage der beiden Getriebemotoren: dazu müssen die beiden Plastikwinkel bearbeitet werden und die Löcher laut Zeichnung angebracht werden.

8. Anschließend werden die beiden Kabel an die Motoren gelötet (rot jeweils oben damit die Räder beide in die gleiche Richtung laufen) und mit Isolierband fixiert.

9. Die Halter werden an das obere Brett montiert. 10. Sodann bringt Ihr die Motoren an.

Bild 3.1 6Volt-DC-Getriebemotoren (links) und Rollkugel (rechts) Jetzt erfolgt die Fertigstellung des unteren Chassisbretts: 11. Ihr bringt das Stützrad hinten an. 12. Dann wird der Hohlstecker an den Batteriehalter angelötet 13. Ihr befestigt den Batteriehalter an der vorgesehenen Stelle auf dem Brett. 14. Die beiden Chassisbretter mittels der Distanzhalter aneinander befestigt.

DARC e.V. P07 Reutlingen 8/20 V1.0 20.04.2013

Das Chassis sollte jetzt so aussehen:

Bild 3.2 Zusammengebautes Chassis des P07-BOT

DARC e.V. P07 Reutlingen 9/20 V1.0 20.04.2013

4 Die P07 Bot Motor-Multifunktions-Platine Die Motorplatine dient zu Steuerung der beiden Motoren des P07-BOT, aber nicht nur das. Die Motorplatine erfüllt gleich mehrere Funktionen, um nicht allzu viele Zusatzplatinen zu haben und doch die wesentlichen Funktionen des Mikrokontrollers, aber auch von mechatro-nischen System zu demonstrieren. Dazu sind die entsprechenden Schnittstellen und An-schlüsse auf der Platine mit untergebracht. Zuerst wird aber die zentrale Funktion der Platine nämlich die Ansteuerung der DC Getrie-bemotoren erläutert: Damit die Motoren mit unterschiedlicher Geschwindigkeit laufen, wer-den sie nicht dauerhaft sondern nur zeitweise bestromt. Dazu nutzt man die PWM-Einheit (PWM = Pulsweitemodulation) auf dem Arduino. Der Prozessor der Arduino (ATmega328) besitzt drei Timer mit jeweils einer 2-kanaligen PWM-Einheit. Für den Motorantrieb wird die des Timer 1 benutzt (Pins 9 und 10). Das nachfolgende Diagramm zeigt schematisch den Spannungsverlauf an den Pins, wenn die PWM-Einheit aktiv ist:

Bild 4.1 PWM-Ansteuerung eines DC-Motors

Um verschiedene Geschwindigkeiten einzustellen, wird das Tastverhältnis zwischen An-Zeit und Aus-Zeit variiert. Volle Geschwindigkeit erreicht man bei einem Tastverhältnis von 100% (Fall D), d.h. die Ausgänge sind die ganze Zeit durchgeschaltet, eine mittlere Drehzahl wird mit 50% Tastverhältnis erzielt (Fall B). Bei 0% Tastverhältnis, d.h. Ausgänge sind die ganze Zeit gesperrt, steht der Motor. Mit geeigneten Zwischenwerten können alle Drehzahlen zwi-schen 0 und Maximaldrehzahl eingestellt werden (Fall A oder C). Das nachfolgende Dia-gramm (Bild 4.2) illustriert diese Fälle. Bei den Motoranschlüssen ist auf die richtige Polarität zu achten, damit die Laufrichtung der beiden Räder stimmt. Die Stellung des Jumpers an JP5 bestimmt die Betriebsspannung der Motoren (5V, Ubat). Der Jumper sollte in Stellung Ubat sein, wenn Ihr das Akku-Pack beste-hend aus 6xMignon-Akkus verwendet, damit der auf der Platine befindliche Spannungsregler nicht so sehr belastet wird. Bei höheren Betriebsspannungen (9V, aber nur kurzzeitig emp-fohlen) sollte der Jumper in der 5V Stellung stehen, sonst die Motoren Schaden nehmen können.

DARC e.V. P07 Reutlingen 10/20 V1.0 20.04.2013

Bild 4.2 Illustration von 4 verschiedenen Tastverhältnissen

Der Arduino hat insgesamt 14 Digital-Ausgänge und 6 AD-Wändler Eingänge. Die damit ver-bundenen Funktionen sind in der nachfolgenden Tabelle aufgelistet. Die Funktionen werden in den nachfolgenden Baustufen sukzessive genutzt und dabei genauer erklärt:

Pin Description Baugruppe Stecker Bemerkung

0 RX 9 RF TRX JP7 JPx siehe Text 1 TX 9 RF TRX JP7 JPx siehe Text 2 INT L 8 Odometer JP8 JP4 siehe Text 3 INT R 8 Odometer JP8 JP4 siehe Text 4 Speaker 5 Lautsprecher JP9 Vorwiderstand auf der Platine 5 DIR L 3 Motor Shield 6 DIR R 3 Motor Shield 7 Servo 2 unused JP10 8 Servo 1 7 Sonar JP11 9 PWM L 3 Motor Shield 10 PWM R 3 Motor Shield 11 SR04 7 Sonar JP12 12 SR04 7 Sonar JP12 13 LED unused 0 Line L 6 Sensor JP4 1 Line R 6 Sensor JP4 2 Border L 6 Sensor JP5 3 Border R 6 Sensor JP5 4 I2C 4 LCD JP6 Abschlusswiderstand 4k7 5 I2C 4 LCD JP6 Abschlusswiderstand 4k7

DARC e.V. P07 Reutlingen 11/20 V1.0 20.04.2013

Im Folgenden sind die Ports mit den zugehörigen Funktionen aufgelistet: • JP6 an JP6 wird das RF-Modul angeschlossen • JP7 der Odometer-Anschluss • JP8 Lautsprecheranschluss • JP9, JP10 hier werden die beiden Servos (#0, #1) angeschlossen, das Servo #1 ist für

den Ultraschall-Sensor vorgesehen • JP11 hier wird der Ultraschallsensor angeschlossen • JP12 Anschluss Motor links, bzw. Servomotor links • JP13 Anschluss Motor rechts, bzw. Servomotor rechts • JP14 Anschluss für den I2C-Bus • JP15 Anschluss für den „Line Follower“-Sensor • JP16 Anschluss für den „Border Detect“-Sensor • JP17 LCD-Display, hier wird ein 16x2 LCD Charakter-Display angeschlossen • JP18 8Bit-Extension-Port • JP19 LED-Port, die Anschlüsse von JP18 sind über Widerstände herausgeführt

Ein 16x2 Charakter-Display kann direkt auf die Platine gesteckt werden. Für weitere Ergän-zungen zur Ansteuerung über I2C-Bus ist der Port JP14 vorgesehen. Die benötigten Ab-schlusswiderstände befinden sich schon auf der Platine. Mit JP4 kann das Odometer zugeschaltet werden, dazu müssen zwei Unterbrechungsrouti-nen (Interrupt-Serviceroutinen) programmiert werden, die die Interrupts bedienen. In den nachfolgenden Kapiteln werden jeweils die Funktionen mit den an diesen Ports angeschlos-senen Modulen oder Sensoren näher erklärt. Auf die Buchsenleisten JP0 bis JP3 kann ein weiteres Arduino kompatibles Shield (so wer-den die Zusatzplatinen beim Arduino genannt) gesteckt werden (Arduino Formfaktor). Achtet aber dabei auf eine mögliche Doppelbelegung der Ports. Es ist vor allem als Möglichkeit vor-gesehen, eigene Erweiterungen für den P0T BOT zu realisieren wie z.B. Funkmodul, Sprachausgabe, Spracheingabe, LED-Array, Color-LED, Infrarot-Steuerung, eine Reihe von Sensoren wie optischer Sensor, Beschleunigungssensor, Drucksensor, Temperatursensor, Lichtsensoren, uvm. ….

Abb. 4.3 Teilweise aufgebaute Motor-Multifunktionsplatine

Anschluss für LEDs

Anschluss für I2C-Bus

Anschluss für Bluetooth-Modul

Anschluss für Odometer

Anschluss für Lautsprecher

Anschlüsse für Servos

Anschluss für US-Sensor

Anschlüsse für Motoren

Anschluß für Display

Anschlüsse für Linienver-folger und Begrenzungs-erkennung

DARC e.V. P07 Reutlingen 12/20 V1.0 20.04.2013

5 LCD Display Der P07 Bot besitzt ein chices LCD-Display mit 4 Zeilen je 20 Zeichen und blauem oder grüngelbem Hintergrund. Auf dem Display werden Statusmeldungen und Messwerte des P07 Bot abgezeigt. Das Display wird über die so genannte I2C-Schnittstelle angesprochen. Diese Schnittstelle ist eine serielle Schnittstelle und benötigt daher nur 2 Leitungen: Takt und Daten.

oder Das Display wird auf vier Distanzbolzen mit je 15mm Länge montiert (siehe Bauplan). Ein vierpoliges Kabel verbindet das Display mit dem JP14-1 auf der Motor-Platine, dabei muss unbedingt auf die richtige Polarität geachtet werden, andernfalls wird das Display zerstört. Um das Display ansprechen zu können, wird die Bibliothek LiquidCrystalI2C eingebunden. Das Modul hat die Busadresse 0x27. Im Folgenden sind die Befehle und die Zeichentabelle aufgelistet. Das auf der Motorplatine installierbare LCD-Display hat die Busadresse 0x20. Zur Montage wird auf die Motorplatine eine 16pol. Buchsenleiste gelötet (JP17) und das Potentiometer für den Kontrast montiert. An das LCD-Modul wird entsprechend eine 16pol. Stiftleiste gelötet, damit das LCD-Modul direkt eingesteckt werden kann, ggf, kann das Modul mit 3 Distanzbol-zen mechanisch fixiert werden. Alternativ kann auch ein paralleles 16x2 …..20x4 Display mit Kabel an JP17 angeschlossen werden. Dazu müssen Spannungsversorgung, Kontrollleitun-gen, Datenleitung (4Bit) und Hintergrund-LED angeschlossen werden. Dieses Modul erfor-dert dann die Einbindung der Bibliothek LiquidCrystal. Neben dem Display können auch Leuchtdioden angesteuert werden. Dazu ist der Port JP18 vorgesehen. Die für den Betrieb der Leuchtdioden notwendigen Vorwiderstände sind auf der Platine schon vorgesehen. Am Chassis werden dazu mit dünnem Plexiglas vorne und hinten jeweils 15cm lang und 3 cm breite Streifen montiert. In diese Streifen werden Löcher gebohrt und dort die Leuchtdioden eingeklebt. Die Farben können jeweils individuell gewählt werden. Die Ansteuerung der Leuchtdioden erfolgt mit der Bibliothek Wire, das Modul befindet sich dabei auf der Busadresse 0x21.

DARC e.V. P07 Reutlingen 13/20 V1.0 20.04.2013

6 P07-Bot Lautsprecher Der P07 BOT erhält auch einen Lautsprecher. Auf der Motor-Mulitfunktionsplatine ist dazu schon ein Vorwiderstand vorgesehen, den Ihr jetzt einlötet. Der Vorwiderstand verhindert, dass der Ausgang des Mikrokontrollers überlastet wird. Der Lautsprecher wird direkt über den Widerstand an den Ausgang P4 des Arduino angeschlossen, dafür ist auf der Motorpla-tine die Stiftreihe JP8 vorgesehen. Der Lautsprecher wird auf oder besser unter dem oberen Brett des Chassis mit einem Klett-Klebeband befestigt. Mit dem Arduino ist es dann möglich, Töne zu erzeugen. Er kann damit sowohl Morsezeichen senden, wie auch Melodien erzeu-gen. Besonders interessant ist es, Handy-Klingeltöne zu nutzen, denn davon gibt es Tau-sende im Internet zum kostenlosen Download.

7 Sensor-Platine Die Sensorplatine des P07-BOT enthält optische Sensoren vom Typ TCRT5000 – so ge-nannte Reflexkoppler. Mit diesen Sensoren kann der P07-BOT Helligkeitsunterschiede auf dem Untergrund detektieren und somit Linien erkennen und diesen folgen oder diese ver-meiden. Mit Hilfe von vier Sensoren können Linien in Fahrtrichtung und quer dazu unter-schieden werden und ermöglichen so komplexere Reaktionsschemata auf Linienmuster. Die Sensorplatine wird über 2 vierpolige Kabel mit der Motorsteuerungsplatine verbunden. Die inneren Sensoren mit der Bezeichnung „Line Follower“ werden JP15 und die äußeren Sen-soren mit der Bezeichnung „Border Detect“ werden an JP16 angeschlossen. Es muss auch hier wieder auf die richtige Polarität geachtet werden. Die Kabel werden dabei durch die Öff-nungen auf dem unteren und oberen Chassis-Brett an die Multifunktionsplatine herangeführt. Mit dem Sketch SensorTest wird die Funktion der Sensoren getestet. Befinden sich die Sen-soren über einem schwarzen Untergrund werden Werte unter oder um 100 angezeigt. Befin-den Sich die Sensoren über einer weißen Fläche bewegen sich die Werte um 900 oder dar-über.

Abb. 7.1 Funktionsweise der Reflexkoppler auf hellen (links) und dunklen (rechts) Unterlagen

DARC e.V. P07 Reutlingen 14/20 V1.0 20.04.2013

8 Das Sonar Eine Reihe von weiteren Funktionsmöglichkeiten des P07 BOT ergibt sich, wenn man einen Ultraschall-Distanzsensor verwendet. Dieser Sensor wird dazu auf ein Modellbau-Servo montiert. Der dafür nötige Haltewinkel ist der Zeichnung xx.xx dargestellt.

Abb. 8.1 Modellbau-Servo (links) und Ultraschalldistanzsensor HC-SR04 (rechts)

Das Servo wird an Port JP12 (Servo #1) und der US-Sensor vom Typ HC-SR04 an Port JP14 angeschlossen. Um den US-Sensor benutzen zu können, muß die Bibliothek NewPing eingebunden werden, das Servo wird über die Bibliothek Servo angesprochen.

Der US-Sensor arbeitet nach der Laufzeitmethode – ähnlich wie ein Echolot. Die Laufzeit-messung beruht darauf, dass sich akustische Wellen mit endlicher, bekannter Geschwindig-keit nämlich der Schallgeschwindigkeit ausbreiten. Der Sensor sendet einen kurzen Ultra-schallpuls mit einer Frequenz von ca. 40kHz und von ca. 1ms Länge zu einem Messobjekt, von dem es reflektiert wird, und misst die Zeit, die es für den Hin- und Rückweg benötigt, so kann man aus der Laufzeit und der Ausbreitungsgeschwindigkeit des Signals, das ist die Gruppengeschwindigkeit der Welle, die Objektentfernung berechnen:

Die Messungen werden von der Umgebung beeinflusst. Sind die Medieneigenschaften tem-peraturabhängig oder anisotrop, werden Messungen der Laufzeit von Änderungen der Tem-peratur oder der Orientierung gestört. Beispielsweise ist die Schallgeschwindigkeit in Luft stark temperaturabhängig (ca. 2% pro 10°K). Für unseren Fall ist c die Schallgeschwindigkeit also c = 340 m/s bei 0° C. Bei einem Objekt in 1m Abstand ergibt sich somit eine Laufzeit von ca. 7ms.

Abb. 8.2 Prinzip der Ultraschallentfernungsmessung

DARC e.V. P07 Reutlingen 15/20 V1.0 20.04.2013

9 Das Odometer Das Odometer versetzt den P07-BOT in die Lage, die pro Rad zurückgelegte Wegstrecke zu messen und aus diesen Informationen Geschwindigkeit und Richtung des P07-BOT abzulei-ten. Dazu wird je ein Impulsgeber (siehe Bild) pro Rad eingesetzt. Der Impulsgeber gibt 24 Pulse pro Umdrehung ab. Er besitzt zwei Ausgänge, die um 90° versetzte Signale ausgeben – ein so genanntes Quadratursignal.

Abb. 9.1 Impulsgeber Aus einem Quadratursignal lässt sich Geschwindigkeit und Richtung ermitteln. Die Odome-ter-Signale triggern zwei Unterbrechungs-Routinen (Interrupt-Service-Routinen), die die vor-genannten Berechnungen durchführen. Die Impulsgeber werden mit Buchsen an die jeweils hintere Welle der Motoren geschraubt.

10 Bluetooth-Transceiver Der Arduino erhält nun die RF-Baugruppe. Mit dem Bluetooth-Modul ist der P07 BOT in der Lage, Daten an einen PC bzw. Mobiltelefon zu senden und Kommandos von dort zu emp-fangen. Die Daten können mit dem Programm „Processing“ oder einer „Handy“-App visuali-siert werden. Die Reichweite des Moduls beträgt ca. 10 Meter.

Abb. 10.1 Bluetooth RF-Transceiver

11 Kompassmodul Das Kompassmodul erlaubt dem P07-BOT festzustellen, in welche Richtung der P0/-BOT orientiert ist und in die er fährt. Dies ist wichtig, wenn der P07-BOT autonom seinen Weg suchen soll. Das Kompassmodul wird über den I2C-Bus-Anschluß auf die Motor-Steuerungsplatine gesteckt.

DARC e.V. P07 Reutlingen 16/20 V1.0 20.04.2013

12 Stücklisten

Nr. Kategorie Baugruppe Anzahl Bezeichnung

1 Mechanik 1 Chassis 1 Holzbrett 40x20x4 2 Mechanik 1 Chassis 2 Plastikwinkel 5cm 3 Mechanik 1 Chassis 2 Getriebemotor mit Rad 4 Mechanik 1 Chassis 1 Heckrad / -rolle 5 Mechanik 1 Chassis 4 Distanzbolzen 30mm M3 6 Mechanik 1 Chassis 8 Schrauben M3x10 7 Mechanik 1 Chassis 4 Schrauben M3x25 8 Mechanik 1 Chassis 24 Unterlegscheiben 9 Elektronik 1 Chassis 2 Kabel 2PIN 10 Elektronik 1 Chassis 0 Schalter 11 Mechanik 2 Arduino 3 M3x6 12 Mechanik 2 Arduino 3 M3x8 13 Mechanik 2 Arduino 3 Distanzbolzen 15mm 14 Elektronik 2 Arduino 1 Arduino 15 Elektronik 2 Arduino 1 Batteriehalter 16 Elektronik 2 Arduino 1 Hohlstecker 5,5/2,1/9mm 17 Elektronik 3 Motor Shield 1 CD4030 XOR 18 Elektronik 3 Motor Shield 1 L293D 19 Elektronik 3 Motor Shield 1 Pinheader 40x1 (4,3x2,4x4,2x3) 20 Elektronik 3 Motor Shield 1 Platine 21 Elektronik 3 Motor Shield 1 Widerstände 22 Elektronik 3 Motor Shield 0 CD4082 23 Mechanik 4 LCD 4 Distanzbolzen 15mm 24 Mechanik 4 LCD 4 M3x6 25 Mechanik 4 LCD 4 M3x8 26 Elektronik 4 LCD 1 Interface IIC LCD 27 Elektronik 4 LCD 1 LCD 2004 28 Elektronik 4 LCD 1 Kabel 4PIN 29 Elektronik 5 Lautsprecher 1 Kabel 2PIN 30 Elektronik 5 Lautsprecher 1 Kleinlautsprecher 31 Elektronik 5 Lautsprecher 1 Widerstände 47 Ohm 32 Mechanik 6 Sensor 2 Distanzbolzen 5mm 33 Mechanik 6 Sensor 2 M3x6 34 Mechanik 6 Sensor 2 M3 Muttern 35 Elektronik 6 Sensor 4 TCTR 5000 36 Elektronik 6 Sensor 2 Kabel 4PIN 37 Elektronik 6 Sensor 1 Platine 38 Elektronik 6 Sensor 1 Pinheader 6x1 39 Elektronik 6 Sensor 8 Widerstände 40 Mechanik 7 Sonar 1 Plastikwinkel 5cm 41 Mechanik 7 Sonar 1 Servo 42 Mechanik 7 Sonar 4 Distanzbolzen 30mm 43 Mechanik 7 Sonar 2 Distanzbolzen 10mm 44 Mechanik 7 Sonar 2 M3x6 Nylon 45 Mechanik 7 Sonar 2 M3x6 46 Mechanik 7 Sonar 8 M3x8 47 Elektronik 7 Sonar 1 Ultraschall Sensor 48 Elektronik 7 Sonar 1 Kabel 4PIN 49 Elektronik 8 Odometer 1 Kabel 5PIN 50 Elektronik 8 Odometer 1 CD4030 51 Elektronik 8 Odometer 2 Drehimpulsgeber 52 Elektronik 8 Odometer 4 Widerstände

DARC e.V. P07 Reutlingen 17/20 V1.0 20.04.2013

53 Elektronik 8 Odometer 1 Pinheader 5x1

DARC e.V. P07 Reutlingen 18/20 V1.0 20.04.2013

13 Schaltbilder

Abb.13.1 Schaltplan des Multifunktions-Motor-Shields

DARC e.V. P07 Reutlingen 19/20 V1.0 20.04.2013

14 Bilder Diverse Bilder zu P07 BOT:

DARC e.V. P07 Reutlingen 20/20 V1.0 20.04.2013

15 Referenzen [1] Arduino Homepage: www.arduino.cc [2} Reichelt Elektronik www.reichelt.de [3] Pollin Elektronik www.pollin.de [4] Baumarkt z.B. Bauhaus, OBI, Hornbach oder Praktiker [5] Bauanleitung ArduBot, DARC e.V.P12, OVV Axel Tüner, DF9VI