rp6 sensor modul · 8013 rs zwolle the netherlands tel.: +31 (0) 38 454 2028 fax.: +31 (0) 38 452...

23
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

Upload: others

Post on 04-Nov-2019

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RP6 SENSOR MODUL · 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

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

Page 2: RP6 SENSOR MODUL · 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

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.

Page 3: RP6 SENSOR MODUL · 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

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

Page 4: RP6 SENSOR MODUL · 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

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.

Page 5: RP6 SENSOR MODUL · 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

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.

Page 6: RP6 SENSOR MODUL · 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

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

Page 7: RP6 SENSOR MODUL · 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

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)

Page 8: RP6 SENSOR MODUL · 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

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

Page 9: RP6 SENSOR MODUL · 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

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

Page 10: RP6 SENSOR MODUL · 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

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.

Page 11: RP6 SENSOR MODUL · 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

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

Page 12: RP6 SENSOR MODUL · 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

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)

Page 13: RP6 SENSOR MODUL · 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

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.

Page 14: RP6 SENSOR MODUL · 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

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.

Page 15: RP6 SENSOR MODUL · 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

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.

Page 16: RP6 SENSOR MODUL · 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

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).

Page 17: RP6 SENSOR MODUL · 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

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)

Page 18: RP6 SENSOR MODUL · 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

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).

Page 19: RP6 SENSOR MODUL · 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

AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 19

RP6 SENSOR MODUL SCHALTPLAN

Page 20: RP6 SENSOR MODUL · 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

AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 20

Page 21: RP6 SENSOR MODUL · 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

AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 21

Page 22: RP6 SENSOR MODUL · 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

AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 22

Page 23: RP6 SENSOR MODUL · 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

AREXX Engineering & JM3 Engineering Version: 1.20 Apr. 20, 2014 Seite: 23

RP6 SENSOR MODUL PLATINE LAYOUT