Lab One: Electronics
This lab was fun. I went in early one morning, and the floor was pretty empty. I was actually nervous about soldering, as I had never done it before. However, aside from realizing that I had to run to radio shack to get a small roll everything went smoothly soldering. The first LED lit up without a hitch, but when I attempted to light up three at once, it didn’t work. I wonder if this is because maybe they aren’t getting enough voltage to light up all three. I could get two to light, and that would make sense. I remember the LEDs? take something like 2 volts, and since we have 5 volts running through our system, that would make the first pass 3 volts onto the second, which passes one on to the third, and the third cant pass any on to ground. I wonder if that is how it works...I might be wrong and anyone feel free to correct me. The switch went off fine as well. The variable resistor was not as smooth. I hooked up the pot to the system and the LED was blinking in a funny way not seemingly related to the potentiometer. The pot began to smoke, so I unplugged the board. I then hooked a new pot up and the LED's brightness was able to be controlled. David Bamford was able to give me some helpful advice to get it working. He also told me to expect a lot of such things, and recounted a story of an exploding microcontroller. Here is a video of it: Potentiometer Video More photos are available here: My PComp photos on Flickr
Lab 2: My First Pic Program Code: First Program
This lab went fairly well, I had the some problems with the text editor not being set to the right kind of chip. The first two parts went off without a hitch. While doing the third one, however, I ran into a few problems. I wanted to use a variable in my program, but my attempt didn’t work, so I guess I should wait on that. I got a series of lights to blink when a button is pressed and held down, and then three to be lit when the button is not pressed. You can view a video of the basic program here. or to the more complex, multiple LED program here. I had some problems with part 2. I tried my own code and also copied lucks code when I couldn’t get it to work. Then I figured out I didn’t have the resistor to offset the static electricity on the breadboard
Lab 3 - Analog In and Observation Project Code: Falafel Code
This lab was fun, though I had a few problems because there was a short in my breadboard that caused it to keep blowing up five volt regulators. Teresa let me borrow her breadboard, however, so I was able to do the lab. I really liked using variables, and was able to make a pot turn and off multiple LEDs? and also put together a switch system for my group’s observation presentation on the 8th.
For the Observation Project, my group decided to design a visualization system for the number of a particular entree ordered. A really basic LED setup where a push of a button yields a light. We used a counter variable to get this to function.
Lab 4 - Analog Out
This lab went smoothly now that I got a new breadboard It was nice being able to have things change over time with the Pic. I need to do some stuff with sound though still, I don’t quite see what component I need in order to get sound to come out of the Pic. Is it the midi clip? I thought it was just a phono jack of some kind. Oh well, maybe later on in the week. I am still waiting to get an RGB LED as well, and have thought up some cool applications I want to try out, maybe doing some video sensing and low rez imagery in RGB LED on set of bread boards and pics...and LED TV monitor sort of I guess. We shall see. Unfrotunately, I did not back up my code for this lab, so none is displayed.
Lab 5 Serial Code Processing Code - Tool Project
This lab went fairly well. I was able to get serial information into the computer without a problem. Now its time to get it into processing, which is the tricky part. I will update this when that is done. I want to make a controller for a Pong style game I made in ICM last year.
Well, I plugged in the breadboard into processing and it didnt work at first. I was getting serial data, but had a few bugs in my processing code that I hat to iron out. I tried to cut a few corners I shoudn't have. In the end I managed to smooth them all out and the top paddle was being controlled by the pot. I was very pleased. It was still a bit buggy however, because I wasnt not getting a steady signal from the pot. Perhaps if I added some capicators it would smooth things out.
I also was responsible for the code for our tool project. For this project we want to transform a broom into...something. We are not quite sure what yet, but I think the most appropriate and natural application is as a digital pain brush. The rest of the group is not so enthusiastic about that idea, so I may have to give in and go for something else. I think once we learn more about motors, there will be more to do with it.
Here is a photo of the pong screen - The Green Paddle is controlled by a pot, and the other by the mouse:

And here is processing receiving data:

