Introduction: Arduino RC Gamepad

I set out one day to figure out a way to utilize some relatively cheap electronics to make a homemade RC transmitter and Receiver using an arduino on both ends. The advantage of this setup vs a standard RC transmitter & receiver is that you can connect sensors to gain some level of semi-autonomous capabilities (for example a proximity sensor which takes over to stop the robot before it drives off the edge of a table or down stairs). You could also utilize more buttons on the gamepad to control other things besides the drive motors (like a gripper for example) without needing additional channels.

This instructable will show you how to build what I built which I consider a decent springboard from which you could build a more sophisticated project.

Step 1: What You'll Need

Parts

  1. [1] 433Mhz RF transmitter & receiver
  2. [1] gamepad shield
  3. [1] Arduino Uno R3
  4. [1] Arduino Pro Micro
  5. [1] TB6612FNG dual motor driver
  6. [1] solderless breadboard
  7. [1] breadboard mount
  8. [1] 1/8" spacer (for breadboard mount)
  9. [4] 140RPM Right Angle Gear Motors
  10. [4] Motor Mounts
  11. [4] 2.55" Press Fit Wheels
  12. [1] 3.75" Aluminum Channel (585443)
  13. [1] Battery for Robot
  14. [1] Male XT60 connector (605138)
  15. [1] Battery for Transmitter
    (I used an Electrifly BP910 because I had one lying around and it fits about perfectly into my controller. However the battery I used on the receiver end of things would work as well, and fits almost as good, and is much cheaper)
    1. If you do use this battery then you will want a Male Deans Style Connector (605142)... to which you will probably want to just solder some jumper wires.
  16. Standoffs
  17. wires
  18. screws
    1. [8] 6-32 5/16" socket head screw (632108) for attaching motor mounts to channel
    2. [2] 6-32 7/16" socket head screw (632112) for attaching breadboard mount
    3. [6] 4-40 1/4” socket head screw (91251A106) for transmitter assembly
    4. [4] 4-40 3/16” socket head screw (91251A105) for transmitter assembly
    5. [6] 6-32 3/8” socket head machine screw (91251A146) for transmitter assembly
  19. [10] 6-32 nuts (585474)
  20. [2] #5 washer (90126A306)

Tools

Step 2: RC Gamepad Assembly

For the RC gamepad I laser cut a top and bottom plate out of 0.125" thick acetal and used standoffs to mount it all together. I created a diagram since I figured that would be the easiest way to show what went where.

Step 3: RC Gamepad Wiring

The wiring on the transmitter is very easy.

I plugged the VCC and GND pins of the RC transmitter into the + and – pins in the top right corner of the gamepad shield. This not only gave my transmitter power but provided a nifty way to mount it. I did need a jumper wire to go from the data pin on the transmitter to the D12 pin on the gamepad shield though.

The cavity just to the right of the arduino and below the joystick shield makes a nice spot for the battery.

Step 4: RC Gamepad Code

Step 5: Chassis Assembly

The chassis is very simple, it is comprised of a channel with 4 right angle gear motors attached (each with a wheel press-fit on the output shaft).

Step 6: Receiver Wiring

The wiring on this project gets a bit complex.

I used a 400 tie point solderless breadboard and detached the power rails so that it fits in the mini breadboard mount.

To keep you from spinning in circles or driving backwards when you first test it out I've provided a top-down view of the motors to help orient you. This assumes that you've mounted all the motors so that the solder terminals are facing inwards.

Step 7: Receiver Code

Step 8: Testing It Out

The only thing left to do now is test it out.

It does seem to suffer from some lag now and again and I believe this might be the arduino struggling to keep up with the constant stream of data coming from the transmitter. Hopefully I can build upon this for future projects and improve the performance. Feel free to contribute ;)

Step 9: Reference

Comments

author
kcada2563 made it!(author)2017-05-22

hi can i change pro micro to arudino nano?

author
Chauhan+Vivek+R made it!(author)2017-04-01

for which purpose you put select button?
(in program...)

author
ahmed01278999735 made it!(author)2017-03-16

hi

can i replace arduino mico by arduino uno?

if yes ....what is the changes?

author
chipimix made it!(author)2016-05-08

Hi! Can I use a arduino micro i have laying around instead? I think the only difference is the RAW pin being named VI but I'm afraid i'll fry my circuit. Any tips? Thx!!

author
chipimix made it!(author)2016-05-10

(answering my own question here, feeling kinda silly ...)
Yep, it worked :) !

author
gravityisweak made it!(author)2016-03-03

This looks great! Thanks for the detailed instructions. How much would you estimate this cost?

author
saau made it!(author)2016-03-04

well yeah I would also like to know the cost? That's one heck of a long tool prescription you have given up there....

author
israelt11 made it!(author)2016-05-01

if u a need to buy every thing its around 100 dollars

author
mbart6178 made it!(author)2016-03-03

cool project

author
israelt11 made it!(author)2016-05-01

would the code say the sam it i used another uno instead of micro pro

author
Insha-789 made it!(author)2016-03-23

Cost?

author
Tsartsanis made it!(author)2016-03-08

Good job, nice project

author
sakshambhutani made it!(author)2016-03-04

great!

About This Instructable

8,168views

202favorites

License:

Bio: I work at RobotZone ( the folks behind Actobotics and ServoCity.com ) in Winfield, KS. I love working on projects with my kids and seeing what ... More »
More by TeamJaeger:DeathGrip: Robot Claw GauntletLightweight Weed WhackerRC Fireworks Truck
Add instructable to: