I’m designing a quadrotor helicopter. I’m thinking about how to stabilize the helicopter.
My top choice right now is using three LISY300AL gyros from Sparkfun with the 10 bit ADC on an ATmega644P microcontroller.
With the analog reference set at 3.3V (it has to be 3.3V or else the accelerometers won’t work), the ADC is sensitive to 3.2mV (calculated by 3.3 / (2 ^ 10) ), the sensitivity of the gyro is 3.3mV per degree per second (from datasheet). This roughly means the ADC will be able to sense angular velocity greater than about 1 degree per second.
This will be combined with three +/- 2G accelerometers, 0v meaning -2G and 3.3V meaning +2G. The vertical axis will be used to stabilize altitude
With an ATmega644P, it takes 13 (I’ll use 14 for some more instruction clock cycles) ADC clock cycles to do one conversion. With a clock divider of 128, 8 analog channels to read, and a 16MHz system clock, this means
(14*128 * 8 )/16000000 = 0.000896
About 1.116KHz sample rate
The ESCs will be controlled from a servo controller with a resolution of 0.5 microseconds and a pulse rate of 50Hz. The serial port speed is fast enough to not become a bottleneck.
Lets say the sample rate is 1KHz, the ADC is accurate to an angular velocity of +/- 1 degrees per second, and the motor speeds can be updated at 50Hz.
The sample rate is already 20 times faster than the rate the motors can be adjusted, so that shouldn’t be a problem, which also means code execution speed isn’t a problem. This means I can easily filter any ADC noise in software, or sacrifice sample rate and use a 16 bit ADC.
Is this enough? Are my calculations correct?
My joystick reading on the transmitter should be directly proportional to velocity of the helicopter. For any given constant velocity I want to maintain, there should be an angle that the helicopter can maintain (thus a gyro reading of 0 degrees / sec) at so that the accelerometer reading corresponds to the angle due to gravity (thus constant velocity).
But since there’s no way for the helicopter to sense velocity, I think my target pitch/roll rate be proportional to the change in joystick reading, and the actual stick reading be proportional to the accelerometer reading. Correct? This means I can have the change in joystick reading set a limit for the gyro reading, and have the motor speeds change to match a desired accelerometer reading, if the gyro reading is approaching the limit, the difference in motor speed should approach zero. Does that make sense?
all sounds very interesting. have you ever flown a quadrotor?
These will work ok and you will get the rotors to react to uninvited cross wind etc but with this said it wont keep the copter at a stabilize altitude. enless you have experience in rc flight (which it sound like you do) you’ll be fighting to keep it stable! ull need the reactions of a nat!
a good thing about this is stunts. it is possible to flip a quadrotor and perform loops. from the ground up i would start by thinking about using brushless motors and speed controllers!
everything you have said makes sence to a degree but i would check out my posts on my Draganflyer V Ti The Thermal Intelligence Ti Gyro and Infrared-Stabilized helicopter!!
stabilizing altitude is handled by the vertical axis accelerometer. I also have an analog barometric sensor that has a range between 0 to 15 PSI but I won’t be using it because I doubt it will be accurate with four propellers spinning near it. A ultrasonic ranger will be on the bottom for automatic landings.
From what I have gathered, thermocouple sensors are not needed but are a nice addition, I believe there’s a site that sells an assembly (4 sensors with amplifier circuit) them for $42, I will definitely think about them but I will definitely not rely on them.
I just realized, with the method I described, any external forces will cause the copter compensate in the wrong direction… I obviously have more work to do.
I have no RC experience at all, just electronics and some small robotics.
Unless you are building from scratch a premade quadrotor helicopter should already be made to be stable. I would think a slightly inward tilt on the rotors should make it self stabilizing.
I’m building this from scratch, the airframe will be laser cut acrylic re-enforced with aluminum bars, the motors will be TowerPro 2410 brushless motors with 10"x4.5 propellers, powered with 3 lithium polymer cells.
Tilting the motors is not a good idea in my opinion, doing so does indeed lower the possible angular acceleration about the two horizontal axis but the loss in vertical thrust (thus lowering efficiency, maximum payload, and battery life) is not worth it if the electronics is capable of stabilizing itself. Too much power would be wasted counter acting the horizontal forces.
Besides, if I tilted the motors, it’ll be impossible to use a laser cut sheet of plastic for the frame.
The frame designed makes pairs of motors 19" apart, I can’t design the frame any wider or else it won’t be laser-cuttable. Hopefully this is wide enough.
using aluminium frames will be fine. yes its been done before.
Quadrotor copters need to have alternating rotors so that they dont spin out. (The coriolis effect i think!) http://i531.photobucket.com/albums/dd355/innerbreed/Capture-3.jpg
quadrotor coaxial designed rotor blades dont spin in the same direction. Two of the motors should spin counterclockwise (A) and the other two should spin clockwise (B). The “Aâ€
Thank you, I was aware of the torque forces involved but have not previously thought about the stresses it causes on the frame. It shouldn’t be a problem with my new design as the center platform will likely be made of sheet aluminum or polycarbonate. The X shaped frame would want to “scissor” and the center platform should be enough to brace that force. I don’t think the propellers are heavy enough to cause too much stress, polycarbonate should be enough.
It’ll be nice to use carbon fiber but it’s expensive.