Arduino Quadcopter

Hi,

I must start by saying I am a total beginner at this, microcontroller projects, and I am trying to take it all in as fast as possible. I have a class project which involves making an automatically stabilizing quadcopter. Now my question is, what board would be best for this kind of project? I'm going to have a wireless video camera, a gyro, an accelerometer and an altimeter on the little UAV, plus MAYBE a couple of proximity sensors, depending on how much everything weighs.

I've looked preliminarily at aeroquadstore.com and have been looking at the AeroQuad Shield 2.0 with the Arduino Mega 2560, ITG 3200 triple axis gyro and the BMA 180 triple axis accelerometer as filling my needs, but I would appreciate input from people who have experience with Arduino and DIY projects.

Thanks in advance!

Search the old forum below for quadcopter for previous discussions on the subject.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl

I would appreciate input from people who have experience with Arduino and DIY projects.

Well my input would be that you have selected a most difficult project for someone with no prior experience with microcontrollers. I would think you would be much better off starting with a few less ambitious projects while you learn and gain experience.

But good luck either way.

Lefty

Hi,

Yeah it is a very ambitious project and it will cost as much!
But remember that the Arduino cannot process video…

But anyway, you should go look here: www.diydrones.com/
A lot of people there did what you want to do.

I wish you luck and wish you’ll realise this!
(Don’t forget to post here what you made if you do it!) :slight_smile:

I think it depends on how many out/inputs you would need as the smaller boards dont have many out/inputs. I would start designing your quadcopter first and then once you have figured out how many outputs and inputs you need buy the board that is the lightest weight but still has enough out/inputs and memory for your code. This page lists all the boards avaible or if none of them suit you could try buying a FTDI cable, the main chip you have decided on, a 16MHZ resonator, a 5V regulator, and build one yourself. There are plenty of tutorails online.

links. Arduino boards

Good luck with your project, David.

I think it depends on how many out/inputs you would need as the smaller boards dont have many out/inputs. I would start designing your quadcopter first and then once you have figured out how many outputs and inputs you need buy the board that is the lightest weight but still has enough out/inputs and memory for your code. This page lists all the boards avaible or if none of them suit you could try buying a FTDI cable, the main chip you have decided on, a 16MHZ resonator, a 5V regulator, and build one yourself. There are plenty of tutorails online.

LINKS arduino boards http://arduino.cc/en/Main/Boards Build your own http://lmgtfy.com/?q=How+to+build+a+arduino+board.

Good luck with your project, David.

I understand how a small cheap gyro like ENC-03r on the Quadboard can keep a copter from slowly rotating. Using a 328 to sample, it should be able to measure as small as about 70deg / minute of rotation. This is fine for Yaw, anything better and you'd need a compass.

Stupid Question alert:

But how does that keep it from flipping over? 70 deg of pitch or roll in a minute and it would nearly be upside down! This would not be a problem for a traditional copter, but a Quadrotor is inherently unstable? It requires another sensor or human input at the stick?

How does this http://www.litehawk.ca/discover%20litehawk%20xl.html have 0 Yaw for 1 minute without any stick input?

I must start by saying I am a total beginner at this...

I would get "Blink without delay" down pat before you venture too far. ;)

Actually you can buy a kit with instructions for $100. I agree it is difficult, but not impossible for a Beginner!

sbright33: I understand how a small cheap gyro like ENC-03r on the Quadboard can keep a copter from slowly rotating. Using a 328 to sample, it should be able to measure as small as about 70deg / minute of rotation. This is fine for Yaw, anything better and you'd need a compass.

Stupid Question alert:

But how does that keep it from flipping over? 70 deg of pitch or roll in a minute and it would nearly be upside down! This would not be a problem for a traditional copter, but a Quadrotor is inherently unstable? It requires another sensor or human input at the stick?

I don't call that a stupid question - the answer is that you use gyros for short term control but correct their drift using the accelerometer (low pass filtered). With 3 axis gyros you should be able to maintain accurate rotation matrix over timescales of seconds, the long term accelerometer data is only useable if the craft isn't constantly tumbling, but that's unlikely.

