Introduction: Mobile Earth Rover Two - 3.5G Exploration

If you can’t explore the Moon or Mars … you can always explore your neighborhood! Aldric Negrier

The main goal of this project is to alter a remote controlled vehicle and control it via
Internet Telerobotics using the Mobile Telephone Network (WWAN - Wireless Wide
Area Network) 3.5G or 4G (Long Term Evolution) and as an alternative you can always
use WiFi networks.

For this challenge it is necessary to make some modifications to a remote-control
car, adapting and equipping it with the necessary software and hardware in order to
achieve the objectives stated above.

Step 1: The Final Results (videos)

This first video shows th 3D Sketch of the Mobile Earth Rover Two that we are going to "create".

Step 2: List of Materials

All materials listed above can easily be acquired by on-line shopping, keep in mind
that the 3.5G/4G USB modem has to have a active unlimited data plan.

Suppliers:
   - Traxxas E-Revo 1:16 XL -   http://www.modelsport.co.uk
   - FoxBoaard G20               -   http://www.tigal.com  
   - Micro Servo Controller   -   http://www.coolcomponents.co.uk
   - 5 Volt Regulator              -   http://www.coolcomponents.co.uk

Project Costs:
   - Around 600$USD Total cost (in 2010)

Step 3: The Idea

The same as with the Mobile Earth Rover One:

https://www.instructables.com/id/Mobile-Earth-Rover-35G-Exploration/

The main goal is to be able to remotely control an RC vehicle using the mobile phone
Network (3.5G or 4G) controlled  via Internet Telerobotics in order to explore your
neighborhood, or let other people in remote locations do the exploring!
This goal is possible by equipping an RC Truck with an on-board computer capable of
connecting itself to the 3.5G/4G Network, thus making it ready to be controlled by any
one with a computer with an Internet connection.

Note:
  - In the image above, the hexagons correspond to the mobile phone network coverage
    area.

Step 4: The Mobile Earth Rover Two Design (3D Model)

The Mobile Earth Rover's Two design consists on the remodeling of the electric radio
controlled truck called "Traxxas E-Revo" and equipping it with an Single Board Computer
called FoxBoard G20 a 3.5G Modem and a web camera attached to the aileron.

The 3D sketch can be found below.

Step 5: The RC Vehicle (Traxxas E-Revo 1:16)

At 14 inches long, this E-Revo is about half the size of the 1/10-scale E-Revo.

Read more about the E-Revo here: http://traxxas.com/products/models/electric/7105erevo116

Step 6: The On-board Computer (Foxboard G20)

FoxBoard G20 main features:

Two 40 pin sockets pitch 2.54mm are available to plug the board on specific application
carriers or add-on boards. On these pins 3.3 Volt signals are available which can be
used to implement RS232/RS485/RS422, I2C, SPI, GPIO, A/D and PWM interfaces.

    Built on the Atmel ARM9 @ 400Mhz CPU module Netus G20-L (included)
    256KB of FLASH memory for the bootloader
    Up to 16GB on bootable microSD (*)
    Two USB 2.0 host ports (12 Mbits)
    One Ethernet 10/100 port
    One USB device port (12 Mbits)
    One debug serial port (3.3v)
    Two serial ports (3.3v)
    One serial port for 4DSystems oLed displays
    5VDC power supply input (compatible with PS5V1A)
    Real Time Clock with on-board backup battery (**)
    GPIO lines (3.3v)
    4 A/D converter lines, I2C bus, SPI bus
    Built-in quad power supply Netus PS1 module
    Same footprint and pinout of the old FOX Board LX832
    Fully mechanical compatible with TUXCASE and FOXCASE
    Average power consumpiom: 80 mA @ 5V (0.4 Watt) without microSD, ethernet link,
    USB devices or other peripherals.

(*) the microSD card memory is optional
(**) the lithium backup battery for RTC is optional

For Basic knowledge on how to use the FoxBoardG20 visit:
          
http://www.acmesystems.it/index_foxg20
You will find content like this:
    Getting started with FOX Board G20
    Discover the IP address
    Browse the File System inside the microSD remotely
    Type Linux commands using SSH
    Visit the internal WEB pages
    Using the Debug Port Interface
    SSH console via Web with Shell In A Box

Step 7: 1st Goal - the Connections

1 - The first goal is to make the following connections (follow the above picture):
    Instructions:
    1.1 - Connect the Foxboard G20 to ZTE 3.5G Modem via USB cable
    1.2 - Connect the Foxboard G20 to Logitech WebCam via USB cable
    1.3 - Connect the 6V battery to the 5V Voltage regulator:
         1.3.1 - Ground to Ground (black wire)
         1.3.2 - Baterry 6V to 5V Voltage Regulator Vin (red wire)
    1.4 - Connect the 5V Voltage regulator to the FoxBoard G20:
         1.4.1 - Ground to Ground (black wire)
         1.4.2 - 5V Voltage Regulator Vout to Foxboard G20 Vin (orange wire)
    1.5 - Connect the FoxBoard G20 to Micro Servo Controller:
        1.5.1 - Signal via Foxboard G20 Port J6.14 (TXD3  Transmit data ttyS4 ) to micro
                    controller serial signal pin (Blue)
        1.5.2 - Ground to common ground (black) 
        1.5.3 - Power via Voltage regulator 5V to micro controller power pin (orange)
    1.6 - Connect the Micro Servo controller to the Servo Motors via Servo cables
        1.6.1 - Micro Servo controller Signal to Servo Signal
        1.6.2 - Micro Servo controller Ground to Ground and 6V battery Ground
        1.6.3 - Micro Servo controller Power to 6V battery
    1.7 - Connect the Micro Servo controller to the Electronic Switch Controller (ESC)
        1.7.1 - Micro Servo controller Signal to Servo Signal
        1.7.2 - Micro Servo controller Ground to Ground
        1.7.3 - Micro Servo controller Power power cable is not connected to the ESC

