Thursday, April 25, 2013

Design Stages for Octocopter

In this post, I'll talk about some design stages for the Octocopter I'll build. Its a fairly small post as I'm researching how to develop with Eclipse and ARM chips.


I'll be writing this up and I'll aim it towards beginners to intermediate, meaning, I'll do basics but also explain why I'm doing bits and pieces which hasn't been done in the tutorials I've seen. Software seems to always be the hardest to setup and understand as there are always so many different methods but you have the expensive method that only works on Windows or the cheap method that is never documented as well but works on just about everything. This includes Mac which is what I use and if I ever stopped using that I'd more likely switch to Linux than Windows. Unfortunately all the industrial standard software currently only runs on Windows and are rather expensive (examples Altium Designer, IAR Workbench and Atmel Studio).

Anyway so my stages of the Octocopter design are to:
• Firstly design the frame
• Secondly design the centre 'console'. ie the bit where all the electronics is stored and holds the frame together.
• Thirdly design the legs. I put this on as I would prefer damped landing plus, the legs need to incorporate the ability to held a camera that can rotate etc.
• Forth work out the propeller specifications such as pitch.
• Fifth, work out motor sizes taking factors in such as torque and current needed
• Sixth, Electronics.
• Seventh, refine and optimise the above.

The electronics can be designed and looked at while the physical designs are being done at the same time. With the electronics, I have some basic projects to help me get used to ARM programming. I think I've said this before but I want to use ARM as if I'm going have artificial intelligence I'm going to need more grunt than the AVR chips I used previously used. So the stages of projects are:
1) Actually manage to wire it up!
2) Flash LED
3) PWM LED
4) Button controlled LED
5) i2C LCD
6) Button Sends info over serial
7) Camera sends data over serial
8) Button writes to SD Card
9) Camera writes to SD Card

 The first couple are quite basic but allows me to understand the basics of programming of ARM chips. The last few are ramped up a bit in complexity but after I finish I'll be well on my way to getting video streaming which will be great for the Octocopter.

Other things I've found out are that header files or peripherals libraries are quite hard to find. I found that for cortex-m ARM chips there is a standard interface between vendors called CMSIS. You can download SVD files from the ARM website which specify all the registers and addresses for peripherals in a standard format but there aren't the standard interfaces for headers given. I eventually found that for some STM32 chips which is the type I'm going to look into, there are some standard peripherals libraries hidden on the website. STM32 and NXP LPC seem to be the most popular types of chips or at least the best documented.

I've ordered a book about cortex-m3 and that should turn up need week. I'm also going to order the adapter and development board that I'm going to use for testing. After I've received these and had a play round with them, I'll post my tutorial on how to get it all up and running. As I'm buying a board, I'm not going to need stencils and breakout boards for soldering chips yet but I did find some places to buy them. AIS Cube sell breakout boards and Proto Advantage sell stencils of all different types.

To end, I've just started getting youth allowance so I now have some money to spend. My first purchases will likely be the dev board, JTAG adaptor and a raspberry pie. After those, I might buy the 3D printer. In the second half of the year, I might buy a tank etching system so I can make my own custom boards.