AREXX Engineering & JM3 Engineering Marvin User Manual

Iot robot
Table of Contents

Advertisement

Quick Links

JM3-MARVIN-01
Developed by JM³ Engineering
User Manual
Marvin IoT Robot
© 2015-2017 AREXX Engineering und JM³ Engineering
www.arexx.com
The latest updates are available at http://jm3-engineering.com!
AREXX Engineering & JM³ Engineering
Version: 1.3.1
October 27, 2017
Page: I

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Marvin and is the answer not in the manual?

Questions and answers

Summary of Contents for AREXX Engineering & JM3 Engineering Marvin

  • Page 1 JM3-MARVIN-01 Developed by JM³ Engineering User Manual Marvin IoT Robot © 2015-2017 AREXX Engineering und JM³ Engineering www.arexx.com The latest updates are available at http://jm3-engineering.com! AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: I...
  • Page 2 Fax.: +31 (0) 38 452 4482 ® “Marvin” is licenced by and iRP is a registered trademark from “JM3 Engineering”. “AREXX” is a registered trademark from AREXX Engineering. All other trademark are the property of their owners. We are not responsible...
  • Page 3 Precautionary Notes • Check the polarity of the voltage. • Always keep the electronic equipment dry. In the case of moisture immediately remove the batteries or the power supply to power down the device. This precaution is needed to keep it from short circuiting. Drying is needed to avoid corrosion.
  • Page 4 Laser Security Notes Proximity Sensor VL6180X 80/87 DocID026171 Rev 7 The VL6180X Proximitiy Sensor is equipped with a laser source and a laser control module. The output power of the laser light source is designed and limited to always comply with the safety limits according for Class 1 Laser sources. This also includes singular accidents according to IEC 60 825-1:2007.
  • Page 5: Table Of Contents

    Marvin robot equipment and accessories ........
  • Page 6 Marvin function buttons ........
  • Page 7: Marvin Robot

    Marvin the IoT Robot Figure 0.1 Marvin Robot *1) *2) Marvin - iRP WebIDE - for browsers on PC, Notebook and Tablet Figure 0.2 Welcome-Screen Figure 0.3 Program-Screen Figure 0.4 Remote Control and Status Display *1) Apple iPAD can store programs only on the robot, not on local disk. MacBook with Firefox for Mac can store data on the local disk.
  • Page 8: Introduction

    TCP and UDP. Optimal adapted PCB antenna, infrastructure & ad-hoc mode with a range >25m under normal conditions. In addition, the Marvin is equipped with high-tech sensor technology, a 9D gyro / compass, several proximity sensors which operate almost independently of the reflection characteristic of the obstacle surface. These sensors can also measure the ambient brightness.
  • Page 9 • AA batteries (Ultra Power) or rechargeable batteries NiMH e.g. Ansmann HR06 Typ 2700 • Charger MW3310HC / 1 A Charging current setting • USB-Kabel (Micro-B / Type A) Marvin extensions: • Gripper Arm (Arduino compatible, iRP programable) • Shovel and Line-Follower (Arduino compatible, iRP programable) •...
  • Page 10: Manual

    Figure 2.1 Marvin robot hardware Hint: The best thing to handle the Marvin robot is to grab it on the battery compartment or on the chains. In addition, it should be avoided to touch directly to the electronics (microcontrollers, etc.) as precaution agaist electrostatic discharge (ESD!).
  • Page 11: Marvin Robot Equipment And Accessories

    • Powerful micro-transmission motors with high-resolution odometry for high speed • Rubber chain drive • Application examples for Marvin iRP and remote control via Firefox or Google Chrome browser (PC, Notebook or tablet) • Robot programming tool (supports all AREXX robots) and USB drivers for Linux, MacOS and Windows •...
  • Page 12: Detection Range Of The Proximity-Sensors

    2.2.2 Detection range of the proximity-sensors The sensors have a detection range (FoV) of 25° and a range of approx. 30 cm. Distances below 10 cm are displayed as zero. This ensures that the robot can avoid the obstacles without having to go backwards. The two external sensors are twisted at +15°...
  • Page 13: Installation Of Additional Proximity Sensors (Rear)

    After installing the new sensors you have to configure the Robot accordingly. The details about the configuration you can find under section 3.8! Figure 2.3 Marvin with rear proximity sensors Hint: It is best to exercise soldering on a PCB before - be economical with the solder. Too much solder can cause shorts between the PINs! AREXX Engineering &...
  • Page 14: Linefollower Extension

    PCB. You only need a small Philips screw-driver. The LineFollower sensor signals can be used together the special iRP-Bloc for the sensor. Figure 2.4 Marvin with LineFollower Hint: After mounting the extension you have to configure the Robot accordingly.
  • Page 15: Gripper Extension

    • “open” • “close” • “up” • “down” Figure 2.5 Marvin with Gripper Extension Hint: After mounting the extension you have to configure the Robot accordingly. The details about the configuration you can find under section 3.8! AREXX Engineering & JM³ Engineering Version: 1.3.1...
  • Page 16: Commissioning

    2.3.1 Documentation and software The complete documentation and the Marvin-iRP Web IDE software can be found on the enclosed Micro SD card. It can be downloaded via the Marvin web interface and is then in the corresponding folder for downloads of the computer.
  • Page 17: Irp Webide

    2.3.2 iRP WebIDE The web interface software and the Marvin documentation are already on the enclosed Micro SD card. If the micro SD card is not already inserted in the robot, please do so carefully now. Figure 2.6 Marvin with inserted SD Karte Hint: The Micro SD card usually does not have to be removed from the robot.
  • Page 18: Irp Connection With Pc/Tablet

    PC/Notebook via WiFi: • WiFi - Infrastructure mode: Connect Marvin to a network (WiFi router or access point) • WiFi - AdHoc Mode: here you can connect the Marvin directly to the notebook or tablet PC. – SSID: Marvin – IP: 192.168.1.1 –...
  • Page 19 The Marvin supports DHCP and an IP address is automatically assigned. Hint: If necessary, change the firewall settings so that the Marvin robot can connect to the network! Please delete the browser cache if the iRP screen is not loaded properly! Here is the process for conversion to infrastructure mode: 1.
  • Page 20 That’s it - you can now familiarize yourself with the menu and load and run a first small program! 6. Load the sample program “running lights” 7. You should now see the status LED light up in different colors changing every 1 sec. Figure 2.7 Marvin WebIDE Welcomescreen AREXX Engineering & JM³ Engineering Version: 1.3.1...
  • Page 21: Status Leds

    2.3.4 Status LEDs To the status display of the robot (RGB-LED): • blue normal function • Purple (blinking) battery voltage low • Yellow no SD card or function impairment, Notes on USB Interface. • green busy (SD recovery) • blue/green (blinking) no firmware •...
  • Page 22: Remote Control And Display Screen

    2.4 Remote Control and Display Screen The “Remote Control and Display Screen” has five main functions: • The Remote Control user interface. • System Status display (information like system time, battery voltage, sensor status). • User accessible dislay (via iRP). •...
  • Page 23: System Display

    Figure 2.9 System Display 2.4.2 Calibration of sensors and set system time The Marvin robot supports the calibration of compass, gyro (rotational speed sensor), the optional LineFollower and distance sensors. These functions are initiated in the Remote Control and Display window (see also section 3.1) with the specific command buttons or via the command line interface (Figure 2.10).
  • Page 24: Rtc - Set System Time

    Go to the remote control and display page and click the button “Calibrate compass”. In the picture you see the imaginary axes related to the Marvin. The x-axis is red, the y-axis is green and the z-axis is blue. Yellow is the inclination vector whose angle is not exactly known and depends on the location on the earth.
  • Page 25 • Repeat this for east, south and west, or a complete circle, if possible with intermediate values, which increases accuracy. Hint: Do not tilt the Marvin too quickly during calibration! 2.4.4.4 Step 4 - finalization of calibration After completing the procedure, close the calibration mode by clicking on the corresponding button “Finalize calibration”...
  • Page 26: Calibration Of The 3D Gyroscope

    2.4.6.1 Step 1 - preparation Turn on the Marvin robot and connect the robot to the web interface in the browser. • Place the ruler in front of the respective sensor, so that the imaginary line of sight of the sensor is coincident with the ruler.
  • Page 27 Now measure the respective minimum and maximum value of the detection range. • To do this, approach the obstacle (Marvin Box) from approx. 35 cm until the raw value is set to a value smaller than 255 in the display.
  • Page 28: Calibrierung Of The Temperatur Sensor

    2.4.7 Calibrierung of the Temperatur Sensor The Marvin Robot supports an easy calibration method of the “Temp.-Sensor” with the command: • “cal temp refTemp”. The value for “refTemp” could be the room temperature. After this proceedure the calibration is completed and the correction value is permanently stored.
  • Page 29: Command Line Interface (Cli)

    AP channel “ch” “ch” is a number between 0 and 13. “ch” = 0 for automatic channel selection. Switches Marvin to AdHoc mode. wlan AP MODE Joins the network with the SSID “SSID” and the password “passwd”. In wlan STA addprofile the future, it will automatically try to connect to this network.
  • Page 30: Programming With Irp

    Tabs (Light Bulb) (Worksheet) Figure 3.1 Marvin WebIDE Menu bar The link indicator is located to the left of the language menu. • A green light indicates a good connection. • A red light indicates a short-term interruption or use of the entire bandwidth for downloading documents from the SD card.
  • Page 31: Marvin Webide Configuration, Help And Source Code Buttons

    Program program Delete / Zoom Trashcan Figure 3.2 Marvin WebIDE program buttons Help Source code g uration ¡ Figure 3.3 Marvin WebIDE Configuration, help and source code buttons AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: 25...
  • Page 32: The Language Setting Symbol

    • Here you can edit your programs, e.g. load, store etc. . • Marvin SD card programs (menu to load and save) • You can also select the iRP mode (Beginner, Intermediate, Expert) set to. The dark gray color indicates the selection.
  • Page 33: Irp Help

    • Click on the light bulb symbol (picture shown at the top left) or • Click on the question mark on the right side of the screen. The help sidebar scrolls to the currently used block automatically (see Figure 3.4). Figure 3.4 The Marvin WebIDE Helpbrowser AREXX Engineering & JM³ Engineering Version: 1.3.1...
  • Page 34: My First Program

    3.3 My first program • A new program is simply merged together from the iRP blocks. • If blocks are not logical matching, you can not attach them to the other block. In the example, the block “real number” does not logically match to a “integer” (Figure 3.5). Figure 3.5 Mismatch of block types in iRP 3.4 Program execution and stop •...
  • Page 35: Program Errors (Debugging)

    Figure 3.6 Menue - Programs at the SD-Card 3.6 Program errors (Debugging) If an error occurs during programming, an indication is given and the corresponding block is highlighted (see Figure 3.7) Hint: A very useful feature is the ability to set breakpoints to stop the program and display an interesting value or state in the virtual display.
  • Page 36: Program Code (Source Code) Viewer

    3.7 Program code (source code) viewer For further debugging, it may be helpful to look at the source text - but this is rather something for advanced and experts. The selection is made by means of the program tab “source code” - in this case outputs as C++ source, C++ header and assembler are possible (Figure 3.8).
  • Page 37: Configuration Of The Robot

    The configuration menue Figure 3.9 can be accessed by clicking on the “tool symbol” on the right upper corner of the browser window Figure 2.7. The Marvin Robot configuration can be easily achieved via the iRP WebIDE. Simply click on the drop-down menue Figure 3.9 or tick-mark the selection field.
  • Page 38: Jm3 Robot-Tool

    • Select the robot type, e.g. “Marvin”. The available USB port name can be looked up in the system configuration - the USB port is usually “/dev/ttyACM0”. Just type in the correct USB port e.g.
  • Page 39: Macos - Sierra

    • Select the robot type, e.g. “Marvin”. The available USB port name can be looked up in the system configuration - the USB port is usually “/dev/tty.usbmodem1421”. Just type in the correct USB port e.g.
  • Page 40 • Select the robot and the program in the lists on the left. • Click “Upload program” (at the top of the toolbar) • Click “Save” (at the top of the toolbar), if you want to save the created robots and programs. Hint: The JM3 Robot-Tool is developed for and tested on Windows 7 - newer versions will work as long as Microsoft will maintain the backward compatibility of the libraies!
  • Page 41: Terminal Window

    4.2 Terminal window The terminal feature in the JM3 Robot-Tool allows serial data to be received and sent. It can also record data and save it to a file. Various settings are available “Settings”: • Connect to robot - “Connect” allows data to be received. •...
  • Page 42: Bootload Hex-Files (C/C++ Code)

    4.3 Bootload hex-files (C/C++ code) To upload a self-written program “myProg.hex” or upgrade the Bootloader “bootloader-xx.hex” into the micro-controller you must have installed the JM3 Robot-Tool before you can continue (Figure 4.2). Hint: The JM3 Robot-Tool differentiates two types of hex programming: •...
  • Page 43: Upload Own Program Code

    “Marvin”. • Click OK. • Now select the robot entry from the list e.g. “Marvin” and the hex-file by clicking on it one by one (highlighted light gray) and click “Upload”. • Click on “Save” (at the top of the toolbar), if you want to save the created robots and programs.
  • Page 44 • A click on “Upgrade Bootloader” executes the update. • Ready - the new bootloader is permanently flashed. AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: 38...
  • Page 45: Jm3 Ext4-Browser

    5 JM3 ext4-browser The JM3 ext4-browser has got two main functions: • File browser to access the SD-Cards ext4-file system (e.g. rename /read / write / delete of files or folders) • Image file operations (e.g. open / create / write) 5.1 JM3 ext4-browser installation 5.1.1 Linux - Ubuntu 16.04 A special SD-Card browser for the ext4 file system is not necessary under Linux.
  • Page 46: Micro Sd-Card Access

    5.2 Micro SD-Card access 5.2.1 Linux - Ubuntu 16.04 A special SD-Card browser for the ext4 file system is not necessary under Linux. Reading and writing of files is supported by the normal file explorer! Image files can be written or created as well. 5.2.2 MacOS - Sierra •...
  • Page 47: Ext4-Browser

    • Select disk - click on the arrow to see which drives are available, e.g. “GenericMass-Storag USB Device (xxxxx MiB)”. • Click “OK” • The further operation is similar to other file browsers or explorers, i.e. self-explanatory. User data or program examples can be found under the folder “prog”. •...
  • Page 48: Micro Sd-Card Update

    5.3 Micro SD-Card update 5.3.1 Linux - Ubuntu 16.04: The SD-Card update is started either by double-clicking on the image file (*.img), or by running an “right-click” on the image file, and selecting “Writing disk image”. After this, a window “Restore disk image”...
  • Page 49: Macos - Sierra / Windows 7

    Attention: If a pop-up messages from the operating system ask for “Format SD-Card” - this message must be ignored - click “cancel” instead. Formatting or repairing makes the SD-Card unreadable for the Marvin. AREXX Engineering & JM³ Engineering Version: 1.3.1...
  • Page 50: C++ Software Development

    6.1 Software package for Marvin The Marvin software package consists of the web interface software, the operating system (FreeRTOS) with API functions and a library with all hardware drivers, e.g. ADC, Timer, I2C, UART, LED, Keypad and the virtual display.
  • Page 51: Toolchain Für C/C

    • Install the “Robottool”, see chapter 4. • Save and unpack the Marvin firmware package e.g. “firmware-v1.3.1.tar.gz” from the SD card. • As an editor you can simply use “gedit”. • Execute the “make all” or “make clean” command from the source code directory to compile or clean up the program.
  • Page 52 • Unpack the GNU compiler into this folder and make sure that the GCC folder is called “gcc-arm-none-eabi” - if not rename accordingly. • Save and unpack the Marvin firmware package, e.g. “firmware-v1.3.1.tar.gz” and the “make-4.2-bin-osx.tar.gz” build system from the SD card to this folder.
  • Page 53 • Unpack the GNU compiler into this folder and make sure that the GCC folder is called “gcc-arm-none-eabi” - if not rename accordingly. • Save and unpack the Marvin firmware package, e.g. “firmware-v1.3.1.tar.gz”, Python, e.g. “python-3.6.3-win32.7z” and the build system “msys-nano.7z” from the SD card and add this also into this folder.
  • Page 54: Software-Library

    This also simplifies the transition from iRP to C++ code development. 6.1.3 Marvin function buttons The Marvin function buttons in the Remote Control and Display tab Figure 6.1 can only be used with your own C++ programs. Figure 6.1 Marvin function buttons in Remote control and display tab 6.2 Demo software description...
  • Page 55: User Task For Own C/C++ Programs

    6.3 User task for own C/C++ Programs To simplify the start into the C/C++ programming world on the Marvin Robot and his Real Time Operating System (FreeRTOS), a special “User Task” has been created which works similar to the “main()” function and without influencing the rest of the software system.
  • Page 56: User_Code.cpp File

    It is also possible to extract and copy C++ code from the iRP domain into this task. Example: • Connect Marvin and start iRP in your browser. • Load the iRP program “ClockWithSound” from the SD-Card. • In the iRP WebIDE go to “Show source code” - default is “C++ view” and store the source code by clicking on the “Disk Symbol”.
  • Page 57: Copy Irp_Program.h Into User_Code.h File

    6.4.1 Copy IRP_program.h into user_code.h file The result should look like below: // This file was automatically generated from Marvin iRP. // You can use this file as starting point for your own Marvin C++ program. #pragma once #include "lib/rtcDriver.h"...
  • Page 58: Copy Irp_Program.cpp Into User_Code.cpp File

    6.4.2 Copy IRP_program.cpp into user_code.cpp file The result should look like below: // This file was automatically generated from Marvin iRP. // You can use this file as starting point for your own Marvin C++ program. #include "user_code.h" void user_code::Task(void* pContext __attribute__((unused))) // Creats a second clock in the user // display and beeps every ten seconds.
  • Page 59: Technical Data

    7 Technical data 7.1 Dimensions and weight Width: 125 mm Length: 148 mm Height: 50 mm Weight: 195 g (without batteries) 7.2 Power supply and power requirement = 8.4 V ± 5% => 6 AA cells Attention: The absolute maximum is bei 10.0 V !!! = 160mA +40.0 mA / -20.0 mA =>...
  • Page 60: Schematic Details

    8 Schematic details 8.1 Arduino Extension Board Arduino Shields are supported by the Hardware. All common interfaces such as I2C, SPI, UART ADC and GPIOs or various timer outputs supoorting frequency or PWM generation e.g. for servo control. An input capture function is available for measuring frequencies and duty cycles.
  • Page 61 Figure 8.1 Marvin Arduino header - schematic AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: 55...
  • Page 62: Jtag Header

    Pin 2 = Pin 3 = Pin 4 = VDD_3V3 Pin 5 = Pin 6 = RST_N Pin 7 = Pin 8 = Figure 8.2 Marvin JTAG Header - Schematic AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: 56...
  • Page 63: Pin Mapping Tm4C129Ekcpdt

    8.3 Pin mapping TM4C129EKCPDT Table 8.3 TM4C129EKCPDT Pin mapping Name Function Signal Name Function Signal SSI2DAT1 MISO_SD U0RX RX_X SSI2DAT0 MOSI_SD U0TX TX_X SSI2FSS CS_SD SSI0CLK SCK_X SSI2CLK SCK_SD SSI0FSS CS_X SSI3CLK WIFI_SPI_CLK SSI0DAT0 MOSI_X SSI3FSS WIFI_SPI_CS SSI0DAT1 MISO_X VDDA GPIO REAR_R VREFA+...
  • Page 64 Name Function Signal Name Function Signal HIB_N XOSC0 XOSC1 VBAT RST_N GPIO nHIB TSCCP1 GPIO_T7 GPIO PROX_FR_CS TSCCP0 GPIO_T6 GPIO PROX_FM_CS GPIO GPIO_T5 GPIO PROX_FL_CS GPIO GPIO_T4 GPIO T3CCP1 GPIO_T3 GPIO INT_FL T3CCP0 GPIO_T2 GPIO INT_FM T2CCP1 GPIO_T1 GPIO INT_FR T2CCP0 GPIO_T0 GPIO...
  • Page 65: Pcb Print

    8.4 PCB Print Figure 8.3 Marvin PCB Print AREXX Engineering & JM³ Engineering Version: 1.3.1 October 27, 2017 Page: 59...
  • Page 66: List Of Figures

    2.4 Marvin with LineFollower ........
  • Page 67 List of Tables 2.1 CLI Kommandos ......... 23 8.1 Pin out Arduino compatible header .

Table of Contents