Chris Wells’ Technical Expression Page

May 13, 2006

A sad ending

Filed under: Final Project — michaelangelo3 @ 12:17 am

As horrible as it is to end on a sad note, we arrived the next morning only to find our project not work the way it should when we plugged it in. The LogoChip seemed to be sending signals continuously with no apparent reason. We had made no modifications, only left it overnight. We were perplexed and downtrod. At least I can scroll down and know that The Family was once alive …twice. That alone is rewarding. 

She’s alive!!

Filed under: Final Project — michaelangelo3 @ 12:04 am

Motivated to get our project up and running again, we spent 6 hours at the gallery reworking The Family. It's amazing how much faster you can do something the second time. We re-reverse engineered two new DVD players. One of them was no different from the first two. The other however, had a different circuit board. I approached the same way I did the others, and in half an hour we, had wires soldered onto it, too. Joey had brought in a new (it was probably actually old) torn apart and reworked like the old one. It didn't have the same glamour as the first one, but still excellent for the amount of time he had. We hooked everything back up, and this time, Joey found all the loose ends of the cosmetic wires in the piece, and insulated the ends, every last one of them. We also grounded the conduit better. And anytime we worked on it, we turned everything off! At about 1:30 the next morning T. Jay and I were dancing and singing with good reason to do so: our project was alive!! We unplugged it and tried it again. It worked just like it should. Here's a picture of it working:

Photobucket - Video and Image Hosting

May 12, 2006

Setting up The Family

Filed under: Final Project — michaelangelo3 @ 11:55 pm

Once we got the LogoChip and the DVD players all ready, we took them to the gallery to set them up with Joey's creations. They were beautiful!!!

Photobucket - Video and Image Hosting

We ran the video outputs from the DVD players to some RF Modulators so that the T.V.'s coaxial cable had somewhere to connect. We plugged everything in, and sat down to orgnanize the code.First problem: DVD players wigged out! They were turning on and off, opening the DVD trays, it was chaos. I knew that there were some extra currents running back into the circuit, but I couldn't pinpointit. I asked Tom McGuire for some help, and he suggested that the T.V.'s exposed tubes were inducing unwanted voltage on all the wire and conduit we had running around them. So I unsheathed my handy-dandy voltmeter and looked for voltages between the LogoChip ground and different parts of the piece, namely, the structure holding the T.V. We found some. Good-sized ones, too: 2-3 volts. Definitely enough to interfere with our circuit. So we took some wires with alligator clips on the ends and clipped them to some washers on the structure and the conduit, then clipped them on a good conductive part of the DVD player. What we really should have done was connect them altogether and ground them into the powerstrip or something better of a ground. But, the problems went away, and I proceeded to write code to work with the DVD's Joey edited. You can find the complete code on T. Jay's blog.

Problem 2: Tradegy Strikes! Joey was doing some last minute contruction while the project was running, and Zap! sparks flew. I looked at Joey, just astonished, and received the same look in return. Evidently, his hot glue gun completed a ground somewhere and shorted out the system. With that we lost our Mother T.V., and both our DVD players. We had no other choice but to display our piece nonfunctional for the opening evening.

Choosing a resistor for the transistors

Filed under: Final Project — michaelangelo3 @ 11:01 pm

This became tricky. It was suggested to us to use a 1000 ohm resistor to intercede between the LogoChip and the transistors. We found that this was not enough resistance, however; it made the transistors too sensitive. This problem was marked by the DVD powering on and off without our telling it to. This was humorous, and became even more so. At one point, when I had been working on this for hours, I grabbed the wire connected to the resistor on the base of the transistor and the ground to move them and the DVD player turned on. Intrigued, I held the wires on the insulation, and laid a finger across the exposed ends of the wires. It did it again! T. Jay came in soon thereafter, and of course I showed him this comical phenomena. He tried it, but it didn't work for him. We looked at each other for a moment, then his eyes lit up, and said, "Wait a second!" He grabbed the wires again, then touched my cheek, and lo and behold, the DVD player turned on.

We did increase the size of the resistors…eventually. We found values so large that they blocked the signal from the LogoChip, and slowly stepped it down until the LogoChip just overpowered the resistors enough for the transistors to get the signal. We wanted to take no chances on someone walking by our project and somehow causing an unwanted signal to make it misbehave. We arrived at 10K ohm, which has a color code of Brown Black Orange.

The LogoChip and the DVD players

