Intro to Physical Computing
Fall, 2003
Jeff Feddersen

Week 8

Essay: For Good or for Awesome

I worked with Kat on this. She did all of her stuff with the head pretty much on her own, although I managed to interfere a little and give her some bad advice.
I did the mechanical and programming for the hand, and Kat had most of the aesthetic ideas for it.

images from the project

In the late summer of 2002, a boy fishing in the East River pulled up a sneaker. That seemed like no big deal, a cliche, even. Except that when the boy looked in the shoe he saw a foot still inside. He had been fishing near the Gowanus Canal, notorious as the place where Brooklyn Mafia families had been dumping bodies for decades. A policeman was interviewed on NY1 (channel 10) and he tried to downplay the significance of the find. The policeman said, "I've been on the force for over ten years, and I've only heard of 20 or 30 bodies being found here." Shortly after that, the Post had a headline on page 3 that read, "Another case of body parts found". Apparently there was a trend of people leaving suitcases full of arms, legs, and torsos in dumpsters (seldom from the same person), usually near restaurants, since those dumpsters are emptied daily, and the smell of rotting flesh is less surprising.
I was in Sheepshead Bay a couple of weeks ago, and my friends and I ate at a Turkish place (named 'Sahara', it was very good). We left and cut down an alley to get to my friend's car where he had parked it on the other side of the block. We passed the back of the restaurant, and leaning against the dumpster was a rather new-looking blue Samsonite suitcase. Feeling stupid, I picked it up. It was quite heavy. The latch was locked, so we took it home to see what was inside.
On Friday you'll see what we found.

I saw more stars last night than I've ever seen in Manhattan. Admittedly only a hundred perhaps, not the tens of thousands one can see elsewhere in the world, but it was still cool to see Orion's belt.

