part 2: Gestures+Heli

This is the final post (hopefully) in a three-part series on projects related to my Syma S107G helicopter. In the first post, I gave a generic review of the heli, and I improved its battery life by attaching another battery and reducing unnecessary weight. In the second post, I researched about the IR protocol it uses, and attempted to control the helicopter from my computer.

Initially, I had only one IR LED, which I used for transmitting the signal from the Arduino. However, if the helicopter shifted even 10 centimeters from the line of sight, it would fail to receive the signal. Its range was also limited severely, to less than 4 meters.

In an attempt to improve the signal, I attached two more IR LEDs in parallel to the first one, feeding off the same signal from the Arduino. I desoldered the IR LEDs from an old TV remote which, luckily, used two IR LEDs instead of one. The range improved, but only slightly. I need suggestions to improve IR LED range. Send me an email, or comment below if you have any ideas!

The two black IR LEDs are from the TV remote.


In this post, I will also be detailing my efforts to control my helicopter with a Wii Nunchuck peripheral. This will enable gesture/tilt based control of the helicopter from a distance, and is more portable and intuitive to use than the program on my laptop.
As before, I did not need to dismantle or crack open the Nunchuck before connecting it to the Arduino. I pushed jumper wires into the holes on the controller attachment cable and connected it to the Arduino. 
However, this time, I did not use 5V connections, since there was no conclusive proof online that it would be safe. Although it worked before, it probably would shorten the life of the Nunchuck, and hence I resorted to the same MOSFET based logic level converter I used on the OV7670 camera module. The pinout for the Nunchuck is available here.
Edit: Both MOSFET gates are tied to 3V3
I was able to get rid of the intermediary Python program, which only served to slow down the data transfer between the Arduino and the helicopter, since I was able to use the accelerometer data from the Nunchuck directly on the Arduino. This means that I can detach the Arduino from the laptop, power it with a 9V battery, and use this system anywhere!
I programmed the Arduino so that when the Nunchuck is tilted forward, the helicopter pitches forward, and when tilted backward, the heli does the same. Left and right tilting causes the copter to change direction. The throttle is controlled by hardware buttons C and Z on the back of the Nunchuck, although it is not very easy to control (+5 and -5 thrust on clicking).
As of now, trim control is not adjustable, since my heli generally works well with mid-trim, and doesn’t arbitrarily rotate about its axis. And there you go! A gesture/tilt controlled helicopter! Any suggestions to improve the general control of the helicopter using this system? Drop me an email, or comment below!

The finished gesture/tilt based controller system



Leave a Reply

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

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

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s