Filed under: Final Project — michaelangelo3 @ 9:10 pm

Note: If you need a refresher or orientation on transistors, spend a few minutes getting to know transistors and learning how to use transistors as a switch and you will be more than qualified to follow along.

Parts referenced: NPN transistor – 2N3904. PNP transistor – 2N3906. Microrelay – 275-232.

Now we're ready to interface the DVD players with the LogoChip. First things first, we assembled the basic LogoChip circuit as defined in the Getting Started with LogoChip document. After familiarizing ourselves with it, we found that ports B0-B7 can be used as outputs. In other words, we can tell the LogoChip to send a positive signal (approx. +5V) to a specified output specific within our code, like this:

to powerup
write portb-ddr 0
end This preceeding code is necessary to set ports B0-B7 as outputs upon powering up the logochip.

to powerdvdparent
setbit 0 portb
mwait 1000
clearbit 0 portb
end

This tells the logochip to make a new command called "powerdvdparent." It then sets port B0 to a 1, which sends +5V out of it to anything connected to it. It then waits 1 second before moving to the next line of code. The next line tells the logochip to clear port B0 to a 0, which is 0V. End tells the logochip it is at the end of the new command.Our plan is to use ports B0-B3 for the four functions of the parent DVD player and ports B4-B7 for the children's DVD player. So we will connect port B0 to a resistor (an obstacle of its own) which will be connected to the base of our NPN transistor which has wires from contacts C and Z from the DVD player circuit board connected to the emitter and collector respectively. We will do likewise for the play command. The stop command needs to be longer so instead of waiting only one second, we wait three, so that we get that long, hard stop that will reset the DVD player to the beginning of the DVD. Specifically:

to playdvdparent
setbit 1 portb
mwait 1000
clearbit 1 portb
end

to stopdvdparent
setbit 2 portb
mwait 3000
clearbit 2 portb
end

We had problems with the forward function. We thought we could connect contact H to the collector and E to the emitter, thinking ground should be the contact to which the current flows. But that didn't work. We thought maybe the switch doesn't like have current pushed across it, so we switched the NPN out for a PNP, thinking the transistor would pull the current through the transistor to ground. So we connected H to the emitter and E to the collector and altered the code, because PNP's require a low (or a zero) on the base to activate, opposite of the NPN's. It looked like this:

to powerup
write portb-ddr 0
setbit 3 portb ;we need to add this to the powerup script so that port B3 is set high
end

to forwarddvdparent
clearbit 3 portb
mwait 150 ;we want a short signal so that it will go to the next chapter, not fast forward
setbit 3 portb
end

Yeah, that didn't work, either. I knew all along what we would have to do if we couldn't get the transistor to activate the fwd function; we would have to go buy a couple micro-relays. The reason is relays don't push or pull extra current across the contacts; it's simply a remote- controlled switch. So even though I didn't know what exactly was going on across the contacts of the fwd switch, I could still replicate it. I went to RadioShack, got a couple and wired them up and changed our code back to be more similar to the other functions. Yep, they worked. Here's the code for the fwd function:

to forwarddvdparent
setbit 3 portb
mwait 150
clearbit 3 portb
end

And here's our wiring diagram (to be added to a complete basic LogoChip circuit):

Photobucket - Video and Image Hosting

You'll notice a diode connected to the coil of each relay. This keeps current from entering the circuit through the "back door" after the relay is no longer activated.

Our code for the children's DVD player, like the schematic, is pretty much symmetric:

to powerdvdchild
setbit 7 portb
mwait 1000
clearbit 7 portb
end

to playdvdchild
setbit 5 portb
mwait 1000
clearbit 5 portb
end

to stopdvdchild
setbit 6 portb
mwait 3000
clearbit 6 portb
end

to forwarddvdchild
setbit 4 portb
mwait 150
clearbit 4 portb
end

May 9, 2006

Reverse-engineering the DVD players

Filed under: Final Project — michaelangelo3 @ 5:41 am

The idea behind making our family units come alive is making them play the programming we want when we want. Then when an observer walks by and sees the mother playing programming appropriate for her but different from her children, whose programming is appropriate for them, they will get the picture that the bigger t.v. showing adult programming must be an adult unit. And the smaller t.v.'s showing children's programming must be children units. Hey, this must be some sort of family!! Bad-a-bing! our artistic idea birthed through technological means.

