Check out the Moon!
My goal is to land a robot on the moon's surface. Once their ill take as many measurements as I can. Then instead of just sending back a signal with the data ... I'll return the entire robot. This would farther allow me to research the affects of space on machines.
Sounds like Fun hu?
Math Function Graphing
I've spent some time learning and playing with some mathing stuff. In my never ending quest for knoladge and skill I decided to write my own graphing tool and you can download it mathGraphing.zip. I've used a few advanced fetures of the .Net 2.0 framework. You can use the mGraph.dll to build the exact same interface that comes with this demo. I don't care if you use this ... just give me Jason Wood a little credit. I'm using GDI+ for all the graphics. One odd thing about GDI+ is the Y axis is backwards and I didn't feel like swaping it around. Negitive Y goes up ... not down!
fdlib is a cool and easy to use face detection library. It returns the X,Y cords of each face it find as well as the size. I've taken this library to make a face follower tool to control my robotic missile turret that I built. This tool is written in C# and spits out serial commands to control two servers. Each "command" is 3 bytes long. First byte is either a 10 or a 20 specifying either 10=left/right or 20=up/down movements. You multiply the second two bytes to get a servo position. I'm using a Propeller microprocessor from parallax to get and process the serial commands and control the servos. I know it's a little over kill for such a small task.
Next step for this toy. I want to take fdlib and re-write it in propeller assembly so I can have it embedded in my microprocessor. This would remove the need for a computer and I could package it up into a single unit. All you would need is power. Now that would be kewl and would use the true power of the chip. According to the doc's on FDLIB they increased the speed of detection by a square root of 600 mips or about 24495 instructions per second ... if I'm reading it correct. Parallax's Propeller microprocessor has 8 32bit 20mips processors. If I use 2 proc for Video capture and servo controls that leaves me with 120mips remaining ... more than enough to run real time.
That last step may take some time. I don't know enough about face patch classifiers to even begin writing. I'm going to ask the nice folks that wrote fdlib to maybe shine some light on my problem.
A BALANCING ACT
I've already started working on my 2nd autonomous robot I'm calling "A Balancing Act". I have a Hitachi Tri-Axis Accelerometer and an RC car with HUGE tires that allow it run upside down or right side up. My RC Car has two DC motors on one side so it can spin 360 degree in place. Using the accelerometer I'll be able to stand the car on two wheels and balance it.
01 "autonomous robot"
this robot is my first fully functional robot. I used a chasi from and old RC car. I built two MOSFET H-Bridge circuits to control both forward/reverse and left/right motors. I'm using a TC4424 duel inverting MOSFET driver to run both H-Bridge. If you had a small motor you could run it directly from the TC4424 but only if it's max current draw under load is under 300ish milliamp so I don't suggest it. Here is a link to a DWG schematic of the H-Bridge.
So what does it do? Well it just drives around using Ultra Sonic and infrared to detect object and their distance to ovoid then. I use that info from the IR and ultra sonic to know what plan of action to take. Such as stop and backup while turning left for a period then turn right and forward for a period to make a quick 90 degree turn.
This is a picture of the latest 38.8kHz IR Pulse generator.
Just uses a 555 timer to create and astable multivibrater at 51.5% dutie cycle @ 38.8kHz.
This is a left view of 01 my first robot. This is just a prototype but demonstrated all the needed functionality. Using IR LED's I took 1 of the 8 processors on the Propeller processor and pulsed them at 38.8 kHz. This allowed me to use a 38.8kHz IR receiver to measure the amount of light that bounces back.
This is a left view of 01V2. You can see I put it on a diet. I placed my MOSFET H-Bridges inside the chaise to control the motors. I also replaced the IR LED's transistor board with the one above.
Here is a front view of 01 prototyped. I used Knex to keep all the crap from moving around much and give some cable management. As well as it worked it ... didn't look that good and made it a pain to work on.
Here is a picture of 01V2's front. Much cleaner looking that it's original.