Lab 6
I went to the lab this morning to begin work on the Motor Labs. I completly destroyed my Servo motor by snipping the wires on it. I couldnt tine the wires and get them to go into the breadboard, and all the soldering gun tips where rather dirty, so I decided not to solder new ends on (I am not even sure if that would work, and could create a short circuit perhaps? I will just get a new Servo next week). I did manage to get a low-volatage motor by dismantaling a tape deck i found in the component rack. It was hooked up to a really cool ear mechanism and I got grease all over my hands from it, but it was worth it. In a few minutes, and a bit of deduction as to which connector was power and which was ground I got the motor working. The it was simple enough to get it running off of a switch as well. I originally tried building my own H-Bridge out of tranistors so that I wouldnt have to order one or hunt one down. This ended up not working out so well, I couldnt make them work right. I also thought of wiring up 4 switched to the board and using that to create a manual h-bridge, but couldnt locate 4 switches either. I like the idea of using four switches though, transitors and pre-built h-bridges feel like cheaing, the four switches create a nastolgic feeling too and I think you could build a cool puzzle out of them.
I really liked the reading for this week. I get so overwhlemd with choices when I go to stores sometimes. I like really simple things, and things that have just one function, unfortunatly you ussually have to buy something with 5 functions that end up making the one thing you want to do overly complex. I dont even like a radio mixed in with my alarm clock, I never use it because it gets bad reception and the speaker always sounds like garbage. I think reseraching usefulness is very valid. I sometimes think a lot of the stuff we make are just toys or things for people who are obsessed with the marvels of technolgoy. The aesthic consideration in a lot of physical computing applciations seems to often be to develop a wonderment in the observer of technolgy rather than actually brining the person together with someone, or making them somehow think about there role in the world. I would even advocate that there are many objects that would be useful, but rank low on the usability scale because they could get users to think about certain actions more. Elegant engineering solutions are nice, but can overcomplicate things. Ill admit I am not a big fan of having all sorts of whiz-bang gizmos. I like things simple and clean, close to nature. I didnt even have a cell phone, except about a year and a half ago no phone line ran to my apartment building, so I was forced to get a phone to communicate with freinds and family who where far away. Thinking about useful technology could also bring about true revolutions, rather than simply redisigning a new way to interact with a computer, we could create a new way to distribute food and water to developing nations. When you keep usefulness in mind, you area aware grappling with a larger problem. This is good.
Lab 7 - MIDI
The world of MIDI has opened before me. I have no clue how to do anything good musically. I was able to generate a lot of annoying noise, but I got sound out of the PIC. It was exciting (if not shocking, as I had a bit of trouble getting the sound to come out of the synthesizer). It took a lot of tinkering, but it was nice to see the breadboard so full of gadgets. I made a pot control the note, I should have added a switch to turn the sound on and off. I ended up generating a funky whiling hum as I turned the pot.
Final Project
For my final project, I would like to contiue using the broom. I am intersted in the broom as a device that wipes away dirt and particles to reveal a bare surface. I will contiue to use the flex sensor to get data back from the broom. I then want to feed this data into processingg, and control the opacity of an array of ellipses, each of which is one pixel of a larger image. The user will therefore be able to brush off the "dust" of upper layers to reveal what is hidden underneath. I think I am going to abandon video tracking for this purpose, because I am not entirely sure how that part of our old code worked. Instead, i will either cheat and cycle through the ellipses, or find a sensor that can give me x, y values (I am not sure if such a sensor exists, and if it does it may be too precise to give me my position on a grid.) The first step, before I build anything, however, shall be to make it work with a mouse.
This has just given me an idea. Rather than try to sense the x,y coordiantes with a sensor, I could easily just take apart a cheap mouse and wire it to the inside of the broom/brush in order to find my position on the screen. This would most easily allow for control of the indiviual pixels.
Tech Research - Flex Sensors
I decided to do my Tech Research on Flex Sensors and explore how they work and some applications of them. You can view my findings here.
Final Project - Progression So I contiued to work on my final project, and think I have most of the coding downpat. I decided to make a slight change to my output, because I was having trouble getting processing to output an array of rectangle objects. My limited programming skills barred me from getting anything interesting to happen. I could get the moust to move a rectangle, but objects would be drawn partially over it and it was not a pretty sight. II also realized that people would pick up and put down the broom, thereby making the burshing not as interesting as I would hope for if it where a mouse. I played around a bit and began to think about what I want people to do with the broom. I decided I would like to create a situation wherein people would:
1. Be forced to focus on the task they are doing to highlight the action of sweeping 2. Be able to create a beautiful output 3. Be able to figure out that they have to keep the broom on the ground so the mouse action works 4. Use the back and forth motion of sweeping
I came up with this output form, a sort of grafitti like application that works with the moment with the mouse. I want to have the broom interface with it as a paintbrush and be able to paint. I want to incorporate the flex sensor to allow them to apply only so much pressure to the application. Too much pressure will delete there work, and too little will not start drawing.
Final Project - Code DEFINE OSC 4
DEFINE ADC_BITS 8 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEuS 20
INPUT PORTA.0 output portd.0
ADCON1? = %00000010 TRISA = %11111111
blinkled var portd.1 gotdata var portd.2 receive var portc.7 'we will recieve here flex VAR BYTE transmit var portc.6 'we will transmit here blinky var byte inbyte var byte
output transmit input receive output transmit output blinkled output gotdata Input flex
for blinky = 0 to 4 'tells us the program runs fine
high blinkled
pause 100
low blinkled
pause 200
next
main:
serin2 receive, 16468, [inbyte] 'here wait for a byte to come in at 9600baud
high blinkled 'tells that you gor data
if inbyte = 65 then
high gotdata 'tells that you got a 65
adcin 3, flex 'get adc value from channel 3 put in flex
serout2 transmit, 16468, ["flex=", dec flex, 13,10]
LOW GOTDATA 'tells us that it has transmited
low blinkled'tell us that we are waiting for data
'this sends out in binary the value of our analog inputs and a switch
endif
goto main
