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.
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.
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) •...
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!).
• 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 •...
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°...
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 &...
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.
• “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...
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.
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.
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...
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 •...
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). •...
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).
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”...
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.
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.
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.
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.
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...
• 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.
• 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...
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 •...
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.
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).
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.
• 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.
• 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!
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. •...
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: •...
“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...
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.
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 •...
• 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”. •...
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”...
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...
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.
• 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.
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...
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.
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”.
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"...
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.
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 =>...
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.
Need help?
Do you have a question about the Marvin and is the answer not in the manual?
Questions and answers