Saturday, 26 January 2013

Quadcopter's new brain

A new flight controller for my quadcopter arrived yesterday - a MultiWii 'Standard Edition' board. Now its half the size of the KK Multicopter board that came with my X600 kit, but after a bit of bodging with a carton from Proto-Pic, I came up with an avionics bay...

Unfortunately the FTDI (USB to serial) board didn't arrive with the MultiWii, so out came ol' faithful (without the ATMEGA chip) to let me connect the flight controller to my PC.

MultiWii has a GUI for checking the board is working and setting up the PID and receiver systems. This is incredibly useful as it lets you see what the control inputs are, the sensor values and the motor outputs. I didn't play around with the pre-loaded PID values, but I did set my radio transmitter end-stops so that the flight controller can detect full deflection or min/max throttle. There is a multiwii guide here that covers PIDs. Example guides on Tx/Rx tuning etc are here and here.

First flight with the new board was in a gently gusting south-easterly wind. I'd set an AUX channel on the transmitter to enable ACC/BARO/MAG hold (basically to stabilise pitch, roll, heading and altitude!) and flew with it ON almost exclusively. The quadcopter is much easier to handle and recover when a gust pushes it out of position. I even had a go at a few fast flybys... Not quite up to this standard though:

Monday, 21 January 2013

Quadcopter control system

I had an MPU-6050 6-axis accelerometer/gyro and an Arduino Pro-Mini, so I thought I'd have a go at breadboarding a flight control system based on open-source software/hardware

The open source options I looked at were:

Although FreeIMU isn't technically a flight control system, it provides a sound basis for coding one, as many have done!

After much code gazing, I2C pin swapping and re-flashing of the Arduino mini with known-to-work-code, eventually I gave up trying to get the MPU-6050 to work as it didn't want to talk with the MultiWii code. Instead I bought a multiWii-based board, but its really just an ATMEGA328P (like in the Arduino Uno) with a bunch of sensors on board plus handy pin headers for wiring up the receiver and motors... a snip at under £30 (The MPU-6050 breakout board is £30 on its own...) - I hope it works!

Saturday, 5 January 2013

Quadcopter first flight

With expectations of at least breaking a prop and probably bending an arm, I took to the skies today with my X600 quadcopter...

The first flight was in a steady breeze on a local football pitch (soft muddy grass to cushion landings!) I fitted the props and tightened the bolts on the folding arms, plugged in the battery and took a deep breath as I armed the quadcopter from the transmitter.

From flying IR indoor helicopters I knew that a half-hearted throttle input would tip the machine, so I ran up the motors to idle, checked everything looked OK, then gave it some beans. The quad sprang up and almost hovered. I tried to correct for the wind drift and brought it down again in a controlled flop. Success! Nothing broken!

The next 30 minutes I got to grips with the controls. First impressions are that these machines need you to fly all four axis simultaneously. My experience with fixed wing aircraft wasn't much use as the quad could go in any direction equally fast. The immediate problem I had was I couldn't always tell which way was forward... pulling back on the stick to slow down may result in the quad going faster or sideslipping.

Next step will be to put something (lights? ball-and-string?) to show which way is 'forward' on the quad. Ultimately I'd like to implement and accelerometer based system to stabilise the quad and possibly do some control mixing to make it fly more like an aeroplane.