Introduction: Car No.03 Steering Wheel Drive R/C Car With Arduino, Webcam and Net.USB Etc. But This Is Crawler and 4WS (4 Wheel Steering)

This Car No.03 uses similar system as Car No.02, but different chassis Crawler CR-01 is applied, which has optional 2 servos system and that makes crab-driving (4 wheels same direction) or short turning radius driving (front and rear wheels different direction) available. It makes great fun for driving!

Step 1: Procurement

R/C Car
- Motor ATLAS AT7-153 Rock-Climber Stock Motor 130T
- Servo Futaba 404PD x 2
- Speed Controller Tamiya TEU-104BK
- NI-Cd Battery 7.2V 1300mAh

Mounted devices on R/C Car
- Arduino Duemilanove
- Arduino ProtoShield Kit DEV-07914
- Bluetooth Modem BlueSMiRF
- 5V 500mA Battery eneloop mobile booster KBC-L3AS
- Webcam Microsoft LifeCam HD-5000 7ND-00006
- USB Device Server IO Data ETG-DS/US (net.USB)
- Wireless Broadband Router MZK-MF300N
- 12V 1A Low Dropout Regulator LM2940CT-12 kit
- 5V 1A Low Dropout Regulator LM2940CT-5.0 kit
- AA battery x 20
- Battery Case (AAx10pcs) x 2
- Lubic, etc

PC side (Same as Car No.02)
- Steering Wheel Logicool Driving Force GT LPRC-14000
- Bluetooth USB Adaptor Parani-UD100
- Wireless LAN USB Adapter GW-US300MiniS
- Wireless LAN Extender PLANEX MZK-EX300N-EZ

Software (Same as Car No.02)
- Arduino
- Processing
- Jmyron (

Step 2: Assembling

Assemble Tamiya MERCEDES-BENZ UNIMOG 406 SERIES U900 CRAWLER CHASSIS CR-01 CHASSIS in accordance with Assembly Manual.
(Precise Assembly Manual is not available on website, but another CR-01 chassis one is available.

- Get the center value of servos and set up speed controller
  Instead of Part 12 of Assembly Manual (Checking R/C equipment), get the center value of servos and set up speed controller with connecting them to Arduino.

  Upload the attached Arduino code. Total 3 controllers (2 servos and 1 speed controller) are used in this system. Instead of <Servo.h>, <SoftwareServo.h> is applied for Arduino code.

Arduino code

  Connect servos and speed controller to Arduino.
  (Servo1 front --> D9, 5V, GND Servo2 rear --> D10, 5V, GND Speed Controller --> D11, 5V, GND)

  Run the attached Processing code.

Processing code

  Once the display window appears, press ‘s’ key to start serial communication.

  ‘Right’ and ‘left’ arrow keys relate to servos and ‘up’ and ‘down’ ones relate to speed controller.

  Make the first figure 64 in the Processing lower black screen by pressing ‘s’ key.

  Attach a servo arm to Servo1(front) as much as central. After attaching the servo arm to Servo1, get the center value of servo1.
  (Press ‘right ‘and/or ‘left’ arrow keys, make the servo arm center, then read the first figure.)
  Next Servo2(rear), press ‘s’ key and then ‘b’ key, then the same way as Servo1.

  Set up speed controller in accordance with speed controller setup manual.
  (Press ‘s’ key, then the second value becomes 63 as neutral. Press ‘f’ key then press ‘up’ arrow key continuously, then the second value becomes 127 as forward max. Press ‘r’ key then press ‘down’ arrow key continuously, then the second value becomes 0 as backward max.)

  Disconnect servos and speed controller from Arduino.

- Receiver(Part 27) and antenna pipe(Part 32) are not required for this system

- Body
  Make holes for Lubic mount and Webcam attachment.
  Attach Lubic mount .
  Attach Webcam together with Arduino+ProtoShield+Bluetooth Modem.

- Attach 12V 1A and 5V 1A power supplies on acrylic plate.

- Attach wireless broadband router, USB device server and eneloop battery on acrylic plate with double-faced adhesive tape, and fix on Lubic mount.

- Wiring/Connect and mount 2 battery cases (AAx10pcs x 2).

Step 3: PC Side Setup

- Install driver and connect Steering Wheel.

- Install driver and connect Bluetooth USB Adaptor.

- Install driver and connect Wireless LAN USB Adapter.

Step 4: Code

- Arduino code is same as used in Step 2.

- Download Jmyron and proCONTROLL and install them.

- Processing code is attached.
  Adjust servoneutral values and COM No.
  Adjust xa calculating formula in void serialEvent and void keyPressed. (Adjust 32 and 98. 32 is max steering to right and 98 is that to left.)

xa = (32-98)/(camWidth_*k_)*x+98; // 0-->98, camWidth_/2*k-->65, camWidth_*k-->32

Processing code

Step 5: Let's Drive!

R/C Car side
- Switch on 12V and 5V power supplies, RC Car (7.2V) and eneloop (5V).

PC side
- Establish Bluetooth connection.

- Establish Wireless LAN connection

- And await for net.USB connection. (It sometimes takes more than 10 minutes!)

- After these connection established, run Processing code.

  Once the video capture appears, press ‘s’ key to start serial communication.
  Vertical and horizontal lines are indicated on the video captured screen.

  Pull the gear shift lever for forward and push it for backward.
  Break pedal for break and accelerator pedal for accelerator.

  Press Circle or R2 button on wheel steering for crab-driving(4 wheels same direction).

  Press Square or L2 button for short turning radius driving (front and rear wheels different direction).

  Press Triangle button for 2WS.

  Press X button for emergency stop.

Step 6: Trailer for Car No.04

In Car No.04, I integrated batteries, modularized a bit, and applied an advanced net.USB.