Thursday, June 9, 2011

Walter Update 6.9.11

Well, it's about time for another Walter Update. Busy Busy. I won't (and can't) describe the many, many hardware changes --or to the point, the transition from the old parts to the new. Instead, lets just show you Walter as he sits now and pretend he has always been this way.

I think I will let the videos and photos speak for themselves, but to give an overview...

Walter is fully custom built, I made every part including many of the PCBs. He weights about 30kg and is powered by (2) DeWalt drill motors though chain drive. I recently milled some new sprockets and added another set of gearing dropping the overall ratio by another 3:1. I am not sure of the total gear ratio, but at one time you could ride on top and he is 3 times stronger (and slower) than that now. The sprockets were made by tracing another sprocket (with a Sharpie) and simply grinding them out by hand. A 12v 12Ah SLA battery takes care of the drive power via a Dagu Wild Thumper motor controller. This same unit charges the battery as well. 2 custom made (around the MAX713 chip) onboard charges take care of the 7.2v racing packs --one supplies data power, the other does the servos.

Brains consist of 2 Gadget Gangster Propeller boards, one being a slave to the other. The "main" chip takes care of the "personality", navigation, video for the monitor and keeps an eye on the wheel encoders. The second "slave" chip runs all the servos, runs predetermined "head routines", fires and sweeps the sonar, tracks the IR homing beacon with the WiiCamera and also runs the WiiCamera/Laser Lidar system. The multi-cog prop system makes chip to chip communication a breeze. Each chip has a dedicated cog that does nothing but serial watching and updates variables as new data comes in. All the other cogs have access to these variables so for example, the main navigation loop never stops to go and fire off the sonar, instead the sonar is constantly being fired in the background and variables are constantly being updated. When the navigation loop needs sonar data, it already has it. It always has it. And it always has the most recent numbers. Everything is super-duper global and with the chips talking at 115,200, it is like they are one single chip. Everything is in the background, set it and forget it.

BlinkM's take care of the eyes, and a MP3 player takes care of the voice. Walter uses many different voices and sound effects, the main 2 voices being A) text to speech I dub from online and B) a good buddy of my in London who records lines for me and emails them. So far, he has recorded over 200 words and phrases for Walter. I try to send him "batches" of lines to do so until I have a "batch" big enough to send, the text-to-speech voice is used. There is also a speech recognition system onboard as well but I just can't seem to find the time to do anything with it. Soon.

Overall, Walter is the sum of about 2 1/2 years work, a couple/few thousand dollars (all spent in nickles and dimes) and a lot of lost hair. I would say he is about 1/2 way to where I would like him to be.

**NOTE** I have also finished Walter's new transmitter and it can be found at


    Walter's Hardware



Just a Stroll Outside

Photos: (All photos are clicky-make-them-bigger)

Transmitter of Death!!

It all started here...

Once again, I set out on a quest to build yet another controller. I don't know what to call it really, transmitter, communications hub, input device, PDA? Oh, it does so much...
The concept is simple, pick out a nice plastic case and back up two trucks --one from Gadget Gangster and one from SparkFun. Dump a metric ton of breakout boards into the box and close the lid. Oh, and make a PCB to connect it all together.
On Board:
  • Propeller Board USB (Gadget Gangster)
  • Net Server (Gadget Gangster)
  • BlueSmirf Bluetooth
  • X-bee
  • DeadOn RTC
  • Lipo and onboard charger
  • On board USB-FTDI-Serial for both Prop and LCD
  • 4 gigs of SD card space (2 cards)
  • IR in and out (for data and "TV remote" --also a TV be gone)
  • 2 PS/2's for Keyboard and Mouse
  • NES joystick connection
  • Video out
  • Dual-boot eeproms 
  • Joystick
  • One bad-ass LCD (Touch, SD card, vid and pic ready, WAV player)

So here lies the beauty of a Propeller... As you may know, props are 8-core chips and allow for true parallel processing. Each of these "brains" within the chip can do whatever you tell it to, independant of all the rest. In this case, I have a dedicated cog that does nothing but serial coms. It sits there, looping away, receiving data as quicly as it comes in and sending data off just as fast. The serial object I use allows for up to 4 UART serials coming off the prop. Because of this feature, the transmitter can not only operate as a "Remote Control" but also as a "hub" --echoing data from one source to another.

Say you have a little bot that used IR to talk to stuff. One could rig-up a FTDI, breadboard and IR led --or-- one could simple hit a button on my transmitter and say, "whatever you get in via BT --send it back out via IR". Same goes for IR to BT or BT to XBee or IR to Xbee. How 'bout netserver to IR or netserver to Xbee. To anything, from anything. Hell yeah.
The highlight of this new TX is obviously the LCD. I have bragged about these screens for a while now and I will keep talking them up... You are getting a 3.2" touch-screen, a full-on microcontroller (I/o, serial, i2c, SD card --a real microcontroller), WAV player, with the ability to display panels, buttons, sliders, text, full graphics, pictures and video. These screens are amazing and even more so at way less than 100 bucks. 

This is the LCD I used.

Of course, I can't forget to mention the other reason I like the prop...
Old school video games! I mentioned in the video that I am running 2 eeproms. One contains the "main program" including the code that works with Walter. Flip one switch and restart and you are now running from the other eeprom and it contains code for the Gadget Gangster El Jugador NES Launcher. Games are stored on the SD card and can be pulled up and played directly from the transmitter. A jack for an old-school NES controller exists on one end while a single video-out RCA pokes out of the top. Plug one RCA cable into your tv and you are ready to play:
  • Almost PacMan
  • Almost Tetris
  • Almost Pole Position
  • Almost Dr. Mario
  • and there are many more

This video shows the video games being played (about 1/2 way through)...

And how 'bout the insides...

Yup, this one's a keeper --Wicked happy with this remote...


Thursday, June 2, 2011

The Wee Little Steampunk Bot

Yup, this little guy happened by accident. I found myself with a Sharpie and some thick copper sheet from a jobsite. A late night and some pneumatic shears and I was holding the pieces that would later form the head. Once soldered together, it sat on the top of my monitor for days, just staring at me asking for a face. I really don't know what happened from there --All the pieces seemed to "just make sense" when they were being made, and went together just as easy. I guess it was just meant to be...

In terms of function, it is simply an Arduino-based Start Here Robot --with a fancy body and nifty screen. (The "Start Here" robot is a beginner's project that can be found at Let's Make Robots) It can drive around and avoid stuff, and not much more than that. This is just a simple one. The LCD is a 1.44" LCD from 4D Systems and would be worth every penny at twice the price. I have not only this 1.44" screen but also the 3.2" touch-screen version. Both have SD cards onboard, a full-on microcontroller with it's own language, I/O pins and all the bells and whistles any other robot brain would have. Each can display photos and graphics as well as video --The bigger version even has WAV player built in. --I can't say enough about these screens, again, worth every penny.

After I had completed the construction and code, I stared at this little one wondering what would be on his little screen face. I tried to commission some art friends to draw different faces to display (each with a different expression) and I gotta be honest --it looked terrible. (Not the work, mind you, but the idea of an actual "face" on this guy) Instead, I decided to think of where this robot might live or have lived. If you look at him, he might be the one that had survived The Nuke or survived the Great War. Staying with that mode of thought, I suppose he might display images of all the things he saw as the world was destroyed. Yup, this might just be the "Apocalypse Bot"...

Video to come soon --for some reason, my sonar decided today to not play nice when the motors start running. I know, know, gotta get in there with some caps... I will, and well, video to come soon. For now, nice pictures.

And a few of his "images"...

***Little tiny update***
For some reason, my sonar and my motors still just won't play nice together. For now, I wrote a quick, silly program to simply go forward for a random amount of time and then turn (in a random direction) for a random amount of time. Yeah, its not driving around, avoiding walls and the like, but it is sorta funny...


My Coal Stove Twitters

Yup, it's the Glen the Stove Project...

Alright, stay with me on this one... (and the video explains a lot)

Our house is heated via coal all winter. It gets delivered by a truck into our sad, sad, little "coal shed" and is picked at, bucket by bucket, all winter. The Glen the Stove Project, at its core, is simple data-logging. It just happens to do it in a fancy-schmancy way.

The Plumbing:
Our little house is divided in two making a studio apartment in the back. Our flatmates live there and of which, one is a plumber. The coal stove is in our part of the house and thus, we needed a way to get heat back to our roomies. Eoin the plumber took care of most of the running of pipes and between the two of us, we put together a fairly nice "coil" of tubing that lays directly on top of the "burn box". The pipes run to a cast iron old-school radiator, the whole system is filled with water and a small pump under the floorboards circulates the water. The cold return water gets pumped back to the stove where it flows through the copper coils on top. There it picks up heat and travels back to the radiator. The system is simple and solid and works well.

The Brains:
The electronics start with a PicAxe microcontroller and some simple code, placed in a simple wooden box. There are 4 input buttons that correspond to tasks one must perform on the stove and a knob used to scroll through "menus" shown on a LCD screen. A total of (5) temperature sensors are connected to ADC inputs on the microcontroller. These little thermsistors each get a little thermal-goop applied and are then simply taped to the particular pipe or radiator they are sensing.

A small geared motor and bracket assembly is attached to a window that separates our living room from a small glassed-in sunroom. As Kari's plants are stored here, regulating the temperature is quite important. The "control box" is able to be set to a given temperature, and by opening and closing this window (via the motor) the microcontroller is able to maintain a constant temp.

More Brains:
An application runs on the host computer that I wrote in Processing. It talks to the control box and the Picaxe, and on a predetermined basis, it asks for the data from the 5 sensors. This, in turn, gets built into a string and sent off to Twitter as an status update. In addition, if any of the input buttons are pressed or a menu option is changed, this information is also turned into a Tweet and sent off.

The system is also capable of "catching" a tweet directed to it, I.e. to send it a "command" but as of now, I have not found a use for this.

I added a voice that obnoxiously announces all the tweets as they go.

And that is the basic system....

I would like to thank again, RobotGrrl for much help on the stupid Twitter API.
Check her out, her stuff is awesome.

Camelback for the Outback

My wife came into possession of a large, stainless steel tank on fine day it seems. 50 gallons and well made. Later, she found herself tending a small garden at a location without power, water and no way to collect rain from the roof. That tank reared it's ugly head...

I had actually started with an electric system. It had a small, drill-powered pump and plugged  into her cigarette lighter plug. It was even remote control, I kid you not, and could be switched on and off via a small, hand-held transmitter. Alas, with all of its coolness (and the fact that I spent all morning soldering together the transmitter and receiver circuits) it didn't have a shred of power in the water pressure category. On to air power...

The idea here is quite simple, pressurize the tank and water will spit out. And that is just what it does --perfectly. Kari can carry 25 gallons (1/2 tank) of water and it can be dispensed as fast as 3 gal/min. After much trial and error, I have found the minimum pressure (and correct ratio of water and airspace in the tank) to be as safe as possible but still be able to dispense all 25 gals at good pressure.

Now, when getting pulled over, this might be a bit hard to explain...

Flatbeds, Fiberglass and Hi-Fidelity

Delilah the Toyota...

This was my work truck for a few years. I got sick of climbing through a cap (topper, canopy or shell) to get to tools and decided to build this work bed. It is a simple flatbed out of 2x3 and 2x2 square tube steel. The area of the rack above the cab had an expanded-metal floor allowing tools and supplies to be strapped down. The big tube was great for carrying corner-bead and small trim as well as all my broom handles.

The bed itself was oak with a Spar-Urethane finish. The truck boxes were big and expensive. I even welded a huge truck box that could attach to, and be supported by, my trailer hitch receiver. This box was so big, I could carry a chop-saw and portable table saw inside and had it's own brake lights. Man, I was so organized back then!

I repainted the whole truck (man, it was nice to have a paint booth) and started on the stereo....

The stereo in this truck was not the best I have ever done, but it could hold it's own. The subwoofer box is obviously the highlight here and shows, if I do say so myself, my fabulous fiberglass work. The box is MDF, hand-layed fiberglass, Bondo and a whole lot of sanding. The finish is not buffed out, I want to add. The paint you see is single-stage with no clear coat. Not a single drop of buffing compound has ever touched it. What you see is what came outta the gun --and the gun was a $75 Sata rip-off. Can I shoot paint or what?

The Big Oak Desk

One curse of building stuff is that you usually do more building then documenting. This built-in is one such example. The pictures below just don't do this one justice....

This is a full-wall built-in out of 1/4-Sawn White Oak. Everything is super-think too, 5/4, 6/4 and 2x stock was used throughout. All of the doors and panels are not only inset, but recessed about 1/4" from the front edge of their openings. The lower right cabinet is made to look as if it has standard doors but is actually designed to bi-fold and allow a printer to slide out. I also (not shown in the pictures) made a nifty coffered  ceiling with beams and crown molding hand-milled from the same oak stock. As always, everything is hand made, milled and finished, including hand-chiseling all of the square-pegged holes along the edges.

The finish is one light coat lacquer-based sanding sealer --a quick sand with steel wool-- and a light coat of hand-rubbed oil.