Back to the technology. Our basic idea is to bypass the buttons on the DVD players with transistors that are controlled by a microcontroller supplied through our instructor, called LogoChip. The microcontroller is capable of storing a program that we can specify and executing it upon a specified trigger, which is conveniently controlled through a button-type switch. I'll go more in-depth later, but for now the important concept is that we want to program our chip to tell the DVD player to power on, play, hard stop (reset to the beginning of the DVD), and fast-forward through chapters as fitting to the programming Joey edits.

To begin the fun, we took apart the DVD player. (We are using two CyberHome DVD players. They are cheap, simple, and using two identical players should means we only have to do this process once.)

Photobucket - Video and Image Hosting

Since the parts of interest are the buttons on the front of the player, we then remove the plastic face to reveal the circuit board. As you see, the buttons on the front of the player are plastic pieces that in turn push on button-style switches on the circuit board.

Photobucket - Video and Image Hosting

Flipping the circuit board over, we find what we are looking for, the electrical contacts to which we will solder lead wires which will be connected to our transistors. (Yes, I know these pictures are post-solder, but you'll just have to use your imagination.)

Photobucket - Video and Image Hosting

Next, to know which contacts to which to solder, we look closely at the front of the circuit board.

Photobucket - Video and Image Hosting

Here we find a pin-out legend for the group of wires running from the circuit board to the rest of the DVD player. The pin-out legend reads:

(1.) PWR +5V (2.) GND (3.) INFRARED (4.) LED (5.) GPIO 0 (6.) GPIO 1 (7.) GPIO 2 (8.) GPIO 3 (9.) GPIO 4

With this knowledge, we turn the circuit board over and trace the metal inlay paths to see which contacts of the switches do what. We see that the button-style switches have four contacts, but we know that they are actually two contacts, connected vertically inside the switch. We also see that the eject, forward, and rewind switches have a common connection. Likewise with play, stop, and on/off, though it is NOT the same shared connection as the former three. Another observation is the right sides of the switches are connected to the right sides of the switches either above or below them. (looking at the board through my picture) Considering all this, we can draw the second diagram below, and with deductive reasoning, we can draw the third, giving us the specific contacts we need to solder into.

Photobucket - Video and Image Hosting Photobucket - Video and Image Hosting Photobucket - Video and Image Hosting

One thing I forgot to mention is we ran a voltage test to further investigate what was going on when the switches were open and closed. The bottom three switches showed a voltage of 2V open, and 0V closed. Makes sense. This is how we reasoned that the left side of the bottom switches were the same contact as Pin (1.), with the exception of a couple resistors. The interesting finding was the top three switches showed opposite results: 0V open, 2V closed. This caused us problems later when we tried to interface the DVD players with the LogoChip.

You may ask why go through this mapping out of the circuit board and deductive reasoning; why not simply assign one terminal of each transistor for each terminal of each switch? Two answers: 1. we got lost in the fun of figuring out how they worked, and 2. if we did that, we would have to solder 8 wires onto the circuit board for the 4 switches we're going to use. We like being efficient, and we like only soldering the deduced 5 wires instead of 8. When it came to soldering onto the board, the solder didn't want to adhere to the contacts. We had to really heat them up first. Also, the pictures here are pretty close to life size. It wasn't easy. We then soldered our wires onto the contacts of the board and proceeded to interface them with the LogoChip.

The T.V. programming results…

Filed under: Final Project — michaelangelo3 @ 4:43 am

Since Joey did the television programming editing for the DVD's, check Joey's blog for the results he came up with. 

March 30, 2006

Making a schedule

Filed under: Final Project — michaelangelo3 @ 3:41 am

Here is a basic outline of the programming for "The Family" in sequencial order:

Morning:

-All three units (mother, two children) begin asleep, indicated by only a couple led's slowly flashing, perhaps some breathing sounds.

-Alarm clock like sound wakes mother unit, monitor turns on, more led's on

-Mother unit's tv shows clips of coffee and shower commercials

-Mother's tv shows children, begins flashing bright light at them, makes alarm of her own to wake the children

-children wake up in similar fashion to mother

-children's tvs show toothpaste and breakfast commercials

-mother's tv shows morning show, children's show cartoons

Noon/Afternoon:

-childrens cartoons progress with the day

-mothers tv shows soap operas

-children play with each other: they make progressively louder noises, more lights flash more rapidly, tvs stop showing cartoons and show each other. mother stops showing soaps and shows them, makes loud, agressive noise which causes the children to stop all noises and light flashing and show cartoons again.

-sound tornado siren and show lunch commercials on all units

Evening:

-"Flintstones" work whistle sounds

-show news on parent tv, cartoons on childrens, perhaps some toy commercials

-dinner commercials on all units

-children go back to sleep

-mothers tv shows late night show and alcohol commercials

-mother goes to sleep

The plan is to run through this program straight through and set up if statements for other more interactive routines to temporarily stop the program until the transient routine is complete, then the program will pick up more or less where it left off. We're going to put together the main program first, then hopefully as we have time we will create the transient programs. Some of our ideas for transient routines are as follows:

1. If a viewer approaches a child, the mother's tv will show them as if she's watching them. If they get too close she will make angry sounds and flash lights. We've thought about using a touch lamp to allow a viewer to "build trust" with the mother by petting it, then the mother would not react as defensively.

2. Assign a certain sensor to cause a toy of some sort to be knocked over as a viewer walks by. The child will respond by making noises indicative of crying. If the viewer puts it back, the child will be appeased, if not, the mother will eventually play some soothing music to soothe the child.

3. Use a microphone to record things viewers say and play it back from a child as if it's mocking a viewer.

This is what we've got to do next:

1. Lot's of coding!!!

2. Acquire all the commercial clips we need and allocate them as individual video files for Pd to reference when the code calls for it. (We thought about recording all the data onto DVD's and starting and stoping the playing of them, or even start and stop them at different tracks, but there are a couple potential problems with this approach: 1.we would need a networked DVD player for each unit and 2.we would have to be very precise in synchronizing their playtime. So we think Pd will be an easier option.) I'm told we can convert DVD files to Pd-compatable files using a little process called transcoding. The process will work a lot like John's snail mouth. As sensors activate code, the code will use Pd to reference the files we need and play them for the necessary amount of time.

3. Acquire materials and get the project built. Though most of our construct can be more or less thrown together because it fits our desired aestetic, we're going to have to put some serious thought into where we put the sensors. We still don't know if we're going to be able to do the routine with the touch lamp because we haven't found one yet, and many hardware issues such as that still exist. Some things we do know about hardware are 1.each unit will have a monitor, the mother a color, the children black and white, (not only does this have metaphorical value, it's also cost effective.) 2.because of our needs, each unit will most likely have CPU also, which will add to our overall aestetic as well as our projects complexity.

March 11, 2006

The Family is an appropriate name.

Filed under: Final Project — michaelangelo3 @ 7:19 pm

So we’ve met together as a group a couple times. Scheduling these rendevous is difficult, but we’re making headway. After much brainstorming, we’ve decided that the crux of our piece is making the identity of our piece apparent using interaction, not forms. When someone thinks of a robot, he usually conceptualizes this mechanical-looking person that becomes personified by its interactions. In our piece, interaction is the identity. The form will be nothing but piles of wires, silicon chips, and other various electrical devices that will resemble electrical trash. But once a person walks near one, a sensor will “awaken” our creations and they will begin demonstrating tasks indicative of normal, trivial human behavior. An alarm clock sounding buzzer will ring, waking the parental pile into flashing lights, perhaps some commercials of breakfast on its monitor. Then it will display live video of the children piles and create noise and lights as if to wake them up. Subsequently, they will flash, make some noises and make similar displays of cereal and toothpaste. We have many ideas for scenarios, the structure being formed into a typical day of today’s American family, comprised of four parts: morning, day, evening, night (sleep). There will be scenarios both involving observers and independent of them. Our next step is to define these scenarios and classify them into the corresponding time of day. From there, we will begin writing the code and collecting the video clips, then acquisition and assembly of the piece.

February 10, 2006

Hero of Alexandria

Filed under: Uncategorized — michaelangelo3 @ 6:38 am

So I just watched this program on the History Channel about Heron of Alexandria. Wow!!! This guy was genius! In case you’ve never heard of him, as was my condition earlier this evening, here’s the lowdown. First century A.D. this guy was in Alexandria, birthing such marvels as miraculous, automatic temple doors, steam engines, automatic weaponry, and 20 minute progressions of theatre presentations! To spare the details, I saw a lot of things that he did artistically, or which could be interpreted as such. If you get a chance, look into some of his work. Here’s probably the best link I found after much google searching.

Older Posts »

Blog at WordPress.com.