Arduino RC Gamepad


14,563

224

17

Introduction: Arduino RC Gamepad

I work at RobotZone ( the folks behind Actobotics and ServoCity.com ) in Winfield, KS. I love worki…

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

Be the First to Share

    Recommendations

    • Toys & Games Contest

      Toys & Games Contest
    • Big vs Small Challenge

      Big vs Small Challenge
    • Fix It Challenge

      Fix It Challenge

    17 Comments

    0
    laoadam
    laoadam

    2 years ago

    hi, I am preparing the parts, the attached picture shown a different from yours, may I take the same pin out as yours?

    rc-1.jpg
    0
    AlensoL
    AlensoL

    Question 2 years ago on Step 6

    What kind of connectors did you use to plug the motors into the breadboard? Thanks.

    0
    Ghloo
    Ghloo

    3 years ago

    Mrat, thanks! Will try to reproduce. :-)

    0
    Edikxp
    Edikxp

    3 years ago

    You can repeat the project on NRF24L01 + TB6612FNG + arduino micro ? Just write the code

    0
    kcada2563
    kcada2563

    3 years ago

    hi can i change pro micro to arudino nano?

    0
    Chauhan Vivek R
    Chauhan Vivek R

    4 years ago

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

    0
    ahmed01278999735
    ahmed01278999735

    4 years ago

    hi

    can i replace arduino mico by arduino uno?

    if yes ....what is the changes?

    0
    chipimix
    chipimix

    4 years ago

    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!!

    0
    chipimix
    chipimix

    Reply 4 years ago

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

    0
    gravityisweak
    gravityisweak

    5 years ago

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

    0
    saau
    saau

    Reply 5 years ago

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

    0
    israelt11
    israelt11

    Reply 5 years ago

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

    0
    mbart6178
    mbart6178

    Reply 5 years ago

    cool project

    0
    israelt11
    israelt11

    5 years ago

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

    0
    Tsartsanis
    Tsartsanis

    5 years ago

    Good job, nice project