Intro to Physical Computing Fall, 2003 Jeff Feddersen
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.
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 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
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.
The Slaybaugh PugBuster Challenge still stands:
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.
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 homestarrunner.com 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 do call pulseOut(12, pulseWidth, 1) if pulseWidth <= maxPulse then pulseWidth = pulseWidth + 0.00001 else 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) loop End Sub