Posts Tagged ‘ rc ’

Multiplex EasyStar Airplane

Setup:

In anticipation of developing a quadcopter, I bought a Spektrum Dx5e/AR500 transmitter/receiver pair.  Knowing that the quadcopter would probably take many months to design and build, my wife lovingly thought to buy me an RC Airplane to hold me over until I finished my quadcopter.  She snooped on my computer and found that I had been looking at the Multiplex EasyStar.

The version I got (linked below) didn’t come with an Tx/Rx, servos, ESC, or battery.  I jumped on HobbyKing.com and bought two servos, a 2-cell lipo battery, and a cheap brushed ESC.  It turned out that the servos I bought were a low-voltage version and very weak.  Because I didn’t want to wait for another shipment from China, I ordered some better servos from HorizonHobby.com.

My final parts list became:

Total: $216

First Flight:

My first flight went horribly!  I was too anxious to fly and didn’t wait for a good day.  Let’s just say I flew around for a few minutes with completely no control and then ended my performance with a full throttle nose dive into the ground.  The cockpit area of the fuselage broke in half.  To those of you reading this deciding whether to get into RC planes or not, don’t let this discourage you.  I did EVERYTHING wrong.  Not only was I too anxious, but I was also nervous.  I left the throttle at full.  This was a bad combination.

I fixed the fuselage using the same glue I put it together with and some clear box tape.  It actually seemed to get even stronger!  I waited for a calm day then attempted flight number two.  I remembered to stay clam, set the throttle to full, hand launched, got control, then set the throttle to about half.  I couldn’t believe how easy it was to fly!  I was flying around with perfect control in no time.  I even got brave and applied full throttle and pulled off a loop.  It was ridiculously fun!  Then I realized I needed to land sometime soon or it would land by itself (another nose dive into the ground?).  Once I got close to the ground, I cut the throttle to about 1/4 power then slowly descended in a straight line.  It smoothly slid across the grass until it stopped!

Aggressive Flight Modification:

After a few flights, I determined that the aircraft was a bit sluggish when looping and turning.  I decided to do a few things to fix this:

  • Servo Cable Adjustment:
    Each servo cable attaches to the corresponding flap using a threaded clamp that sits in one of three slots.  When I first put the airplane together, I put the clamp in the least aggressive slot (furthest from the flap).  I just moved all the clamps to the most aggressive location (closest to the flaps).  This increased the aggressiveness of the aircraft dramatically.
  • Rudder Enhancement:
    Unlike a typical RC airplane, the rudder on the EasyStar controls the tail and the roll of the aircraft.  Its design is far too small for its purpose.  I used some thin, stiff cardboard and super glue to extend the length of the rudder.  The stock length is about 1″.  I modified it to be about 6″.  This turned out to be too much rudder when the aircraft was moving quickly.  I cut the extended flap down to about 3.5″.  It now works great.  The plane now responds very fast but I also don’t get out of control when I am moving quickly through a turn.

Durability:

This airplane is super durable.  I have crashed in one way or another numerous times!  Most of the time nothing happens.  I’m pretty sure my fuselage is now 40% glue, 45% tape, and 5% foam.  It still flys like a champ!  The location of the propeller is perfect for beginners.  It has never been harmed in all my crashes.

Too Aggressive?:

Apparently my modification makes the aircraft more aggressive than the foam wings can handle.  To get enough speed for the many tricks I’ve learned, I take the EasyStar up as high as I can while still feeling comfortable, then dive nose down.  Sometimes I just do this to see how fast I can get going and how close I can get to the ground until I pull up.  Each time I do this I can see the wings flexing back.  One day my dives were getting really fast and one of the wings finally gave out.  The wing snapped in half and the rest of the plane went spinning into the ground.  I could probably beef up the wing strength with some carbon fiber rods, however, $25 for new wings isn’t too much to ask for 6 months of abuse.

RC Receiver Interface

There are numerous RC Receiver interfacing techniques published on the web.  My quadcopter design is using only one processor for all its computation.  For this reason, I spent extra time designing the interfaces to be as efficient as possible.  Even though RC Receiver interfaces aren’t super complicated, they can cause real-time scheduling issues because of the number of interrupts and the time spent inside these interrupt routines.

Typical RC Receivers output the channel values in a given sequence of pulse width modulated (PWM) signals.  The transmitters and receivers I have tested are Spektrum made.  All Spektrum models seem to have the same design style.  After a small bit of testing, I found that the several channels of signals are output in the same order everytime and have a small time separation.  Since the standard for RC PWM is 50Hz, each pulse comes every 20 milliseconds.  The top 5 lines of the picture above show an example output of a 5 channel Spektrum made receiver.

