First homework for Physical Computing: Digital In Out.
11:15: I forgot how hard you have to pull to strip the insulation off the wire (or is it just me?).
11:30: Wow, I totally remember that smell of hot soldering iron from my childhood. Nevertheless, I am the worst solderer ever.
11:45: Yes, worst solderer ever. Not being able to see anything close up anymore doesn’t help, either; obviously, I should have gone to ITP while I was still in my twenties and only half-blind.
11:50: Oh, yeah—now I remember how to use wire strippers. Rotate.
12:15: Looking up resistor values. Did I miss some introductory class where we were supposed to learn all this shit? Honestly, if I hadn’t spent weekend afternoons sorting resistors for my dad when I was in grade school, I think I’d be completely lost right now. Setting up a straightforward circuit on a breadboard should not be taking this long.
Resistor Values
Cheat cheet: http://www.iguanalabs.com/resistors.htm
10 x brown black black gold = 10
10 x brown black brown gold = 100
10 x red red brown gold = 220
10 x brown black red gold = 1,000
10 x brown black orange gold = 10,000
5 x orange black orange gold = 30,000
5 x brown black yellow gold = 100,000
12:50: Done sorting resistors, distributing into parts box, drawing and inserting labels.
1:15: Finally, my circuit looks like the photo on the website (well, except for the googly eyes). Woot!
Does it do anything, though?
1:25: Aaargh! The answer to that question is, No.
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
Binary sketch size: 1126 bytes (of a 14336 byte maximum)
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
1:28: Hmm. It uploads fine when nothing is connected to the board.
1:30: Okay, the red LED lights up when I hold down the switch. The green LED doesn’t do anything, though.
1:35: Troubleshooting. Tried swapping the red and green LEDs: now nothing works. Replaced the green LED with a yellow one: nothing. Re-uploaded the program to the board (which worked just fine this time): nothing. Shite.
Unplugged everything except the USB cable, hit reset, re-uploaded program: error message. Reset, tried uploading again: worked. Plugged breadboard back in: nothing happening.
Hit reset, re-uploaded program: error message.
No reset, re-uploaded program: error message.
Reset, re-uploaded program: upload okay, but no lights.
Jiggled all the connections. Nothing.
Unplugged & replugged USB cable, reset, re-upload: nothing.
AAAAARRRRGGGHHH!!!! I give up.
Reversed the legs of the yellow LED: lit up. Hmm. Reversed legs of red LED: lit up. Now both are lit. When I hold down the switch, both turn off.
Reset, re-upload: error, both lights on.
Reset, re-upload: okay, both lights on.
Changed code to
if (switchState == 1) {
// if the switch is closed:
digitalWrite(yellowLedPin, HIGH); // turn on the yellow LED
digitalWrite(redLedPin, HIGH); // turn off the red LED
}
else {
// if the switch is open:
digitalWrite(yellowLedPin, LOW); // turn off the yellow LED
digitalWrite(redLedPin, LOW); // turn on the red LED
Reset, re-upload: okay, lights off. Pressing switch turns both on.
. . .
YAAAAYY!! In switching the LEDs around, at some point I got one leg into the wrong row. Everything now works exactly as intended! Aaaand . . . it’s 2 a.m. Bummer. So much for Part II of this week’s homework: making a combination lock using a LEGO phone.
So.
I don’t feel like I had any idea what I was doing with this assignment, besides trying to copy the photo exactly. I didn’t refer to the diagram much, because I don’t really remember from high school how to read an electrical diagram. All in all, I felt pretty uninformed. It would have helped to be doing this in the lab at school, surrounded by other cursing, frustrated people, but I would have had to bend space and time rather drastically in order to be able to work there. Other inhabitants of the universe might have thereby been inconvenienced.