Hi,
VisualPerception wrote:That sounds exilent. I hav found some motors that have a 298:1 ratio and I have decided to use them insted of the air muscle, for one the air muscle design is to bulcy.
I'd assume you'd need a wide variety of different stepper motors - a motor used for turning the head may be far smaller than the motors in the back used for lifting heavy objects..
VisualPerception wrote:Touch Sensors FSR, This is what we will be using and then I found a controller for it that connects via Perallel port. Knowing the hardware is nice and all but my enitial Idea was. Build and operating system x86 - Intell compadible, and allow it to use Files Like DLL's so that we can upgrade the os. I would like for the os and the operation software to be seperate from one another. I prefer to code in pascal for the software above the os but that is for later in the game. I love the Idea of using the ethernet Mini PC's, and CCD connectors.
So, If we wrote our own os this would make the developement time triple, but the os would be more efficiont. (Sorrory I can't spell for beans.) If we use a linux based OS and modify it then we would have the OS semi out of the way. and totaly scratch the Menuet OS idea I had. I would rather use Linux, for one I am not an OS developer, I write software and I am into a little bit of animation and siloweting object recognition reaserch.
This leaves me with one more thing, How will we connect over 120 motors to a serial port. Oh, the power source, I had a 12 Dry cell Laptop Battery in mind for testing.
Those microcontrollers I mentioned have an ethernet port (to connect to the main CPU), 3 parallel ports and 4 serial ports each. The stepper motor controllers handle a pair of motors for each parallel port, so you could use 20 microcontrollers (with a heap of serial ports left over for interconnecting them and other I/O).
The best way to approach any large project is to split it into manageable chunks:
Hardware design - the mechanical side of things. This can wait until the software works.
Hardware design - the electrical side of things (power supply regulation, recharging, motors & controllers, touch sensors, the micro-controllers, etc). In early stages all of this should be simulated by software running on a PC, so all this can wait.
Hardware simulator - simulating the above. This would be software that simulates the behaviour of micro-controllers and shows what is happening where - a little stick man drawing that shows where joints have moved according to what is happening for example. This can be written in any language on any OS - Pascal on Windows will be fine. It will become a useful tool for perfecting the interface to the main CPU and for designing the software in each micro-controller. Because just about everything is connected via. ethernet, in later stages you'd be able to plug the androids real main CPU into the network (a real brain with a simulated body).
Main Software - the software that would run on the main CPU. This wouldn't include the android's OS, but does include the communication to the micro-controllers and CCD cameras, code to translate the CCD images into usable data. You can use any language on any OS for this, as all OS's generally support TCP/IP the same. Pascal on Windows will be fine - although I'd be tempted to use GNU Pascal as it'll be easier to port the software to the real main CPU later. Again, because ethernet is used you can plug real CCD cameras in and the hardware simulator (from above) and talk to it all using TCP/IP. You could also plug the real android's body into a normal PC later on.
Main CPU hardware - this is the CPU, ethernet card/s, sound card, chipset, memory, circuit board, etc for the main "brain".
The OS for the main CPU. This isn't going to matter (most OS's could do). You can rule out Microsoft (licencing costs). I think (based on my own experiments rather than looking at the code) Menuet uses an old fashioned round robin scheduler that makes it completely in-appropriate. Linux contains a large number of things - removing everything you don't need might take ages, but there's a larger number of people familiar with it's internals than any other OS. I'd probably keep an eye on decent OS projects and start with something that's close to what you need and modify it to suit (paying close attention to licensing details). I'd be looking for something with a prioritized scheduler (not necessarily real time because those micro-controllers remove the need), that already has support for ethernet, TCP/IP, and something that would be easy to port your software to (anything that does or could use the GCC tool chain).
The micro-controller software. Software for each micro-controller is going to depend on what that micro-controller is used for. Micro-controllers are generally easy to program though, and you can use the hardware simulator (from above) as a design model. I wouldn't worry about this until the Hardware simulator and Main Software are working with each other well (e.g. the main software is capable of making the simulated android walk around and avoid crashing into objects or falling over).
Out of this I'd probably do them in the following order:
Hardware simulator
Main software
Hardware design/electrical
Micro-controller software
Hardware design/mechanical
Main CPU hardware
Android OS
The OS is last because it's the least important and you can make sure everything works correctly without it.
Cheers,
Brendan