I managed to build a quadcopter with the parts described in the post, with this 10DOF sensor instead and without a logic level converter. It works fine and now has an ultrasonic sensor and Bluetooth communication with my android as well.
If you consider using a Bluetooth module running on 3.3V logic, remember to lower the voltage from 5V to 3.3V with some resistors.
I'm totally new to RC and Quadcopter stuff but i would like to try and build my own Quadcopter. I know some basic electronics but I'm not familiar with all the RC and electronic terms.
Now i would like to ask you pros if my setup would work and if the wiring is good. This is the components:
1 Arduino Uno Rev 3. $30
1 Nine axis degree of freedom IMU sensor ITG3200/ITG3205 ADXL345 HMC5883L Module. $35
1 Logic Level Converter. $2 Do i need this?
4 AX 1806N 2100kv Brushless Micro Motor (19g) $37
4 Hobbyking SS Series 8-10A ESC $26
1 ZIPPY Flightmax 2200mAh 3S1P 25C $9
+ Props, what size would be good, I would like something small like 5x3 or maybe even smaller, is this possible?
Would these components work well together and is the following wiring correct/optimal?
I'm specially interested if the Logic Level converter is nessesary. The description of the IMU says "fully compatible with 3v-5V systems".
The IMU can be found here:
And the Level Conveter here:
And lastly what should i do with the red/black small cables from the ESC, is this correct?
And I'm sorry for my bad painting and/or spelling.
Thanks for helping out a noob!
Wow. You're really biting off a lot there for someone who isn't very experienced in this area. The hardware is the easy part, but the software is non-trivial. For instance, where's your RC interface? Are you planning to modify some multicopter software already out there already? Otherwise you're looking at many months of development.
I know it's non-trivial. I've been studying some Automatic control/Control theory at my University and I thought this could be a good challenge to test my skills in practice. I think that I know enough of the Math and Programming part but maybe not enough Non linear/Multivariable Control and Electronics (though I think that I can learn most of it when i need to).
I'm not planning to remote control the quadcopter at the moment, but that should be quite easy to add at a later point? I would like to try write most of the code from scratch, but i know it could be hard to calculate the attitude and heading from scratch, so i may start out with some code already out there. The first goal is to create something with stable hover, then I will see where i go from there.
The long-term goal would be coding for following a preset route and adding some distance measurement (sonar,GPS or barrometer) and maybe some day in the future apply some computer-vision once I've studied those courses. (Yes I know that this is some really advanced stuff.)
Thanks for the reply
You can't make it autonomous before you make it remote control. You'll just destroy countless frames trying to get your software right. Why not start with one of the countless Arduino-based copter controllers that are already out there and then modify them for what you want?
Why not? I may try to RC it with my android using a bluetooth and Amarino but the point with the project is learn and practice my knowledge in Automatic Control and programming, therefore i would like to do most of if from scratch. I'm not afraid of the possibility of failing, i know i could but at least i would learn something from it.
Btw, i was considering using the Raspberry Pi instead of the Arduino, what do you think of that? (I just got a mail saying that i could order it now)
I would really appreciate if someone could at least tell me if these components would work together and wheter or not i need the Logic level converter. I'm just waiting for conformation so i can order the stuff.
Sorry for bumping this, and thanks for helping me out!
How much coding experience do you have?
Also the main point of making something RC before autonomous is control. Imagine one wrong if statement causing the robot to go flying one direction until the battery dies. Unless you have communication, you are out of luck trying to stop it. That's what the the transmitter is for.
Look into a telemetry module. It gives you direct access to the quad-copter wirelessly. That should be enough though I would recommend a cheap transmitter just to test the flyability of the multicopter.
If you believe you could code very well on the raspberry pi, I personally would use that if your planning on doing all this coding from scratch. The Raspberry pi has a lot of horse power but I haven't the slightest idea and how I would approach it.
overall it seems good- though I am not sure what the last three pins on that IMU board does, it seems odd if they are not used.
I have a bit of coding experience, I have completed a few programming courses at my University and two in Automatic Control. I'm also running a firm as a web programmer. I'm sure that I could learn the things that are necessary and that I don't already know, or at least find some code that solves it for me.
I see your point in being able to control the quadcopter remotely and i think that i will do so with my android using Amarino "Android meets Arduino".
I too believe that the Raspberry Pi is the hardware that could do the best job, but after a bit of thinking I believe that using the Arduino instead would be wise since it seems that there are a lot of people with experience of the Quadcopter-Arduino combo who could help me. I still haven't seen anyone build a quadcopter with a Raspberry Pi, but when someone has, or maybe when I'm more experienced, I will give it a try.
From what I've read the IMU uses the I2C interface which only requires two lines to read and write data, the SCL and SDA. But if anyone knows what the other lines could be used to I would appreciate the help. And if anyone could answer if the Logic Level Converter is needed I would be very glad.
Once again, I have to thank this community for helping me. I hope and believe that I will be a part of it for a long time.
Yes, a good comparison would be putting together a truck, and without ever driving it, start programming it to drive. You wouldn't know if the system is stable before your code ever reached it. You realize this though. I'll just throw out there that you can get a really good 9 channel transmitter that has a good resale value for 50 dollars- the Turnigy 9x- most comparable models cost 350 or more. It is cheap but it will get the job done.
I checked into Amarino, seems like its still in its infancy but it would give you a lot of experience if you could figure it out. I am doing an embedded systems design internship this summer with ARM processors, and hopefully I get the experience from that to work with Raspberry Pi or develop an ARM based solution (I believe diydrones has a small team already working on this). Though it seems that you do not need the logic level converter, for a 2 dollar part, if you could include it with the shipping of a different part especially, I would just purchase it to be safe, its always sad having all your parts and missing one, and its always nice to have spare parts- whenever I purchase multiple parts I usually purchase at least one extra.
That being said this hardware wiki with all the pins labeled may be of some help.
So I believe you have everything correct- though you may also need some pull up resistors. For guidance using I2C on arduino, I've found this bright kids tutorial rather helpful. It may help for setting up additional sensors as well. His tutorials are helpful for interfacing hardware and arduino. I can't find anything about that board or those pins online though.
Last- I looked into the connectivity of Amarino, and it essentially tunnels a serial port using bluetooth if I read correctly. This is the same as the telemetry function essentially as well. Just to give you a heads up on what I plan on doing with some of the software within Mission Planner(the software side of all the arduino hardware on this site), it includes running python scripts and remote fly by wire(think xbox 360 controller). Both the bluetooth and 3dr 900 MHz system could do the same- its all over a serial port basically. The 3dr would just have better range( and several other features), while the bluetooth would be great for... well they mentioned 300 feet on the Bluetooth Mate Gold, so that should be enough for you, and direct connection for the android. You could use a computer and android combined for the 900 MHz system(android->comp->usb adapter), but obviously that loses portability if you have only android in mind. There may be a way to get around this but I can't think of anything right now.
Hopes this helps-
Oh and something that may extremely interest you ->
Don't rush and buy. You're only going to end up with badly spent money : ]
First, a word of warning, since you're new to the topic: before plugging any motors to escs make sure the motors won't spin. If they have propellers on, they could badly injure you (i mean, BADLY. Lots of blood and torn flesh, no kidding). Those propellers are REALLY SHARP and those motors are REALLY powerful. IF you have to connect the motors to the ESCs but are not 100% sure they wont spin, take the propellers off first.
Back to the topic: I'm kinda a noob myself, but an educated noob. Or so I would like to think : ) ATM i'm calibrating a hk450gt heli and building a hexacopter. Otherwise than that, I'm a noob : )
As far as I can tell, a better solution would be going with a board made specifically for multicopters (or really well supported, like arduino mini pro or arduino 2560 (r1 or r2)). Check aeroquad, multiwii and others for that. Then, if you don't want to spend too much money and can do your own boards, build a shield based on schematics for aeroquad (for example, many others are freely available).
If you want do build a heli, you also need a frame... build one yourself if you think you can pull it off. A popular solution would be rectangular aluminium tubes and g10 sheets. If not, just buy one.
Otherwise than that, research the topic more. I can give you my setup, it might be insightful:
turnigy 25A plush x 6
NTM3536A-910 + sets of parts for mounting the motors and propellers to them x 6
APC 12x3,8 SFP x 3
APC 12x3,8 SF x 3
turnigy 2200 3s 11.1V 25C x3
turnigy 8 ch Rx
DIY power distribution loops
arduino mega 2560 r3 + DIY shield based on aeroquad
WM+, nunchuck, BMP085, hmc5883l
XT60 connectors, banana plugs for motors, 3 pin goldpin connectors (or however its called in english).
What is the level converter for? The IMU board has 5v input, so use it, no need for a level converter. SDA and SCL need to be connected to A4 and A5 (have a look at http://arduino.cc/en/Main/ArduinoBoardUno). Rest looks ok so far.
I would power the board from the 5v of the ESC and not via Vin and Lipo.
You would really need sonar to achieve an computer controlled hover at low altitude and GPS to make it hold position or it will just float off.
I guess you could use multiple sonar if u can wight the code to make in negotiate its way like down halls ect. without hitting anything.