Paid for my replacement TX.
Had a look at the Sony and Kodak cameras. Both are good candidates. I still need to check if they can feed a video "out" signal while recording.
Thinking of doing a search and rescue sweep of the area using my new plane to find the lost one. This time I will be sure to send the GPS package ;)
A record of my (kinda) progress on a project of mine. Objective: to help crappy RC airplane pilots like myself get their aircraft safely back on the ground.. MOTTO: Flying is a choice, landing is inevitable..
Tuesday, August 31, 2010
Monday, August 30, 2010
What to do about video?
I saw my FPV system "fly away" over the last weekend :(
Doing my best to get over it and move on. This after many an hour driving around the neighborhood listening for the camera signal (GPS would have been great but..see older post)
Here's the news - everything in place for a new platform except the TX and Camera. Was in a quandary about the camera then, BING!. I can use the Sony bloggie with the output jack, record and send SIMULTANEOUSLY. I also have the Kodak one.
Can't wait to get home and check out the cables. Whoohoo! < the sound of Derrick geeking out
Doing my best to get over it and move on. This after many an hour driving around the neighborhood listening for the camera signal (GPS would have been great but..see older post)
Here's the news - everything in place for a new platform except the TX and Camera. Was in a quandary about the camera then, BING!. I can use the Sony bloggie with the output jack, record and send SIMULTANEOUSLY. I also have the Kodak one.
Can't wait to get home and check out the cables. Whoohoo! < the sound of Derrick geeking out
Sunday, August 29, 2010
Back in the air again
No phone calls so far about my lost plane (had my phone number written on it). I figure if it broke a window or something, I would have heard from the angry owners by now.
Thought of doing an air sweep with another plane and HD camera..
Being a hoarder of parts and spares I managed to scrounge together enough to trade in some stuff for a new Radian.
Viola!
I am back in ze air!
Thought of doing an air sweep with another plane and HD camera..
Being a hoarder of parts and spares I managed to scrounge together enough to trade in some stuff for a new Radian.
Viola!
I am back in ze air!
Saturday, August 28, 2010
That was stupid
The windiest day we have had in a while. I was anxious to get a flight in even though my 6-year-old said not to do it.
Sent up the Radian with an on-board camera and ground link. Great experience but I was using the DVD display in the car. The plane drifted more and more out of view, picture went blank - you figure out the rest.
So we bid adieu to the fair Radian. Onto my next platform..
Sent up the Radian with an on-board camera and ground link. Great experience but I was using the DVD display in the car. The plane drifted more and more out of view, picture went blank - you figure out the rest.
So we bid adieu to the fair Radian. Onto my next platform..
Friday, August 27, 2010
Display for closed loop controller
http://www.hvwtech.com/products_view.asp?ProductID=390
$25 + LCD ($13)
makes good combo for TX add-on
$25 + LCD ($13)
makes good combo for TX add-on
Parts list for GPS tracker
XBEE pro with U.FL http://www.sparkfun.com/commerce/product_info.php?products_id=8710
EM406 GPS
small LiPO Battery e.g. 300mAH
Lilypad XBEE
Project box and wires
Custom board to come. Assemble with off-the-shelf parts for now
EM406 GPS
small LiPO Battery e.g. 300mAH
Lilypad XBEE
Project box and wires
Custom board to come. Assemble with off-the-shelf parts for now
OK, that's just weird
The wind was so strong yesterday that my plane was flying BACKWARDS, I kid you not.
So much for testing. Mind you, this makes me revisit my software for landing since it' a real-world scenario.
So much for testing. Mind you, this makes me revisit my software for landing since it' a real-world scenario.
Thursday, August 26, 2010
Get back down here! Lessons in prototyping
Flight test went great. Mind you, it took about 3 passes to get the plane back down to the ground - the wind just kept it up in the air for a very long time.
Created a routine to send various values of feedback gain and centering while in flight. The turn range adapts to the rudder center value.
The plane hit waypoint #1 very quickly but my groundstation was in the car so I did not realize this. I ended up trying to tune it to hit that waypoint when it was really trying to move on to the next one (duh).
Short story is the waypoint navigation WORKS.
If you look at the video you will see 3 waypoints. The landing guide goes from waypoint #3 to home. You need to fast-forward to the places where there are readings for Ch1 and K1. This means the Autopilot was engaged. The first time it navigates to waypoint #1 and then the number changes to 2. All this time the computer was in the car so I cold not see this happen. This was the one day I was too lazy to set up my usual table on the field with my computer and radio reciever - ah well, lesson for us short-cut people..Then later on I engage the Autopilot once more and the plane heads straight to waypoint #2 - of course, at this point I think it should be heading for waypoint #1 so I start messing with the gains - as soon as it is about to hit waypoint #2 I reverse the gain and it heads away (another duh) and another lesson? If it ain't broke, don't fix it?
Anyhoo, enjoy the vid.
Just need to fine tune it [the autopilot gains] now. More fun today
Created a routine to send various values of feedback gain and centering while in flight. The turn range adapts to the rudder center value.
The plane hit waypoint #1 very quickly but my groundstation was in the car so I did not realize this. I ended up trying to tune it to hit that waypoint when it was really trying to move on to the next one (duh).
Short story is the waypoint navigation WORKS.
YAY!
If you look at the video you will see 3 waypoints. The landing guide goes from waypoint #3 to home. You need to fast-forward to the places where there are readings for Ch1 and K1. This means the Autopilot was engaged. The first time it navigates to waypoint #1 and then the number changes to 2. All this time the computer was in the car so I cold not see this happen. This was the one day I was too lazy to set up my usual table on the field with my computer and radio reciever - ah well, lesson for us short-cut people..Then later on I engage the Autopilot once more and the plane heads straight to waypoint #2 - of course, at this point I think it should be heading for waypoint #1 so I start messing with the gains - as soon as it is about to hit waypoint #2 I reverse the gain and it heads away (another duh) and another lesson? If it ain't broke, don't fix it?
Anyhoo, enjoy the vid.
Just need to fine tune it [the autopilot gains] now. More fun today
Next steps
Here are a few design projects that still need to make the leap off the proverbial drawing board:
- lander that uses "trainer" signal > Arduino connected to XBEE and Trainer jack in RC TX
- closed loop control of RC from Processing. Joystick or AP
- Joystick adapter for TX > Arduino plus hacked joystick.
- Landing assist with Graphical LCD (see suppliers)
- lander that uses "trainer" signal > Arduino connected to XBEE and Trainer jack in RC TX
- closed loop control of RC from Processing. Joystick or AP
- Joystick adapter for TX > Arduino plus hacked joystick.
- Landing assist with Graphical LCD (see suppliers)
Saturday, August 21, 2010
Audience from NZ
While doing my test flights in a nearby park, there have been no end of curious passers by. Some stand and watch, others look at the landing. Kids have been very enthusiastic.
Met a delightful chap and his son from New Zealand. Roger has recently taken up this hobby with some friends. He presently flies a ParkZone Super Cub LP and is looking to upgrade, perhaps to a glider like my Radian test platform. We had a short flight and I demo'd the Co-pilot stabilization - great for windy days. Takes all the "stress" out if it, I mentioned. His son saw the whole system with the Ground Station and auto-pilot.
TODO:
- use Arduino "map" function to provide values for K1 feedback gain on AP
- analyze flight data from Friday. was there too much wind for AP
- try co-pilot on my SuperCub. prep for next DIYdrones competition
- add attitude info from sampleGPS to Groundstation
Met a delightful chap and his son from New Zealand. Roger has recently taken up this hobby with some friends. He presently flies a ParkZone Super Cub LP and is looking to upgrade, perhaps to a glider like my Radian test platform. We had a short flight and I demo'd the Co-pilot stabilization - great for windy days. Takes all the "stress" out if it, I mentioned. His son saw the whole system with the Ground Station and auto-pilot.
TODO:
- use Arduino "map" function to provide values for K1 feedback gain on AP
- analyze flight data from Friday. was there too much wind for AP
- try co-pilot on my SuperCub. prep for next DIYdrones competition
- add attitude info from sampleGPS to Groundstation
Wednesday, August 18, 2010
Very windy day
Today's test flight was blown away.
At various times, the plane seemed to stand still in mid air.
TODO:
Change color of groundstation side view plot
Change Min/Max range of rudder controls
Increase the throttle center value
At various times, the plane seemed to stand still in mid air.
TODO:
Change color of groundstation side view plot
Change Min/Max range of rudder controls
Increase the throttle center value
Who is Space_nut?
About a year ago, I joined an online community http://www.diydrones.com/ that takes a hobbyist view at UAV's (unmanned aerial vehicles), mainly used for aerial photography or just for fun.
I needed a name so I thought about my interest in the 60's space program and viola - my screen name.
It could also mean that I'm in space most of the time as well as being nuts. I just wanted to give you my explanation..
I needed a name so I thought about my interest in the 60's space program and viola - my screen name.
It could also mean that I'm in space most of the time as well as being nuts. I just wanted to give you my explanation..
Last test flight
A bit cold and windy for summer.
Flew for about 30 mins. The groundstation seemed to be OK but the feedback gain on the autopilot reported values of "0". Wah?
Turns out the Arduino program generated the value in error because of mis-matched variable types.
Fixed the errors and all set for another test flight today
Flew for about 30 mins. The groundstation seemed to be OK but the feedback gain on the autopilot reported values of "0". Wah?
Turns out the Arduino program generated the value in error because of mis-matched variable types.
Fixed the errors and all set for another test flight today
Tuesday, August 17, 2010
Videos
There are lots of new videos showing the progress on this project plus other experiments with aerial photography.
www.youtube.com/derricksobrien
www.youtube.com/derricksobrien
In flight programming
IDEA: with multiple switches or a 3 way switch you could allow setting of gains and other tuned parameters for the autopilot.
use a flip of the available switch to select the parameter - it should be displayed on the groundstation for confirmation. Use the throttle to change the setting - again, the groundstation should be used to display it.
use a flip of the available switch to select the parameter - it should be displayed on the groundstation for confirmation. Use the throttle to change the setting - again, the groundstation should be used to display it.
Calibration flight
IDEA: program the autopilot to perform a series of maneuvers to get settings
- max climb rate
- glideslope
- max turn angle
- turn response from max roll
These readings coul be used to feed the autopilot andavoid manual tuning
- max climb rate
- glideslope
- max turn angle
- turn response from max roll
These readings coul be used to feed the autopilot andavoid manual tuning
Tune the gain
When it comes to autopilots for RC planes and UAV's, nothing works "out of the box". My stuff is no different - need to tune the feedback gain on all control elements.
So my next test flight will incorporate a tunable gain on the XY so that I can make the rudder control more sensitive (or less) to error values. When switch on the autopilot rudder commands will center and throttle commands will change the gain. When all is good then I can flip to all-auto mode.
The ground station will now display errors and waypoints - still to modify it to display mode.
So my next test flight will incorporate a tunable gain on the XY so that I can make the rudder control more sensitive (or less) to error values. When switch on the autopilot rudder commands will center and throttle commands will change the gain. When all is good then I can flip to all-auto mode.
The ground station will now display errors and waypoints - still to modify it to display mode.
Monday, August 16, 2010
Part 2
autolander notes:
accelerometer to detect "contact"
Ultrasonics for detecting height
Use steering that is proportional to speed (air)
use speed that is proportional to distance from WP?? (Not for landing)
Try 2.6.2 - worked
Try waypoint writer - did not work
fix groundstation to work with last 3 waypoints
check prox program - why does it not send "init"? Perhaps the XBEE protection or waiting for lock
set up D/R on 6i or use futaba or hitec
prox 10-200 max at 6m - must be near surface at startup
optical 475-0 max at 4 inches
Try 2.6.2 RC
Try 2.6.2 prox
Try 2.3 or 2.5.1
Change ASP to PRX
Use Ch5 and Ch6 to trigger the 3 modes of Ardupilot
see "mode fix" program
used Spektrum DX6i and set the flap switch for full travel
Ch5 0 = 540, 1 = 954
Ch6 0 = 954, 1 = 540
Does not work with 3.3V Arduino
Will work with stamp
Da plan for Sunday
1. Easystar with battery mounted below (add wheels) and EM406 with IMU - Stabilize and Auto (pin 13, no ASP)
2. Test Apprentice with Stabilize then Auto (pin 11)
NOTE: on IMU, OUT = TX, IN = RX - I hooked OUT from GPS to IN of IMU
on Ardupilot TX = TX, RX = RX
TODO:
Change servo for rudder (chewed)
Check mounting and output for airspeed sensor
Look at output for HOME settings
Re-arrange Apprentice with FMA co-pilot + Ardupilot
Check ALH = next waypoint altitude
See Jason's comments - ALH should have been 50 + the home altitude, not just 50.
That means your home was 0 when the first waypoint was read in. Not good.
I've added some verification to make sure this doesn't happen
Check prox sensor to see if it is affected by wind blowing. If not, then we may need to filter the
noise with a lowpass or Kalman
Test results: Prox reading not affected by wind. Capacitor across GND and AN worked to filter noise.
100 uF
July 15
Need larger cap on prox for stability. or maybe more math to filter out the noise
Here's a link
http://forums.adafruit.com/viewtopic.php?f=25&t=14391
Try with same motor. May need to change out the 400
Also, add the cap to the uP power supply - makes no difference
Changed 400 to brushless - great thrust but confuses the IMU
Try FPV with standard 4800 bps link on audio channel, scal back accordingly.
For now, take out the ground detect routine since the EZ1 is noisy. Otherwise you will alternate between takeoff
and waypoint routines.
Perhaps use the optical sensor for height until EZ1 issues are resolved. See sensor_noise code in Arduino
Experiment with the 1/0 digital control based on ArduIMU output and Arduino increase/decrease input.
Remove tail wag routine for ground start.
Consider http://www.graysonhobby.com/catalog/dynam-brushless-hawksky-p-865.html?osCsid=bdf82d07086ae02d3943f8992174a5dc
Build easyglider pro with innerds from Easystar - Attach IMU+ telemetry (no control just yet) and log performance
for calibration against GPS and attitude e.g. rates for turn, climb, glide - speeds for level flight -
glide with no power
later, add camera and groundstation software
Ardupilot = servo controller - 3 bit input @ 50Hz
Arduino SB = logic, receive from IMU and send to Ardupilot
ArduIMU = AHRS
7 July 2010
Had a great test flight with the Radian and Co-pilot yesterday. Ready for GPS logging.
Connected EM406 to Sirfdemo using Jordi's adapter board.
Out (blue) > Tx
In (Yellow) > Rx
Factory reset to NMEA @4800
Great flights
GPS update for google earth is ok but not good enough for navigation (update rate too long)
Also recorded raw NMEA strings:
Data for turn rate, climb rate and descent
Can use for navigation, takeoff and landings.
Descent rate approx 0.5m/s, gradient approx 1/10 or 6 degrees
Need to adjust gain on Co-pilot
Now to work on ground station using GPS data only.
2 August 2010
Got the ground station working for GPS data. Finished the monitors for climb and turn rates.
Recorded some nice screen captures for the flights (See My Documents > Processing > GPS
Works great for navigation and plane path. Tested range up to 700m and GPS data is OK. Plane just barely
visible. Nice for glider owners.
Also compared: Google Earth, Microsoft Streets and Trips. Google earth is nice for real satellite pictures
of the area but does not update fast enough for navigation. MS Streets and Trips can give you nav data but
altitude is difficult to read (small font)
Next up:
build an easyglider > try new 2.7 AP software
Write a groundstation for IMU. Incorporate COG ILS and other indicators (fly it)
Write software for AP using IMU, Arduino Pro, Ardupilot (as a servo controller)
mount camera on easystar for FPV
use AP 2.3 with Radian for simple AP (AP controls Rudder and Throttle)
easystar with edf
cheap glider with 2 edfs
Prototype circuits:
APC
Sparkfun cheap runs
My autopilot > ardupilot w. Co-pilot in Radian
use 2 channels 9,10
servo routine
new data flag for 50Hz loop
Ardupilot 2.3
Elevator, Rudder (Check with scope)
Throttle fed from D8 (no reading in this version)
Fri Aug 06, 2010
Servo_ardu works! Yay. Conditions - millis only works with 0017 and up
This means that the servo library will send a continuous stream of pulses. i.e. Ardupilot can feed Co-Pilot
Now I need to get a nice NMEA parser. Try to rip it from Ardupilot but stay with 4800
Worst case use the Parallax GPS
Perhaps write a program for EasyArdupilot using gyros instead of thermos
Radian Waypoints
51.128388 -114.251375
51.128711 -114.248586
51.125964 -114.249015
51.127095 -114.252062
SUnday Aug 08
Got Stoopudpilot (Planetest03) working with Groundstation16
Tested ok with signals feeding into Co-pilot.
Need to tune gains and Throttle settings
11:59 AM 8/15/2010
Included routines to record extra data when mode switch is in middle position
Flight test: Seemed to find WP1 and WP2
TODO: Add more info to groundstation> Mode, WP#, errors, TOW (to correlate log from video)
Fix wp and landing display. [done]
//try to modify AP2.7 with my h calculations
accelerometer to detect "contact"
Ultrasonics for detecting height
Use steering that is proportional to speed (air)
use speed that is proportional to distance from WP?? (Not for landing)
Try 2.6.2 - worked
Try waypoint writer - did not work
fix groundstation to work with last 3 waypoints
check prox program - why does it not send "init"? Perhaps the XBEE protection or waiting for lock
set up D/R on 6i or use futaba or hitec
prox 10-200 max at 6m - must be near surface at startup
optical 475-0 max at 4 inches
Try 2.6.2 RC
Try 2.6.2 prox
Try 2.3 or 2.5.1
Change ASP to PRX
Use Ch5 and Ch6 to trigger the 3 modes of Ardupilot
see "mode fix" program
used Spektrum DX6i and set the flap switch for full travel
Ch5 0 = 540, 1 = 954
Ch6 0 = 954, 1 = 540
Does not work with 3.3V Arduino
Will work with stamp
Da plan for Sunday
1. Easystar with battery mounted below (add wheels) and EM406 with IMU - Stabilize and Auto (pin 13, no ASP)
2. Test Apprentice with Stabilize then Auto (pin 11)
NOTE: on IMU, OUT = TX, IN = RX - I hooked OUT from GPS to IN of IMU
on Ardupilot TX = TX, RX = RX
TODO:
Change servo for rudder (chewed)
Check mounting and output for airspeed sensor
Look at output for HOME settings
Re-arrange Apprentice with FMA co-pilot + Ardupilot
Check ALH = next waypoint altitude
See Jason's comments - ALH should have been 50 + the home altitude, not just 50.
That means your home was 0 when the first waypoint was read in. Not good.
I've added some verification to make sure this doesn't happen
Check prox sensor to see if it is affected by wind blowing. If not, then we may need to filter the
noise with a lowpass or Kalman
Test results: Prox reading not affected by wind. Capacitor across GND and AN worked to filter noise.
100 uF
July 15
Need larger cap on prox for stability. or maybe more math to filter out the noise
Here's a link
http://forums.adafruit.com/viewtopic.php?f=25&t=14391
Try with same motor. May need to change out the 400
Also, add the cap to the uP power supply - makes no difference
Changed 400 to brushless - great thrust but confuses the IMU
Try FPV with standard 4800 bps link on audio channel, scal back accordingly.
For now, take out the ground detect routine since the EZ1 is noisy. Otherwise you will alternate between takeoff
and waypoint routines.
Perhaps use the optical sensor for height until EZ1 issues are resolved. See sensor_noise code in Arduino
Experiment with the 1/0 digital control based on ArduIMU output and Arduino increase/decrease input.
Remove tail wag routine for ground start.
Consider http://www.graysonhobby.com/catalog/dynam-brushless-hawksky-p-865.html?osCsid=bdf82d07086ae02d3943f8992174a5dc
Build easyglider pro with innerds from Easystar - Attach IMU+ telemetry (no control just yet) and log performance
for calibration against GPS and attitude e.g. rates for turn, climb, glide - speeds for level flight -
glide with no power
later, add camera and groundstation software
Ardupilot = servo controller - 3 bit input @ 50Hz
Arduino SB = logic, receive from IMU and send to Ardupilot
ArduIMU = AHRS
7 July 2010
Had a great test flight with the Radian and Co-pilot yesterday. Ready for GPS logging.
Connected EM406 to Sirfdemo using Jordi's adapter board.
Out (blue) > Tx
In (Yellow) > Rx
Factory reset to NMEA @4800
Great flights
GPS update for google earth is ok but not good enough for navigation (update rate too long)
Also recorded raw NMEA strings:
Data for turn rate, climb rate and descent
Can use for navigation, takeoff and landings.
Descent rate approx 0.5m/s, gradient approx 1/10 or 6 degrees
Need to adjust gain on Co-pilot
Now to work on ground station using GPS data only.
2 August 2010
Got the ground station working for GPS data. Finished the monitors for climb and turn rates.
Recorded some nice screen captures for the flights (See My Documents > Processing > GPS
Works great for navigation and plane path. Tested range up to 700m and GPS data is OK. Plane just barely
visible. Nice for glider owners.
Also compared: Google Earth, Microsoft Streets and Trips. Google earth is nice for real satellite pictures
of the area but does not update fast enough for navigation. MS Streets and Trips can give you nav data but
altitude is difficult to read (small font)
Next up:
build an easyglider > try new 2.7 AP software
Write a groundstation for IMU. Incorporate COG ILS and other indicators (fly it)
Write software for AP using IMU, Arduino Pro, Ardupilot (as a servo controller)
mount camera on easystar for FPV
use AP 2.3 with Radian for simple AP (AP controls Rudder and Throttle)
easystar with edf
cheap glider with 2 edfs
Prototype circuits:
APC
Sparkfun cheap runs
My autopilot > ardupilot w. Co-pilot in Radian
use 2 channels 9,10
servo routine
new data flag for 50Hz loop
Ardupilot 2.3
Elevator, Rudder (Check with scope)
Throttle fed from D8 (no reading in this version)
Fri Aug 06, 2010
Servo_ardu works! Yay. Conditions - millis only works with 0017 and up
This means that the servo library will send a continuous stream of pulses. i.e. Ardupilot can feed Co-Pilot
Now I need to get a nice NMEA parser. Try to rip it from Ardupilot but stay with 4800
Worst case use the Parallax GPS
Perhaps write a program for EasyArdupilot using gyros instead of thermos
Radian Waypoints
51.128388 -114.251375
51.128711 -114.248586
51.125964 -114.249015
51.127095 -114.252062
SUnday Aug 08
Got Stoopudpilot (Planetest03) working with Groundstation16
Tested ok with signals feeding into Co-pilot.
Need to tune gains and Throttle settings
11:59 AM 8/15/2010
Included routines to record extra data when mode switch is in middle position
Flight test: Seemed to find WP1 and WP2
TODO: Add more info to groundstation> Mode, WP#, errors, TOW (to correlate log from video)
Fix wp and landing display. [done]
//try to modify AP2.7 with my h calculations
Part 1
Here are some notes on the steps i took to get the Ardupilot to
perform autolanding on a typical RC plane
USB to Serial converter
Looked at pinouts of cable from DIYDrones compared to HVWTech converter (see schematics)
Found the typical "Hello World" LED Blink program for Ardupilot (AP) board. This flashes a
LED attached to D13. We shall power the AP using the ESC plugged into Output 3
Preparing the hardware:
Use a piece of network cable and some jumpers to connect the AP to the FTDI
Using Arduino 16 software keep the default controller
9 Jul, 2009
Got HVWTech USB to Serial converter working on EEEPC
Investigating the manual over-ride feature of AP > Look for the MUX LED. OFF = Manual, ON = Autopilot
Had a look at the original [MUX] board, Stamp AP @ DIYDrones.com
Had an idea for GPS circle. Calculate distance from WP and keep it constant
May want to add a digital compass > got it.
17 Jul, 2009
tested AP board programming with blink program > yay, it worked
NOTES: i did not connect the VCC wire since it was being powered by an ESC jumper
next > load the original code and check the GPS
I got a Stamp BS2e and using the wireless I plan to create a simple ground monitor to allow the AP
to confirm settings and display status when in range
18 Jul, 2009
Loaded 2.2 code > it wants a jumper to be connected :( see shield notes in AP manual
Loaded 1.0 code > it gave me a GPS lock (blue led) :)
Now want to pick apart the code starting with the GPS, perhaps send strings back to the computer.
The code seems to include a few test routines to output GPS data (See "system")
21 Jul, 2009
Figured out what jumper wire does (AP manual). See appendix 4
It connects the throttle for manual control MUX_IN to D8. These seems to be left unconnected for optional use (3-4 MUX_IN)
I may choose to put the throttle under AP control so leave this unconnected for now.
See "Servo". Controls output to servos and has a nice test routine.
Use some serial test progs like "Ascii Table" to get some data displayed on the IDE
22 Jul, 2009
Learned how to program waypoints into the setup utility. also checked home coordinates
of my house on google maps.
Possible testing areas >
Home Depot car park (ground testing), bowness park, large field in tuscany, highway extension
24 Jul
Looked for my old programs (Bs2) but no luck. Will need to do from scratch - not to worry.
Servo control using pulseout. Each unit is 2 microsec. Need pulses 0.6mS (min) to 1.5ms (center) to 2.4 ms (max)
http://www.geocities.com/bourbonstreet/3220/servobasics.html
Off time can be 10-30ms but if it is longer then the servo may jitter. The proper solution is a servo controller chip
such as the FT639 or Parallax servo controller board
An easier but more expensive solution is to use a separate BS2 or BS1 for servo control. This will "memorize" the signals that
it recieves and offload the processing of NAV data from the first BS2
Read control signals from RC unit using pulsein.
Jul 25
Looking through code for XY Sensor stuff > signals, calculations
Picked up some wire-wrap for circuits, landing gear supplies for yellow (test) plane, nylon screws
for CG idea.
Wire wrapping techniques > http://www.vpc.com/downloads/Wire_Wrap_Techniques/Wire_Wrap_Techniques.pdf
Tried Chris A's GPs program with BS2 - it does not have the memory capability of the higher level stamps but I got some data out
Wiring up the BS2e (extra memory)
transferring the FTDI from AP to Stamp. remember the wires go from Rx to CTS
BS2e did not work with FTDI for some reason. Works fine with my other USB/Serial converter so will pair those.
Chris A.'s code does not work unless you are using a high level stamp capable of high speed buffering.
However, I got the SIRFDemo program to Rx GPS data directly into the computer using FTDI. Data looks great!
Should graph the "height" data to look for drift
Jul 26
http://dailyduino.com/archives/category/communication/wireless
nice article on using Parallax wireless Tx/Rx with arduino
Jul 27
got some GPS data out of BS2. Had to tune to 9600 baud and used the old Chris A code for Stamp based AP
Jul 28
hacking AP 1.0 code
found routines for testing the servos and reading the GPS. Blue LED for GPS Lock is D12
Time to test v1.0 with RC gear hooked up
perhaps do a waypoint with 1m height and add landing later (take out of AP control before)
Insert wireless transmitter between FTDI and AP so that you can read serial output of AP on BS2
IDEA: develop a digital protocol for sending data to AP via a spare channel on Tx with coded PWM
See > http://ban-sidhe.com/blog/?p=1465
July 29
XY sensor and Co-Pilot arrived today. yay
IDEA: graphical (BW with grey levels) representaion of XY sensor outputs using A/D from Arduino
Fixed landing gear and ailerons on yellow plane. revived 6 channel radio, charging batteries
Going through older blog posts to see the history of 2.x AP code
2.0 seems to work without the "shield"
stuff gets interesting from Feb 2009 blog
Google code repository has earlier versions of 2.x code > look options that work without the shield and z sensor.
notice the labels and bug fixes
Used windiff to look at differences in 2.2 and 2.1 code
2.1 specifically has z sensor as optional. Connect jumper between pins D6 and D7 for ground setup and sensor calibration
Tested the IR sensor with VM and A/D program. Used info in
http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
need to ground z sensor input. works ok.
Count connections to XY sensor from "cable" going anticlockwise. First (Yaw) gives more positive results if you put hand closer.
First (Pitch - second one round) gives more positive. values between 500-600
Also, got a lock on GPS
Next - how to calibrate the XY sensor
Found it. See AP Manual and the section entitled
ArduPilot 2.1 and above (no Z sensor):
Notice that the sensor is mounted diagonally with support for reversing the physical setup
Need 2 passthrough jumpers to connect RC Rx - pick them up when I'm gettin my Eflite Apprentice checked out
IDEA: Nunchuk interface to RC tx
2.1 docs
http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A71674&page=1#comment-705844_Comment_71702
Jul 31
Assembled Eflite apprentice platform. Had some bugs so took it back to hobby shop. All good now.
Looked into brushless conversion for Piper Cub.
Picked up a 4 line LCD display and a spare Ardupilot (in case of burnout)
Also picked up a simple RC car platform for testing.
Now working on landing algorithm. []=subroutines, ()= optional
Pseudocode for landing algorithm:
setup
read start runway coordinates
read end runway coordinates
Wait until landing command detected
calculated waypoints till runway start using best route and [glideslope]
loop
goto waypoints until ground detected
end loop
ground detected
flare - switch to hieght maintenance
droprate (until touchdown)
cut engine and switch to manual or taxi and park (need other coordinates)
OK, tested the AP with servos and XY sensor. 3 modes show correctly with LEDs. Manual mode works ok but there is some
jitter in the servos, possibly due to noise from the GPS data
Checking the config tool
http://maps.google.ca/?ie=UTF8&ll=51.123203,-114.24916&spn=0.001108,0.003176&t=h&z=18
Testing location using GPS
LAT LON
51123324 -114249248
51123336 -114249320
51123340 -114249360
Google maps is slightly off compared to the GPS measurements. For navigation purposes this is ok but for landing
we will need to use field measurements
Still need to figure out connection for Throttle? A - it seems from the code that D8 is used so we should solder the jumper
Use BS2e for data logging? Timestamped GPS data
Ready to test Piper Cub platform:
- Wiring AP onto plane
- Loading waypoints for test site (bring GPS for Microsoft Streets and Trips)
- Do early missions
Aug 1
tested platforms (no AP, just manual)
Piper Cub needed mods to landing gear for stability
Apprentice got damaged (Ellie stepped on it out in the field) - repairs complete
Put jumpers on AP board for more solid connections
Tested AP board out in the open. Tried to calibrate XY sensor but power from 4 pins next to GPS - They are actually unregulated!
nearly burned out the XY sensor but it seems to be OK
IDEA: use BS2 to act as Tx input to AP for simulations
This is working. Using BS2 the limits of pulsout are 1150(max), 250 min (multiply by 2uS for real pulse length)
Did a demo video showing
- operation of the XY sensor for leveling in flight
- correct operation of LEDs for 3 modes (Manual, Waypoint and RTL)
IDEA: Take AP on drive down the hill in the Athletic Park. Check the operation of the hieght readings and
look for consistency.
Checked the waypoints in AP memory - still good i.e. this does not get overwritten if you reprogram (cool)
Next..
Proximity sensor tests
Wireless interface
Need 3D plotter for waypoints to check the accuracy of height measurements
Adri put me onto Sketchup using Ruby scripts - found cloud.rb > test it
Aug 3
tested the AP for consistent height data by driving down a hill while data logging
The Sketchup plot works. Bad news is the H data is showing a weird pattern.
Either the data is time lagged or the GPS is extrapolating in some way.
I did not notice variations in the RAW GPS data.
Next..
Do the drive test with RAW GPS data
Plus stuff from Aug 1
Aug 4
Picked up a ParkZone powered glider for long range testing
Another GPS module
IDEA: project hobby laser with modulated output > sparkfun
e.g. http://www.instructables.com/id/Send-Music-over-a-Laser-Beam/
Tested the DIRSS optical proximity sensor. Actually, it can give both analog
and digital (serial) output. The analog works fine but the output is logarithmic - it's ok
for my purposes.
Tested SRF01 ultrasonic module. Works with an edited version of the demo program.
srf01_edit.pde
sends serial data to the Arduino monitor. Got it to display readings in cm
Decided to use the Optical sensor with BS2 and ultrasonic with Arduino
Aug 5
Picked up Parallax GPS unit for comparison plus some Xbee modules for
ground station (1.5 mile range)
managed to reset the EM406A GPS to 9600 NMEA mode using SIRFDemo program
Performed a second H resolution test on EM406 using 9600 NMEA mode. Better continuity
but still produces H drift
Successfully connected Parallax GPS > ready for testing H resolution
IDEA: use "Processing" to test XY sensor
IDEA: use picaxe 8M or 14 for ADC and Passthrough (like MUX and XY sensor)
there is a nice 8M dev board with servo connections
LAT & LON
http://istp.gsfc.nasa.gov/stargaze/Slatlong.htm
Aug 6
Did some testing of the Parallax GPS but lost sat-lock while driving
Focussing on simple proximity activated program on BS2
IDEA: Use Parallax Ping sensor with Servo bracket
Aug 7
Had no end pf problems with both SRF01 and DIRRS rangefinders. Noisy and intermittent output..
Solarbotic kindly refunded my $ (SRF01). The DIRRS I will convert to analog output for Takeoff use. Got the analog cable
Picked up the Parallax Ping))) and a LV-MaxSonar EZ1
Both worked beautifully. It seems simpler to use pulses than serial info. This meshes nicely
with the Servo control.
Can finally see some light at the end of the tunnel.
Decided to work on the simplest of designs >
keep plane at setpoint height then adjust setpoint till landed safely
add more complexity later
'v1.1 Aug 7, 09
'building prototype using BS2 Stamp Stack
'range of servo pulse is 250 TO 1150 which translates to 500uS to 2300uS
'center value is around 750 which translates to 1500uS
'Ch5 switch up = 1037, down = 484
'Ch2 elevator range 550-950, centered around 750, adjustable offset +/-50
'6pm
'Got basic input of Ch2 & Ch5 with servo control and height sensor
'Got feedback loop working
'TODO:
'test On plane For servo reverse and correct operation
'remove DEBUG lines and check loop speed
'power supply for ping sensor
'v1.2 Aug 8, 09
'built physical computing prototype on BS2e
'operation ok in test lab
'Test in plane - Ch5 passthrough ok, autoheight jumpy
'test here with BS2 and user input for proximity
'removed pauses for field testing. This works and got rid of the "jumpiness"
Aug 10
Got the working prototype into the plane but encountered limitations when testing. Bug is that program takes some time to activate. Investigating.
It seems that the servo load is reseting the processor. This only happens in the bypass mode. Also, the powering the
sensor from the regulator on the processor may be causing a problem.
HVWTech SKU's
5V 1A Switching voltage regulator
(SKU# 50210)
$17.45 USD
MaxSonar-EZ0
(SKU# 35231)
$27.45 USD
PICAXE-08M SMD Project Board
(SKU# 28517)
$12.45 USD
PICAXE Programming Cable (USB)
(SKU# 28405)
$21.95 USD
Reflecting on the "flight testing" I'm realizing that takoff is as complex
(if not more) than landing. The plane has to be constantly corrected for drift
in the steering, wait for lift and then ease on the up-elevator
IDEA: use the vibration sensor to detect lift in takoff, use GPS to keep plane steady i.e. control the steering and rudder based on pre-programmed coordinates,
perhaps use the Co-pilot (only aileron) to stabilize
TODO:
check reversal of front landing gear for stability
Check reseting problem to see if it happens with processor in plane
Check if Voltage regulator will solve the problem (possibly use a digital buffer)
***** Need a reset button on the BS2e
Aug 11
Solved reset problem (See code)
Thought through auto takeoff by autoland mode with elevator brought down and released slowly
Did pseudocode for Straight Line flight based on Parallax GPS
TODO:
test "fly straight" on car
test Ardupilot 1.0 on car and glider (2.0 can work too) http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
test Autotakeoff and Autoland with hop mission
practice flight with microlight Sukhoi
test Ardupilot 1.0 with Apprentice, then add autoland
First doc on Hardware setup for Ardupilot 1.0 and 2.x
http://diydrones.com/profiles/blogs/ardupilot-assembly
ll=51.151258,-114.207403 for landing site
ll=51.151991,-114.20647
Aug 12
Thinking of adding my autolander between FMA copilot and RC Rx on 1.0 setup
(See http://diydrones.com/profiles/blogs/ardupilot-assembly)
Ch5 will toggle both Co-pilot and autolander
Ch6 will toggle Ardupilot
Test Ardupilot with car and replace RC with Futaba 6 Ch
Car test
ll=51.128472,-114.250152
ll=51.127852,-114.250683
ll=51.127903,-114.251692
Loaded Waypoints in v10
car test failed. It wandered aimlessly
Tried changing reversing the servo. Nothing
Tried setup in plane. No intelligible output. The rudder flipped
in one direction with no apparent pattern.
Getting frustrated with Ardupilot..
OK, some investigation showed that my GPS normally operates at 9600
even though v10 code sets it at 4800
Seems to give an intelligible output now with bearing and distance to WP making sense
New problems:
small negaive values of height show up as unsigned huge numbers
after a while, the values drift
Rudder instructed to move in jumpy increments and flips between +25 and -35 degrees.
May still be worth another field test..
Aug 17
did another field test but getting battery restart problems on car platform
IDEA: independent power supplies
AP + Steering on small battery
Main power/motor with direct speed control
repaired micro plane platform
picked up multiplex microjet for testing vtail mixing
Aug 18
designated SITES for testing
SITE A > car park behind Supermarket - waypoint testing car, plane without wings
and micro plane
SITE B > large park closeby - good for heli and small plane. grass too rough for
car
SITE C > main test site for autolander - roads under construction
SITE D > nose hill park - good for long range tests of AP
IDEA: navigation in high wind with course-over-ground vs throttle
tested v1.6 autolander at SITE C
again, wind was quite strong
autolander at "Takeoff" mode needs adjustment of the elevator
it caused the plane to jump during the hop test.
a second pass go the plane off the ground then wind crashed it. seems ok
need to straighten the landing gear
moved on to powered glider at site D
had a few test flights. managed to return to the ground safely but again the
high winds are a challenge. got some real altitude with the last flight
then went down out of sight. found it & decided to call it a day.
IDEA: homing beacon or wireless GPS signal for lost planes
IDEA: start a blogger and youtube account for project stuff
worked on "fly straight" program. course and bearing approach made simpler
by simply using "distance from straight" line approach.
needs testing on car - my prog & Ardupilot
looked at pwmpal and parallax servo controller on HVWtech
Need a separate prog for "takeoff"
tune wheel vs rudder
perhaps add wing stabilization and straight-line rudder/steering control
OR
develop "throw" type settings using landing prog (should work with glider)
Aug 20
AP 23 out
new waypoints
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124834,-114.249455&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124597,-114.249345&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125036,-114.248916&spn=0.000682,0.001738&t=h&z=19
Aug 21
IDEA: use microjet in Time Trust Trials - Roll stabilize with ultrasonics, use my flystraight algorithm for rudder
perhaps usereversible prop!
This would require 2 sensors and AL2x software
Nice Arduino hacking info
www.freeduino.org
lookup math.h in arduino docs and implement "flystraight" routine
Tests ready to go:
Car with AP23
Apprentice with AL20 (use SS2 and power pings with pins)
Then...
Radian with AP22 + AL1x (Use BS2e then try PICAXE)
Microjet with AP23 + AL20 (Add tail rudder & motor)
IDEA: eagle files for Air-stamp and V-Stamp boards
IDEA: prototype for CG heli w GPS
GET: linear sensor from parallax > horizon detection
GET: 2 small servos and reversible prop kit, roll of servo wire with ends
Aug 23
IDEA: Home security robot
crawler + "legs" to assist in climbing stairs
Tested car with AP23 AGAIN. No luck. Tried reversing roll variable, moving outputs.
At least the Throttle works with independent power. Getting a GPS lock @9600 baud
4800 baud did not give a GPS lock
Nice site for Roll, Pitch and Yaw
Rudder controls Yaw
Ailerons control Roll
Elevator controls pitch
Aug 24
Fixed the error formula on my "flystraight" algorithm.
Hooked up Parallax Optascope
Looked at signals from GPS 4 pin header. 5V, GND, TX, RX
Connected to TX, GND on the FTDI interface
TX shows Ardupilot output
Rx shows raw NMEA output
Both are @9600
Tried to program GPS while connected to Ardupilot. Does not work because Ardupilot is sending its
own signals.
Checked VCC out of Ardupilot. Reading 5V but this is because the battery is @5V. VCC should read the battery level
TODO:
test "flystraight" in Arduino code (won't run easily in BS2 because of floating point math - see below)
debug signals in AL22. Suspect digital buffer needed for servo signals
investigate "trainer" signal in Spektrum transmitter
get AP to work at 4800 baud so we can send NMEA data from plane to ground (did it!)
http://www.phanderson.com/stamp/
nice link on bs2, adc0831 and picaxe 8m as slave processor
Using Bs2 for coordinate math?
Sine function accepts 8 bit angle and returns a 16 bit answer
Variable up to 65535
If you use a resolution of 0.1m on the GPS then you are limited to about 6.5 km or 3.2 km for +/- values
result is in the range -32767 to +32767
Need to demonstrate correction of rudder (plane) or steering (car) relative to a defined straight line.
Aug 26
scope capture of signals.
period and amplitude changes - see scope folder
rx - 3v, 45hz, duty cyle 4-8%
bs2e
micro, 5v, 22.7-45 hz, loses every other pulse
micro with ch5 on, 740us on, 3.68ms off
bs2
16 hz, ch5 off
2 hz, ch5 on pulse width 124ms
Nice article on Tx trainer signal
http://www.geocities.com/BourbonStreet/3220/servotx.html
Can use this for Modulation of serial commands to RC aircraft in flight
Aug 27
fixed bs2 autolander for Apprentice. ready for flight test and tuning. needed longer delay in passthrough mode
Ardupilot board - writing my own software
got all LED's, inputs and outputs to work i.e. servo in and out with MUX
Lovely article on 'Duino with lots of links and discussion
http://www.urbanhonking.com/ideasfordozens/2009/05/why_the_arduino_matters.html#comments
Aug 28
Got parallax GPS to talk to Arduino
http://maps.google.ca/?ie=UTF8&ll=51.123135,-114.249079&spn=0.002539,0.006952&t=h&z=17
51.123136,-114.249080
checking resolution of GPS - 6 decimal places on LAT/LON, ok
Lost site c to contstruction :(
Investigate site near home
need GPS waypoints to check flystraight
using front and back of the house.
51.123364,-114.249288
51.123134,-114.249082
51.123278,-114.248634
lat is Y
lon is X
Parallax GPS giving bad resolution. NMEA values look better.
Got it working!
Now to calculate distance and error
Got a valid error signal
Need to add gain and waypoint switcher > got that working
Need to tune gain
measured waypoints for car test
51.12456, -114.24900
51.12488, -114.24948
51.12520, -114.24862
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124337,-114.24909&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124829,-114.249487&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125017,-114.248918&spn=0.001364,0.003476&t=h&z=18
Data for site A
wp_lat[1]= 51124204;
wp_lon[1]= -114248912;
wp_alt[1]= 150; //meters
wp_lat[2]= 51124848;
wp_lon[2]= -114249456;
wp_alt[2]= 200; //meters
wp_lat[3]= 5112508;
wp_lon[3]= -114248872;
wp_alt[3]= 150; //meters
wp_lat[4]= 51124848; //enter home
wp_lon[4]= -114249456;
wp_alt[4]= 150; //meters
Data
wp_lat[1]= 51123364;
wp_lon[1]= -114249288;
wp_alt[1]= 150; //meters
wp_lat[2]= 51123134;
wp_lon[2]= -114249082;
wp_alt[2]= 200; //meters
wp_lat[3]= 51123278;
wp_lon[3]= -114248634;
wp_alt[3]= 150; //meters
wp_lat[4]= 111; //enter home
wp_lon[4]= -111;
wp_alt[4]= 150; //meters
Gain too high and car drives in circles
IDEA: use adaptive gain and sliding window plus extrapolation
find center pulselength of servo
focus on glideslope and direction (like ILS), leave navigation to AP
don't forget the SIMPLE one transducer lander based on PICAXE
Aug 31
Did not get to enter Time trials on DIYDrones (sigh)
However, I finished the Microjet platform and wrote BS2e code for flight stabilization in takeoff and landing.
Checked out football field site for testing. They formally lock up at 10pm.
Can't wait to flight test tomorrow.
IDEA:
use small "jerks" on servo instead of constant turn.
develop a "calibration" program or mode to get straight path for car.
can use calibration for plane BUT must be adaptive for wind. may use COG.
need math to find best circle through a set of x,y coordinates.
also need a "servo buffer" which accepts a pulse width and repeats it
Photodiodes from Active, sparkfun or hvw
Sept 1
Interesting interface for controller to pc
http://www.simblaster.com/servlet/StoreFront
flight test failed :( crashed within 15 ft. not enough speed and turned to one side..
even have video!
ah, well. back to the old drawing board as they say. re-design cycle.
nice refs for patents
http://www.patentstorm.us/patents/4979154/description.html
http://www.freepatentsonline.com/4979154.html
convert units (GPS)
http://www.unitjuggler.com/convert-speed-from-kt-to-ms.html
Sept 2
Went flying with Todd. Intention was to check the functionality of the prototype
landing assist module. My apprentice had a loose servo horn connector which made it lose
control :( What a week!
Hoping to do some simple testing with a ParkZone SuperCub.
Sept 3
weather is against me today
instead, worked on GPS guidance and improved program for 2 sensor stabilization on Apprentice
interesting arduino baloon project
http://nw5w.com/journal/?cat=12
Educator in electronics ponders the arduino
http://falconphysics.blogspot.com/2008/02/arduino-or-picaxe.html
Sept 7
New TTT on Oct 4!
rewrote "Flystraight". Getting a nitro (gas) plane for testing.
Looked at Diydrones parallax UAV. He used XY coordinates with OR for hit (instead of circle).
Sept 9
home depot
51.107566,-114.240381
51.107542,-114.239777
51.107818,-114.239767
wp_lat[1]= 51107566;
wp_lon[1]= -114240381;
wp_alt[1]= 150; //meters
wp_lat[2]= 51107542;
wp_lon[2]= -114239777;
wp_alt[2]= 200; //meters
wp_lat[3]= 51107818;
wp_lon[3]= -114239767;
wp_alt[3]= 150; //meters
Tested car at Home Depot site. "Turn" activated a few times but the turn circle seems too tight. A few things fell off while testing (Radio TX and RX)
IDEA: use the compass module to give direction data for small turns, increase the turn radius. Log data for GPS while
driving and executing "turn" and "nudge". Secure the payload better.
Looked at data sheet for multiplexer. It can handle only 2 inputs at a time. This seems ok. can always use 2 chips for 4 inputs
IDEA: use gps in and around the house to get an idea of the resolution
IDEA: work with sliding window for x, y and z data
Sept 10
Flight tested LA (landing assist) on apprentice. OK flight without. High winds on test takeoff - plane dive
Need to tune landing assist so it does not correct for above Setpoint (just below). This may produce a "bouncing" effect
before stabilizing. We can add damping later. Try Landing only then takeoff - different parameters
hvw
voltage regulator
voltage and current sense for battery
http://franson.com/gpsgate/ > interesting way to share data with multiple apps
prods:
1 - single ping landing assist
2 - dual ping landing assist
3 - autonomous landing
4 - computer assisted landing - training cable
Sept 12
found nice practice site near Bearspaw school
Sept 13
repaired Apprentice
re-wrote AL
http://www.robotshop.ca/New-arrivals/parallax-servopal-dual-servo-controller.html
Analog input
Arduino - 10 bit
Picaxe - 8 bit
1023 could be mapped to the useful range of an 11.1V LiPo with an Op Amp
http://www.siliconchip.com.au/cms/A_104400/article.html
PICAXE in schools
IDEA: use charging plug to monitor voltage
Passive flight monitor with ground station
http://www.electronics123.com/
http://www.rangevideo.com/index.php?main_page=product_info&cPath=8&products_id=98&zenid=244b0cd77d18aed28b6cb4a7860ae237
Sept 19
IDEA: Parallax autopilot board
Need for simplicity, again... Too many options and stuff too complicated
Q - simplest landing assist?
A - bs2 with one sensor
Q - simplest autolander?
A - Arduino with Co-pilot stabilization
Q - simplest monitor?
A - GPS with XBEE
All can be modified later.
Q - Simplest product
A - landing assist using picaxe and MUX
Sept 17
Test Compass module on BS2 using WAM hardware
Check out Parallax new SD reader $14 !!!
OLED serial display on Sparkfun
Sept 18
stil getting errors on ground detect
seems to be rooted in issues with nested if in pbasic or
Sept 19
Test flight on Easystar - ok
Compass and ping on Arduino
http://www.arduino.cc/playground/Main/HM55B
http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor
http://antipastohw.blogspot.com/2007/12/arduino-with-parallax-sonar-sensor.html
http://www.arduino.cc/playground/Main/MaxSonar
http://arduino.cc/en/Tutorial/Memsic2125?from=Tutorial.AccelerometerMemsic2125
http://antipastohw.blogspot.com/2007/12/arduino-with-radio-shack-parallax.html
GPS
http://www.ladyada.net/make/gpsshield/
http://www.arduino.cc/playground/Tutorials/GPS
http://www.arduino.cc/playground/Learning/Tutorials
includes a ref to EM406 plus other useful tutorials
Sept 20
rewrote AL for arduino (landassist_00)
version of flystraight including compass (flystraight_17)
TODO:
create a flat circuit holder to mount on the car (test flystraight_17)
try Co-pilot stabilization in Apprentice - did it! worked great!
add landassist_00 to Apprentice
try AP with EASYSTAR
fun > try synapse and flying wing with reverse/hover
start building Beaver
IDEA:
use LT-40 kit to build a long distance UAV for search and rescue
need rangevideo FPV set
http://www.rangevideo.com
use processing to interpret landingassist00 data
get xbee working for GPS data
IDEA: use OLED for HUD > Skiers, rc fliers
Oct 3
tested compass on arduino
first flight with camera on Easystar
todo:
transfer electrics from Apprentice to Quattro
test simple AL on Easystar
See youtube for aereal video using Quattro
Nice flight over the Badlands in Drumheller, Alberta
Plane crashed due to an broken servo horn but can be repaired
2010
May 15
It's my bday. Not much done since last time since I lost my work area
due to our recent addition (Jodie)
Now re-inspired to work on the autolander project since it is now
a TTT competition on Diydrones. Sparkfun had a similar event giving
extra credit for autonomous landing. The Diydrones competition seems
more up my ally and I've clarified the rules with the organizers.
Now dusting off my old microcontrollers. The last program I tested
was the ground rover with Ardupilot and Parallax GPS with wireless comms.
Re-aligning the wire-bridge between the Arduino and my (HVWtech) ftdi
using the CTS connection as a guide
Getting comms using Hyperterminal with "Flystraight03" settings
Waiting for GPS lock
results seem to be in line with "Flystraight17" program - that
one included routines for the compass. Loaded but never tested.
Readings can be seen at Com8 (FTDI) using 4800 baud
Got compass working for low speed orientation
Todo:
Wiring for proper mounting in car or plane
Math for low-speed motion
Testing on ground
Add proximity sensor and vibration sensor (may need to offload to stamp)
then send all the readings in serially
perhaps group GPS, vibration and compass - leave proximity
as analog or group with others as serial
Test the final taxi/stop routines
Test the landing routine
May 16
uncovered a major error with my direction routines.
now fixed
tested servo controls, added ramp functions
May 18
Encountered a reset problem with the rig
turned out to be the servo's require more power
will work with an external battery when servo's are hooked up
May 20
need to set up wireless comms
program XBEE's using Sparkfun XBEE explorer boards
can test with hvw ftdi and lilypad
see youtube http://www.youtube.com/watch?v=VzgUtZyiHhE
feed sample angles to "glideslope" program to ensure proper treatment
of large or negative angles
try various lat/lon coordinates to check the correct operation of
"error" value (change the order of waypoints to use different orientations of "error". Rotate compass completely)
add programming for speed and altitude control
build and test contact (vibration) sensor
build "brakes"
integration testing
add wireless groundstation comms
May 30
Wow!
finally got the car navigation to work
installed GPS and Co-pilot in plane
startup procedure:
power on PLANE
power tx
power xbee rx
Use Google earth or MS Streets and Trips to plot realtime data
Use GPS visualizer to plot nmea or other log files
Track options > Altitude mode: absolute (for flights)
Waypoint options > Altitude mode: Absolute floating
Consider making the delay for Rudder pulse proportional to speed
if using the ArduIMU you need to do a MOD
http://www.diydrones.com/profiles/blogs/how-to-remove-the-high-pass?id=705844%3ABlogPost%3A122162&page=2#comments
May 31
did a flight test (manual) to test telemetry. XBee performed to spec and
was able to get good plots of the flight path from Google Earth.
had some problems with underpowered throttle. turned out to be a bad
battery so replaced it.
June 1
want to send up plane under full autonomous control with telemetry.
my own version of the software for ardupilot uses Parallax GPS
with a simple servo routine. this needs to be tested when it works
alongside the co-pilot stabilization hardware
also need to test ESC control from ardupilot
if this fails, will need a "buffer" program (from BS2 or picaxe say) that accepts
pulses or serial comms and send constant updates to servos
also, the system will eventually end up in a plane with ailerons
i should just test the rudder and throttle/elevator controls WITHOUT the co=pilot
the final system will use co-pilot for ailerons and perhaps elevator. will experiement with throttle/elevator combination for ALT control
plan to use Rudder and Throttle control for TO/Landing - may need to
inject signals into stabilization (Aileron/Elevator) - will test
on Spektrum, use channel 5/6 for ardupilot/stabilization
perhaps I will stick with the Easystar and just add the prox sensor
to tune landings
Throttle < Ground_speed (add BS2 for buffer)
Elevator < altitude
Rudder < heading
(tune gain and delay, even leave in position if error is too large)
re-wire with wire-wrap
perhaps re-write code for NMEA parsing (try it with nmea.h and servo.h)
routine for calibration
routine for autoland from "anywhere" (try with Radian and camera)
NOTE: XBEE can be powered from battery
(GPS should still be powered from Ardupilot +5V)
Still need to write "Processing" code for XY and Z plots
use 2D primitives and serial input
later add image from Google Earth
idea:
self powered GPS location transmitter from > Em406 GPS, XBEE & +5V power
BS2 pseudocode for "buffer"
old value = zero pulse width
loop:
pulsin from ESC signal > new value
did it timeout? Y>use old value N>use new value
store new value in old value
pulseout
delay 20ms
June 3
Problem when Ardupilot is feeding co-pilot (wants a continous servo signal)
Looked at Ardupilot firmware 2.6 to solve this
If this works then all I will need is an "over-ride" program for the elevator. This could be tested with Ardupilot hardware
Pseudocode for ground detection (elevator over-ride)
//test this with low levels
setup "listener" port for elevator
put Ardupilot board in "passthrough" mode
setup ground_detect height
loop:
read elevator servo pulse > elevator
check elevator (use analog signal)
if height < ground_detect
{
// ground level has been detected
go to ground level routine();
}
else
{
keep board in passthrough mode
add an appropriate delay // test with scope
}
ground level routine()
calculate elevator signal based < elevator pulse, height
e.g. elevator = elevator - (k*height);
First test this using Ardupilot board
then transfer to arduino mini + MUX chip
If using code 2.6 then use ConfigTool or Waypoint Writer for entry
Will need to cut the XY sensor wire and create a "pluggable" connection. That way you can use the Co-Pilot OR Ardupilot
IDEA: You can try to send GPS signal also to the Arduino MINI for
ground level Landing and Taxi routines
2:39 AM 6/6/2010
Ardupilot 2.6 is assembled and ready for testing
12:53 AM 6/9/2010
Had a good test flight at Bearspaw school ground. Manual and Stabilize mode worked well.
Fly by Wire was drifting. Power was also resetting.
Solutions:
new header file
trim the plane in flight
adjust the CG so it does not climb
add a capacitor to the PS
Feel ready to try AUTO
Also, I want to add the proximity sensor and modify the altitude
routine to use "home_alt + prox" if we detect the ground
Code in Navigate TAB, get_altitude_above_home(void)
perform autolanding on a typical RC plane
USB to Serial converter
Looked at pinouts of cable from DIYDrones compared to HVWTech converter (see schematics)
Found the typical "Hello World" LED Blink program for Ardupilot (AP) board. This flashes a
LED attached to D13. We shall power the AP using the ESC plugged into Output 3
Preparing the hardware:
Use a piece of network cable and some jumpers to connect the AP to the FTDI
Using Arduino 16 software keep the default controller
9 Jul, 2009
Got HVWTech USB to Serial converter working on EEEPC
Investigating the manual over-ride feature of AP > Look for the MUX LED. OFF = Manual, ON = Autopilot
Had a look at the original [MUX] board, Stamp AP @ DIYDrones.com
Had an idea for GPS circle. Calculate distance from WP and keep it constant
May want to add a digital compass > got it.
17 Jul, 2009
tested AP board programming with blink program > yay, it worked
NOTES: i did not connect the VCC wire since it was being powered by an ESC jumper
next > load the original code and check the GPS
I got a Stamp BS2e and using the wireless I plan to create a simple ground monitor to allow the AP
to confirm settings and display status when in range
18 Jul, 2009
Loaded 2.2 code > it wants a jumper to be connected :( see shield notes in AP manual
Loaded 1.0 code > it gave me a GPS lock (blue led) :)
Now want to pick apart the code starting with the GPS, perhaps send strings back to the computer.
The code seems to include a few test routines to output GPS data (See "system")
21 Jul, 2009
Figured out what jumper wire does (AP manual). See appendix 4
It connects the throttle for manual control MUX_IN to D8. These seems to be left unconnected for optional use (3-4 MUX_IN)
I may choose to put the throttle under AP control so leave this unconnected for now.
See "Servo". Controls output to servos and has a nice test routine.
Use some serial test progs like "Ascii Table" to get some data displayed on the IDE
22 Jul, 2009
Learned how to program waypoints into the setup utility. also checked home coordinates
of my house on google maps.
Possible testing areas >
Home Depot car park (ground testing), bowness park, large field in tuscany, highway extension
24 Jul
Looked for my old programs (Bs2) but no luck. Will need to do from scratch - not to worry.
Servo control using pulseout. Each unit is 2 microsec. Need pulses 0.6mS (min) to 1.5ms (center) to 2.4 ms (max)
http://www.geocities.com/bourbonstreet/3220/servobasics.html
Off time can be 10-30ms but if it is longer then the servo may jitter. The proper solution is a servo controller chip
such as the FT639 or Parallax servo controller board
An easier but more expensive solution is to use a separate BS2 or BS1 for servo control. This will "memorize" the signals that
it recieves and offload the processing of NAV data from the first BS2
Read control signals from RC unit using pulsein.
Jul 25
Looking through code for XY Sensor stuff > signals, calculations
Picked up some wire-wrap for circuits, landing gear supplies for yellow (test) plane, nylon screws
for CG idea.
Wire wrapping techniques > http://www.vpc.com/downloads/Wire_Wrap_Techniques/Wire_Wrap_Techniques.pdf
Tried Chris A's GPs program with BS2 - it does not have the memory capability of the higher level stamps but I got some data out
Wiring up the BS2e (extra memory)
transferring the FTDI from AP to Stamp. remember the wires go from Rx to CTS
BS2e did not work with FTDI for some reason. Works fine with my other USB/Serial converter so will pair those.
Chris A.'s code does not work unless you are using a high level stamp capable of high speed buffering.
However, I got the SIRFDemo program to Rx GPS data directly into the computer using FTDI. Data looks great!
Should graph the "height" data to look for drift
Jul 26
http://dailyduino.com/archives/category/communication/wireless
nice article on using Parallax wireless Tx/Rx with arduino
Jul 27
got some GPS data out of BS2. Had to tune to 9600 baud and used the old Chris A code for Stamp based AP
Jul 28
hacking AP 1.0 code
found routines for testing the servos and reading the GPS. Blue LED for GPS Lock is D12
Time to test v1.0 with RC gear hooked up
perhaps do a waypoint with 1m height and add landing later (take out of AP control before)
Insert wireless transmitter between FTDI and AP so that you can read serial output of AP on BS2
IDEA: develop a digital protocol for sending data to AP via a spare channel on Tx with coded PWM
See > http://ban-sidhe.com/blog/?p=1465
July 29
XY sensor and Co-Pilot arrived today. yay
IDEA: graphical (BW with grey levels) representaion of XY sensor outputs using A/D from Arduino
Fixed landing gear and ailerons on yellow plane. revived 6 channel radio, charging batteries
Going through older blog posts to see the history of 2.x AP code
2.0 seems to work without the "shield"
stuff gets interesting from Feb 2009 blog
Google code repository has earlier versions of 2.x code > look options that work without the shield and z sensor.
notice the labels and bug fixes
Used windiff to look at differences in 2.2 and 2.1 code
2.1 specifically has z sensor as optional. Connect jumper between pins D6 and D7 for ground setup and sensor calibration
Tested the IR sensor with VM and A/D program. Used info in
http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
need to ground z sensor input. works ok.
Count connections to XY sensor from "cable" going anticlockwise. First (Yaw) gives more positive results if you put hand closer.
First (Pitch - second one round) gives more positive. values between 500-600
Also, got a lock on GPS
Next - how to calibrate the XY sensor
Found it. See AP Manual and the section entitled
ArduPilot 2.1 and above (no Z sensor):
Notice that the sensor is mounted diagonally with support for reversing the physical setup
Need 2 passthrough jumpers to connect RC Rx - pick them up when I'm gettin my Eflite Apprentice checked out
IDEA: Nunchuk interface to RC tx
2.1 docs
http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A71674&page=1#comment-705844_Comment_71702
Jul 31
Assembled Eflite apprentice platform. Had some bugs so took it back to hobby shop. All good now.
Looked into brushless conversion for Piper Cub.
Picked up a 4 line LCD display and a spare Ardupilot (in case of burnout)
Also picked up a simple RC car platform for testing.
Now working on landing algorithm. []=subroutines, ()= optional
Pseudocode for landing algorithm:
setup
read start runway coordinates
read end runway coordinates
Wait until landing command detected
calculated waypoints till runway start using best route and [glideslope]
loop
goto waypoints until ground detected
end loop
ground detected
flare - switch to hieght maintenance
droprate (until touchdown)
cut engine and switch to manual or taxi and park (need other coordinates)
OK, tested the AP with servos and XY sensor. 3 modes show correctly with LEDs. Manual mode works ok but there is some
jitter in the servos, possibly due to noise from the GPS data
Checking the config tool
http://maps.google.ca/?ie=UTF8&ll=51.123203,-114.24916&spn=0.001108,0.003176&t=h&z=18
Testing location using GPS
LAT LON
51123324 -114249248
51123336 -114249320
51123340 -114249360
Google maps is slightly off compared to the GPS measurements. For navigation purposes this is ok but for landing
we will need to use field measurements
Still need to figure out connection for Throttle? A - it seems from the code that D8 is used so we should solder the jumper
Use BS2e for data logging? Timestamped GPS data
Ready to test Piper Cub platform:
- Wiring AP onto plane
- Loading waypoints for test site (bring GPS for Microsoft Streets and Trips)
- Do early missions
Aug 1
tested platforms (no AP, just manual)
Piper Cub needed mods to landing gear for stability
Apprentice got damaged (Ellie stepped on it out in the field) - repairs complete
Put jumpers on AP board for more solid connections
Tested AP board out in the open. Tried to calibrate XY sensor but power from 4 pins next to GPS - They are actually unregulated!
nearly burned out the XY sensor but it seems to be OK
IDEA: use BS2 to act as Tx input to AP for simulations
This is working. Using BS2 the limits of pulsout are 1150(max), 250 min (multiply by 2uS for real pulse length)
Did a demo video showing
- operation of the XY sensor for leveling in flight
- correct operation of LEDs for 3 modes (Manual, Waypoint and RTL)
IDEA: Take AP on drive down the hill in the Athletic Park. Check the operation of the hieght readings and
look for consistency.
Checked the waypoints in AP memory - still good i.e. this does not get overwritten if you reprogram (cool)
Next..
Proximity sensor tests
Wireless interface
Need 3D plotter for waypoints to check the accuracy of height measurements
Adri put me onto Sketchup using Ruby scripts - found cloud.rb > test it
Aug 3
tested the AP for consistent height data by driving down a hill while data logging
The Sketchup plot works. Bad news is the H data is showing a weird pattern.
Either the data is time lagged or the GPS is extrapolating in some way.
I did not notice variations in the RAW GPS data.
Next..
Do the drive test with RAW GPS data
Plus stuff from Aug 1
Aug 4
Picked up a ParkZone powered glider for long range testing
Another GPS module
IDEA: project hobby laser with modulated output > sparkfun
e.g. http://www.instructables.com/id/Send-Music-over-a-Laser-Beam/
Tested the DIRSS optical proximity sensor. Actually, it can give both analog
and digital (serial) output. The analog works fine but the output is logarithmic - it's ok
for my purposes.
Tested SRF01 ultrasonic module. Works with an edited version of the demo program.
srf01_edit.pde
sends serial data to the Arduino monitor. Got it to display readings in cm
Decided to use the Optical sensor with BS2 and ultrasonic with Arduino
Aug 5
Picked up Parallax GPS unit for comparison plus some Xbee modules for
ground station (1.5 mile range)
managed to reset the EM406A GPS to 9600 NMEA mode using SIRFDemo program
Performed a second H resolution test on EM406 using 9600 NMEA mode. Better continuity
but still produces H drift
Successfully connected Parallax GPS > ready for testing H resolution
IDEA: use "Processing" to test XY sensor
IDEA: use picaxe 8M or 14 for ADC and Passthrough (like MUX and XY sensor)
there is a nice 8M dev board with servo connections
LAT & LON
http://istp.gsfc.nasa.gov/stargaze/Slatlong.htm
Aug 6
Did some testing of the Parallax GPS but lost sat-lock while driving
Focussing on simple proximity activated program on BS2
IDEA: Use Parallax Ping sensor with Servo bracket
Aug 7
Had no end pf problems with both SRF01 and DIRRS rangefinders. Noisy and intermittent output..
Solarbotic kindly refunded my $ (SRF01). The DIRRS I will convert to analog output for Takeoff use. Got the analog cable
Picked up the Parallax Ping))) and a LV-MaxSonar EZ1
Both worked beautifully. It seems simpler to use pulses than serial info. This meshes nicely
with the Servo control.
Can finally see some light at the end of the tunnel.
Decided to work on the simplest of designs >
keep plane at setpoint height then adjust setpoint till landed safely
add more complexity later
'v1.1 Aug 7, 09
'building prototype using BS2 Stamp Stack
'range of servo pulse is 250 TO 1150 which translates to 500uS to 2300uS
'center value is around 750 which translates to 1500uS
'Ch5 switch up = 1037, down = 484
'Ch2 elevator range 550-950, centered around 750, adjustable offset +/-50
'6pm
'Got basic input of Ch2 & Ch5 with servo control and height sensor
'Got feedback loop working
'TODO:
'test On plane For servo reverse and correct operation
'remove DEBUG lines and check loop speed
'power supply for ping sensor
'v1.2 Aug 8, 09
'built physical computing prototype on BS2e
'operation ok in test lab
'Test in plane - Ch5 passthrough ok, autoheight jumpy
'test here with BS2 and user input for proximity
'removed pauses for field testing. This works and got rid of the "jumpiness"
Aug 10
Got the working prototype into the plane but encountered limitations when testing. Bug is that program takes some time to activate. Investigating.
It seems that the servo load is reseting the processor. This only happens in the bypass mode. Also, the powering the
sensor from the regulator on the processor may be causing a problem.
HVWTech SKU's
5V 1A Switching voltage regulator
(SKU# 50210)
$17.45 USD
MaxSonar-EZ0
(SKU# 35231)
$27.45 USD
PICAXE-08M SMD Project Board
(SKU# 28517)
$12.45 USD
PICAXE Programming Cable (USB)
(SKU# 28405)
$21.95 USD
Reflecting on the "flight testing" I'm realizing that takoff is as complex
(if not more) than landing. The plane has to be constantly corrected for drift
in the steering, wait for lift and then ease on the up-elevator
IDEA: use the vibration sensor to detect lift in takoff, use GPS to keep plane steady i.e. control the steering and rudder based on pre-programmed coordinates,
perhaps use the Co-pilot (only aileron) to stabilize
TODO:
check reversal of front landing gear for stability
Check reseting problem to see if it happens with processor in plane
Check if Voltage regulator will solve the problem (possibly use a digital buffer)
***** Need a reset button on the BS2e
Aug 11
Solved reset problem (See code)
Thought through auto takeoff by autoland mode with elevator brought down and released slowly
Did pseudocode for Straight Line flight based on Parallax GPS
TODO:
test "fly straight" on car
test Ardupilot 1.0 on car and glider (2.0 can work too) http://diydrones.com/profiles/blogs/getting-ready-for-ardupilot-20
test Autotakeoff and Autoland with hop mission
practice flight with microlight Sukhoi
test Ardupilot 1.0 with Apprentice, then add autoland
First doc on Hardware setup for Ardupilot 1.0 and 2.x
http://diydrones.com/profiles/blogs/ardupilot-assembly
ll=51.151258,-114.207403 for landing site
ll=51.151991,-114.20647
Aug 12
Thinking of adding my autolander between FMA copilot and RC Rx on 1.0 setup
(See http://diydrones.com/profiles/blogs/ardupilot-assembly)
Ch5 will toggle both Co-pilot and autolander
Ch6 will toggle Ardupilot
Test Ardupilot with car and replace RC with Futaba 6 Ch
Car test
ll=51.128472,-114.250152
ll=51.127852,-114.250683
ll=51.127903,-114.251692
Loaded Waypoints in v10
car test failed. It wandered aimlessly
Tried changing reversing the servo. Nothing
Tried setup in plane. No intelligible output. The rudder flipped
in one direction with no apparent pattern.
Getting frustrated with Ardupilot..
OK, some investigation showed that my GPS normally operates at 9600
even though v10 code sets it at 4800
Seems to give an intelligible output now with bearing and distance to WP making sense
New problems:
small negaive values of height show up as unsigned huge numbers
after a while, the values drift
Rudder instructed to move in jumpy increments and flips between +25 and -35 degrees.
May still be worth another field test..
Aug 17
did another field test but getting battery restart problems on car platform
IDEA: independent power supplies
AP + Steering on small battery
Main power/motor with direct speed control
repaired micro plane platform
picked up multiplex microjet for testing vtail mixing
Aug 18
designated SITES for testing
SITE A > car park behind Supermarket - waypoint testing car, plane without wings
and micro plane
SITE B > large park closeby - good for heli and small plane. grass too rough for
car
SITE C > main test site for autolander - roads under construction
SITE D > nose hill park - good for long range tests of AP
IDEA: navigation in high wind with course-over-ground vs throttle
tested v1.6 autolander at SITE C
again, wind was quite strong
autolander at "Takeoff" mode needs adjustment of the elevator
it caused the plane to jump during the hop test.
a second pass go the plane off the ground then wind crashed it. seems ok
need to straighten the landing gear
moved on to powered glider at site D
had a few test flights. managed to return to the ground safely but again the
high winds are a challenge. got some real altitude with the last flight
then went down out of sight. found it & decided to call it a day.
IDEA: homing beacon or wireless GPS signal for lost planes
IDEA: start a blogger and youtube account for project stuff
worked on "fly straight" program. course and bearing approach made simpler
by simply using "distance from straight" line approach.
needs testing on car - my prog & Ardupilot
looked at pwmpal and parallax servo controller on HVWtech
Need a separate prog for "takeoff"
tune wheel vs rudder
perhaps add wing stabilization and straight-line rudder/steering control
OR
develop "throw" type settings using landing prog (should work with glider)
Aug 20
AP 23 out
new waypoints
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124834,-114.249455&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124597,-114.249345&spn=0.000682,0.001738&t=h&z=19
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125036,-114.248916&spn=0.000682,0.001738&t=h&z=19
Aug 21
IDEA: use microjet in Time Trust Trials - Roll stabilize with ultrasonics, use my flystraight algorithm for rudder
perhaps usereversible prop!
This would require 2 sensors and AL2x software
Nice Arduino hacking info
www.freeduino.org
lookup math.h in arduino docs and implement "flystraight" routine
Tests ready to go:
Car with AP23
Apprentice with AL20 (use SS2 and power pings with pins)
Then...
Radian with AP22 + AL1x (Use BS2e then try PICAXE)
Microjet with AP23 + AL20 (Add tail rudder & motor)
IDEA: eagle files for Air-stamp and V-Stamp boards
IDEA: prototype for CG heli w GPS
GET: linear sensor from parallax > horizon detection
GET: 2 small servos and reversible prop kit, roll of servo wire with ends
Aug 23
IDEA: Home security robot
crawler + "legs" to assist in climbing stairs
Tested car with AP23 AGAIN. No luck. Tried reversing roll variable, moving outputs.
At least the Throttle works with independent power. Getting a GPS lock @9600 baud
4800 baud did not give a GPS lock
Nice site for Roll, Pitch and Yaw
Rudder controls Yaw
Ailerons control Roll
Elevator controls pitch
Aug 24
Fixed the error formula on my "flystraight" algorithm.
Hooked up Parallax Optascope
Looked at signals from GPS 4 pin header. 5V, GND, TX, RX
Connected to TX, GND on the FTDI interface
TX shows Ardupilot output
Rx shows raw NMEA output
Both are @9600
Tried to program GPS while connected to Ardupilot. Does not work because Ardupilot is sending its
own signals.
Checked VCC out of Ardupilot. Reading 5V but this is because the battery is @5V. VCC should read the battery level
TODO:
test "flystraight" in Arduino code (won't run easily in BS2 because of floating point math - see below)
debug signals in AL22. Suspect digital buffer needed for servo signals
investigate "trainer" signal in Spektrum transmitter
get AP to work at 4800 baud so we can send NMEA data from plane to ground (did it!)
http://www.phanderson.com/stamp/
nice link on bs2, adc0831 and picaxe 8m as slave processor
Using Bs2 for coordinate math?
Sine function accepts 8 bit angle and returns a 16 bit answer
Variable up to 65535
If you use a resolution of 0.1m on the GPS then you are limited to about 6.5 km or 3.2 km for +/- values
result is in the range -32767 to +32767
Need to demonstrate correction of rudder (plane) or steering (car) relative to a defined straight line.
Aug 26
scope capture of signals.
period and amplitude changes - see scope folder
rx - 3v, 45hz, duty cyle 4-8%
bs2e
micro, 5v, 22.7-45 hz, loses every other pulse
micro with ch5 on, 740us on, 3.68ms off
bs2
16 hz, ch5 off
2 hz, ch5 on pulse width 124ms
Nice article on Tx trainer signal
http://www.geocities.com/BourbonStreet/3220/servotx.html
Can use this for Modulation of serial commands to RC aircraft in flight
Aug 27
fixed bs2 autolander for Apprentice. ready for flight test and tuning. needed longer delay in passthrough mode
Ardupilot board - writing my own software
got all LED's, inputs and outputs to work i.e. servo in and out with MUX
Lovely article on 'Duino with lots of links and discussion
http://www.urbanhonking.com/ideasfordozens/2009/05/why_the_arduino_matters.html#comments
Aug 28
Got parallax GPS to talk to Arduino
http://maps.google.ca/?ie=UTF8&ll=51.123135,-114.249079&spn=0.002539,0.006952&t=h&z=17
51.123136,-114.249080
checking resolution of GPS - 6 decimal places on LAT/LON, ok
Lost site c to contstruction :(
Investigate site near home
need GPS waypoints to check flystraight
using front and back of the house.
51.123364,-114.249288
51.123134,-114.249082
51.123278,-114.248634
lat is Y
lon is X
Parallax GPS giving bad resolution. NMEA values look better.
Got it working!
Now to calculate distance and error
Got a valid error signal
Need to add gain and waypoint switcher > got that working
Need to tune gain
measured waypoints for car test
51.12456, -114.24900
51.12488, -114.24948
51.12520, -114.24862
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124337,-114.24909&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.124829,-114.249487&spn=0.001364,0.003476&t=h&z=18
http://maps.google.ca/maps?hl=en&ie=UTF8&ll=51.125017,-114.248918&spn=0.001364,0.003476&t=h&z=18
Data for site A
wp_lat[1]= 51124204;
wp_lon[1]= -114248912;
wp_alt[1]= 150; //meters
wp_lat[2]= 51124848;
wp_lon[2]= -114249456;
wp_alt[2]= 200; //meters
wp_lat[3]= 5112508;
wp_lon[3]= -114248872;
wp_alt[3]= 150; //meters
wp_lat[4]= 51124848; //enter home
wp_lon[4]= -114249456;
wp_alt[4]= 150; //meters
Data
wp_lat[1]= 51123364;
wp_lon[1]= -114249288;
wp_alt[1]= 150; //meters
wp_lat[2]= 51123134;
wp_lon[2]= -114249082;
wp_alt[2]= 200; //meters
wp_lat[3]= 51123278;
wp_lon[3]= -114248634;
wp_alt[3]= 150; //meters
wp_lat[4]= 111; //enter home
wp_lon[4]= -111;
wp_alt[4]= 150; //meters
Gain too high and car drives in circles
IDEA: use adaptive gain and sliding window plus extrapolation
find center pulselength of servo
focus on glideslope and direction (like ILS), leave navigation to AP
don't forget the SIMPLE one transducer lander based on PICAXE
Aug 31
Did not get to enter Time trials on DIYDrones (sigh)
However, I finished the Microjet platform and wrote BS2e code for flight stabilization in takeoff and landing.
Checked out football field site for testing. They formally lock up at 10pm.
Can't wait to flight test tomorrow.
IDEA:
use small "jerks" on servo instead of constant turn.
develop a "calibration" program or mode to get straight path for car.
can use calibration for plane BUT must be adaptive for wind. may use COG.
need math to find best circle through a set of x,y coordinates.
also need a "servo buffer" which accepts a pulse width and repeats it
Photodiodes from Active, sparkfun or hvw
Sept 1
Interesting interface for controller to pc
http://www.simblaster.com/servlet/StoreFront
flight test failed :( crashed within 15 ft. not enough speed and turned to one side..
even have video!
ah, well. back to the old drawing board as they say. re-design cycle.
nice refs for patents
http://www.patentstorm.us/patents/4979154/description.html
http://www.freepatentsonline.com/4979154.html
convert units (GPS)
http://www.unitjuggler.com/convert-speed-from-kt-to-ms.html
Sept 2
Went flying with Todd. Intention was to check the functionality of the prototype
landing assist module. My apprentice had a loose servo horn connector which made it lose
control :( What a week!
Hoping to do some simple testing with a ParkZone SuperCub.
Sept 3
weather is against me today
instead, worked on GPS guidance and improved program for 2 sensor stabilization on Apprentice
interesting arduino baloon project
http://nw5w.com/journal/?cat=12
Educator in electronics ponders the arduino
http://falconphysics.blogspot.com/2008/02/arduino-or-picaxe.html
Sept 7
New TTT on Oct 4!
rewrote "Flystraight". Getting a nitro (gas) plane for testing.
Looked at Diydrones parallax UAV. He used XY coordinates with OR for hit (instead of circle).
Sept 9
home depot
51.107566,-114.240381
51.107542,-114.239777
51.107818,-114.239767
wp_lat[1]= 51107566;
wp_lon[1]= -114240381;
wp_alt[1]= 150; //meters
wp_lat[2]= 51107542;
wp_lon[2]= -114239777;
wp_alt[2]= 200; //meters
wp_lat[3]= 51107818;
wp_lon[3]= -114239767;
wp_alt[3]= 150; //meters
Tested car at Home Depot site. "Turn" activated a few times but the turn circle seems too tight. A few things fell off while testing (Radio TX and RX)
IDEA: use the compass module to give direction data for small turns, increase the turn radius. Log data for GPS while
driving and executing "turn" and "nudge". Secure the payload better.
Looked at data sheet for multiplexer. It can handle only 2 inputs at a time. This seems ok. can always use 2 chips for 4 inputs
IDEA: use gps in and around the house to get an idea of the resolution
IDEA: work with sliding window for x, y and z data
Sept 10
Flight tested LA (landing assist) on apprentice. OK flight without. High winds on test takeoff - plane dive
Need to tune landing assist so it does not correct for above Setpoint (just below). This may produce a "bouncing" effect
before stabilizing. We can add damping later. Try Landing only then takeoff - different parameters
hvw
voltage regulator
voltage and current sense for battery
http://franson.com/gpsgate/ > interesting way to share data with multiple apps
prods:
1 - single ping landing assist
2 - dual ping landing assist
3 - autonomous landing
4 - computer assisted landing - training cable
Sept 12
found nice practice site near Bearspaw school
Sept 13
repaired Apprentice
re-wrote AL
http://www.robotshop.ca/New-arrivals/parallax-servopal-dual-servo-controller.html
Analog input
Arduino - 10 bit
Picaxe - 8 bit
1023 could be mapped to the useful range of an 11.1V LiPo with an Op Amp
http://www.siliconchip.com.au/cms/A_104400/article.html
PICAXE in schools
IDEA: use charging plug to monitor voltage
Passive flight monitor with ground station
http://www.electronics123.com/
http://www.rangevideo.com/index.php?main_page=product_info&cPath=8&products_id=98&zenid=244b0cd77d18aed28b6cb4a7860ae237
Sept 19
IDEA: Parallax autopilot board
Need for simplicity, again... Too many options and stuff too complicated
Q - simplest landing assist?
A - bs2 with one sensor
Q - simplest autolander?
A - Arduino with Co-pilot stabilization
Q - simplest monitor?
A - GPS with XBEE
All can be modified later.
Q - Simplest product
A - landing assist using picaxe and MUX
Sept 17
Test Compass module on BS2 using WAM hardware
Check out Parallax new SD reader $14 !!!
OLED serial display on Sparkfun
Sept 18
stil getting errors on ground detect
seems to be rooted in issues with nested if in pbasic or
Sept 19
Test flight on Easystar - ok
Compass and ping on Arduino
http://www.arduino.cc/playground/Main/HM55B
http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor
http://antipastohw.blogspot.com/2007/12/arduino-with-parallax-sonar-sensor.html
http://www.arduino.cc/playground/Main/MaxSonar
http://arduino.cc/en/Tutorial/Memsic2125?from=Tutorial.AccelerometerMemsic2125
http://antipastohw.blogspot.com/2007/12/arduino-with-radio-shack-parallax.html
GPS
http://www.ladyada.net/make/gpsshield/
http://www.arduino.cc/playground/Tutorials/GPS
http://www.arduino.cc/playground/Learning/Tutorials
includes a ref to EM406 plus other useful tutorials
Sept 20
rewrote AL for arduino (landassist_00)
version of flystraight including compass (flystraight_17)
TODO:
create a flat circuit holder to mount on the car (test flystraight_17)
try Co-pilot stabilization in Apprentice - did it! worked great!
add landassist_00 to Apprentice
try AP with EASYSTAR
fun > try synapse and flying wing with reverse/hover
start building Beaver
IDEA:
use LT-40 kit to build a long distance UAV for search and rescue
need rangevideo FPV set
http://www.rangevideo.com
use processing to interpret landingassist00 data
get xbee working for GPS data
IDEA: use OLED for HUD > Skiers, rc fliers
Oct 3
tested compass on arduino
first flight with camera on Easystar
todo:
transfer electrics from Apprentice to Quattro
test simple AL on Easystar
See youtube for aereal video using Quattro
Nice flight over the Badlands in Drumheller, Alberta
Plane crashed due to an broken servo horn but can be repaired
2010
May 15
It's my bday. Not much done since last time since I lost my work area
due to our recent addition (Jodie)
Now re-inspired to work on the autolander project since it is now
a TTT competition on Diydrones. Sparkfun had a similar event giving
extra credit for autonomous landing. The Diydrones competition seems
more up my ally and I've clarified the rules with the organizers.
Now dusting off my old microcontrollers. The last program I tested
was the ground rover with Ardupilot and Parallax GPS with wireless comms.
Re-aligning the wire-bridge between the Arduino and my (HVWtech) ftdi
using the CTS connection as a guide
Getting comms using Hyperterminal with "Flystraight03" settings
Waiting for GPS lock
results seem to be in line with "Flystraight17" program - that
one included routines for the compass. Loaded but never tested.
Readings can be seen at Com8 (FTDI) using 4800 baud
Got compass working for low speed orientation
Todo:
Wiring for proper mounting in car or plane
Math for low-speed motion
Testing on ground
Add proximity sensor and vibration sensor (may need to offload to stamp)
then send all the readings in serially
perhaps group GPS, vibration and compass - leave proximity
as analog or group with others as serial
Test the final taxi/stop routines
Test the landing routine
May 16
uncovered a major error with my direction routines.
now fixed
tested servo controls, added ramp functions
May 18
Encountered a reset problem with the rig
turned out to be the servo's require more power
will work with an external battery when servo's are hooked up
May 20
need to set up wireless comms
program XBEE's using Sparkfun XBEE explorer boards
can test with hvw ftdi and lilypad
see youtube http://www.youtube.com/watch?v=VzgUtZyiHhE
feed sample angles to "glideslope" program to ensure proper treatment
of large or negative angles
try various lat/lon coordinates to check the correct operation of
"error" value (change the order of waypoints to use different orientations of "error". Rotate compass completely)
add programming for speed and altitude control
build and test contact (vibration) sensor
build "brakes"
integration testing
add wireless groundstation comms
May 30
Wow!
finally got the car navigation to work
installed GPS and Co-pilot in plane
startup procedure:
power on PLANE
power tx
power xbee rx
Use Google earth or MS Streets and Trips to plot realtime data
Use GPS visualizer to plot nmea or other log files
Track options > Altitude mode: absolute (for flights)
Waypoint options > Altitude mode: Absolute floating
Consider making the delay for Rudder pulse proportional to speed
if using the ArduIMU you need to do a MOD
http://www.diydrones.com/profiles/blogs/how-to-remove-the-high-pass?id=705844%3ABlogPost%3A122162&page=2#comments
May 31
did a flight test (manual) to test telemetry. XBee performed to spec and
was able to get good plots of the flight path from Google Earth.
had some problems with underpowered throttle. turned out to be a bad
battery so replaced it.
June 1
want to send up plane under full autonomous control with telemetry.
my own version of the software for ardupilot uses Parallax GPS
with a simple servo routine. this needs to be tested when it works
alongside the co-pilot stabilization hardware
also need to test ESC control from ardupilot
if this fails, will need a "buffer" program (from BS2 or picaxe say) that accepts
pulses or serial comms and send constant updates to servos
also, the system will eventually end up in a plane with ailerons
i should just test the rudder and throttle/elevator controls WITHOUT the co=pilot
the final system will use co-pilot for ailerons and perhaps elevator. will experiement with throttle/elevator combination for ALT control
plan to use Rudder and Throttle control for TO/Landing - may need to
inject signals into stabilization (Aileron/Elevator) - will test
on Spektrum, use channel 5/6 for ardupilot/stabilization
perhaps I will stick with the Easystar and just add the prox sensor
to tune landings
Throttle < Ground_speed (add BS2 for buffer)
Elevator < altitude
Rudder < heading
(tune gain and delay, even leave in position if error is too large)
re-wire with wire-wrap
perhaps re-write code for NMEA parsing (try it with nmea.h and servo.h)
routine for calibration
routine for autoland from "anywhere" (try with Radian and camera)
NOTE: XBEE can be powered from battery
(GPS should still be powered from Ardupilot +5V)
Still need to write "Processing" code for XY and Z plots
use 2D primitives and serial input
later add image from Google Earth
idea:
self powered GPS location transmitter from > Em406 GPS, XBEE & +5V power
BS2 pseudocode for "buffer"
old value = zero pulse width
loop:
pulsin from ESC signal > new value
did it timeout? Y>use old value N>use new value
store new value in old value
pulseout
delay 20ms
June 3
Problem when Ardupilot is feeding co-pilot (wants a continous servo signal)
Looked at Ardupilot firmware 2.6 to solve this
If this works then all I will need is an "over-ride" program for the elevator. This could be tested with Ardupilot hardware
Pseudocode for ground detection (elevator over-ride)
//test this with low levels
setup "listener" port for elevator
put Ardupilot board in "passthrough" mode
setup ground_detect height
loop:
read elevator servo pulse > elevator
check elevator (use analog signal)
if height < ground_detect
{
// ground level has been detected
go to ground level routine();
}
else
{
keep board in passthrough mode
add an appropriate delay // test with scope
}
ground level routine()
calculate elevator signal based < elevator pulse, height
e.g. elevator = elevator - (k*height);
First test this using Ardupilot board
then transfer to arduino mini + MUX chip
If using code 2.6 then use ConfigTool or Waypoint Writer for entry
Will need to cut the XY sensor wire and create a "pluggable" connection. That way you can use the Co-Pilot OR Ardupilot
IDEA: You can try to send GPS signal also to the Arduino MINI for
ground level Landing and Taxi routines
2:39 AM 6/6/2010
Ardupilot 2.6 is assembled and ready for testing
12:53 AM 6/9/2010
Had a good test flight at Bearspaw school ground. Manual and Stabilize mode worked well.
Fly by Wire was drifting. Power was also resetting.
Solutions:
new header file
trim the plane in flight
adjust the CG so it does not climb
add a capacitor to the PS
Feel ready to try AUTO
Also, I want to add the proximity sensor and modify the altitude
routine to use "home_alt + prox" if we detect the ground
Code in Navigate TAB, get_altitude_above_home(void)
Subscribe to:
Posts (Atom)