Project# 91742635: Build a MetroCard reader
(Project# 91742635-b: Build a MetroCard writer - [looks like it's harder than I'd thought])
I have a magnetic tape head (again, from that answering machine) - I'll see if swiping a card generates a signal.

Now that the weather is getting colder (@#$%! It's in the 30's at night!) I like having my soldering iron pumping out heat by my elbow.

Framsticks is a quite interesting and free application that allows modeling multiple 3D robots in a virtual terrain, and allowing them to interact with each other. I spent a lot of time on this after I downloaded it.
SodaPlay does similar stuff (just wireframes, though) on a Web browser using Java.
Juice is a more general (and free) 3D modeling and animation application that has good simulation of gravity and friction on modeled 3D objects. The interface is a little kludgy, but it's still kind of neat.

The Slaybaugh PugBuster Challenge still stands:
The first person to build a robot that hunts down and eats pug dogs wins $20,000.

I've been taking apart transformers trying to induce a current from one to the other, but with no success. The mulimeter doesn't even show a hint of current or voltage on the second coil. I don't know what I'm doing wrong, it should be very straightforward. The battery gets really hot though.
Oops, had the transistor hooked up wrong. BCE seems to be different on each one. Now the transistor is getting warm too, and I'm getting miniscule current out the other side. I think I need more power. When in doubt, crank up the amps. Getting warmer. I tried 100mA, then 300, but it looks like we'll need at least 2,000. How the heck can I do that? These DC supplies never go above 1,000. And as it is now the transistor gets literally burning-hot after just a minute attached to power.

From Kirchhoff's Laws we know that batteries connected in series have added voltage and averaged current, while batteries in parallel have added current and averaged voltage. According to the Web, a typical 9volt battery has 27mA of current while a typical AA has 50mA, but when I test with a multimeter, it goes off the scale.

There is an Italian-made transformer called Fabriano Alto Regani Transformatori, sold in England and the states as a F.A.R.T.

In researching all this Tesla coil stuff, I've come to realize that there is an entire underground subculture devoted to making this stuff that will generate lightning bolts in their living rooms. An inordinate number of Web sites are put up by men in England. I guess the disposition of Wallace (of Wallace and Grommit) has a lot of basis in fact. My maternal grandmother's family is Scottish and German (McNabb and Spitler) and her brother, living on a farm in rural Indiana built an apparatus in the barn when he was a teenager that actually split an atom. I saw the gear and the newspaper clippings, but never saw the thing in action. He never even went to college. There must be some kind of genetic sequence that causes some people to devote themselves to tinkering.

I bought a wind-up alarm clock so I could take it apart and look at the gears. It's actually very elegant and beautiful how the gears all fit so perfectly together - a good example of form following function. It's crazy to think about clockmakers in the late middle ages cutting each gear by hand. These were the same guys who went on to build automata that were pretty much the ancestors of the robots we make now.

Machinima is of little interest to me. The visual quality is quite bad - everything has that polygonal quality. It's not much more difficult to do stop-motion animation, or even old-fashioned cel animation - and both of those look better. Flash seems to be the future of low-budget digitally-produced animation. Just look at That's way better than any machinima I've seen. Although, I saw Ozymandius about a year ago and that was cool. But this whole new media thing seems to be about lowering the barrier to entry - now anyone can be a 'publisher' with their blog, or a 'filmmaker' with their Quake setup. Plato opposed general literacy because he was afraid poetry would be lost. That is sort of happening now, the more people who have the tools to make expressive art, the shittier the average piece will be.

I think I'll do this week's lab assignment next week. I should focus on the midterm project now.

I spent a lot of time looking into the high voltage stuff, but I just can't get it to work. I was close a fe wtimes, but then the transformer actually started smoking, so that was a no go. Plan B is the dismembered hand. I've been quasi-collaborating with Anna and Katalin.

The dismembered hand is coming along. Any kind of simulation of animal motion relies on having opposing forces to mimic the pairs of muscle that surrounds all of our bones. Direction one way means muscle one flexes while the other relaxes, and vice versa. So my opposing forces are the servo motor and springs.

I have four chopsticks to be the four bones in the hand (metacarpals) which are attached to four springs (taken from an architect-style swinging lamp) acting as the fingers. Cotton string (in the role of tendon) is attached to the tip of each spring and tie together just before linking to the servo motor. The whole thing is inside a black knit glove, which is itself inside a latex surgical glove. It looks better with the glove, and also, the rubber means better grip when the fingers pull itself along.

The problem now is that when the fingers are bent all the way, the string pulls way out from the palm of the hand. I tried to have the strings run along the front of each finger, but the springs are too rigid and require a lateral pull before they bend. And, it looks like the servo is only strong enough to overcome the tension of two of the springs - and even then the motor is clearly, audibly, struggling. So I guess I'll just have the index and middle fingers do the work.

Managed to break a servo motor. I took off the cover and saw that a few teeth had been stripped off of one gear. These are pretty cheap plastic gears. Oh well. Now I have silicone grease all over my fingers. The springs I'm using have too much tension for the servo to handle. This is not going to be one of the better midterm projects.

Stupid EL wire arrived today, a little later than when I had expected it. It's more complicated than I had thought since it takes a minimum of 50V AC. We got an inverter, but with 6 connectors on it and no instructions, I'm doubtful we'll figure out how to do the stupid thing in time to incorporate it.

Somehow, from working with speakers and motors and other things with magnets in them, and from using my fingernail clippers as wire-strippers, the clippers are now magnetized. I wish I knew a way to leverage this into an entrepeneurial opportunity.

Kat is good at materials and aesthetic thinking. She's got the hand looking really good. I'm working on the mechanics, which are only so-so. Dan pointed out that a regular DC motor with an H-bridge would give me more torque. He's probably right, but I'm not going to change it at this point. If I were to make a prototype to sell to Hasbro or someplace like that, I would do a few things differently, but at least I know how I would do it properly now, so at least I've learned that much.

Back when I first started messing around with simple robots, I made one little device that didn't do much other than spin a fan, but it used a few resistors and a capcitor and a transistor all to regulate the speed. But, Instead of mounting the components on a board, I just soldered the ends together in the air, so the final thing had a very sculptural look to it. I'll do another one of those sometime.

Every time I use a transistor, I have to look up which pin does what. So for my own future reference, here is the 2N2222:

At one point my disembodied hand actually was able to pull itself across the table, but now that the forearm is laden with batteries, the motor, and all the wire and bracing required to hold everything place - it's just too heavy. The servo is actually pretty weak, so I no longer have a mobile critter. I guess it's now a 'handshake-bot' since its creepiest quality comes from gripping the hand and feeling the tendons become taut. Oh well.

I have a random tone coming out of the bx and another at 1/3rd the frequency, so if the higher tone is 'C' the lower is (I think) 'F#' one and a half octaves below. It's dissonant, and probably as creepy as the bx could get.

The fingers moved fine when the angle pulling the tendon was 90°, but I have to run it along the finger and the tension is much higher that way. I should have realized this by looking at a real human hand - we have muscles on the front and tendons along the back, so our grip is strong but there is very little strength when moving our fingers back. So a better design would have the artificial tendons along the back of the hand, and either curved springs or a set of springs in the front.

To make what I have more interactive, I could have some kind of pressure-sensor in the hand, so that when someone grips it, the hand squeezes back - but I'm not going to mess with what I have now. Anyway, that sort of device might be easier to do entirely mechanically. The electronic solution would be more complicated.

The code for the bx:

' variables
dim minPulse as single	     ' the minimum pulseWidth
dim maxPulse as single	     ' the maximum pulseWidth
dim pulseWidth as single	   ' the servo's pulsewidth
dim refreshPeriod as single ' the time between pulses
dim hightone as integer		' the higher pitch
dim randomTone as single	' get random number
dim lowtone as integer		' the lower pitch
dim soundDelay as integer		' the duration

Sub main()
	call delay(0.5)  ' start  program with a half-second delay
	call putPin(26,0) ' turn on onboard green led

' initialize variables
	minPulse = 0.0004
	maxPulse = 0.0023
	pulseWidth = minPulse
	refreshPeriod = 0.02
	soundDelay = 1000

	   	call pulseOut(12, pulseWidth, 1)
	   	if pulseWidth <= maxPulse then
	      		pulseWidth = pulseWidth + 0.00001
			randomTone = (Rnd()*512.0) + 512.0 ' want number between 512 and 1023
			hightone = cInt(randomTone)
			lowtone = hightone\3 ' want dissonant combination of tones
			call freqout(13,hightone,lowtone,soundDelay)

	      	pulseWidth = minPulse
   		end if

	   	call sleep(refreshPeriod)

End Sub

Matt Slaybaugh
ms171 at