Introduction: Controlling Radio Arduino Car Via Web Screen

About: Former software engineer. Beginner of Arduino.

This is my first Arduino prototyping. I would like to create a moving object which can be controlled via radio. The car consists of Tamiya Kits and XBee.

The web page for controlling the car is written with Node.js and Socket.IO.

Step 1: System Architecture, Components and Software Libraries.

The System architecture of the design is drawn above. I have installed Node.js, node-serialport(a Node.js library) and Socket.IO on my MacBookPro. Node.js controls XBee connection. Socket.IO controls Web screen.

These are the components and software libraries for this project.

  • *Arduino Uno x 1
  • *XBee Schield (sparkfun) x 1
  • *XBee Explorer USB(sparkfun) x 1
  • *XBee (Series 1) x 2

  • *Motor Driver TA7267BP x 2
  • *Capacitor 0.1uF x 2, 33uF x 2
  • *Tamiya Double GearBox
  • *Tamiya Universal Plate
  • *Tamiya Off-road Tire Set.
  • *Tamiya Ball caster

  • *Battery Box (for motor power)
  • *Mobile Battery (for Arduino power)

  • *Node.js (for XBee control and Web Server)
  • *node-serialport (a library of Node.js to handling serial connection)
  • *Socket.IO (for Web Screen Control)

Step 2: Breadboard Wiring Diagram.

This is the wiring diagram of the prototype. You can find the details of TA7267BP on the other websites too. It is a very simple wiring.

Step 3: Programming and Troubleshooting.

The source code of this prototyping is uploaded on GitHub.

https://github.com/mikilabo/arduino_remote_car

These are some difficulties which I encountered during this project.

XBee Setting via Mac: I found many articles about XBee setting for Windows OS, but only a few articles for Mac OS. Finally, I found XCTU for Mac. It is very useful XBee setting tool for Mac OS user.

Arduino Memory leak: I made a memory leak bug in my Arduino Programming. Initially, the program worked perfectly, but after few minutes, the arduino didn’t work well. At first, the programming source appeared to be ok. So, it took some time to resolve this issue.

Web Design: I can write programming code, but I am not good in at web design coding. Therefore, I decided to outsource html coding using oDesk. I hired Bangladeshi through oDesk. The cost of outsourcing was $6.67. It was quite a simple html coding, but it was good enough for me. The below picture is the specification sheet which I uploaded to oDesk.

Pin pointing: When you are making a prototype using Arduino, Web Programming and Server Programming, there are many possibilities which can cause bugs. In my case, the car suddenly stopped by the disconnection of jumper wire. However, it caused no problem in my programming and Arduino wiring at a glance. But still, it took hours to solve this issue.

Step 4: Conclusion.

Enjoy!