PDA

View Full Version : Discussion UAV Design Review


Armer175
Dec 14, 2008, 08:35 PM
Hello all! This is my first post so please excuse any errors. So my team and I decided to try to build a UAV for our senior design project. We have a basic design so far and just would like some feedback/advice from you (the pros).

Microcontroller:Pic 18F8723
Accel/Gyro:ADIS16350
Video overlay:Max7456
Data Tx/Rx:XBee Pro module
GPS:FV-M8
Airspeed:MPX5010
Compiler:CCS

Above are the componets we are planing on using. We're choosing the 18F8723 since it has a large amount of memory and plenty of i/o lines. Is it better to use a servo controller such as the Devantech SD21 so the main microcontroller isnt tied up? Any feedback will be helpful. Thanks for your time.

Curt

rbeall
Dec 14, 2008, 10:15 PM
Hard project ahead....there is a reason that people pay 5k for full working auto pilots. Good luck..Hope this info helps

Microcontroller:Pic 18F8723

Accel/Gyro:ADIS16350 good choice but spi protocol might be tricky
Data Tx/Rx:XBee Pro module - not enough range most likely (9xtend better choice)
GPS: gps is gps some faster some slower but all the same data
Airspeed:MPX5010 works great but has to be conditioned with opamps
Compiler:CCS

i noticed you didn't have a total pressure sensor for altitude....
-Ryan

Armer175
Dec 15, 2008, 08:43 AM
Yeah, its going to be difficult but should be a lot of fun learning. I have a ST accelerometer that communicates through SPI and I didnt have any problems getting that set up with the basic stamp. The MPX5010 is a differential pressure sensor so Im going to use the one side for static pressure and the other for the dynamic pressure.

Do you have any thoughts about controlling the servos through the microcontroller itself or use a servo controller board?

Curt

eddymoore
Dec 15, 2008, 02:22 PM
You *might* want a bit more cpu, especially if you plan to do some sensor fusion with the gyro/accels. Consider ARM processors - we've had great luck with the NXP LPC2148. Very large online user base, easy to use (harder than pics but not really - just a bit more setup for each peripheral). Also free toolchains based on GCC.

Also, I cannot stress enough the value of data-logging. You will curse not putting it in, trust me. Again, the ARM will comfortably run a file system for an SD card, where the pic would struggle. There are a whole bunch of online file system implementations for embedded micros. We use FatFS - it does all the overhead in a non hardware specific way, you just provide a function that squirts an array it provides over SPI to the SD card - nice and easy.

sparkfun have some good intros to the LPC2148 too. I'm a happy customer.

Best of luck!

I just remembered - it's the same processor used on the paparazzi autopilot so you'll have highly specific example code and available know-how coming out of your ears.

eddymoore
Dec 15, 2008, 02:27 PM
I should pedantically add - that was just a suggestion. There are many many MCUs floating around and the PIC18s are quite capable - although personally I never really got on with their architecture, but that's probably more of a fault with me rather than them. If they're what you know, then that counts for a huge amount in the selection process.

Best of luck.

Armer175
Dec 16, 2008, 06:54 AM
The only reason Im choosing the PIC18 is becuase I have other buddies that use it so if I need a general question answered it should be quick. After I get this first UAV built I will probally decide to go with something with a little more processing power. Do you use a servo controller board or do you just use the same chip?

Curt

eddymoore
Dec 16, 2008, 09:59 AM
Same chip using its onboard timer. You can drive up to about 10 servos from one pin by using a demultiplexor chip such as the 4017 ( http://www.doctronics.co.uk/4017.htm ). Observe- the MCU provides a sequence of pulses (say 10 in this case), each pulse gets fed through to a different output pin in turn - the mcu defines the leng between each pulse in the pulse sequence corresponding to the position it wants the servo to have. You plug a servo into each output. It resets itself and goes back to the beginning after 10 (if you want fewer, use another MCU pin to hit the reset line on the 4017, however a (subjectively) 'nicer' way to do it is just build the hardware and software to control 10 servos, and if you only want, say, 5, then just do very high speed pulses for servo channels 6/7/8/9/10 to flick through quickly and take the 4017 to reset). This kind of technique allows the hardware and software to grow more gracefully as your project expands in scope.

Devo6486
Dec 19, 2008, 02:34 PM
I just graduated with a CpE bachelor's. My design project was also an autopilot system. It worked... but it was a lot of work to get done, and took a few strokes of genius to accomplish on our budget. Good luck with that one.

Armer175
Dec 19, 2008, 05:45 PM
What uC and sensors did you use?

Devo6486
Dec 19, 2008, 07:48 PM
We ended up using an Atmel uC, but the choice of which uC is kind of unimportant. In the end, if it's got the processing power, you're fine... and most do unless you're going to try to make it insanely computation-heavy.

rbeall
Dec 23, 2008, 02:23 PM
One side hooks up to static and the other dynamic but it still out puts one voltage.....dynamic/airspeed pressure.

You need a total sensor to measure altitude (if you are even wanting that measurement).

Check out MPXa6115

so one sensor for altitude and one fore airspeed.

rbeall
Dec 23, 2008, 02:23 PM
One side hooks up to static and the other dynamic but it still out puts one voltage.....dynamic/airspeed pressure.

You need a total sensor to measure altitude (if you are even wanting that measurement).

Check out MPXa6115

so one sensor for altitude and one for airspeed.

Armer175
Dec 26, 2008, 12:47 PM
Thanks for the input rbeall, I dont know how I overlooked that but I did. The other sensor is now on the way.