Is it as simple as that, you are good to go.

Step 8: The Software (Real Time Linux)

The Operating System on the FoxBoard G20 is Debian Linux with Adeos patch and
Xenomai API  for a "real time computing environment" in order to control and predict
local latency.

Building a Xenomai patched Linux kernel package on the server side can be done by
following these simple instructions:

http://www.federicololli.com/xenomaifoxg20.htm

After following these instructions you will now have a operating system instaled in the
FoxBoardG20.

0 - The required Debian Linux software on the FoxBoard G20:
      0.1 - Webcam driver called v4l -       http://packages.debian.org/sid/v4l-conf
      0.2 - USB Modeswitch application- http://www.draisberghof.de/usb_modeswitch/
      0.3 - Sakis3G All-in-one script -       http://sakis3G.org
      0.4 - Install Apache2 -                        #apt-get install apache2

      What Sakis3G is?

      Sakis3G is a tweaked shell script which is supposed to work out-of-the-box for
      establishing a 3G connection with any combination of modem or operator.
      It automatically setups your USB or Bluetooth™ modem, and may even detect
      operator settings. You should try it when anything else fails!

      If you are lucky enough, you may be connected 30 seconds after

1- Download the Server Side Source Code:
    http://dl.dropbox.com/u/4302919/FoxBoard_Server.rar 
    Instructions:
            1.1 - Unzip the file
            1.2 - Change directory to FoxBoardServer\FOXSERVER
            1.3 - To recompile the code type: "make" in the command line terminal
            1.4 - Change directory to FoxBoardServer
            1.5 - Connect the 3.5G Modem to the FoxBoard G20 using a USB cable
            1.6 - Connect the Web camera to the FoxBoard G20 using a USB cable
            1.7 - To start the server type: "./1_inicia_3G_modem.sh" in the command
                     line terminal

3 - Download the Client side Source Code:
      http://dl.dropbox.com/u/4302919/Foxboard_Client_Java.rar
      Instructions:
            3.1 - Unzip the file
            3.2 - Insatall Eclipse-Java-Indigo IDE  http://www.eclipse.org/
            3.3 - Open a new porject with the project conteined in the unziped folder
            3.4 - Change the URL in class Core using the DYNDNS of the FoxBoardG20

                         public class Core {
                              static Socket serverSocket;
                              //change here according to your host name or ip
                              static String URL = "ualg.homeip.net";
                              static int   Port = 21, PERIOD = 50;

            3.5 - Run the program, and control the rover using your computer keyboard
                     - press "c" key to connect to the rover in ordr to control it.
                     - press "d" to disconnect form the rover.
                     - press "UP" arrow keyto move the Rover forward
                     - press "DOWN" arrow key to move the Rover backward
                     - press "LEFT" arrow key to turn left
                     - press "RIGHT" arrow key to turn right
                     - press "a" key to increse the aceleration of the rover main motor
                     - press "z" key to decrese the aceleration of the rover main motor
                     - press "s" key to increse the aceleration of the rover directional servo motor
                     - press "x" key to decrese the aceleration of the rover directional servo motor
                     - press "h" key to increase the neutral aceleration gear form the rovers main motor
                     - press "n" key to decrease the neutral aceleration gear form the rovers main motor
                     - press "j" key to increase the neutral aceleration gear form the rovers servo motor
                     - press "m" key to decrease the neutral aceleration gear form the rovers servo motor

4 - The software for Video Streaming on the server is called mjpg_streamer:
http://skillfulness.blogspot.pt/2010/03/mjpg-streamer-documentation.html

5 - The software for Audio Streaming on the server is called Murmur:
http://mumble.sourceforge.net/Running_Murmur

6 - The software for watching the Video Stream on the client side is any web browser
(URL- server_ip:port).

7 - The software for tuning in the Audio Stream on the client side is called Mumble:
http://mumble.sourceforge.net/Installing_Mumble

8 - Update IP addresses at dynamic DNS services. Update your dynamic IP address
at DynDNS.com by creating an account:
http://dyn.com/dns/

9- Install and configure a ddclient client in the Mobile Earth Rover FoxBoard G20 Computer:
http://www.debianadmin.com/ddclient-update-ip-addresses-at-dynamic-dns-service.html

Thats it, you are good to go, or let other people go explore!

/***************************************************************************************************************/
                             For any Questions Please send me an Email to:
                                            mobilearthrover@gmail.com       
                                                
                                Have Fun Building and Happy Exploring!!!                              
        
                                  Check out the Mobile Earth Rover One:
                 https://www.instructables.com/id/Mobile-Earth-Rover-35G-Exploration/

/***************************************************************************************************************/