So my current project is to scratch build a small QuadCopter. The physical structure is allready built in a preliminary form, and it will do just fine for preliminary testing. Currently, its made of square wood dowel and Speed 400 size motors with an old NiMH pack. Its too heavy to hover with the battery, but I can still get it all working with low altitude testing. When I've got the software stable, then Ill invest in some proper hardware and do it right.
The software is the real challenge. I'm going with the Propeller chip by Parallax for the core, so I should have more then enough power (the multi-core architecture will be great I think). I'm going to be muxing in software, so that will pretty much eat one of my 8 cores. Then I'm thinking of having two main components of the software architecture. 1 core will act as the master for the stabilization subcompoennt. 1 core will act as the master for the control subcomponent. Each of these will probably manage one or two others to provide enough horsepower to get their various tasks done. I dont know assembly, and while I intend to learn, I'm going to try to write this all in Spin. So as it goes now, here is the distribution of the propeller's 8 cores:
1: Sensor Input and Scaling/Data Manipulation
4 Total so far
The muxing core will simply manage what is providing output to the ESCs. I suppose it will just have a short loop which it will constantly be running. The sensor cog will constantly update the global variables with new values and do all the necessary math and scaling to get the correct values. I may leave a cog open so I can spawn it to run PID loops when necessary (just so I dont need to eat up one of them that is already in use). I think that I will have a cog devoted entirely to keeping the vehicle stable and hovering. Then, to move, I will just add an offset from the control cog to the target angle that the stabilization cog will be working toward. The control cog will do the actual navigation math.
Ill update as it goes along,