Dirk (Diskussion | Beiträge) K (→Kompassmodul HDMM01) |
Dirk (Diskussion | Beiträge) K (→Quellen) |
||
Zeile 280: | Zeile 280: | ||
** [http://www.elv-downloads.de/Assets/Produkte/9/915/91521/Downloads/91521_bma020_data.pdf Bosch Sensortec BMA020 Datasheet] | ** [http://www.elv-downloads.de/Assets/Produkte/9/915/91521/Downloads/91521_bma020_data.pdf Bosch Sensortec BMA020 Datasheet] | ||
* [http://www.elv.de/navilock-nl-552ettl-engine-modul.html Navilock NL-552ETTL GPS-Modul] | * [http://www.elv.de/navilock-nl-552ettl-engine-modul.html Navilock NL-552ETTL GPS-Modul] | ||
− | ** [http://www.texim-europe.com/promotion/560/ubx-g5010%20datasheet_te.pdf UBX-G5000-BT Datasheet] | + | ** [http://www.texim-europe.com/promotion/560/ubx-g5010%20datasheet_te.pdf u-blox5 UBX-G5000-BT Datasheet] |
* [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000446.pdf ST L78L33A Datasheet] | * [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000446.pdf ST L78L33A Datasheet] | ||
* [http://www.produktinfo.conrad.com/datenblaetter/150000-174999/159204-da-01-en-BSN10_BSN10A.pdf BSN10A Datasheet] | * [http://www.produktinfo.conrad.com/datenblaetter/150000-174999/159204-da-01-en-BSN10_BSN10A.pdf BSN10A Datasheet] | ||
Zeile 286: | Zeile 286: | ||
[[Kategorie:Elektronik]] | [[Kategorie:Elektronik]] | ||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] | ||
− | |||
=Autoren= | =Autoren= | ||
--[[Benutzer:Dirk|Dirk]] 20:14, 2. Okt 2012 (CET) | --[[Benutzer:Dirk|Dirk]] 20:14, 2. Okt 2012 (CET) |
Version vom 3. Oktober 2012, 11:52 Uhr
Inhaltsverzeichnis
RP6v2 Orientierung: Hardware
In diesem Projekt soll eine "Exp" (RP6#Experimentierplatine, CONRAD 191537) für den RP6v2 (natürlich auch für den RP6) "gebaut" werden, mit der sich der RP6v2 besser im Raum orientieren kann.
Die Sensoren des RP6v2 (Odometrie, ACS, Helligkeitssensoren, Bumper) helfen ihm zwar schon dabei, sich im Raum zu orientieren, aber das geht noch besser:
- Wenn er einen Kompass bekommen würde, könnte er eine bestimmte Richtung einhalten oder genauere Kurven fahren. Ein einfach zu verwendendes Kompassmodul auf Basis des MMC2120MG von MEMSIC ist das HDMM01 (Pollin Best.-Nr. 810164). Es kann über den I2C-Bus ausgelesen und an 5V betrieben werden. Zudem ist es recht preisgünstig.
- Wenn er auch noch einen Beschleunigungssensor bekommen würde, könnte er Bewegungen und Beschleunigungen messen. ELV bietet ein 3-Achsen-Beschleunigungssensor-Modul (ELV Best.-Nr. 91521) auf Basis des BMA020 von Bosch Sensortec an. Auch dieses Modul kann an 5V betrieben werden und verfügt über I2C-Pegelwandler, um es an einen I2C-Bus mit 5V-Pegeln anschliessen zu können.
- Wenn er sogar noch ein GPS-Modul bekäme, könnte er seine eigene Position bestimmen. Geeignet für unsere Zwecke ist das GPS-Modul NL-552ETTL von Navilock auf Basis des u-blox5 GPS-Chipsets UBX-G5000-BT (auch z.B. bei ELV erhältlich: Artikel-Nr. 68-094241. Bitte unbedingt auch das Anschlusskabel: Artikel-Nr. 68-081846 mit bestellen!). Das Modul kann ebenfalls mit 5V betrieben werden,- leider arbeitet seine serielle Schnittstelle mit 3,3V-Pegeln. Dies ist aber kein wesentliches Problem, weil nur TX des Moduls mit einem UART-Eingangspin (RX) des Microcontrollers (µC) verbunden werden muss, und der versteht die 3,3V-TTL-Logik in der Regel ohne Probleme. Ob ein GPS-Modul für einen Roboter, der eigentlich nur in Innenräumen fahren kann, sinnvoll ist, muss jeder selbst eintscheiden. Das verwendete GPS-Modul soll allerdings mit seiner sog. SuperSense Technik auch in schwierigen Empfangssituationen noch Ergebnisse bringen.
- Da wir schon dabei sind, können wir auch noch eine 3,3V-Pegel-Anpassung des I2C-Busses des RP6v2 auf der Exp vorsehen: Man kann dann auch I2C-Slave-Bausteine, die nur an einem 3,3V-I2C-Bus arbeiten, an den RP6v2 anschließen.
Was braucht man allgemein für den Aufbau einer Schaltung auf der Exp:
- Seitenschneider, Schere, Zange
- Lötkolben 25..30 Watt, Lötzinn
- Plastik 70 Schutzlack (CONRAD 813621)
- Isolierter Schaltdraht YV 0,20 mm² (CONRAD 606065)
- Versilberter CU-Draht 0,6 mm (CONRAD 605581)
Mit dem versilberten CU-Draht stellt man auf der Unterseite (= Lötseite) der Exp Verbindungen zwischen den Bauteilen her; mit dem isolierten Schaltdraht werden Drahtbrücken auf der Oberseite (= Bestückungsseite) der Exp eingesetzt.
Aufbau
Hier der Schaltplan:
Teileliste: C1 Elko 10µF, 16V C2 Keram. Kondensator 0,1µF C3 Keram. Kondensator 0,1µF C4 Keram. Kondensator 0,1µF R1 Kohleschicht-Widerstand 4,7 kOhm, 1/4 Watt R2 Kohleschicht-Widerstand 10 kOhm, 1/4 Watt R3 Kohleschicht-Widerstand 4,7 kOhm, 1/4 Watt R4 Kohleschicht-Widerstand 10 kOhm, 1/4 Watt R5 Kohleschicht-Widerstand 4,7 kOhm, 1/4 Watt R6 Kohleschicht-Widerstand 4,7 kOhm, 1/4 Watt R7 Kohleschicht-Widerstand 2,2 kOhm, 1/4 Watt Q1 MOSFET BSN10A Q2 MOSFET BSN10A 3,3V Spannungsregler ST L78L33A
Viel Erfolg beim Aufbau!
Natürlich muss man nicht alle drei Sensoren aufbauen! Man kann einfach den/die Sensor/en weglassen, die man nicht nutzen will!
Schaltungsbeschreibung
Die Schaltung ist primär ausgelegt für den Aufbau auf einer RP6 Experimentierplatine. Über den XBUS (rechte Steckverbindung) erfolgt der Anschluß der Schaltung an den I2C-Bus eines µCs und die Stromversorgung mit 5V.
Die vom XBUS nach links führenden Leiterbahnen stellen (von oben nach unten) die wesentlichen Verbindungen dar:
- VDD (+5V)
- GND (Masse, Minuspol des Akkus)
- INT1 (Interrupt-Leitung)
- SCL (5V-I2C-Bus: SCL)
- SDA (5V-I2C-Bus: SDA)
Im RP6-System ist die XBUS-INT1-Leitung mit unterschiedlichen Portpins verbunden,- siehe: RP6#Interrupt-Zuordnung_.C3.A4ndern. Auf der RP6v2 Base liegt diese Leitung über einen 10kOhm Pulldown-Widerstand (R34) an GND. Wenn ein Pullup-Widerstand an INT1 benötigt wird, kann dieser (R7; 2,2kOhm) mit JP14 eingeschaltet werden. Über INT1 kann ein angeschlossener Sensor z.B. mitteilen, ob Daten vom Master (über den I2C-Bus) zu lesen sind.
Links im Schaltplan ist der USRBUS zu erkennen. Er dient hier nur zur Verbindung des GPS-Moduls mit dem UART eines µCs.
Kompassmodul HDMM01
Das Kompassmodul kann mit den Jumpern JP1..3 komplett deaktiviert werden. Die Verschaltung weist sonst keinerlei Besonderheiten auf.
Eine wichtige Entscheidung ist, WO man den Sensor anbringt. Er sollte möglichst weit weg von Magnetfeldern (z.B. den Motoren des RP6!) montiert sein. Ich habe ihn etwas erhöht auf der Exp ganz vorn rechts angebracht, wobei diese Exp "Orientierung" sowieso als oberste Platine auf den vorderen Stapel gehört.
Beschleunigungssensor 3D-BS
Auch dieser Sensor kann komplett deaktiviert werden (JP4..7). Er ist wie das Kompassmodul mit dem I2C-Bus (SCL, SDA) verbunden. Sein INT-Anschluß kann über JP6 mit der XBUS-INT1-Leitung verbunden werden. Zur Nutzung des INT-Anschlusses siehe das Datenblatt zum BMA020!
Ich habe den 3D-BS etwas erhöht rechts hinten auf der Exp montiert.
GPS-Modul NL-552ETTL
Das GPS-Modul kann deaktiviert werden, indem die 5-polige Steckverbindung zwischen Modul und ST1 gelöst wird. Alternativ kann auch JP8 geöffnet werden (Modul ohne Versorgungsspannung!). Das GPS-Modul sendet permanent serielle Daten im NMEA 0183 Format. Sein TX-Ausgang (3,3V-TTL-Logik) wird daher mit einem RX-Eingang eines µCs verbunden. Die Verbindung kann über den USRBUS (Y6) oder ST2 (Pin 2) erfolgen.
Für die Konfiguration des GPS-Moduls müssen auch serielle Daten an das Modul gesendet werden. Dies kann mit 5V-TTL-Pegel über den USRBUS (Y8) erfolgen (JP9 geschlossen!) oder über ST2 (Pin 3). Normalerweise wird man diese Verbindung nicht benötigen, kann also JP9 offen lassen und an Pin 3 von ST2 nichts anschliessen.
Das GPS-Modul sitzt bei mir vorn direkt an der Einbuchtung der Exp. Ich habe es mit Klett-Klebepads 25x25mm befestigt. An das Anschlußkabel des NL-552ETTL habe ich eine 5-polige Buchsenleiste angelötet, die auf ST1 gesteckt wird.
3,3V-I2C-Bus
Der 3,3V-I2C-Bus kann mit den Jumpern JP10..13 komplett deaktiviert werden. Er dient zum Anschluß von I2C-Slave-Bausteinen, die einen 3,3V-Pegel benötigen. Über ST3 (Pins 1, 2) können solche Slaves auch mit 3,3V (max. 100mA) versorgt werden. Wenn der Slave nicht über eigene Pullup-Widerstände am I2C-Bus verfügt, kann für SDA mit JP15 ein Pullup aktiviert werden. Mit JP16 ist das auch möglich für die INT-Leitung an ST3 (Pin 4).
Beispiele von Sensoren, die an ST3 anschließbar sind:
- Luftdruck Modul HP03S
- Luftfeuchtigkeits Modul HH10D
- 3-Achsen-GYRO ITG-3200 (Merkwürdig: Da passt sogar die ST3-Belegung perfekt!!! Warum wohl? Absicht...?)
- ...
Allgemeine Daten und Tabellen
Stecker
Stecker | Pins | Bedeutung |
ST1 | 5 | Anschluß GPS-Modul |
ST2 | 3 | µC-Anschluß für GPS-Modul |
ST3 | 7 | 3,3V-I2C-Bus Anschluß |
ST1
Pin | Funktion | E/A | Bedeutung |
1 | VCC | NL-552ETTL +5V * | |
2 | GND | NL-552ETTL GND | |
3 | Abschirmung | NL-552ETTL Abschirmung | |
4 | TX | A | NL-552ETTL TX (3,3V) |
5 | RX | E | NL-552ETTL RX (3,3V) |
Zu *) Falls JP8 = ON!
An diesen Stecker ST1 wird das GPS-Modul NL-552ETTL mit seinem 5-poligen Verbindungskabel angeschlossen. Die schwarze Ader des Kabels gehört an Pin 1 von ST1! Soll das GPS-Modul nicht benutzt werden, sollte das Modul nicht mit ST1 verbunden sein (Steckverbindung!).
ST2
Pin | Funktion | E/A | Bedeutung |
1 | GND | NL-552ETTL GND | |
2 | TX | A | NL-552ETTL TX (3,3V) |
3 | RX | E | NL-552ETTL RX (5V) |
Ein µC kann auf zwei Arten Daten vom GPS-Modul empfangen:
- 1. Über diesen Stecker ST2: In der Regel braucht man nur eine 2-adrige Verbindung von Pins 1 und 2 zum µC. Dabei wird Pin 2 mit dem UART-Eingang RX des µCs verbunden. Den 3,3V-TTL-Ausgangspegel des GPS-Moduls sollte eigentlich jeder AVR-µC verstehen, auch wenn er mit 5V betrieben wird. VORSICHT: Diesen Pin 2 nie mit einem AUSGANG eines µCs verbinden!
- 2. Über den USRBUS: Der Ausgang TX des GPS-Moduls ist mit Pin Y6 (µC RX) des USRBUS verbunden. Auf der auswertenden Platine (Base, M32, M128, M256 WiFi) muss dann Y6 des USRBUS mit UART-Eingang RX des µCs verbunden werden.
Soll ein µC auch Daten zum GPS-Modul senden (nur nötig zur Konfiguration des Moduls!), gelingt das auch auf zwei Arten:
- 1. Über diesen Stecker ST2: Der UART-Ausgang TX eines µCs wird mit Pin 3 dieses Steckers verbunden.
- 2. Über den USRBUS: Der Eingang RX des GPS-Moduls ist über einen Spannungsteiler R1/R2 mit Pin Y8 (µC TX) des USRBUS verbunden, wenn JP9 geschlossen (ON) ist. Auf der steuernden Platine (Base, M32, M128, M256 WiFi) muss dann Y8 des USRBUS mit UART-Ausgang TX des µCs verbunden werden.
ST3
Pin | Funktion | E/A | Bedeutung |
1 | VCC | A | VCC 3,3V max. 100mA * |
2 | VCC | A | VCC 3,3V max. 100mA * |
3 | GND | 3,3V-I2C-Bus GND | |
4 | INT | E | 3,3V-I2C-Bus INT Eingang |
5 | GND | 3,3V-I2C-Bus GND | |
6 | SDA | E/A | 3,3V-I2C-Bus SDA |
7 | SCL | A | 3,3V-I2C-Bus SCL Ausgang |
Zu *) Falls JP13 = ON!
An diesen Stecker ST3 können 3,3V-I2C-Slave-Devices angeschlossen werden. Wenn diese über eine eigene 3,3V-Spannungsversorgung verfügen, braucht man zum Anschluß nur die Pins 5..7 von ST3 (GND, SDA, SCL). ST3 kann aber auch externe I2C-Slaves über Pins 1 und 2 mit 3,3V versorgen (JP13 geschlossen!). Bitte beide Pins zusammen mit nicht mehr als 100mA belasten!
An Pin 4 von ST3 befindet sich noch der Eingang INT. Über ihn kann ein Slave mitteilen, dass z.B. Daten bereit liegen.
Jumper
Zeichenerklärung:
- Zweipolige Jumper:
- Stellung ON = Jumper aufgesteckt (Kontakt geschlossen)
- Stellung OFF = Jumper abgezogen (Kontakt offen)
Jumper | Stellung | Bedeutung |
JP1 | OFF | HDMM01 SDA getrennt |
JP1 | ON (S) | HDMM01 SDA verbunden |
JP2 | OFF | HDMM01 SCL getrennt |
JP2 | ON (S) | HDMM01 SCL verbunden |
JP3 | OFF | HDMM01 Power AUS |
JP3 | ON (S) | HDMM01 Power AN |
JP4 | OFF | 3D-BS SDA getrennt |
JP4 | ON (S) | 3D-BS SDA verbunden |
JP5 | OFF | 3D-BS SCL getrennt |
JP5 | ON (S) | 3D-BS SCL verbunden |
JP6 | OFF (S) | 3D-BS INT getrennt |
JP6 | ON | 3D-BS INT verbunden * |
JP7 | OFF | 3D-BS Power AUS |
JP7 | ON (S) | 3D-BS Power AN |
JP8 | OFF | NL-552ETTL Power AUS |
JP8 | ON (S) | NL-552ETTL Power AN |
JP9 | OFF (S) | NL-552ETTL RX getrennt von USRBUS |
JP9 | ON | NL-552ETTL RX verbunden mit USRBUS |
JP10 | OFF | 3,3V-I2C-Bus SDA getrennt |
JP10 | ON (S) | 3,3V-I2C-Bus SDA verbunden |
JP11 | OFF | 3,3V-I2C-Bus SCL getrennt |
JP11 | ON (S) | 3,3V-I2C-Bus SCL verbunden |
JP12 | OFF (S) | 3,3V-I2C-Bus INT getrennt |
JP12 | ON | 3,3V-I2C-Bus INT verbunden * |
JP13 | OFF | 3,3V-I2C-Bus Power AUS |
JP13 | ON (S) | 3,3V-I2C-Bus Power AN |
JP14 | OFF (S) | INT 5V Pullup AUS |
JP14 | ON | INT 5V Pullup AN ** |
JP15 | OFF | SDA 3,3V Pullup AUS |
JP15 | ON (S) | SDA 3,3V Pullup AN *** |
JP16 | OFF | INT 3,3V Pullup AUS |
JP16 | ON (S) | INT 3,3V Pullup AN |
Zu (S) Standard-Stellung der Jumper!
Zu *) Am XBUS steht in dieser Schaltung nur EINE Interrupt-Leitung (INT1) zur Verfügung. Es kann also nur die Interrupt-Auswertung von EINEM Sensor auf dieser Platine erfolgen. JP6 und JP12 sollten also nicht gleichzeitig ON sein!
Zu **) Da INT1 auf der RP6v2 Base mit einem 10kOhm Pulldown-Widerstand (R34) verbunden ist, muss man auf dieser Platine ggf. den Pullup-Widerstand 2,2kOhm (R7) einschalten (JP14 = ON!).
Zu ***) Wenn der an ST3 angeschlossene I2C-Slave keinen Pullup-Widerstand an SDA hat, muss R5 eingeschaltet werden (JP15 = ON!).
RP6v2 Orientierung: Software
... KANN DAUERN ...
Siehe auch
- RP6
- RP6 - Programmierung
- RP6v2
- RP6 Kamera - Mitmach-Projekt
- RP6v2 I2C-Portexpander
- RP6v2 USB-RS232-Adapter
- CCRP5
- Yeti
- Asuro
Quellen
- Kompassmodul HDMM01
- 3-Achsen-Beschleunigungssensor-Modul
- Navilock NL-552ETTL GPS-Modul
- ST L78L33A Datasheet
- BSN10A Datasheet
Autoren
--Dirk 20:14, 2. Okt 2012 (CET)