Introduction: Sphero's Automobile

About: I am a junior engineer at Orbotix, the creators of Sphero.
Sphero driving a car?! Yes. Pretty awesome, right?

Sphero is the first robotic ball that you control with a tilt, touch, or swing from your smartphone or tablet.  In addition, Sphero has iOS and Android SDK's for developers, which allows virtually anyone to program new games and apps for Sphero. Find out more information on our website.

In the video below, Sphero commands the toy car where to drive. It does this through a trackball similar to the one used in a computer mouse or in the arcade game of golf . Sphero sits on the trackball’s wheels and his weight and momentum cause them to move. The wheels have encoders that then tell the car what direction Sphero is moving by sending out x and y coordinates of the movement to the motors. Roll Sphero forward and the car drives forward. Roll Sphero to the right and the car turns to the right.

Sphero’s car was created by our Junior Developer, Skylar. He got all of the electronics for the car from Sparkfun. This included a trackball, an Arduino board, and an H-bridge. The actual car was an old toy Orbotix had bought for $10. It only took a handful of parts and a tiny bit of coding in Arduino to make it happen. Sphero does the rest. The really amazing thing is that we are using Sphero’s brains and technology to create other robots!


Step 1: Gather Parts

*Please read tutorial and reference images before building project for best case results*

The original Sphero Car included a breadboard using an Arduino Board - meaning it is pluggable instead of soldered. This tutorial will be explained in terms of the pluggable breadboard. 

Parts:

Arduino uno 
http://www.sparkfun.com/products/10356 $29.95
or
Atmel Micro Processor with Arduino BootLoader
http://www.sparkfun.com/products/9217 $4.95

RC Car 
http://www.amazon.com/Kid-Galaxy-Morphibians-Killer-Whale/dp/B0032HF60M/ref=pd_sbs_t_5              $21.98

Wires, Heat Shrink, Bread-board & Headers
http://www.sparkfun.com/products/8803
http://www.sparkfun.com/products/9353
http://www.sparkfun.com/products/9387
http://www.sparkfun.com/products/553

Trackball- PS/2 
http://www.sparkfun.com/products/10758    $14.95

H-bridge & Heat Sink
http://www.sparkfun.com/products/315       $2.35
http://www.sparkfun.com/products/10746

Battery 
http://www.hobbyking.com/hobbyking/store/__7303__Rhino_460mAh_2S_7_4v_20C_Lipoly_Pack.html

Other Suggestions
Arcade Button Switches
Metal wire or "fencing"

Step 2: The Rc Car

To be able to use the car, the first step is to remove its insides. Here's how:

1. Open the RC car by unscrewing the screws underneath. Cut the wires as close to the circuit board's box as possible.

2. Next, unscrew the top shell where the battery holder is located. If you intend on using this battery holder (instead of using a separate battery), leave it in.

3. After cutting up the inside, tin (cover with soft solder or tin) the motor wires and attach it to a 4-pin header. 

4. Attach the RC car's switch wires to your battery power. Then, attach them to the male output to power the arduino board. 

5. Lastly, place a piece of Laxan plastic to the top of the motor's shell. This creates a platform where you can place electronics.


Step 3: Wiring It Up

Trackball PS/2:
-After unscrewing the top of the trackball and pulling out the inner ball, cut the end connections of the wire.
-Make sure you have as much wire as you need from the trackball. 

There are two black cords:
-One is the data wire where there are 4 wires (orange, blue, purple, and brown).
-The second cord contains different wires where you can include classic arcade buttons. We did not use these, but they work well for I/O pins if you want other inputs for data.

Orange -Gnd
Blue - 5V
Purple(Data) - Arduino Pin 5
Brown(Clock) - Arduino Pin 6

H-bridge:
This is how we control our main motors. After tinning and connecting the motor wires to a header, connect the right motor to the right pin.

1. ENN - 5V
2. A1- Arduino 10 
3. m1  - Motor red
4. Ground
5. Ground
6. m2  - Motor Blue
7. A2 - Arduino 9
8. VNN
9. 5V
10. B1 - Ardino Pin 11
11.m3  -  Motor green
12. Ground
13. Ground
14.  m4 - Motor yellow
15. B2 - Arduino Pin 12
16. ENN 5v


Step 4: Placing the Trackball and Components

Arduino:
-This goes underneath the frame on top of the Laxan Platform.

Battery and Trackball Button Cords:
-Use Velcro to hold the battery on the outside.
-Holes for power plug and switches to fit out the back.

Trackball:
-Use Velcro to hold the trackball on top.
-To make sure Sphero Does not fall out, we put in a few bars. Without these, Sphero can jump out of the trackball holder.
-While putting in the bars, make sure not to block the encoders.
-The breadboard is pasted on the back.

Bread-Board:
img 4
-Trackball cord going to 4 pins 

Line Splitter:
img 4, 5
Female header to connect to motors split into two different spacers.
Spacer : 4-header pin with a 2-header spacer for the H-bridge. Outside pins is Motors while inside pins act as a spacer over ground pins

Step 5: Arduino Programming


Step 6: Final Steps and Thoughts

Sphero's direction:
-Sphero, the world's first robotic ball you control with your smartphone, has an auto-adjust heading with iOS devices.
-Because of this, the direction you drive Sphero creates the front direction of the RC car. 

Different sized vehicles or devices:
-Adding different motor drivers or controls, we can create many variations to devices that Sphero can drive.

Here at Orbotix, our passion is to bring people into the world of robotics and technology and provide a great experience for our users. As more people interact with Sphero, we continue to discover the possibilities for gameplay with our unique, intuitive robot. So go ahead, see where your creativity takes you and your Sphero! And be sure to let us know what you come up with.   

Robot Challenge

Participated in the
Robot Challenge

Make It Real Challenge

Participated in the
Make It Real Challenge

Arduino Challenge

Participated in the
Arduino Challenge