====== NTB Robi2 mit MPC555 ====== Der ursprünglich für den [[Embedded Systems:MC86332| Motorola MC86332]] entwickelte Robi2 kann mit dieser Adapterplatine auch mit dem [[Embedded Systems:MPC555:start | Freescale MPC555]] verwendet werden. Zusätzlich fügt die Adapter-Platine die Möglichkeit hinzu ein Bluetooth- oder ZigBee Modul aufzustecken und verfügt über helle LEDs, die mittels Bildverarbeitung für die Positionserkennung und Identifizierung verwendet werden können. ===== Entwicklung mit dem Robi ===== ==== Deep Cross Environment ==== Um den Robi mit der deep Umgebung zu programmieren, existiert ein einfacher Treiber: [[http://api.deepjava.org/runtime-library/ch/ntb/inf/deep/runtime/mpc555/driver/Robi2.html | ch.ntb.inf.deep.runtime.mpc555.driver.Robi2]]. Er basiert auf dem NTB Simple Tasking System und bietet Unterstützung für die Verwendung der wichtigsten Komponenten. ===== Komponenten ===== [{{ embedded_systems:robi2:robi_anordnungirsensoren.png?300&direct|Anordnung der IR-Distanzsensoren und Motoren}}] In Kombination mit dem MPC555-Adapter besteht der Robi aus den folgenden Komponenten. ==== Antrieb ==== Der Antrieb für den Robi besteht aus zwei Maxon Gleichstrommotoren mit Getriebe. Dieses ist im Verhältnis 17/1 untersetzt. Die Eingebauten Encoder hat eine Auflösung von 16 Ticks pro Umdrehung. Daraus ergibt sich bei Vierflankenauswertung eine Auflösung von 17 x 16 x 4 = 1088 Ticks pro Radumdrehung. ==== IR-Distanzsensoren ==== Der Robi verfügt über 16 Infrarot-Distanzsensoren. Zwei davon (Nr. 0 & 1) sind nach unten gerichtet und können z.B. zum Folgen einer Linie verwendet werden. Die restlichen 14 Sensoren sind rund um den Robi angebracht und können zur Kollisionsverhinderung eingesetzt werden. Die Sensoren sind **nicht** der Reihe nach durchnummeriert. Auf Sensor Nr. 2 folgt direkt Nr. 4! Der Sensor mit der Nummer 3 ist hinten am Robi angebracht! ==== LED Muster ==== Hinten auf der Adapterplatine befinden sich 12 rote LEDs. Mit diesen kann ein Muster dargestellt werden, um beispielsweise mehrere Robis mittels Bildverarbeitung unterscheiden zu können. ==== Positions- und Richtungs-LEDs ==== Vorne in der Mitte und hinten auf beiden Seiten sind 3 helle weisse LEDs angebracht, über welche mittels Bildverarbeitung die Orientierung und auch Position des Robis festgestellt werden kann. Zusätzlich kennzeichnet eine blaue LED das Zentrum des Roboters, welches auch gleich der Koordinatenursprung darstellt. ==== Funkmodulmodul Steckplatz ==== Auf der linken Seite befindet sich ein Steckplatz für ein Funkmodul. Hier kann z.B. das [[Embedded Systems:Peripherie:BlueRS:start | BlueRS+I-Bluetooth-Modul]] der Firma Stollmann aufgesteckt werden oder das [[Embedded Systems:Peripherie:wifirs:start | NTB WiFiRS WLAN Modul]] . Das Modul ist mit der zweiten seriellen Schnittstelle (SCI2) des MPC555 verbunden. Der Reset-Eingang des Moduls ist an den den Ausgang MPIOB11 angeschlossen. Die genaue Pinbelegung ist der untenstehenden Tabelle zu entnehmen. Bei der Verwendung von Funkmodulen welche im 2.4 GHz Band arbeiten, wie beispielsweise [[embedded_systems:peripherie:bluers:start | BlueRS]] oder [[embedded_systems:peripherie:wifirs:start | WiFiRS]], kam es immer wieder zu Störungen der Kommunikation. Der Grund dafür liegt in der nahe an der Chip-Antenne gelegenen Groundfläche (ca. 1 cm) unterhalb der Funkmodule. Es wird daher dringend empfohlen bei diesen Modulen eine externe Antenne zu verwenden. ^ Pin ^ Signal ^ MPC555 ^ Beschreibung ^ ^ 1 | GND | DGND/AGND | Masse | ^ 2 | +5V0 | +5V | 5 V Versorgung | ^ 3 | GND | DGND/AGND | Masse | ^ 4 | RM_TxD | RXD2 | Daten: Funkmodul -> MPC555 | ^ 5 | GND | DGND/AGND | Masse | ^ 6 | RM_RxD | TXD2 | Daten: MPC555 -> Funkmodul | ^ 7 | NC | | Nicht verbunden | ^ 8 | NC | | Nicht verbunden | ^ 9 | NC | | Nicht verbunden | ^ 10 | NC | | Nicht verbunden | ^ 11 | RM_Reset | MPIOB11 | Funkmodul reset | ^ 12 | NC | | Nicht verbunden | ^ 13 | NC | | Nicht verbunden | ^ 14 | RM_LED | | Status LED (Sink) | ^ 15 | NC | | Nicht verbunden | ^ 16 | NC | | Nicht verbunden | ^ 17 | NC | | Nicht verbunden | ^ 18 | NC | | Nicht verbunden | ^ 19 | NC | | Nicht verbunden | ^ 20 | NC | | Nicht verbunden | ~~CLEARFLOAT~~ ==== Drehschalter ==== Rechts vom MPC555 ist ein Hex-Drehschalter angebracht. Er ist folgendermassen angeschlossen: ^ Wertigkeit ^ MPIOB ^ | 8 | 15 | | 4 | 14 | | 2 | 13 | | 1 | 12 | Die Pins MPIOB13 und 14 werden auf dem NTB MPC555-Headerboard auch für den CAN-Controller (U7) verwendet. Aus diesem Grund dürfen auf dem Robi2 nur MPC555-Headerboards verwendet werden, auf denen dieser nicht bestückt ist! ==== IR-Empfänger und Sender ==== Auf der Robi Basisplatine ist ein IR-Sender und Empfänger angebracht. Diese sind mit der TPU-B verbunden. An Kanal 9 ist der Empfänger angeschlossen und am Kanal 10 der Sender. ==== Kompass ==== Ebenfalls auf der Basisplatine ist ein Steckplatz für ein Kompassmodul vorhanden. Dieses ist jedoch nicht bei allen Robis aufgesteckt! Es ist mit der ersten seriellen Schnittstelle (SCI1) des MPC555 verbunden. Das Control Signal (CS) ist auf dem MPIOB10 verbunden. ==== Temperatursensor ==== Ein auf der Basisplatine angebrachter NTC-Widerstand kann als Temperatursensor verwendet werden. Ausgelesen wird dieser wie das Kompassmodul über die erste serielle Schnittstelle (SCI1). ==== SPI-Stecker ==== Für individuelle Erweiterungen steht ein Stecker mit einer SPI-Schnittstelle zur verfügung. Die Pinbelegung: ^ Pin ^ Signal ^ MPC555 ^ Beschreibung ^ ^ 1 | MISO | MISO | Data: master in, slave out | ^ 2 | CS0 | PCS0 | Programmable chip select 0 | ^ 3 | MOSI | MOSI | Data: Master in, Slave Out | ^ 4 | CS1 | PCS1 | Programmable chip select 1 | ^ 5 | SCK | SCK | Data: Master in, Slave Out | ^ 6 | CS2 | PCS2 | Programmable chip select 2 | ^ 7 | +5V | +5V | 5 V Versorgung | ^ 8 | CS3 | PCS3 | Programmable chip select 3 | ^ 9 | +3V3 | +3.3V | 3.3 V Versorgung | ^ 10 | GND | DGND/AGND | Masse | ===== Dokumentation ===== * {{.:adaptermpc555_rev03a.pdf|Schema Adapterplatine für MPC555 (inkl. Bestückungsplan)}} * {{.:robi2-carrierboard.pdf|Schema Basisplatine}} * LOCK [[http://wiki.ntb.ch/inf/materialverwaltung/robi/start|Robi im INF Wiki]]