Arexx RP6-JM03-61 User guide [de]

RP6-JM03-61
RP6 SENSOR MODUL
RP6 SENSOR MODUL
www.arexx.com
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 1
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
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.
Symbole
Im Handbuch werden folgende Symbole verwendet:
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 2
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: 3
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: 4
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: 5
1.1. PCB Bord Überblick
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
Das RP6_Sensor&I/O Bord bietet unterschiedlichste Sensorik und viele neue Möglichkeiten zum RP6V2.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 6
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: 7
1.3. RP6V2 – Einbau
ADC0
ADC1
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.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 8
iv. Das PWRON Signal ist das Enable/Disable Signal für alle MOSFET Schalter.
+UB und GND
Brücke von Y3 nach PWR +UB
GND
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.
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 9
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: 10
Hier ein Beispiel wie man C-Code in die C++ Welt einbindet (aus dem Demo Programm):
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
/**********************************************************************\ * 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
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 11
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
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)
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!!!
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 12
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: 13
2.5 RP6-RC Demo SW (Remote Control)
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.
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.hexund 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!
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 14
Schalten sie den RP6 ein und führen die Applikation aus.
Ihre Roboter IP !
Status Meldung – Remote Control aktiv erscheint nachdem die Fernsteuerung aktiviert
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
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 15
RP6Robot mit RP6WIFI Bord  optional: RP6_Sensor&I/O Bord, Sharp Sensor, Display (min: 2 Zeilen mit 16 Zeichen)
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):
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)
PD5 = PIN 9 (I2C OUT -
Enable alternatively)
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: 16
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: 17
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: 18
RP6 SENSOR MODUL SCHALTPLAN
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 19
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
RP6 SENSOR MODUL PLATINE LAYOUT
AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 23
Loading...