JM3-MARVIN-01 Developed by JM³ Engineering Bedienungsanleitung Marvin IoT Robot (c) 2015-2017 AREXX Engineering und JM³ Engineering www.arexx.com Neueste Updates sind auf jm3-engineering.com erhältlich! AREXX Engineering & JM³ Engineering Version: 1.20 8.
Impressum © 2016-2017 AREXX Engineering Nevistraat 16 8013 RS Zwolle The Netherlands Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482 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.
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.
Laser Sicherheitshinweise Proxi Sensor VL6180X 80/87 DocID026171 Rev 7 Der VL6180X Proximitiy Sensor beinhaltet eine Laserlichtquelle und die zugehörige Ansteuer- schaltung. Die Laserlichtausgangsleistung wurde so festgelegt das diese immer unter allen angemessenen und erdenklichen Bedingungen den Sicherheitsgrenzen eines Class 1 Lasers entspricht. Dies beinhaltet auch Einzelfehler gemäß IEC 60 825-1:2007.
Inhaltsverzeichnis 1 Einleitung 2 Anleitung 2.1 Marvin Roboter Hardware . . . . . . . . . . . . . . . . . . 2.2 Marvin Roboter Ausstattung und Zubehör . . . . . . . . . 2.2.1 Ausstattungsmerkmale . . . . . . . . . . . . . . 2.2.2 Erfassungsbereich der Proximity-Sensoren . . . . 2.2.3 Einbau zusätzlicher Proximity-Sensoren (Hinten) . 2.3 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Dokumentation und Software . . . . . . . . . . . 2.3.2 iRP WebIDE . . . . . . . . . . . . . . . . . . .
.1 6.2 6.3 6.4 7 Abmessungen und Gewicht . . . . . . . . . Spannungsversorgung und Strombedarf . . . Versorgungsspannungen Experimentierboard Weitere Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Marvin der IoT Roboter Abbildung 0.1 Marvin Roboter Marvin - iRP WebIDE - für Browser auf PC, Notebook und Tablet *1) *2) Abbildung 0.2 Welcome-Screen Abbildung 0.3 Program-Screen Abbildung 0.4 Remote Control und Status Display *1) Apple iPAD oder MacBook kann Programme nur auf dem Roboter, nicht lokal, speichern. *2) Firefox, Google Chrome (PC/Notebook/Samsung Galaxy Tab A) und Safari (iPad Pro/MacBook Air) sind getestet – Internet Explorer oder Edge werden nicht unterstützt.
1 Einleitung Der JM3 IoT-Roboter, genannt Marvin, besticht durch seine Ausstattung und Leistungsfähigkeit. Hauptbestandteile sind der TIVA TM C- Mikrokontroller mit ARM Cortex-M4F und 512KByte Flash, 256KByte SRAM, 6KB EEPROM und dem CC3100 WI-FI ® Networkcontroller der die Standards 802.11 b/g/n mit bis zu 16Mbit/s Datenrate, Multi-Connection, TCP und UDP unterstützt. Optimal angepasste PCB-Antenne, Infrastruktur- & Ad-Hoc Mode und eine Reichweite > 25m unter normalen Bedingungen.
Zubehör (nicht Enthalten) • AA Batterien (Ultra Power ) oder Akkus NiMH z.B. Ansmann HR06 Typ 2700 • Ladegerät MW3310HC / 1 A Ladestrom Einstellung • USB-Kabel (Micro-B / Type A) Sensor Modul Erweiterungen: Extension Board (Arduino kompatible, iRP programmierbar) • Interface mit Buchse für Barometer oder GPS Modul vorbereitet • für eigene Hardware-Erweiterungen AREXX Engineering & JM³ Engineering Version: 1.20 8.
2 Anleitung 2.1 Marvin Roboter Hardware Arduino Ext. Shield header Proxi-Sensoren Power Supply 5.0 V und 3.3 V Micro-SD Card TivaC 1294 WiFi Subsystem USB Interface 9D Sensor Odometer Batteriehalter 6 x AA Proxi-Sensoren (optional) Motortreiber Taste Hauptschalter Ladebuchse (falls Akkus verbaut werden) Abbildung 2.1 Marvin Roboter Hardware Hinweis: Am bestem fassen Sie den Marvin-Roboter am Batteriefach oder an den Ketten an.
2.2 Marvin Roboter Ausstattung und Zubehör 2.2.1 Ausstattungsmerkmale Der IoT Roboter stellt viele neue Möglichkeiten zu Verfügung: • TIVA TM C- Mikrokontroller ARM Cortex-M4F Core (Floating Point) mit 512KByte Flash, 256KByte SRAM, 6KB EEPROM, CC3100 WI-FI® 802.11 b/g/n – bis zu 16 Mbps, optimal angepasste PCB-Antenne, Infrastruktur- und Ad-Hoc Mode, Flash-ROM 8Mbit • Virtuelles Display auf PC oder Tablet-PC.
2.2.2 Erfassungsbereich der Proximity-Sensoren Die Sensoren haben einen Erfassungsbereich (FoV) von 25° und einer Reichweite von ca. 30 cm. Distanzen kleiner als 10 cm werden als ‚Null‘ angezeigt. Damit ist sichergestellt dass der Roboter den Hindernissen noch gut ausweichen kann ohne rückwärts zu fahren zu müssen. Die beiden äußeren Sensoren sind mit +15° bzw. -15° zur Roboter-Nullachse verdreht um eine breiteren Erfassungswinkel zu erzielen.
2.2.3 Einbau zusätzlicher Proximity-Sensoren (Hinten) Die Sensoren haben ein Rastermaß von 1,27mm – also halb so viel wie üblich. Deshalb sollte man einen Lötkolben mit feiner Spitze und einer Leistung von ca. 50 W Leistung besitzen. Achten Sie auf senkrechten Sitz der Sensoren und das sie nicht schief stehen. Es wird empfohlen zunächst nur einen Pin anlöten, dann den Sensor auszurichten und dann erst alle anderen Pins anlöten. Die Details zum aktivieren der Sensoren finden Sie in ??.
Hinweis: Im Auslieferzustand ist der Roboter auf den WiFi AdHoc-Mode eingestellt damit sie direkt mit einem PC mit Wifi-Interface kommunizieren können (z.B. Notebook, Tablet etc.). Es gibt eine Vielzahl von Micro SD Karten die unterschiedliche Eigenschaften besitzen und die im Marvin eventuell nicht ordnungsgemäß funktionieren. SD-XC Karten sowie SanDisk Ultra Karten werden generell nicht unterstützt! Marvin Software updates bestehen aus dem Datenträgerabbild mit der iRP Software.
2.3.3 iRP mit dem PC/Tablet verbinden Es gibt generell zwei unterschiedliche Betriebsmodi wie der Marvin Roboter mit dem PC/Notebook über WiFi verbunden werden kann: • WiFi - Infrastruktur Mode: Marvin mit einen Netzwerk verbinden (WiFi-Router oder Access-Point) • WiFi - AdHoc Mode: hier können sie den Marvin direkt mit dem Notebook oder Tablet-PC verbinden. – SSID: Marvin – IP: 192.168.1.
2.3.3.2 WiFi - Infrastruktur Mode Dieser Modus muss zunächst am Roboter mit dem JM3 Robot Tool konfiguriert werden und am WiFi Router angemeldet werden. Der Marvin unterstützt DHCP – d.h. eine IP-Adresse wird automatisch zugewiesen. Hinweis: Falls nötig - ändern Sie die Firewall-Einstellungen damit der Marvin Roboter sich mit dem Netzwerk verbinden kann! Bitte löschen Sie den Browser Cache falls der iRP Bildschirm nicht richtig geladen wird! Hier der Ablauf zu Umstellung auf Infrastruktur-Mode: 1.
d) Überprüfen Sie die zugewiesene IP Adresse (DHCP Router) für den Marvin Roboter • wlan getIP - „Enter“ Die aktuelle IP Adresse wird nun im Terminalfenster angezeigt. 5. Danach öffnen Sie den Browser und geben die IP Adresse ein, zum Beispiel: 192.168.1.120 Sie sollten nun Abbildung 2.5 im Browser sehen. Das war es schon – Sie können sich jetzt mit dem Menü vertraut machen und ein erstes kleines Programm laden und aufführen! 6. Laden Sie das Beispielprogramm „Lauflicht“ 7.
2.3.4 Status LEDs Zur Zustandsanzeige des Roboters (RGB-LED): • Blau - normale Funktion • Lila (blinken) - Batteriespannung niedrig • Gelb - keine SD Karte oder Funktionsbeeinträchtigung, Hinweise auf USB Interface.
Abbildung 2.6 Kommandointerface Hinweis: Die Uhrzeit läuft nun auch bei ausgeschaltetem Marvin für mehrere Monate weiter. Durch einschalten des Roboters wird die Batterie wieder aufgeladen. 2.4.2 Kalibrierung des 3D Kompass Im folgenden ist die Prozedur zur Kalibrierung des 3D Kompasses beschrieben. Die Ausrichtung nach NWSE wird automatisch erkannt. Es muss nur zum starten/stoppen eine Taste gedrückt bzw. ein Kommando ausgeführt werden.
Abbildung 2.7 Himmelsrichtungen und Inklinationsvektor 2.4.2.3 Schritt 3 - Ablauf • Halten sie dem Roboter nun nach Norden und kippen ihn jeweils um 90° nach oben und dann nach unten. • Halten sie dem Roboter ungefähr horizontal in Richtung Norden und kippen ihn jeweils um 90° nach links und dann nach rechts. • Wiederholen sie dies analog für Ost, Süd und West bzw. einen vollständigen Kreis - möglichst auch mit Zwischenwerten - was die Genauigkeit erhöht.
2.4.3 Kalibrierung des 3D Gyroskops Das Kalibrieren des Gyros erfolgt durch ein drücken des Buttons „Kalibriere Gyro Offset“. Im Button wird nun „Kalibriere - bitte warten“ angezeigt - dies erfolgt solange bis der Vorgang abgeschlossen ist. Hinweis: Die Kalibrierung läuft selbstständig ab. Dabei darf natürlich der Roboter nicht bewegt werden. 2.4.4 Aktivierung der Proximity Sensoren Das aktivieren oder deaktivieren der Proximity Sensoren erfolgt mittels Kommandozeilenbefehl - dem „conf“ Befehl.
Im unteren Display Abbildung 2.8 werden die Abstandsrohwerte angezeigt: • FM (Vorne Mitte) 0 - 255 • FL (Vorne links) 0 - 255 • FR (Vorne rechts) 0 - 255 • RM (Hinten Mitte) 0 - 255 • RL (Hinten links) 0 - 255 • RR (Hinten rechts) 0 - 255 Hinweis: Sie können die weiße Marvin Box zur Abstandsmessung verwenden! 2.4.5.2 Schritt 2 - Ablauf Messen Sie nun den jeweiligen minimal und maximal Wert des Erfassungsbereiches aus. • Dazu nähern Sie das Hindernis (Marvin Box) von ca.
Hinweis: Alle Abstände sind in „mm“ einzugeben! 2.4.5.3 Schritt 3 - Überprüfen der Kalibrierung Nachdem Sie die Prozedur durchgeführt überprüfen Sie nun das Ergebnis für den linke, rechten und mittig sitzenden Sensor. Bei: • ca. 13 cm muss 0 • ca. 30 cm muss 30 • > 30 cm muss 255 angezeigt werden. 2.5 Kommandozeileninterface (CLI) Im Tabelle 2.1 sind alle Kommandos mit Syntax beschrieben die zur Verfügung stehen. AREXX Engineering & JM³ Engineering Version: 1.20 8.
Tabelle 2.1 CLI Kommandos Kommando cal cmps cal gyro [--state] cal prox „sensor“ „xNear“ „mmNear“ „xFar“ „mmFar“ conf „cmd“ „sensor“ light „on/off“ setrtc „H_M_S_W_D_M_Y“ wlan AP ssid „SSID“ wlan AP passwd „passwd“ wlan AP txpwr „pwr“ wlan AP channel „ch“ wlan AP MODE wlan STA addprofile „SSID“ „passwd“ wlan STA delprofile „ID“ wlan STA txpwr „pwr“ wlan STA ipcfg „DHCP“ | „IP“ „mask“ „gw“ „dns“ wlan STA MODE wlan STA SCAN wlan DEFAULT wlan getIP version security updatekey „key.
3 Programmieren mit iRP Die grafische Programmiersprache Marvin - iRP ist einfach zu erlernen und bedarf keiner Vorkenntnisse einer Programmiersprache wie z.B. C/C++. Die verschiedenen Funktionsblöcke erlauben es auf einer logischen Ebene Programme zu erstellen und auszuführen. 3.1 Einführung in iRP 3.1.1 Grundlegende Bedienung Die Bedienung von PC und Browser wird vorausgesetzt. Hilfe-Menü (Glühlampe) Programm-Menü (Arbeitsblatt) Tabs Link-Status Sprach-Menü Abbildung 3.
Programm starten Einzelschritt Programm speichern Löschen / Mülltonne Zoom Abbildung 3.2 Marvin WebIDE Programmbuttons Hinweis: Weitere Sprachen wie Spanisch, Italienisch, Französisch und Chinesisch (vereinfacht) werden unterstützt. Die Online-Hilfe ist neben Deutsch zur Zeit nur in Englisch verfügbar. 3.1.1.2 Das Glühlampen-Symbol • Hier finden Sie die Hilfefunktion zu den iRP Blöcken mit kurzen Erklärungen. • Hinweise zur Dokumentation und Software.
• Außerdem kann man hier Einstellungen vornehmen und Kommandos senden (siehe Abschnitt 2.5). 3.1.1.5 Programm Tab • Hier können Sie ihre Programme bearbeiten, z.B. laden, speichern etc. . • Außerdem finden sie hier iRP-Modus (Beginner, Fortgeschrittener, Experte) einstellen. 3.1.2 iRP Hilfe Eine Hilfe zu den iRP Blöcken ist immer einfach im Browser aufrufbar.
Abbildung 3.4 Nicht passende Blocktypen in iRP 3.1.4 Programm ausführen • Ein Programm kann man über das Menü im Programm Tab oder den Start Button erfolgen. • Neben dem Start Button befindet sich von ein Step Button (Schrittweise Ausführung des Programms bis zum Haltepunkt (BreakPoint), der Speicher Button, die Zoom Funktion und die Mülltonne – für nicht mehr benötigte Blöcke. 3.1.5 Programm laden und speichern • Hier können Sie ihre Programme laden oder speichern.
Hinweis: Ein sehr nützliches Feature ist die Möglichkeit Breakpoints zu setzen um das Programm anzuhalten und einen interessanten Wert oder Zustand im virtuellen Display anzuzeigen. Das vereinfacht das Debuggen sehr da so leicht interne Zustande der Software dargestellt werden können! Abbildung 3.5 Beispiel für einen Compiler Fehler 3.1.7 Programmcode (Quelltext) anzeigen Zum weiteren Debuggen kann es hilfreich sein sich den Quelltext anzusehen – ist aber eher etwas für Fortgeschrittene und Experten.
4 JM3 Robot-Tool 2.0 4.1 Linux • Kopieren sie das JM3 Robot Tool in einen Ordner und führen sie das Programm „launch_robotTool.sh“ aus! Hinweis: Details siehe install.txt • Klick auf das „Add Robot“ Icon - geben sie den Namen (frei wählbar), den Hostnamen z.B. den verwendeten USB Port ein und gehen zum nächsten Schritt. • Wählen sie den Roboter-Typ, z.B. „Marvin“, aus. Den richtigen USB Port können sie im System nachsehen - üblich ist der USB Port „/dev/ttyACM0“.
• Klick OK • Klick auf „Add File“ um das hex-file mit dem neuen Programm auszuwählen. Die Suche geht einfach über den Pfad mit Select File. Wählen sie das hex-file aus dass sie in den Micro Controller laden möchten. Als weiteren Schritt noch den Typ, z.B. „Marvin“, aus. • Klick OK. • Wähle der Roboter und das Programm in den Listen links aus. • Klick „Upload program“ (oben in der Toolbar) • Klick auf „Save“ (oben in der Toolbar) falls Sie die angelegten Roboter und Programme speichern wollen. 4.
4.3.2 Upgrade Firmware (Bootloader) Die Firmware des Marvin Roboters erlaubt es auch den Bootloader auf eine neue Version zu flashen. Dazu sind folgende Schritte notwendig. • Neues Bootloader (hex-File) wie oben beschrieben auswählen. • Klick auf „Upgrade Firmware“ führt den Update aus. Abbildung 4.1 Das JM3 Robot-Tool AREXX Engineering & JM³ Engineering Version: 1.20 8.
4.4 Terminal Fenster Das Terminal im JM3 RobotTool erlaubt es serielle Daten zu empfangen und zu senden. Außerdem kann es Daten aufzeichnen und in eine Datei speichern. Verschiedene Einstellmöglichkeiten stehen zu Verfügung „Settings“: • Verbindung mit Roboter herstellen „Connect“ erlaubt es Daten zu empfangen. • Verbindung mit Roboter trennen „Disconnect“. • Daten zum Roboter senden „Rechte Seite - unteres Fenster“ - Kommandos können hier jederzeit eingegeben werden.
Firmware update: Das Firmware update erfolgt mit dem JM3 Robot Tool. Details sind in Kapitel 4 beschrieben. • Stellen Sie eine Verbindung mit dem PC/Notebook mit einem USB Kabel (Mirco-B / TypeA) her. • Starten Sie das JM3 Robot Tool und wählen sie die „Firmware.hex“ Datei aus. • Schalten Sie den Marvin Roboter ein und verbinden sich mit den PC/Notebook. • Starten Sie den mit eine Click auf das „Upload Icon“.
5 Option: C/C++ Software Die C++ Programmiersprache ist aus der C-Sprache hervorgegangen und stellt eine Erweiterung und Verbesserung von C dar. Alles im allen die modernere Sprache die einen bessere Lesbarkeit des Codes und eine deutlich besseren Schutz vor Seiteneffekten bietet (e.g. enums / namespaces anstelle von unübersichtlichen #define Anweisungen). Assembler- und C-Programmteile können leicht mit eingebunden werden.
5.1.1 Toolchain Als Compiler muss der GCC für ARM (arm-none-eabi-gcc) unter Linux verwendet werden. Ausserdem werden die folgenden Pakete benötigt: make, newlib, arm-none-eabi-gcc und python. Es kann ein beliebiger Editor für den Source-Code verwendet werden. Die Programmierung erfolgt über den USB Anschluss und dem JM3 Robot Tool. Ihr Programm kann damit schnell und effektiv in den TIVA C geladen werden. Wer den vollen Zugriff auf den Mikrokontroller benötigt braucht noch ein TIVA JTAG Interface (z.B.
6 Technische Daten 6.1 Abmessungen und Gewicht Breite: 125 mm Länge: 148 mm Höhe: 50 mm Gewicht: 195 g (ohne Batterien) 6.2 Spannungsversorgung und Strombedarf VCC Hinweis: = 8.4 V => 6 AA Zellen Das absolute Maximum liegt bei 10.0 V !!! ICCAVR Hinweis: ± 5% = 160mA +40.0 mA / -20.0 mA => ohne Arduino Extension Batterielaufzeit: ca. 5 h (Fahrbetrieb - Motoren 50%) ca. 10 h bei Programmierung mit iRP 6.
7 Schaltungsdetails 7.1 Arduino Extension Board Arduino Shields werden hier von den H/W Anforderungen unterstützt. Alle gängigen Schnittstellen wie I2C, SPI, UART ADC und GPIO bzw. Verschiedene Timer-Ausgänge ermöglichen die Frequenzausgabe oder eine PWM Generierung z.B. für Servo-Ansteuerung. Zur Messung von Frequenzen und Tast-Verhältnissen steht eine Input-Capture-Funktion zur Verfügung. Tabelle 7.
Abbildung 7.1 Marvin Arduino Stecker - Schaltplan AREXX Engineering & JM³ Engineering Version: 1.20 8.
7.2 Pin Mapping TM4C129EKCPDT Tabelle 7.
Pin Name 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 HIB_N XOSC0 XOSC1 VBAT VDD RST_N PM7 PM6 PM5 PM4 PM3 PM2 PM1 PM0 VDD GND PL0 PL1 PL2 PL3 PL4 PL5 VDDC OSC0 OSC1 VDD PB2 PB3 PL7 PL6 PB0 PB1 Function Signal TSCCP1 TSCCP0 GPIO GPIO T3CCP1 T3CCP0 T2CCP1 T2CCP0 GPIO_T7 GPIO_T6 GPIO_T5 GPIO_T4 GPIO_T3 GPIO_T2 GPIO_T1 GPIO_T0 I2C2SDA I2C2SCL GPIO GPIO GPIO GPIO SDA_X SCL_X LED3_B LED2_G LED1_R WIFI_LED_GREEN GPIO GPIO GPIO GPIO GPIO GPIO HEAD_R HEA
7.3 PCB Print Abbildung 7.2 Marvin PCB Print AREXX Engineering & JM³ Engineering Version: 1.20 8.
Abbildungsverzeichnis 0.1 Marvin Roboter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0.2 Welcome-Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0.3 Program-Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0.4 Remote Control und Status Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.1 Marvin Roboter Hardware . . . . . . . . . . . . . . . . .