In a microcontroller, the most accurate way to measure incoming pulses is to use an input capture with a timer.  Measurement occurs when a free running timer value is latched into a register when an event occurs.  Obviously, a higher frequency timer yields a more precise pulse measuring system.  Since most microcontrollers only have a few input capture pins, some special circuitry must be used to measure several pulses.  Since the Spektrum systems do not overlap their output pulses, a simple OR gate structure can be used to combine all the signals into one signal.

Since my quadcopter will be using the Spektrum DX5e and AR500, I’m using a quad 2-input OR gate IC (MC14071BCP), to create this combined signal.  As shown in the timing diagram at the top, there are still 2 voltage transistions per pulse.  This results in 10 interrupts for this design style.  For synchronization purposes, there is always a time between the last pulse and the beginning of the first pulse that is longer than the longest possible pulse.  To capture the values sent by the transmitter, the software is setup for an interrupt to occur on every transition of the signal.  All of the interrupts, except the last one, have a very small amount of time to process.  The last interrupt copies out the five pulse width values and triggers an availability flag so that the rest of the software can have access to it.

An interesting thing that I noticed while testing is that Spektrum has a constant delay of 60 microseconds between each pulse.  To make the system even more efficient, turning off the falling edge interrupts for the first four pulses then back on for the last interrupt results in 4 less interrupts.  For the first 4 pulse width values, 60 microseconds would just be subtracted off.

For my system, this OR gate structure serves another purpose.  The AR500 receiver runs on 5 volts, however, the microcontroller (LPC1768) runs on 3.3 volts.  Of course there are many ways for converting one to another but the MC14071BCP IC has a wide voltage range and is tolerant to 5 volt inputs when running at 3.3 volts.  Without extra circuitry, it will convert the five 5 volt signals from the AR500 into one 3.3 volt signal that represents all five channels.

In conclusion, I’ve found that using a simple OR gate IC is very efficient for pin usage, timer utilization, voltage translation, and interrupt time efficiency.

Update:

I implemented this RC receiver interface on the LPC1768 connected to a AR500.  My results are accurate to about 60-70ns.  This leads me to believe that the AR500 is running on the typical ATmega8 (or 168 or 328) microcontroller running at 16MHz (1/16MHz = 62.5 ns).

Update:

Due to popular request, here is the code I used on the LPC1768 (right-click download, then change the “.pdf” extension to “.zip”):
https://nicisdigital.files.wordpress.com/2013/09/rc_receiver_interface-zip.pdf

Quadrotor Parts List

Here is the initial parts list for my quadcopter design:

Product Description Quantity Price


Turnigy Brushless Outrunner

2217 20turn 860kv 22A
4 $53.12
($13.28ea)


Turnigy ESC

Plush 30amp
4 $48.76
($12.19ea)


Turnigy LiPo

5000mAh 3S 25C Lipo
1 $27.43


XT60 Connectors

Male/Female (5 pairs)
1 $3.19


Turnigy Balancer/Charger

Accucel-6 50W 6A w/ accessories
1 $22.99


Pyramid Power Supply

PS12KX 10-amp 13.8-volt
1 $46.99


APCProp

12 x 3.8″ Slow Flyer
2 $7.90
($3.95ea)


APCProp

12 x 3.8″ Slow Flyer Pusher
2 $11.84
($5.92ea)


Spektrum DX5e

5 Channel 2.4 GHz DSM2 Transmitter
1 $59.99


Spektrum AR500

5 Channel 2.4 GHz DSM2 Receiver
1 $39.99


LPCXpresso LPC1768

ARM Cortex-M3 Development Board
1 $28.50


9 DOF Sensor Stick

3-Axis Gyro, Accelerometer, Magnetometer
1 $99.99


OR Gate

CMOS Quad 2-Input
1 $1.00


Buffer

CMOS Quad 2-Input
1 $1.00


Aluminum Tubing

6061 1/2″ x 1/2″ x 72″, 0.063″ Wall
1 $21.14


Aluminum Sheet

6061 12″ x 12″, 0.063″ Thick
1 $10.06


Coleman Wire

16 Gauge 100 Feet
1 $11.24


Bullet Connectors

3.5mm 3 Pairs
4 $19.80
($4.95ea)

The aim of this design is for an extremely aggressive quadcopter. My design goals are for the stabilization system to handle VERY abrupt changes in attitude and able to recover from any acrobatic mishap. I’ll be adding a mode for acrobatics where absolute angles are not used for stabilization. Instead, the stabilzer will hold to a rotational rate. If an acrobatic maneuver goes south, one switch flip will be able to bring the helicopter back to a stabile hover. The only remaining control not adjusted by the stabilizer is the throttle.

I’m sure that there will be additional items I will need but haven’t thought of. I will try to keep this list up to date for those of you using it for your own copter build.

EDIT: added 16-gauge wire and 3.5mm connectors