Controlling A Micro Helicopter with a PS2 Controller

The Syma S107G is a venerable stalwart of the micro helicopter market. Affordable, robust, and ubiquitous, the S107G relies on infrared to receive its control signals. Emboldened by the prior work of others, [Robert] set out to control his with a Playstation 2 controller.

In this project, [Robert] is standing on the shoulders of giants, so to speak – we’ve seen others reverse engineer the S107G’s communications protocol before. [Robert] combined the efforts of several others to understand how to send commands to the helicopter, including use of two separate channels for controlling two at once.

With the knowledge of the necessary protocols, it’s then a matter of hooking up 3 LEDs in a somewhat unconventional series arrangement with a 9 volt supply, to be switched by an Arduino hooked up to a computer. A Javascript application running on the computer reads the state of a Playstation 2 controller, and spits it out over serial to the Arduino, which flashes the LEDs.

It’s not the neatest, most lightweight way of building a new controller for your remote control toy, but it does show how quickly one can throw together a project in a weekend by combining modern hardware and software tools. Plus, it’s a great learning experience on a platform that’s been experimented with the world over.

9 thoughts on “Controlling A Micro Helicopter with a PS2 Controller

    1. Thanks, the primary intention wasn’t to fly it with a PS controller. I created the gamecontroller lib and worked on the heli to fly it autonomously. So I combined the two projects in the first step. Of course, you can use the ps controller directly right out of Arduino.

  1. Isn’t it possible to substitute in a 433mhz rx and tx to the helicopter and control, or the whole arduino module on a PS2 controler; again with or without a computer.

  2. I’m a little curious on how well the PS2 controller works to fly the heli. I’ve never been able to keep a Syma in the air longer than a few seconds without flying off in some random direction before I can get the trim worked out, or slamming into the ceiling. forget trying to fly it outside. my Blade helis (coax, single rotor, collective pitch) though, have been much more forgiving.

    once, I was looking to get a simulator so I can stop buying parts for my actual helicopters, so I first started looking into open source solutions so I wouldn’t have to spend any more money than I needed to. I found one, and for a controller, I think I ended up using a wired Xbox 360 controller. it worked, but the play and dead-zones in the analog sticks was terrible. you could adjust for it in the sim software, but it really dampened the experience so much so that I ended up buying a commercial solution anyway.

    1. Timmy, I had trouble keeping the heli stable with the original controller as well. But after ripping apart the original controller to build an Arduino based one, I was able to fine-tune the trim value (much better than with the original potentiometer).
      My first flight attempts using only the Arduino with some constants to make it hover failed, since you have to correct quite often until the heli stabilizes. Using the Playstation controller, the results are pretty good. I was able to hover the heli with the code I published on my site. I figured that the gyro on top of the rotor blades must be horizontal at the beginning. It will stabilize itself after a while, but the initial drift is annoying.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s