The models I've seen don't have accelerometers, only ENC-03 gyro. I'm guessing they're dependent on human input every second or so, sorta like an old fashioned airplane. No answer for my Litehawk? It's a cheap toy!

]:D Why dont you try to build a ground based robot with the same functions first? :blush: :fearful: XD :open_mouth: :| :disappointed_relieved: :grin: :D :. :( :sleeping: ]:D ]:) :stuck_out_tongue_closed_eyes: :* :sweat_smile: ;) $) :roll_eyes: :zipper_mouth_face: =( :astonished: :% :roll_eyes: :drooling_face: 8) :~ ^_^ :relaxed: :cold_sweat: :0 :P :)

sbright33, you should read up on PID processing. You would never rely strictly on sensor data. You need to process the data and smooth it out which eliminates spikes and noise. This would allow you to maintain a very stable platform whether it has stick input or not. PID affects how smooth or jerky a quad behaves. The higher the PID numbers, the more sluggish it gets. The lower and you get a more responsive quad, but also very unpredictable. It's all in the coding around the various sensors and also how well trained and comfortable you are with your gear. Some people fly acrobatics with those things, flipping them on purpose. Those guys have very little PID control. For camera and video platform like what I do, I have a medium setting to keep things stable with minimal stick input. For people just learning to fly, I always give them a much higher PID setting to get them used to the thing.

Oberling, if all you plan on doing is spam smilies, and not follow suggestions or instructions given to you (in the installation forum), then I suggest you find a different board to do that on.

With smoothing, how can you detect <70deg of rotation / minute from a Piezo Gyro? I don’t see how smoothing helps with this problem. You would be smoothing out real changes above this number. It is the limit of the sensors ability to detect slow changes. Somewhere in this neighborhood. You would need an accelerometer, as Mark suggested. What about most models which do not have them? How do they stay upright?

I know some RC controlled models use IR sensors to determine the horizon (sky cold, ground warm).

sbright33, the ENC-03R has a maximum angular velocity of about 300 degrees per second, at 50Hz. So you can query the sensor 50 times a second to get an angle. That's plenty of time to correct the vehicle's attitude without human input.

You're correct it can measure fast rotation. That's about 6 deg in a Hertz! ;-) Sorry 6 degrees in 1/50 sec. So we can stop it from rotating violently. Let's talk about Yaw for now. If it is spinning slowly, say 30 deg / minute, the ENC-033r will not be able to measure it. It will return a zero value. If we can't measure it, how can we stop it from happening? MarkT said this sensor is for short term control only. So we need another sensor. But some copters don't have another sensor. Am I correct?

I don't know about other copters and their sensors or lack thereof. So I can't answer that question. Ask the makers of said quad, look over their code, see how they are doing it.

My “theory” is that a Quad requires either an accellerometer or human input to keep from flipping. Any other possibilities?
The IR sensor only works in some environments.

sbright33: My "theory" is that a Quad requires either an accellerometer or human input to keep from flipping. Any other possibilities? The IR sensor only works in some environments.

I'm pretty sure that at some point an accelerometer (or accel/gyro combo) is needed to tell the copter to balance itself. I haven't seen any IR ones before (only ones iv seen were built by a couple friends of mine in college). Guess if you really wanted to get pointless though you could make them balance off the signals of a few rangefinders (pointed at teh ground on different spots of your copter). But now thats just me being idiotic.

Insert Quote You're correct it can measure fast rotation. That's about 6 deg in a Hertz! ;-) Sorry 6 degrees in 1/50 sec. So we can stop it from rotating violently. Let's talk about Yaw for now. If it is spinning slowly, say 30 deg / minute, the ENC-033r will not be able to measure it. It will return a zero value. If we can't measure it, how can we stop it from happening? MarkT said this sensor is for short term control only. So we need another sensor. But some copters don't have another sensor. Am I correct?

You might end up needing a second more accurate sensor to operate when the copter isn't moving around to keep it in line. Yes this is total suck because it means you need another one (or few) of your ports on your arduino(or other controller) to accomplish the same task, or you could build a circuit to amplify the output of the gyro at its lower sensing range (basic instrumentation and controls), and have a digital port control when the "high speed low accuracy", and "low speed high accuracy" circuits are turned on. (when HSLA starts to get low switches over until an input is given or if the LSHA signal starts to get too high)