Repairing the laser harp

In preparation for the Ann Arbor Mini Maker Faire and upcoming Make: PGH meeting, I took a look at my laser harp to figure out why many of the channels were no longer functioning correctly. My design basically consists of a set of ‘strings’, each which consists of a pointer laser aimed at a cadmium sulphide photocell. The photocell is connected in series with a fixed resistor to form a resistor divider, and the center voltage of the divider is fed into the digital input on a microcontroller. When I built the circuit, I chose a fixed resistor value such that the output voltage would be close to ground if the photocell did not have the laser shining on it, and close to the voltage rail (4v) when the laser was shining on it. This apparently came out to around 681 ohms, and I didn’t have many troubles for a couple of years. Last fall, however, a bunch of the sensors stopped working in quick succession, leaving me to think that something was up. To verify my suspicions, I measured the dark (illuminated) and light (illuminated with a laser beam) resistances of all 32 photocells:

Photocell resistance measurements

Condition dark (ohms) light (ohms)
min 16k 414
max 63k 1153
avg 24.5 746

So that is the problem- the average photocell now has too high of a resistance to ever hope to pull the reference voltage high enough to signal that the beam has been broken! The fix, then, is pretty simple. I just need to replace the 681 ohm resistors with some other value that is larger than the on resistance of the largest photocell I have. Using this data, I calculated that something on the order of 2k ohm would be a better choice, and would lead to reasonable output voltages:

Expected output voltages, using a 2k ohm reference resistor. Logic voltage is 4V

Condition dark (V) light (V)
min 0.12 2.54
max 0.44 3.31
avg 0.33 2.92

To verify, I swapped in 2k resistors for the first 8 sensors, and they worked as expected. I promptly ran into two more problems, thouhg- it appears that one of the input pins on my digital I/O expander is blown, and I only had for more 2K surface mount resistors! The I/O expander is an easy fix, since I have more at home, but I’m not sure how to acquire a bunch of 2k surface mount resistors in the next three days. If I can’t, I might try something crazy like sticking some of the 681 ohm ones end to end :-)

Posted in tech | Leave a comment

Controlling a tiny 7-segment display

As I was leaving the shop this evening (morning?), I noticed this neat, tiny display thingie in one of the drawers I was returning components to. It had what looked like a row of tiny 7-segment LED displays on it, behind magnifying lenses, and was clearly a pull from some long gone piece of equipment. Not to be one to pass on a good reverse engineering challenge, I decided to hook it up and write a little driver for it.

At about 2″ long, and maybe 3/4″ tall, it seems like the perfect thing to adorn some suspicious baggage or unattended luggage cool project. Anyone have a good idea about what to do with it? It might end up as the display end of an agitator machine, as part of an automated PCB etching setup.

Source code (which could be used to drive any array of 7-segment displays) follows after the break.
Continue reading

Posted in tech | 7 Comments

Maker Faire 2010 Photos!

After taking a little journey east, I headed west to help out with this year’s Maker Faire Bay Area. This was my fifth Faire, but my first time as staff, and it was a blast! Don’t fret if you missed this one, just make sure to catch Maker Faire Detroit and World Maker Faire!

Photo set is here.

Posted in Journal, Photo | Leave a comment

Mendel Parts!

Mendel Parts
My friend Marty used Makerbot 131 to print me a set of parts for a RepRap Mendel, so it looks like I have no choce but to build it :-D. Here is a catalog of all the parts, in a similar style to the printed parts glossary. So far, I have ordered a hardware kit, x timing belt, and y/z timing belts from UltiMachine, which by my calculations was way easier than sourcing all the parts myself. I still need to decide what to use for the electronics, and pick an extruder design to start with.

Posted in Uncategorized | Leave a comment

East coast tour!

I’m finally back from my east and west travel adventures. Thanks to everyone who took the time to show me around and share their thoughts with me! I had a great time checking out the ITP Spring Show, Alpha One Labs, AS220, high-low tech, and Sprout. A special shout-out to Jen, Becky, and Jimmie for offering me places to stay!

Photo set is here.

Posted in Journal, Photo, tech | Comments Off

Feedback: A short study on generational loss and Moiré patterns

After having great success with connecting my oscilloscope up to my computer, I figured that the camera should probably be the next thing. Since I’m a big fan of recursive things, I decided to train the camera on it’s own output, and see what the generational loss looked like.

This clip was produced by tethering my camera to a computer, so that each picture that it took was automatically downloaded and shown on the computer display, pointing the camera at the display, and repeatedly triggering the shutter. The outwards motion is caused by the fact that I didn’t have the camera framed quite correctly, the streaking things are from dust on my monitor, and the rest of the patterns are reproduction issues. The setup looked like this:

Experimental setup for Feedback

For an excellent consideration of feedback loops in systems that are way more interesting than just a camera and LCD, I recommend reading Clement Valla’s “Original Copies“, which I originally found via Golan Levin.

Posted in Photo | Leave a comment

The “5 minute” agitator

This is why Arduino is awesome: 5 minutes, some junk, instant PCB etching agitator!

Confused about whats going on here? Basically Matt Stultz, my fellow cohort at Hack Pittsburgh, was etching a custom PCB breakout board and got tired of agitating the acid bath by hand. Since I’m such a nice guy, I quickly whipped up a little agitator system using a surplus servo unit and an Arduino microcontroller to control it.

The sketch looks something like this:

#include <Servo.h>
 
Servo myservo;
 
void setup() {
  myservo.attach(9);
}
 
void loop() {
  myservo.write(100);
  delay(1000);
  myservo.write(120);
  delay(1000);
}
Posted in Ridiculous, tech | Leave a comment