Thursday, May 16, 2013

Multicopter Design ideas and some electronics

So I've finally finished my tutorial on how to setup Eclipse with all the tools needed to program an ARM chip. It took me ages as I kept having issues with things not working as expected. I guess, the reason for this is that, people use propitiatory software and don't use these alternatives. The reverse can also be said though, people use propitiatory software as there are quirks with the free alternative. Anyway, I'll start some coding tutorials soon, but I have uni exams in 4 weeks so may take some time. I'll try to make them a series so are easy to follow. Talking of which, I haven't found any community websites for ARM chips (like AVR freaks is for AVR) so that's a shame. I think without this community, there is not an easy pathway to learning ARM coding without doing specialised courses at university's or learning on the job.

Anyway multicopers! I think I have worked out how to attach the motors to the arms and the arms to the copter body. Basically, I want to use carbon fibre or fibre glass tube such as this, and then glue ends on that can screw into the motor and body. Sounds simple, but I wasn't sure how to do the mount onto the body. Below is an image I drew during a maths lecture (boring) with the basic concept. The other thing about these mounts is that the cabling needs to go through it for better aerodynamics and aesthetics.
Talking of cabling, I think it would be great if the entire product was water tight so it can be used in damp conditions such as rain and video of water events such as rowing (my favourite water sport). To do this, I'll need to make cases that go round the motors and probably have to use bearings on the drive shafts so I can seal them easier (ex rubber). I also want to put a dome on top that will be great for strength plus I can (in theory) engrave the material and place tracks and place in it for an aerial for the GPS.

Other sensors I would like/need to have are a gyroscope, accelerometer and magnetometer. These would help with tracking, and control of the copter. Another sensor I would love to have but I think is too expensive for the first round is laser scanning or similar. This would be great for trees or other objects that could potentially be on course and not seen by the user or the on board intelligence.

With connectivity, I would love to be able to use mobile broadband or something to transmit data and video. Maybe only turn on broadband when other types of transmission don't work. Having a look at the prices for mobile chips sets though, if I was going to get one, it may be cheaper to pull one out of a cheap router or buy a USB dongle as the modules are incredibly expensive.

For manual control, I think a console style controller would be the best, maybe connected to a computer and then transmitted or incorporated like traditional model planes. I'd do this for the same reason the military is doing this - its a much more familiar control device plus gaming manufacturers have spent plenty of money researching the designs, why not skip the research phase for this.

Also in relation to controls, I'm going to try and have the camera angle and rotation separate to the main control so the secondary camera can view what it needs separate to the direction of the copter. This would be great for doing panning shots etc. Oh and the reason for the secondary camera, is so the copter can be flown with visual aids and not just the camera that could potentially be facing the opposite direction for example.

The motors, I'll use for the propellers, I was looking at through the week. I had previously and a bit this time got confused when they kept giving KV. KV had only the one meaning to me and that was it meant kilovolt. I found out after much frustration that with motors this is actually the motor velocity constant and should actually be shown as Kv. I still which motor manufacturers would give out torque information and datasheets with their motors.

That is it with the copter design ideas for this post. I'll now get on with some electronics talk.

With the STM32F4-Discovery board I've bought, there is one quibble I have with it. This is that, all the pins come out in only two sockets and so its very hard to find 2x25 pin plugs. IMHO, it would have been nice to either not have soldered all the pins in so they could have wires directly or spaced out the pins into slightly more manageable amounts so connectors would fit. I've now bought some jumper wires and found that I can get some wires with individual sockets on the end of them but I'm not sure how well these will work.

I've also thought of one more basic-ish ARM project and that is to log button presses to a file on a SD card. With the SD card, I'm going to have to make a breakout board soon/after exams to get this to work. I would love to make/etch this myself so I might buy a bubble etch tank or use dad's etch bath. The only thing with these is I don't know where to get Ferric Chloride from easily, though I should be able to ask uni where they get it from.

Final electronics related thing, I got my book on ARM Cortex-M3 and its a great book, just I haven't read much of it as we did half of it in one of my units last year. Its so good with this content though, that I might show the lecturer that took that course the book, to use as a course book as at the moment the course it using pretty bad notes.

Very last thing and unrelated to everything else, its a Mozilla Firefox fix. I'm adding this here as I thought could potentially could be useful to someone, plus its a good place for me to find it when I forget. So, my Firefox, frequently (well every few months) starts to get slow and eventually starts being so slow, I have to keep force restarting it. I've found out that its to do with firefox keeping records of browsing history too far back and so searching for what your going to with where you've been. To fix this, download the addon SQLite Manager, then open the places.sql file in your mozilla profile directory. Expand tables and select moz_historyvisits. Here you can browse and search much faster than the history window. You can also see how much history there actually is. When I checked during the week before deleting most of them, there were about 200 000 lines of history in this table. So to remove them go to the Execute SQL tab and type "delete from moz_historyvisits where id between 0 and upperbound", where upperbound is an id number that is high enough to delete unwanted lines but lower enough to keep recent information. There is a visit_date column but I don't understand the numbering scheme so I just used ID.

That's all for this post so thanks for reading!