rp6 sensor modul · 8013 rs zwolle the netherlands tel.: +31 (0) 38 454 2028 fax.: +31 (0) 38 452...
TRANSCRIPT
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 1
RP6-JM03-61
RP6 SENSOR MODUL
RP6 SENSOR MODUL ©2013 AREXX Engineering und JM3 Engineering
www.arexx.com
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 2
Impressum
©2012 AREXX Engineering
Nervistraat 16
8013 RS Zwolle
The Netherlands
Tel.: +31 (0) 38 454 2028
Fax.: +31 (0) 38 452 4482
"RP6" sind eingetragenes Warenzeichen von AREXX Engineering. Alle anderen Warenzeichen stehen im Besitz ihrer jeweiligen Eigentümer.
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. Neue Versionen dieser Anleitung erhalten Sie kostenlos auf http://www.arexx.com/
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/Sockel angeschlossenen Komponenten. Es besteht keine Haftbarkeit für Schäden, die unmittelbar 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 infolge 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 Software 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! 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
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.
Hier ist es nicht immer essentiell alles zu verstehen, aber meist sehr nützlich.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 3
Sicherheitshinweise
- Prüfen Sie die Polung von der Spannung. - 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 das Modul 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 Moduls nicht sicher sind. - Niemals das Modul in Räumlichkeiten oder unter ungünstigen Bedingungen betreiben. - Das Modul besitzt hochempfindliche Bauteile. Elektronische Bauteile sind sehr gegen statische Elektrizität empfindlich. Fassen Sie das Modul 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 Eine Verwendung des gesamten Produkts ist nur in geschlossenen, trockenen Innenräumen erlaubt. Das Produkt darf nicht feucht oder nass werden. Eine andere Verwendung als zuvor beschrieben führt zu Beschädigungen dieses Produkts, außerdem ist dies mit
Gefahren wie z.B. Kurzschluss, Brand, elektrischer Schlag etc. verbunden.
Inhaltsverzeichnis
1.Impressum .................................................................................... 2
2. Sicherheitshinweise ....................................................................... 3 3. Einführung ..................................................................................... 4 4. Anleitung ........................................................................................ 6
5. Schaltplan .................................................................................... 19 6. Platine Layout ............................................................................... 23
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 4
RP6V2/RP6WIFI – RP6_Sensor&I/O Bord
Das Bild zeigt den RP6 Roboter mit den RP6WIFI Controller, dem RP6_Sensor&I/O Bord mit Sharp Abstandssensor und ein Teil von den AREXX Roboterarm RA2-HOBBY.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 5
Einführung
Was kann man mit dem RP6_Sensor&I/O Bord machen?
Das RP6_Sensor&I/O Bord passt mit allen Versionen des RP6 Roboters zusammen, jedoch wurde es
vorrangig für den RP6V2 und das RP6WIFI Control entwickelt.
Es erweitert die Möglichkeiten des Roboters um weitere Sensorsignale und gibt die Möglichkeit die
Sensoren ein – bzw. auszuschalten um Strom zu sparen.
Zusammen mit dem RP6V2 und RP6WIFI Control besteht die Möglichkeit Sensordaten zum ‘Command
Center’ (PC Programm) zu schicken, z.B. Kompass-Kurs, Temperatur, Roll- (Rollen) und Pitch- (Neige)
Winkel oder aber einen neuen Kurs ‚befehlen‘ - z.B. 20° nach links, also zum Roboter senden.
Der Servo-Controller kann bis zu 8 Servos ansteuern, z.B. für einen Roboter Arm (siehe erste Seite),
der auf den Roboter montiert werden kann. Die Servos werden von einem Schaltregler (5V 3 Amp.) mit
Spannung versorgt. Der Schaltregler kann per Software ein- und ausgeschaltet werden.
Die Sharp Sensoren können Abstände sehr genau messen, z.B. für autonome Fahrrouten oder falls der
Sensor nach unten gerichtet ist kann er Treppenstufen oder ähnliches entdecken. Zwei Sharp Sensoren
können betrieben werden – einer Vorne und der andere Hinten.
Der LED Controller steuert die Helligkeit der Front-LEDs oder aber auch der hinteren LEDs (falls
verbaut). Das Blinken der LEDs ist leicht realisierbar um z. B. das Abbiegen nach Links oder Rechts
anzuzeigen.
Die Real Time Clock (RTC) kann einen Interrupt erzeugen um den RP6 zu wecken. Ferner liefert der
Gyro (Yaw) Informationen der Drehbewegung an die Applikation. Drehbewegungen können somit in
ihrer Ausführung überwacht und verifiziert werden. Außerdem können kleine I2C Bus Module (GPS mit
I2C, etc.) angeschlossen werden.
Es gibt viele, ja sehr viele neue Möglichkeiten das Sensor & I/O Bord zu nutzen und neue
Applikationen für Ihren RP6 zu entwickeln - seine Sie kreativ!!!
Konfiguration und Aufbau
Das I/O Bord wurde entwickelt um eine Master/Slave Konfiguration von RP6WIFI Control Bord und
dem Basis Bord zu verwirklichen.
Diese Beschreibung gibt Anregungen zur Erstellung einer Mater-/Slave Konfiguration. Das RP6V2 dient
als SLAVE und kontrolliert alle antriebspezifischen Algorithmen und Funktionen wie, ACS, Move
Control, Geschwindigkeitsmessung und verarbeitet alle relevanten Sensorsignale wie Gyro, Sharp
Sensoren (Abstandmessung).
Der Kontroller (Master) bekommt die Eingangsinformationen der Sensoren wie z.B. Kompasskurs, GPS
und Geschwindigkeit über den I2C Bus. Kommandos können über die WIFI Schnittstelle vom Remote
Control Programm (PC) empfangen werden – z.B. kann das Licht des Sensor & I/O Bords ein- bzw.
Ausgeschaltet werden. Die Uhrzeit und das Datum der RTC kann über die WIFI Schnittstelle gestellt
werde.
Vom XBUS wird die Stromversorgung des RP6_Sensor&I/O Bords gespeist. Außerdem kommt das I2C
Bus Signal (SDA und SCL) vom XBUS Stecker. Zusätzlich braucht das RP6_Sensor&I/O Bord das
Signal PWR-ON und die analog Signale von den Sharp Sensoren und vom Gyro.
Dafür müssen 4 zusätzliche Verbindungen am Base Bord erstellt werden (siehe Kapitel 4).
Alternativ kann das Sharp_Rear Analogsignal (ADC4, ADC connector PIN3) direkt zum RP6WIFI
Control Bord geführt werden.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 6
1.1. PCB Bord Überblick
Das RP6_Sensor&I/O Bord bietet unterschiedlichste Sensorik und viele neue Möglichkeiten zum
RP6V2.
3.3V Regler
I2C Hotswap
Digital-I/O
Ausgänge
LED Licht
Sharp Sensor (vorne)
Temp. Sensor
I2C Expansion Modul Schnittstelle e.g. GPS
Gyro Yaw
LED Treiber
4 Kanal MOSFETs
RTC - Pufferbatterie
Achtung nicht vom Benutzer austauschbar!
Taste & LED
LED Ausgänge
Sharp Sensor
(hinten)
CAM I2C & PWR VSS PIN – ist nicht
kurzschlussfest!
ADC - Stecker I/O – Stecker
3D Kompass
Servo_PWR Input Achtung – Eingang ist nicht
verpolgeschützt!
5.0V Schaltregler für Servos
Servo Stecker
8 Kanal PWM OUT
‚Jumper‘
für Interrupts
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 7
Auf dem Bord befinden sich im Einzelnen:
- 2 x Sharp Sensor Port mit Power ON/OFF MOSFET (K5 - vorne) / K3 - hinten)
- 1 x I2C Expansion Modul Port mit Power ON/OFF MOSFET (K28)
- 8 x Servo Ausgänge mit separater Versorgung (5V / 3A) und über Software schaltbar
- 8 x PWM Ausgänge
- 1 x CAM Interface (CAM_IF) mit Power ON/OFF MOSFET für CMUcam3/CMUcam4
Der serielle Bus-Verbindung kann zum UART1 auf dem RP6WIFI Bord verbunden werden.
Außerdem gibt es am Port ein I2C Bus Interface (hot swap), das Kameras mit I2C unterstützt.
- I2C Hot Swap Bus (erlaubt es die I2C Module abzuschalten um Strom zu sparen,
z.B. CAM und I2C Extension Modul)
- Temperatursensor LM75BD (I2C)
- 1 Taste mit LED, die LED kann über Software geschaltet werden
- 3D Magnetometer / 3D Accelerometer für den 3D Kompass (I2C)
- Yaw Gyro (analog)
- Real Time Clock mit Datum (automatisch geladene Pufferbatterie) I2C Bus; RTC kann einen
Interrupt generieren um den Roboter zu wecken
- LED Treiberbaustein (I2C bus) mit ‘Smart Functions’
2 LED als ‘Scheinwerfer’
2 LED als Rücklichter (müssen optional auf RP6V2 angebracht werden (K10)
Display Hintergrundbeleuchtung (Stecker K7)
2 LED - freie Ausgänge (K2, K4)
- 2 x freie Digital I/Os (Die Eingänge können einen Interrupt generieren; Stecker I/O_EXT)
- Patchfield_1 – I/O Stecker Pins sind somit zugänglich
- Patchfield_2 - ADC Stecker Pins sind somit zugänglich
- Jumper J2, J3, J4, J5, J6 – damit können die Interrupt Quellen hardwaretechnisch aufgetrennt
werden
1.2. RP6 – Einbau
Die Änderungen auf dem RP6 Basis Bord erfordern zwei Schritte:
Hinweis: Es werden normale Lötkenntnisse benötigt!
i. Einlöten des Steckers (1 x 8 Pins) in das RP6 Basis Bord.
ii. Anschluss der Servo-Spannungsversorgung
Am besten wird eine separate Batterie für die Servo-Versorgung verwendet
(SERVO_PWR), aber es geht auch gut mit der bereits vorhandenen RP6 Batterie.
Nehmen sie das beiliegende Power Cable und verbinden den 8-Pin Stecker (JST XH
Steckverbinder) auf dem Basis Bord mit den 2 Pin Stecker auf dem Sensor & I/O Bord.
iii. Weiter geht mit den Schritten beschrieben unter Kapitel 1.3 (außer der Servo-
Spannungsversorgung)
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 8
1.3. RP6V2 – Einbau
1.3.1. Notwendige Signale auf der RP6 Basis Leiterplatte
Die folgenden Signale müssen zusätzlich auf der RP6 Basis Leiterplatte verdrahtet werden um eine
Verbindung mit dem Sensor & I/O Bord herzustellen:
a. ADC0 -> PIN_1 USRBUS1 (Sharp vorne)
b. ADC1 -> PIN_2 USRBUS1 (Gyro)
c. ADC4 -> PIN_5 USRBUS1 (Sharp hinten)
d. PWRON -> PIN_3 USRBUS1
Zwei relative einfache Möglichkeiten gibt es:
i. Anschließen der ADC Eingänge für die Sharp Sensoren Vorne und Hinten an ADC0 – hierbei werden die Sharp Sensoren wechselweise (Zeit-Multiplex) eingeschaltet und über den ADC0 eingelesen. Der Gyro wird über ADC1 eingelesen.
ii. Auf dem RP6V2 gibt es zwei Stecker an die man die ADC0 und ADC1 Eingänge leicht verbinden kann (siehe Bild).
Verbinden sie USRBUS1 PIN_1 (SHARP_Front) und USRBUS1 PIN_5 (SHARP_Rear) mit
Pin3 ADC0 und USRBUS1 PIN_2 (Gyro) mit ADC1.
Zusätzlich muss eine Brücke zwischen PIN_1 und PIN_5 auf dem Sensor & I/O Bord
erstellt werden.
Hinweis: Das Auswerten der beiden Sharp Analogsignale über einen Analogeingang
funktioniert nur wenn die Sensoren nicht gleichzeitig eingeschaltet werden!
Falls die Sharp-Sensoren in einer anderen Applikation verwendet werden sollen,
dann muss man die Analog-Signale direkt mit den ADC-Eingängen auf den RP6WIFI
Bord verbinden.
iii. Alternativ kann man die Drahtverbindungen vom USRBUS1 zu den Steckern auch auf der
Rückseite des Mainboards herstellen – das sieht dann professioneller aus.
Hinweis: Diese Änderungen erfordern etwas mehr Geschick beim Löten!
Einfach auf einer Lochrasterleiterplatte üben. Wichtig ist auch ein Lötkolben mit
dünner Spitze.
ADC0
ADC1
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 9
iv. Das PWRON Signal ist das Enable/Disable Signal für alle MOSFET Schalter.
Verbinde USRBUS1 PIN_3 mit dem PWR Signal auf dem Mainboard.
Hinweis: Um einen Sensor mit Spannung zu versorgen muss der entsprechende
Sensor im Hardware Register (siehe Kap 3.2 Hardware Register)
eingeschaltet sein und das PWRON Signal auf logisch ‚1‘ gesetzt werden.
1.4. Servo Spannungsversorgung
Am besten wird eine separate Batterie für die Servo-Versorgung verwendet (SERVO_PWR), aber
es geht auch gut mit der bereits vorhandenen RP6 Batterie.
Nehmen sie das beiliegende Power Cable und verbinden den 8-Pin Stecker (JST XH
Steckverbinder) auf dem Basis Bord mit den 2 Pin Stecker auf dem Sensor & I/O Bord.
Hinweis: Die genaue Pin-Belegung des 8-Pin Steckers bitte der Anleitung des
RP6V2 entnehmen.
+UB und GND
Brücke von Y3 nach PWR
+UB
GND
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 10
2 SW – Package für das RP6_Sensor&I/O und RP6WIFI Bord
2.1 C++ und C-Source Code wird unterstützt
Mit dem RP6_Sensor&I/O Bord wird gleichzeitig die Tür zur C++ Welt für den RP6 Roboter
geöffnet – und das auf einfache Art und Weise – keine Angst!
Die C++ Programmiersprache ist eine Weiterentwicklung von ‘C’ oder auch eine Erweiterung der
‚C‘ – Sprache, aber verbesserten Befehlen und besser strukturiert. Nicht zu vergessen sind die
deutlich verbesserten Compiler Überprüfungen.
All das führt zu einem besser lesbaren Code und einem besseren Schutz vor Seiteneffekten für ihr
SW Design (z.B. enums und die Benutzung von ‚name space‘ Definitionen für die Variablen der
verschiedenen Softwaremodule anstelle von endlosen #defines) - und natürlich kann man C++,
C- und Assembler-Code kombinieren.
Ein spezieller Vorteil von C++ ist das man mehrere Instanzen eines Code-Teiles haben kann – z.B.
Device Treiber wie einen UART – das spart Speicherplatz und erhöht die Softwarequalität.
Außerdem kann der C++ Code leichter portiert werden.
Der verwendete Extended Embedded C++ Ansatz verbietet mit Absicht folgende C++ Features, da
diese auf einem kleinen Embedded System keinen Sinn machen:
1.) RTTI
2.) Exceptions
Weitere Info: http://www.iar.com/Products/IAR-Embedded-Workbench/Technology/Language-standards/
Das Makefile (für GCC), um den existierenden C-Code, die Libs vom RP6V2 oder RP6WIFI Bord
und den C++ Code des Sensor & I/O Bord zu kompilieren ist mit Beispielen vorhanden.
Die Software kann mit Visual Studio 2010 Express (Source Code Editor; kostenfreier Download
von Microsoft) und dem beigestellten makefile erstellt werden. Andere Editor Programme gehen
natürlich auch.
Andere Source-Code Editoren und Compiler sind auch möglich – bei Verwendung eines anderen
Compilers muss jedoch das eigene makefile angepasst werden.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 11
Hier ein Beispiel wie man C-Code in die C++ Welt einbindet (aus dem Demo Programm):
/**********************************************************************\ * IO Extension Demo Program * main.cpp * v 1.1.0 \**********************************************************************/ extern "C" { #include "RP6M256.h" #include "RP6M256Lib.h" #include "RP6M256uart.h" #include "RP6I2CmasterTWI.h" #include "Yourcode.h" <- include your C-code modules inside 'extern "C"'! } #include "ioExt.h" <- include your C++-code modules outside of 'extern "C"'! . . . . // nicht aller Code ist hier vom Source Code abgebildet – nur die wichtigen Stellen
int main() __attribute__((noreturn)); int main() { initRP6M256(); <- function calls of C-code modules I2CTWI_initMaster(400); initLCD(); clearLCD(); // init RP6 Io Extension ioExt::Initialize(); <- function calls of C++-code modules (with namespaces) // set RTC test date and time in local structure ioExt::rtc.setDay(07); ioExt::rtc.setMonth(03); ioExt::rtc.setYear(2013); ioExt::rtc.setHour(23); ioExt::rtc.setMinute(59); ioExt::rtc.setSecond(55);
. . . // weiter Code
2.2 I2C Bus Adressen
Sensor Adresse LSM303 Accelerometer 0x32
LSM303 Magnetometer 0x3C
MAX7311AUG / TCA9555 IO-Expansion 0x40
TCA6507 LED Driver 0x8A
LM75 Temperature Sensor 0x90
DS1339U Real Time Clock 0xD0
PCA9685 PWM Controller 0x88
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 12
2.3 Hardware Control Register
Sensor/Item I2C -Address
Port #
I2C Module - ON/OFF 0x40 0.0
Sharp_Front_PWR - ON/OFF 0x40 0.1
Sharp_Rear_PWR - ON/OFF 0x40 0.2
Ready Signal I2C buffer (TCA4311A) - Input 0x40 0.3
LED Drive (TCA6507) - ENABLE 0x40 0.4
CAM PWR - ON/OFF 0x40 0.5
Gyro SLEEP/PWR (PD_2) - ON/OFF 0x40 0.6
Gyro TEST (ST_2) – ON/OFF 0x40 0.7
I2C OUT - ENABLE 0x40 1.0
I/O (IO_EXT_PIN1; free) 0x40 1.1
I/O (IO_EXT_PIN2; free) 0x40 1.2
Servo Output inverted (PCA9685) - ENABLE 0x40 1.3
Servo PWR - ON/OFF 0x40 1.4
Magnetometer data ready (LSM303) – DRYD (Input) 0x40 1.5
LED (D2) – ON/OFF 0x40 1.6
Switch (S1) input 0x40 1.7
Hinweis: Falls mehr wie ein I2C Bus Modul am gepufferten Bus betreiben wird, müssen
immer alle I2C Bus Module eingeschaltet sein um Daten auf dem Bus zu
senden oder empfangen zu können!!!
Jumper Name Bestückt RTC Interrupt (DS1339) auf INT3 J2 0R0 (SMD 0805)
Magnetometer INT1 (LSM303) auf INT1 J3 0R0 (SMD 0805)
MAX7311 interrupt auf INT2 J4 0R0 (SMD 0805)
Magnetometer INT2 (LSM303) auf INT3 J5 0R0 (SMD 0805)
Sharp Rear (ADC4) auf PIN3
des ADC Steckers
J6 0R0 (SMD 0805)
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 13
2.4 IOExtDemo SW
Bietet eine Basis um die verschiedenen Funktionen auf dem Sensor & I/O Bord ansteuern zu
können. Ein LC-Display 2 x 16 Zeichen wird unterstützt. Die Beschreibung (Kommentare) sind im
Source Code enthalten.
Die Software kann mit Visual Studio 2010 Express (kostenfreier Download von Microsoft) und dem
beigestellten makefile erstellt werden.
Das hex-file kann wie üblich in das RP6WIFI Control Bord geladen werden.
Folgende Anzeigen werden auf dem Display angezeigt – drücken von SW1 auf dem RP6WIFI Bord
schaltet zum nächsten Screen):
1. StartScreen: RP6 IO Extension Demo Program
gefolgt von Datum (31.12.2013)
und Zeit (beginnend von 23:59:55)
2. Accelerometer: P (Pitch Winkel in 1/10 Grad)
R (Roll Winkel in 1/10 Grad)
3. Kompass: Hd (Kompasskurs in Grad)
Kompass Kalibration (SW2 auf dem RP6WIFI Bord):
1.) Drücke SW1 nachdem der Roboter nach Norden ausgerichtet wurde,
2.) nach Osten ausrichten und SW2 drücken
3.) weiter mit Süden und Westen um den Kompass zu
kalibrieren.
Wenn die Kalibrationsschritte korrekt durchlaufen wurden,
wird die Status LED ausgeschaltet.
Hinweis: Ferromagnetisches Material beeinflusst das Resultat (Qualität)
der Kompassanzeige!!!
4. Temperatur: T (in Grad C)
5. LED: SW2 schaltet alle LEDs ON/OFF
6. Servo: SW2 schaltet zwischen zwei PWM Werten hin und her
-45 deg and +45 deg
Dies ist eine einfache Implementation um die Funktion und die Initialisierung der ICs darzustellen
und Werte zu berechnen – z.B. ist eine 2D-Kompass Applikation ist vorhanden. Der Source Code
muss evtl. an ihre RP6V2/RP6WIFI Software angepasst werden.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 14
2.5 RP6-RC Demo SW (Remote Control)
Der RP6 Roboter, das RP6WIFI Control Bord und dem RP6_Sensor&I/O Bord ermöglichen es den
Roboter fernzusteuern und entsprechende Daten zu übertragen. Damit ist es möglich den Roboter
mit einen Joystick oder den WASD Tasten nach links, rechts, vorwärts und rückwärts zu steuern.
Der Joystick ist möglichst ‘gerade’ in die entsprechende Richtung zu bewegen.
Die momentane Version ist ein Demo-PC-Programm das mit entsprechenden hex-files für die
RP6Base und den RP6WIFI zusammenarbeitet. Andere Funktionen, wie weitere Sensordaten zu
übertragen oder die LEDs ein-/auszuschalten können vom Anwender programmiert werden.
Source Code Files für beide Bords sind im SW-Packet enthalten (siehe src Ordner) und kann mit
Visual Studio 2010 Express kompiliert werden.
2.5.1 Konfiguration
2.5.1.1 RP6 Base
Lade das File ‘RP6Base_I2CSlave.hex’ und den Robot-Loader in das RP6V2 Bord.
2.5.1.2 RP6WIFI
Lade das ‘rp6RcDemo.hex’ und den Robot-Loader in das RP6.WIFI Control Bord.
2.5.1.3 PC-Remote Programm
Kopiere den Ordner ‘pc’ auf den Desktop und öffne den Ordner.
Starte das Programm ‘RP6-RC.exe’.
Das folgende Fenster sollte dann sichtbar sein:
Das EXE-File und die beiden DLL’s müssen im gleichen Ordner sein!
Nach dem ersten
Programmstart kann
hier eine
Fehlermeldung
erscheinen, weil noch
kein Konfig- file
vorhanden ist.
Dieses Konfig-file wird
automatisch erstellt.
Falls ‘Use Keyboard (WASD)’ gewählt ist, erfolgt
die Steuerung über die WASD Tasten.
Wird die Funktion abgewählt ist automatisch der
Joystick aktiv.
Außerdem muss noch ‘Enable Remote Control’
eingeschaltet werden.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 15
Schalten sie den RP6 ein und führen die Applikation aus.
Danach sollte die IP Adresse (Hostname Field) des Roboters eingegeben werden und klicken
sie ‘Enable Remote Control’ an.
Ihr Bild sollte so aussehen:
Nachdem die Verbindung akzeptiert wurde, sollten einige Werte schon übertragen werde:
1.) Tiefen-Signal (Sharp Sensor Vorne)
2.) Geschwindigkeit der rechten und linken Kette (aktuelle Geschwindigkeit)
3.) Batteriespannung
4.) ACS Status Informationen
5.) MoveState (1 == Remote Control)
Kommandos können in der Zeile ‘Send Command’ eingegeben werden. Diese werden dann
zum RP6WIFI Bord gesendet.
Bitte beachten – im Demo-Programm ist kein Kommando programmiert.
Optional werden vom Demo-Programm Status-Meldungen auf dem LC Display angezeigt
sofern dies angeschlossen wurde.
2.5.1.4 Anforderungen an den PC
PC mit WINDOWS VISTA / 7 Betriebssystem
WIFI access; Robot WIFI IP zugewiesen
Optional: Joystick – e.g. Logitech connected to the PC.
Hinweis: Die Firewall kann eine Verbindung unterdrücken - deshalb in ihrer Applikation
freischalten.
2.5.1.5 Anforderungen an den Roboter
RP6Robot mit RP6WIFI Bord
optional: RP6_Sensor&I/O Bord, Sharp Sensor, Display (min: 2 Zeilen mit 16 Zeichen)
Ihre Roboter IP !
Status Meldung –
Remote Control aktiv
erscheint nachdem die
Fernsteuerung aktiviert
wurde.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 16
3. Eine detaillierte Beschreibung der IC’s finden Sie in den Datenblättern der Hersteller.
- LM75BM Temp. Sensor
- LSM303DLHC Magnetometer and Accelerometer
- DS1339U33 RTC
- MAX7311AUG I/O digital
- TCA6507 LED Driver
- LY330ALH Gyro Yaw
- PCA9685 PWM Servo controller
4. PIN-OUT Stecker
4.1. Stecker auf dem Bord:
XBUS: VSS_1 = PIN 4, 6
VDD_1 = PIN 3, 5
GND = PIN 1, 2,
14
SDA = PIN 12
SCL = PIN 10
INT1 = PIN 8
INT2 = PIN 11
INT3 = PIN 9
MRESET = PIN 13
I/O (K17):
PD5 = PIN 9 (I2C OUT -
Enable
alternatively)
USRBUS: ADC0 = PIN 1 (Sharp front)
ADC1 = PIN 2 (Gyro)
ADC4 = PIN 5 (Sharp Rear)
PWR = PIN 3
ADC (K18): ADC4 = PIN 3 (Sharp rear -
alternative PIN)
Hinweis: Das Signal PD5 auf dem Sensor Bord wurde ursprünglich vom Control M32
übernommen und so benannt. Der PIN 9 des I/O Steckers wird auf dem
M256 Bord PB6 genannt (IO_PWM/T0/T1). Das Signal ADC4 auf dem Sensor
Bord wurde ursprünglich vom Control M32 übernommen und so benannt.
Der PIN 3 des ADC Steckers wird auf dem M256 Bord ADC9 genannt
(ADC_IO2/CMP).
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 17
4.2. Stecker auf dem Bord:
K2: (LED)
PIN 1 = P2
PIN 2 = VDD_1
K3: (Sharp Rear)
PIN 1 = ADC4
PIN 2 = VDD_1
PIN 3 = Load (100 Ohm)
K4: (LED)
PIN 1 = P1
PIN 2 = VDD_1
K5: (Sharp Front)
PIN 1 = ADC0
PIN 2 = VDD_1
PIN 3 = Load (100 Ohm)
K7: (Display. Illumination)
PIN 1 = P0
PIN 2 = VDD_1
K10: (LED Out)
PIN 1 = P3
PIN 2 = P4
K28: (I2C)
PIN 1 = Load
PIN 2 = VDD_1
PIN 3 = SCLOUT
PIN 4 = SDAOUT
PIN 5 = SCL_M
PIN 6 = SDA_M
K12: (PWM OUT)
PIN 1 = PWM0
PIN 2 = PWM1
PIN 3 = PWM2
PIN 4 = PWM3
PIN 5 = PWM4
PIN 6 = PWM5
PIN 7 = PWM6
PIN 8 = PWM7
K6: (SERVO_1)
PIN 1 = PWM15
PIN 2 = Servo_PWR
PIN 3 = GND
K11: (SERVO_2)
PIN 1 = PWM14
PIN 2 = Servo_PWR
PIN 3 = GND
K29: (SERVO_4)
PIN 1 = PWM13
PIN 2 = Servo_PWR
PIN 3 = GND
K30: (SERVO_3)
PIN 1 = PWM12
PIN 2 = Servo_PWR
PIN 3 = GND
K31: (SERVO_6)
PIN 1 = PWM11
PIN 2 = Servo_PWR
PIN 3 = GND
K32: (SERVO_5)
PIN 1 = PWM10
PIN 2 = Servo_PWR
PIN 3 = GND
K33: (SERVO_8)
PIN 1 = PWM9
PIN 2 = Servo_PWR
PIN 3 = GND
K34: (SERVO_7)
PIN 1 = PWM8
PIN 2 = Servo_PWR
PIN 3 = GND
K19: (Dig-I/O)
PIN 1 = I/O1.2
PIN 2 = GND
PIN 3 = I/O1.1
PIN 4 = GND
M1; (I2C Module Interface):
PIN 1 = VDD_1
PIN 2 = SDLOUT
PIN 4 = SDAOUT
PIN 5 = LED
PIN 6 = Input button S1
PIN 9 = GND (switched)
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 18
4.3. Wiederaufladbare Battrie
Die Batterie wird automatisch während dem Betrieb aufgeladen (RP6 ist eingeschaltet). Ein
überladen / tiefentladen ist nicht möglich.
Hinweis: Der Trickle-Charger in der Echtzeituhr (RTC) im DS1339 muss auf 2kOhm und
Diode eingestellt werden. Bitte lesen sie im Datenblatt der DS1339 nach oder schauen sie
sich die IOExtDemo Software an!
Unter normalen Umständen muss die Batterie nicht ausgetauscht werden! Das Aufladen erfolgt
im normalen Betrieb des Roboters. Die Uhrzeit wird über mehrere Wochen gepuffert.
5. Technische Daten
5.1. Spannungsversorgung / Stromverbrauch (Bus nicht aktiv).
VDD (PIN3, XBUS) = 5,0 V ± 2%
IDD = 15,00 mA ± 5,0mA
5.2. Servo Stromversorgung - Eingangsspannung
VSensor_PWR ≤ 10,0 V
ISensor_PWR ≤ 3,0 A mittel; Spitzen bis zu 5,0 A
abhängig von der Servo-Belastung.
5.3. Gyro:
Vout = Vout(0) ± 10mV / dps ± 2%
Vout(0) = 2,5 V ± 2% (keine Bewegung)
Range = approx. 200dps max
5.4. Power MOSFETs:
Iout max = 0.5 A Dauerstrom je Kanal / Spitze 1,0A
(5V Regulator auf den RP6V2 Basis Bord kann der limitierende
Faktor sein. (alle Kanäle)
5.5. I2C Geschwindigkeit: 400kHz max.
5.6. Alle anderen Angaben sind im jeweiligen Datenblatt angegeben (siehe Kapitel 3).
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 19
RP6 SENSOR MODUL SCHALTPLAN
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 20
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 21
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 22
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 23
RP6 SENSOR MODUL PLATINE LAYOUT