Quadrocopter
Quadrocopter | |
---|---|
Created | 10/08/2011 |
Members | 'RepRap' Matt |
Status | Research |
"A quadrotor, also called a quadrotor helicopter or quadrocopter, is an aircraft that is lifted and propelled by four rotors."
I've been flying model helicopter on/off for a few years and have now started to build a Quadcopter. As this is my first quadcopter I'm going to try and detail as much as I can here, some of this is likely just to be a bunch of random notes and not make a lot of sense to any one else, but as always I'm happy to explain if you can catch me at hackspace. --'RepRap' Matt 15:33, 15 August 2011 (BST)
Parts List
Quick breakdown of the parts i intend to use in my build
- mbed 32bit ARM Cortex-M3 96Mhz MCU 512KB FLASH, 64KB RAM
- ALLINONE IMU
- HMC5883L Triple Axis Magnetometer
- BMA180 Triple Axis Accelerometer
- BMP085 Barometric Pressure Sensor
- ITG3200 Triple-Axis Digital-Output Gyro
- OrangeRx R100 Satellite Receiver
- nRF24L01+ Transceiver Module with Chip Antenna
- hexTronik 24gram Brushless Outrunner 1300kv
- TURNIGY Plush 10amp 9gram Speed Controller
- APC 8x3.8 Slowfly "Pusher" (CCW) electric propeller
- APC 8x3.8 Slowfly electric propeller
- 3S1P 11.1V 2150mAh 25C LiPo
- MB1200 XL-MaxSonar-EZ0 High Performance Ultrasonic Range Finder
- Sharp GP2D12 IR Range Sensor Manual
- MediaTek MT3329 GPS 10Hz (much later)
Electronic system components
Break down of part that need connecting to the mbed
Important bits
- IMU (2pins) I2C
- both wii IMU (WMP&NC) and ALLINONE IMU are I2C based
- Spektrum satellite (1 pin) USART
- Saves so many pins :) can also use same pin to bind
- ESC outputs (4 pins) PWM
- standard servo outputs
- nRF24L01+ (6 pins) SPI
- using for telemetry and possible command link
- could replace with "XRF wireless module" which is USART and needs just 2 pins and a lot less code £11.88 each
Later options
- Ultrasonic Rangefinder (1 pin) ADC
- pointing down for altitude hold
- IR rangefinders (4pin) ADC
- pointing out for obstacle avoidance
- GPS (1 pin) USART
- UAV, nuff said
- Pan tilt camera mount (2 pins) PWM
- FPV, have small 1.2ghz spy camera, might not be up to much quality but way cool!
- Battery voltage sens (1 pin) ADC
- must protect LiPo's!!!
- Curent sens (1 Pin ADC
- Only have 6 ADC pins so this might not happen
- MAX7456 OSD (6 pins) SPI
- could share 3 SPI with nRF24 if can switch between both fast enough, both are used for telemetry mind but nRF24 might also be flight commands, OSD could be done on ground station.
- MiniM RGB LED's (2 pins) I2C
- these can share the I2C bus with the IMU but they are 5v devices so may need LLC
- Data logger, SD or USB
- SD needs SPI (3 pins & CS) could also share with nRF24 & OSD, USB needs 2 pins but they are dedicated so no cost
mbed pin assignment
Possible mbed pin layout and connection
Spektrum Satellite protocol
Breakdown of the serial protocol use by the Spektrum Satellite receivers.
I have a Spekturm DX7 transmitter which i use to fly my trex450 and my blade mSR. the Spektrum uses a 2.4ghz signal rather than the older 35mhz or 75mhz FM signals. On the tre450 i have an AR7000 receiver, one of features of this and other Spektrum receivers is the use of satellite receivers as seen in the picture to the left, theres satellite receivers are use to help maintain a solid signal between the TX/RX, usual located in a different location on the air frame in case the signal to the main antenna is disrupted. Now interestingly the data is sent between the two using a 3 wire cable using basic serial! For my quadrocopter this is great news as it means i can just plug the satellite straight into the MCU and read the serial data to get the TX data.
I found hobbyking do a range of Spektrum compatible receivers under the name OrangeRX, i have order a 6ch receiver and a satellite receiver for use in the quadcopter.
The satellite receivers run at 3.3v so if used with and arduino would requirer some protect against the normal 5v logic.
The serial link is standard 8n1 @ 115200baud (but i have seen mention of 125000 baud on some forums, need to investigate) it sends 16 bytes of data at 22ms intervals. The first 2 bytes are frame data, the following pairs of bytes contain the channel data.
It is also possible to bind the RX by pulsing the data line just after the RX powers up, need to send between 3 and 6 pulses each between 116us & 120us in length.
- Rcgroups threads [1] [2]
- posible first two byte break down [3]
- Some useful arduino code [4]
- bind example sketch [5]
- ardupilot, spektrum to ppm [6]
Wii IMU
First IMU will be using sensors from the motion plus and the nunchuk.
The motion plus incorporates a dual-axis tuning fork gyroscope and a single-axis gyroscope, while the Nunchuk has a three-axis accelerometer, data from all of these can be accessed via 400kHz I2C bus which the Wii remote usually use to talk to them. These can be put together to form a basic IMU for the quadrocopter.The reading from the gyro and accelerometer have to be read one after the other rather than at the same time. This slows down the sample rate as can only retrieve one set of data every 3ms (one wm+, one nunchuck, one wm+ and so on).
I already have a nunchuk which i have used to control my Arduino tank and have picked up a motion plus from ebay to try out.
- http://snzgoo.blogspot.com/ usefull stuff in WM+ calibration
ALLINONE IMU
Second generation IMU using all I2C sensor board for eBay
This boras has the following:-
- HMC5883L Triple Axis Magnetometer
- BMA180 Triple Axis Accelerometer
- BMP085 Barometric Pressure Sensor
- ITG3200 Triple-Axis Digital-Output Gyro
- Build in ultra low noise linear LDO voltage regulator.
- Dimensions 30x16mm
- I2C all sensors connected to I2C bus.
- Designed for 3.3V logic level
There is also a version with a UBLOX Neo-6Q/M GPS receiver already attached
eBay store [7] RCgroups thread [8]
Links
Huge unsorted list of links to random bits of useful information