Labview & Arduino communication via wireless network

The wireless communication via Xbee between a moving 6 wheel robot controlled by an Arduino and a desktop computer with Labview will become very slow as soon as a  wireless network with an IP camera is added. This becomes an issue when steering the robot in real time. Therefore Labview & Arduino communication via ethernet is desired.

As many posts in several forums already stated the LabVIEW Interface for Arduino Toolkit is not setup to support communication via ethernet. It only supports serial communication via Xbee or USB.
The problem can be solved by using a wireless USB sharing station as part of an existing wireless network.
The setup and configuration I used are described below.

Desktop PC:
Windows 7, Netgear WNA3100 N300 Wireless USB Adapter, Labview student edition 2011 installed, Arduino software incl. driver installed.

Wireless Network: Router Linksys WRT54GL, IOGEAR Wirless 4-Port USB Sharing Station GUWIP204

1. Upload the LIFA to the Arduino while it is connected via USB cable to one of the  computers USB ports. I am using an Arduino UNO.
2. Setup your wireless network, if not already done.
3. Install the USB Sharing station as described in the manufacturer’s setup instructions.
Use the Arduino as USB device and connect the Arduino’s USB port to one of the USB
ports of the USB Sharing Station.
4. Open the IOGEAR Wireless USB Sharing Station software.
The IOGEAR software will recognize the Arduino.

IOGEAR setup1a

5. After installation, the Arduino has to be connected manually, using the IOGEAR software.

IOGEAR setup2a6. Check in the Windows device manager which port has been assigned to the Arduino.
in this example COM Port 6 is used for the Arduino Uno.

wireless network_a7. Update the Labiew vi and set to the correct USB port and speed.
Run your vi, application,….

labview config_a

More to come!!

6 Wheel Robot Experiment

6 Wheel Robot Experiment
(This is more a wordpress experiment than a robotic experiement)

6 wheel robot

Main components of the robot:
Micro Controller Board: Arduino Duemilanove,
Motor Controller: TReX Jr,
Prototype Shield for Arduino
Breakout Board,
3 Servos,
Wireless camera
Blinking LED Panels,
Xbee Modules
3 Double Gearboxes, 2 Batteries: 9.6V

Motors with capacitors
Ferrites

 

Double Gearboxes:
For noise reduction a 0.1uF capacitor has been soldered across the terminals of each motor.

 

Two ferrites are also inserted in the power line to the motor controller to reduce the interference of the micro controller by noise coming from the motors.

Arduino Duemilanove
Arduino & stand offs

 

Microcontroller Board Arduino Duemilanove:
The micro controller board is mounted to a prototype PCB for easier handling, assembly/dis-assembly or moving to another project without interfering with the controller. Mounting the micro controller as well as the motor controller on prototype PCBs also allows the stacking of multiple PCBs with different dimensions on top of each other.

 

TReX Jr

Motor Controller: TReX Jr:
Similar to the micro controller board, the motor controller is mounted to a prototype PCB. The TreXX Jr. from Pololu is a DC motor controller that can control two bidirectional motors and one unidirectional motor. For this robot the controller is configured to drive the three gearboxes on the left and right side of the robot independently via the asynchronous serial control interface.

 

Breakout Board
Breakout Board

Components of the breakout board:
C1:  10μF electrolyt. capacitor
C2:  10μF electrolyt. capacitor
C3:  0.1μF ceramic cap.

 

IC1:  5V Voltage regulator, used as power supply for servos.
Q1, Q2  2N7000 transistor,driver transistors for terminals
(J12,J13), in this application used to switch the LED
Panels on/off.
D1, D2:  2N4001 or 2N4007
S1:         Main switch
J1-J13:  Terminals (as available)
R1:        1KΩ resistor
R2, R3:  220Ω resistor
LED1:    LED (color as available)
J1-J6:    Terminals for up to 6 servos.
J8-J11:  Terminals to connect other loads to the battery .
J7:         Main terminals to connect the power supply/battery.

Software/Programming:
The Arduino software has been installed on a desktop computer as well as on a net book for mobile application. Computer and robot are communicating via two Xbee modules and the Serial Monitor of the arduino software.
Blinking of the LED Panels is realized by calling a function at the beginning and at the end of the main program loop. The LEDs toggle between ON and OFF each time this function is called. The program is about 80ms long, this creates the blinking effect.
The wireless camera is mounted on two servos. The camera can switch between pan mode or fixed mode, pointing forward, when driving. Switching between modes is done by pressing “p” key on the keyboard.
Forward/backward driving and turning of the robot is also handled via the keyboard of the connected computer.

Details can be found in the attached listing of the program code: sketch_robotexperiment

References/Resources:

TReX Jr    TReX Jr Commands   TReX Jr User’s Guide

Arduino Main Page   Arduino Forum

ladyada.net  Fritzing: PCB Design/Bread board

Xbee Module on Prototype PCB
Prototype PCB