This is the short version of a very long story about how to create a Tricopter from almost nothing. A story of trial and error, frustration and hard time. Maybe this story will allow future people to make less mistake than I have done myself (with some help by a friend).
Before the Tricopter Project
Before the tricopter project, I have tried to create an RC Airplane from scratch by using Pine Wood and plywood. All my « flight hours» were made by using an RC flight simulator, it's difficult to find other RC pilot where you live far away from civilisation, so it make that easy to find desert place to do RC safely. Sometime we need to learn how to run before knowing how to walk.
This Twin Motor was an epic fail, it flew almost 10 seconds so that was funny the time it flew. Also I cut myself seriously with the propeller (meaning 1:30h of road + wait 4h at the hospital at 10 P.M (tip : ensure the motor is correctly fixed before playing with throttle ;) ))
Tricopter, the genesis
After this fail, it remain all material from the first project so because of my extraordinary manual handcrafting skill I decided to make something that need almost no skill.
¾ inch square wood bar
A strange plastic (from a friend)
Arduino Mega (not bought for this project)
A 6DOF IMU3000+AD345 IMU Fusion I2C
- 15 kg/cm Servo Motor (a little bit overkill I agree)
- 3S 5A LiPo
- 3x Tower Pro 180 Watt Motor
- 3 x Tower Pro 25A (no I2C modification)
LED strip (yes, I love that)
Tricopter, the frame Mark 1
Second ugliest thing you have ever seen in your life
Third type encounter (this photo is also a strange piece of luck)
Tricopter, the onboard electronic
That's the first time I'm using an I2C board, I hope it will work the first time ..... I was fool, after an impossible quantity of trial and connection test it worked but I don't know why so it work since this time. I also lose hour trying to get data before I have realized the sample code was buggy (char instead of byte, I feel so stupid).
The hard part is done, the easiest part begin, write a stabilization software (evil laugh from the hell .... ;) ).
Okay, the only way to get PPM from receiver is by using interrupt, according to the Arduino Mega documentation there are only 6 interrupt pin on almost 54 pins (yes that's before discovering ISM work on every pin, arduino documentation was written by evil people :) unfortunately, I'm not an electrical engineer (far far farrrr)).
Generate PPM pulse, I'm using Servo.h modified for 100 HZ update rate. I have discovered we can use Timer to generate PPM so what I have tried didn't work so I have another idea to make it work better. I still use servo.h for Mark 1.
After reading many thread on the Internet, I have discoved PID controller, easy to code but less to tune. According to the IMU documentation, it is 65 RAW/deg/s so .... that's not true. I have tried hour and hour to find why my code do not work before discovering a lost text somewhere that explain MEMS documentation represent perfect value that may change between two identical IMU chip because of manufacturing process. Okay .... a good thing to know.
I'm using an homemade filter (variable trust complementary filter) for IMU values. I tested it by using a C# program that simulate data with noise, at high noise value stay acceptable so I conclude the algorithm is probably good.
Test phase :
We have a little problem, no one of me or my friend has ever pilot an RC helicopter or see someone in real so like I have already said, sometime we need to learn how to run before learning how to walk ;) (Tony Stark told something like that too about Mark 2). So we need to find a way to test PID without killing ourself (IMAO it's better to keep our structural integrity, but it's just my opinion ;) ).
Those test happened before I have discover problem with gyroscope
First test :
The power is supplied by 12 volt battery for motors and USB for arduino (still not plugged directly to the battery) It is also attached to avoid killing someone by mistake. (video is down here)
Another test :
Having no experience with PID, we have decided to test it by holding the Y using 2 hands and one who control the throttle, we expect to get the tricopter auto sustaining itself in air. Only one motor is running during the test (others are simply not powered)
Another test :
Roll over, arduino connection were smashed but still functional. We discovers that vibration were too high (very high) motor even with no propeller create hard vibration. Motor do not become hot while running so the motor base become very hot, also one motor suddently stop (no matter the ESC) when it is stressed (fast high/low throttle). I suppose that those motors are not good quality and maybe bearing are bad ?
- Frame is fat (1.45 kg including 3S 5A battery)
- Motor are bad (very bad quality, just check how they were build)
- IMU vibration isolation is ........ not good
- As beginner, we need more protection for propeller
How to fix those problems ?
We have destroyed this frame and we have made a new frame :
- Using 1cm pine wood 60 cm long arm (9 inch remain to protect propeller in case there is too much tilt)
- 3 new motors (http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18229)
- Improved IMU filter
- IMU is isolated by using a sponge
- A real tilt mecanism (inspired from RC Explorer), I was previouly glued directly on the servo motor.
To be continued .... same bat-time, same bat-channel
We can rebuild him...we have the technology
It will be better, faster, stronger
This is what happen if you crash tricopter very hard on a tree
PS : Thanks to Robert Sinclair for his support ;)