All Posts (14047)
- 2 x 0.1uf capacitor, 490-2536-1-ND or, PCC1828CT-ND (recommended)
- 2 x 1.0uf polarized capacitor, 493-2364-1-ND (optional)
- 1 x Power regulator SMD, LM317EMPCT-ND
- 1 x Blue Led, 160-1643-1-ND
- 1 x 240 ohms low tolerance resistor <= 1%, RG20P240BCT-ND
- 1 x 390 ohms low tolerance resistor <= 1%, P390DACT-ND
- 1 x 10 kohms normal resistor, P10KDACT-ND
- 1x EM406 connector, Sparkfun
Eagle files (schematic and PCB) are here.
We all love the Multiplex EasyStar, but for autopilots that separate stabilization and navigation, its lack of ailerons is a limitation. (Stabalization--FMA Co-Pilot in our case--uses ailerons and elevator; navigation uses rudder and throttle). The next plane up in the Multiplex family is the EasyGlider, recently upgraded for brushless power with the EasyGlider Pro. It's bigger (71" wingspan vs the EasyStar's 54"), has ailerons and can lift more weight. But it's also a lot more expensive ($256 with power package, as opposed to just $66 for the EasyStar), and the front-mounted motor takes up a lot of interior room. How suitable is it for a UAV? I got one and tested it out last weekend. Here's my report:
As with all Multiplex kits, the build quality is excellent and the Elastopor foam goes together nicely with CA glue. If you get the optional power kit, all you need is four servos (2x HS55 and 2x HS81), a Deans connector, and a LiPo battery, along with your RC kit. You can put it together in one evening. I of course added a FMA Co-Pilot, and mounted the sensor above the wing. The plane is slightly nose-heavy in this configuration, but nothing a bolt or two in the tail can't cure. But when you put in all the equipment, you'll spot the first big disadvantage of the EasyGlider Pro: it's got less room inside than the smaller EasyStar! That's not just because the motor and the ESC are in the cockpit. It's also because the servo and pushrods are, too. In the EasyStar, they're all on the outside, leaving the cockpit entirely open for radio and camera equipment, but in the EasyGlider you have to share a narrower (albeit longer) space with everything else. You can see the two side-by-side in this picture:
The EasyStar is closest to us (it's the beat-up one!) and the EasyGlider is behind it. Even though I've added a camera-trigger servo on the EasyStar it still has more unused space than the EasyGlider. The only way to add more space to the EasyGlider would be to create a second "floor" layer above the servos and put autopilot equipment on that, under the foam canopy. Otherwise, anything you stuff in there risks tangling up with the servos, pushrods and other wires. Obviously, the other problem with the EasyGlider is that it's hard to put a forward-looking camera in it, since the prop is in the way, something which isn't a problem for the EasyStar with its pusher prop. There are people who have modded the Easy Glider to put the prop in a pusher configuration with a pylon, but that's too much work for me ;-) As for flight, the EasyGlider flies really well and the ailerons give more precise control than the EasyStar's rudder. But it's also a bit harder to fly for beginners, and if you crash nose-in, you're going to damage the prop and maybe the motor, which isn't a problem with the indestructable EasyStar. I found that the FMA Co-pilot had a hard time maintaining level flight at high gain settings, but that may be due to calibration problems. I'll have to test a bit more to see what the problem is. Bottom line: I prefer the EasyStar, but since I need the ailerons I'm going to continue working with the EasyGlider and create an autopilot layer for the cockpit as mentioned above. What I love about these foam powered gliders is that you can fly them anywhere and they can land on any surface without damage. So as an autopilot test platform, they're great for quick trials and experiments. But I wouldn't recommend the EasyGlider as the optimal UAV platform for serious use. For that, you'll want the usual high-wing trainer, even if that means having to take off and land from a proper runway.Jordi's really outdone himself this time! He created a amazing full-featured simulator for ArduPilot that does the following:
- Uses the servo output from the autopilot or RC controller (depending on which one is selected by the MUX) to "fly" a plane in the X-Plane flight simulator, via a custom interface he's designed around this ARM board.
- Also flies the plane in manual RC mode with RC controller output going through the MUX and then into the ARM board.
- Displays the plane's attitude and other flight telemetry with a custom Ground Station built in LabView.
- Uses LabView to simulate the FMA Co-Pilot, stabilizing the plane in flight using PID loops.
- Display the plane's position in a moving map using Google Maps, which also shows waypoints.
The code is Jordi's new NMEA parser for the Locosys GPS. It's checksum verified, rocksolid, continuous, no delays, loop rate is about 32000hz. It uses pointers, so it's efficient.
You have to configure the Locosys for the first time you use it. It's very easy, you just need an FTDI cable. Be sure to connect the GPS to a 3.3 volt source. (We'll do this setup for you in the commercial version)
Instructions (please use the picture above as reference):
1-Run Realterminal and open the port @4800bps, you should see all the NMEA stuff, is not check the connections..
2-Now make sure you have checked the options marked with the green arrow... +CR +LF
3-Copy and paste this code: $PMTK251,38400*27 to the box indicated with the red arrow.
4-Then click the "Send ASCII" button indicated with the blue arrow..
5-Then the NMEA should disappear, and starting showing strange values. Go back to the "Port tab" (yellow arrow),
close the port, and choose the Baud "38400", and open the port again. You should the NMEA data again... =)
6- Then go back to the "Send" tab, and copy&paste this code: $PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28 then click Send, this should turn Off all sentences except GGA and RMC
7-Copy&paste now this code: $PMTK220,200*2C This should increase the updates to 5hz... (WOW!!!)..
8- Now you are able to connect the GPS module to Arduino, (only connect the RX pin to the TX of the GPS)
9-Then upload the code above, and open the port monitor, you should see Lat, Lon, Course, Speed, Altitude, Fix Position... like this:
46024504 8050998 312 0 519 1 (and yes you now know the exact position of my Swiss Chalet =P)...
If you want other setup codes for this GPS, you can find them in this datasheet.
Code explanation
If you'd like to understand the NMEA parser code a bit better, here are some of the library functions that it calls (all from the standard C++ library):
- First of all pointers, which are very easy. They just give you the memory address where a variable is allocated in the ram: info
- Then the strncmp(), better know as String Comparator. We use it to compare the header of the NMEA string "$GPGGA": info
- Then strtl(), which means String to Long Variable. It converts a string number into a long variable: info
- Then the strtok(). This is the string tokens, which looks for tokens in a string, for example commas ",", the ones used to separate values in the NMEA sentence: info
- The atoi() will convert strings to integers: info
- If you want to know all the available functions, see the library called "strings.h", "stdlib.h": info and info