Update: I’ve posted a new project, Controlling a Syma S107G Using an Xbox 360 Controller that you may be more interested in. 🙂

This is a project I’ve had in mind for a while to get me back into coding on the Netduino again, it’s fairly simple but covers some important topics and can be scaled up for bigger projects.

WP_000614

As the title suggests the idea is to use an Xbox 360 controller to control an RC car.  I’ve wanted to do this for a while as the Xbox 360 controller is a wonderful piece of kit and ideal for various projects including robotics control.  I’m thinking of getting a little RC helicopter and performing the same hack.  I’ve a T-Rex SE 450 but I think I’ll carry on with my Futaba for that. Smile with tongue out

The title may be accurate but can also be a little misleading as you’ll still need a PC to act as an interface.  My idea is to build a PC based robot at some point so for me this isn’t an issue.  The data flow is as follows;

Xbox 360 Controller –> Wireless Gaming Receiver –> PC –> Netduino –> RC Car Remote

On the PC I have a simple .NET Windows Forms application which listens for an Xbox gamepad on “Player One” and it communicates with the Netduino using serial.  To control the car itself I wired up four of the Netduino digital pins to the relevant pads on the PCB of the RC controller itself to mimic the switches.  For debugging I added an LED for each direction to get the code working before I connected the PCB.  The RC controller itself ran on two AA batteries so I used the 3v3 output on the Netduino to power it.

WP_000622

WP_000621

Code cab be found at the link below so people can learn from it and for my own reference, I’ll likely forget how to do this again at some point!
Netduino Serial Example

Video of the whole thing working below;


Controlling an RC Car with an Xbox Controller from Jason Neave on Vimeo.
At some point I’m going to hack my old Roomba with something similar as this, it’s an Original model so doesn’t have a serial port though which makes things more complicated but it wouldn’t be fun if it was too easy.

Update:  Adding a closer photo of the connections between RC remote and the Netduino.  Set the pin high to imitate a button press on the RC controller;

 

 

9 Responses to Controlling an RC Car with an Xbox 360 Controller via a Netduino

  1. Nixdorf says:

    Hi Keegan, i am currently leanring how to use a netduino and i fancied trying out your xbox controller project, but im sturggling to get to grips with the wiring :S i know this is a bit cheeky but could you put up some more pics of the wiring on the netduino and breadboard? or could you email them to me? would be fantastic if i could get some as im kinda stuck.

    Thanks alot

    Nix

    • Keegan says:

      Hey Nix, I’ve added an extra photo for you. Hopefully it should clear it up for you.

      Keegan

  2. Nix says:

    wow thank you, will try that when i get back tonight

  3. Nix says:

    Hi Keegan,
    Me again 🙂 im a little confused with the way you have connected the netduino to your laptop, you said “communicates with the Netduino using serial. ” but i cant find a cable that goes from serial to micro usb? :S did u make your own cable?
    when i run the code it errors and says it cant find “COMx” because my netduino is connected through USB.

    any help would be fantastic as im really stuck
    Thanks
    Nix

    • Keegan says:

      Hi Nix,

      Sorry for the confusion, the standard USB to Micro-USB cable was used but in C# the interface is referred to as a serial port. I hope this has cleared things up.

      Regards,
      Keegan

  4. Your blog, “Controlling an RC Car with an Xbox 360 Controller via a Netduino

  5. Mike says:

    Hey Keegan,

    I just wanted to say thanks! I used your form to start my own project using Xbox 360 to control an ROV. I’m still in the early stages but your c# app is what I used as the starting point. I wanted to mention that I don’t think you have any Arduino sketches in your zip file. At least I couldn’t find one. I pulled one in from the main Arduino site. Also, you might want to tell people where the comm port is set in case they need to pick a different one. I put a combo box on the form to select the comm port and change the baud rate and now it’s working great. I also have some progress meters on there and I’m converting the stick inputs into a number from 0-255 so that it can be fed to an Arduino motor control.

    I’ll keep you posted on the progress if you like.
    Thanks again!!!

    • Keegan says:

      I’ll double check the zip file but glad to hear my post helped, keep up the good work and send me a link when you done 🙂

Leave a Reply

%d bloggers like this: