For the Unusual switch I decided to continue the concepts I was exploring within the first seven weeks of interactive and generative art using p5.js. I call this switch the “Handcuff” switch. A general rule of thumb tells you “gif > any other file format” so here is my demonstration whilst also trying to re-enact how the person wearing the handcuffs would feel
const int switchPin = 2;
const int ledPin = 13;
bool handcuffsLocked = false; // tracks if handcuffs are on or off
void setup() {
pinMode(switchPin, INPUT_PULLUP); // Internal pull-up resistor
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int switchState = digitalRead(switchPin);
if (switchState == LOW && !handcuffsLocked) {
handcuffsLocked = true; // lock the handcuffs
digitalWrite(ledPin, HIGH);
Serial.println("Handcuffs ON");
}
if (switchState == HIGH && handcuffsLocked) {
handcuffsLocked = false; // unlock the handcuffs
digitalWrite(ledPin, LOW);
Serial.println("Handcuffs OFF");
}
delay(100);
}
I designed this basic code to detect and track when the handcuffs are unlocked. Mainly, it is a conditional that keeps track of the states (on) or (off).
Reading about Margaret Hamilton’s story was incredibly inspiring—especially the way she navigated a male-dominated field with intelligence and persistence. What stood out to me most was how seriously she took her code, and how she fought to ensure software was treated as a critical part of the Apollo mission. I admired her foresight and the way she challenged the idea that software was somehow secondary to hardware or engineering. As someone learning to code, I often feel like software is invisible or taken for granted, so seeing Hamilton’s impact reinforced how powerful and essential it really is. Her story makes me feel like being detail-oriented, stubborn, and thoughtful in code can actually change history.
Norman’s piece made me reflect on how often I prioritize function over form—especially as someone who tinkers with circuits and code. But his argument that emotional design improves usability resonated with me deeply. I’ve definitely had moments where a sleek interface or an intuitively designed device made me feel more confident and willing to explore, even if I didn’t fully understand the technical side yet. It’s fascinating to think that our emotional response can override frustration or confusion. The idea that beauty encourages persistence really stuck with me—I now realize that good design isn’t just about solving a problem, but about shaping how people feel while solving it.
For this week’s unusual switch assignment, I wanted to create something active and game-like — something that felt more like play than a standard circuit. That’s how I ended up designing a target switch using a cardboard folder, aluminum foil, and a ball. Instead of pressing a button or stepping on a pedal, the switch is triggered when I successfully throw a ball at the target. The core of my design is a DIY target made by slightly opening a cardboard folder and placing aluminum foil inside each flap. These foil strips are wired to the Arduino, and act as the two sides of a switch. When the ball hits the folder, it causes the foil pieces to touch momentarily — closing the circuit and turning on an LED.
const int SwitchPin = 3;
const int LEDPin = 12;
void setup() {
pinMode(SwitchPin, INPUT_PULLUP);
pinMode(LEDPin, OUTPUT);
}
void loop() {
const int Input = digitalRead(SwitchPin);
if (Input == LOW) {
digitalWrite(LEDPin, HIGH); // LED ON when ball hits target
} else {
digitalWrite(LEDPin, LOW); // LED OFF otherwise
}
}
The biggest challenge was making sure the foil only touches when I want it to — in this case, only when the ball hits the folder. I had to tape the foil securely and position it so that the folder remained slightly open. If it’s too loose, the foil touches on its own; too tight, and the impact doesn’t close the circuit. This project gave me a better understanding of how a simple digital input can be adapted into a physical interaction, using only basic materials like cardboard and foil. I also gained more confidence working with pull-up resistors and reading pin states accurately.
Margaret Hamilton is the kind of legend we don’t talk about enough. She wasn’t just a programmer, she was a problem-solver and a pioneer who helped put men on the moon while juggling motherhood and working in a field dominated by men. In the 1960s, software engineering wasn’t even considered a real thing yet, and yet, there she was, writing the code that saved Apollo 11 from disaster.
One of my favorite parts of her story is how NASA ignored her when she wanted to add safeguards to prevent astronauts from making mistakes. They told her, “That would never happen.” And then of course it did happen, and she had to fix it under pressure to bring Apollo 8’s astronauts home safely. That’s the kind of foresight and brilliance that makes her work so groundbreaking.
What’s even more inspiring is that she did all this while raising a kid. She’d bring her daughter to the lab, let her sleep on the floor while she worked late nights writing code. It’s proof that women have always been capable of incredible things in STEM. Hamilton didn’t just write software; she helped create an industry, proving that software wasn’t an afterthought, but the future.
Reading Donald Norman’s take on affect and design really got me thinking about what we do in physical computing. His idea that attractive things work better made me question the way we usually talk about design. It’s so easy to think that usability is the most important thing, but Norman makes a solid point—aesthetics, usability, and functionality all need to work together, depending on the context. That’s something I really want to keep in mind as we start building our own devices.
With physical computing, we’re not just designing screens or interfaces—we’re making real objects that people will physically interact with. That makes things more complicated because now we have to think about how something looks, how easy it is to use, and what it’s actually meant to do all at the same time. The balance between these depends on what we’re building. If it’s something like a smart home controller, aesthetics matter because it’s going to sit in someone’s house, and they’ll see it every day. But if we’re making a fire escape guidance system, function is everything. No one in an emergency should have to stop and figure out how to use it, it just has to work.
The three teapots analogy really stuck with me too. It’s a great reminder that different users and situations need different design choices. I hadn’t really thought much about how a person’s emotional state affects how they interact with a device, but it makes so much sense. If someone is stressed—like using a medical alert system—they need clear, obvious controls. No distractions, no unnecessary design elements, just pure functionality. But if we’re designing something more creative, like an interactive art installation, we can push the boundaries and make it more about the experience rather than efficiency.
As we start designing our own projects, I don’t want to fall into the trap of just thinking, whether it works or no? Of course, usability matters, but if something feels cold or uninviting, people won’t want to use it.
At the end of the day, physical computing isn’t just about circuits and code but rather about how people feel when they use what we create. A device isn’t just good because it functions. It’s successful when it resonates with people and feels right to use. That’s something I really want to keep in mind moving forward.
As part of my exploration into unconventional switches and interactive physical computing, I set out to create a hands-free tilt maze that would light up an LED when a metal ball reached the end. The goal was to design a circuit where the ball itself would act as a conductor, closing the circuit when it landed in the final zone. This would be a simple yet effective way to merge an engaging, movement-based game with basic electronics.
Planning & Execution
1. Designing the Maze
I started with a small wooden tray, which served as the base for my maze. Using thin wooden strips, I created walls to guide the ball along a path. The objective was to navigate the ball from the start to the finish zone using only tilting motions, without touching it by hand.
2. Creating the Conductive Finish Zone
The most crucial part of the project was designing the finish zone, where the ball would complete an electrical circuit. I used copper tape to create two separate conductive paths (Pads A & B) with a small gap between them. When the metal ball landed on both pads simultaneously, it bridged the connection and completed the circuit, allowing current to flow and light up the LED.
3. Wiring the LED Circuit
To keep the project simple, I opted for a basic circuit:
Arduino 5V power supply
Some LEDs
A 330Ω resistor to protect the LED
Wires connecting the copper tape pads to the circuit
The LED remained off until the ball touched both pads, acting as a natural switch.
4. Making It Hands-Free
To fully embrace the “hands-free” challenge, I designed the maze to be played by tilting the tray. I experimented with different ways to control the tilt: Holding the tray with some other body part ( added a stick for easy holding later)
The Confusing Part
One of the trickiest parts of the project was ensuring consistent electrical contact when the ball landed on the finish zone. Initially, the ball wouldn’t always complete the circuit properly. Through testing, I identified a few issues:
Copper tape alignment: If the gap between the two pads was too wide, the ball wouldn’t bridge them effectively.
Surface roughness: Uneven copper tape or debris could prevent a reliable connection.
Ball material: Not all metal balls conducted electricity equally well. A steel washer worked best.
and heres “The Video”-
Final Thoughts
This project was a fun way to combine electronics, physical movement, and creative problem-solving. the conductivity issues helped me better understand how to design reliable electrical contacts.
I’m excited to explore more unconventional switch mechanisms in the future. Maybe next time, I’ll design a game that reacts to body heat, breathing, or even sound vibrations!
Reading “Margaret Hamilton: Her Code on the Moon” deepened my understanding of her pioneering contributions to the Apollo program and the development of software engineering. What struck me is that the article highlights her leadership at MIT’s Instrumentation Laboratory and how it was vital for creating the software for the Apollo guidance computer. I was amazed by the vast scope of the Apollo project, involving more than 400 individuals working on the software by 1968, while Hamilton introduced important innovations such as priority displays and created the term “software engineering” to give credibility to the discipline. I’ve always thought software engineering could come from the Turing Test or other experiments involving web development but hearing it comes from the Apollo project surprised me. The article deepened my comprehension of a software’s essential function in space exploration and I wondered what programming techniques or coding languages were used back then.
Norman,“Emotion & Design: Attractive things work better”
This has taught me on how aesthetics impact not only perception but also functionality and problem-solving. The notion that appealing designs can enhance the perception of task simplicity by aiding cognitive processing is intriguing, yet I recognize how bad usability can occasionally negate that advantage—similar to Michael Graves’ “Nanna teapot,” which is aesthetically pleasing but often impractical. It made me reflect on how frequently I’ve assessed a product based on its look, only to find out later that appearance doesn’t necessarily indicate user-friendliness. The author’s story regarding early computer displays changing in perceived worth over time also caught my attention, demonstrating how aesthetics can influence our evaluations in ways we might not readily acknowledge. I think it’s intriguing to consider what occurs in the brain when appealing things lead individuals to feel more competent. This reading doesn’t exactly alter my opinions, but it enhanced my understanding of how emotion and design connect, particularly in fields such as human-computer interaction, where it is vital to balance aesthetics and functionality.
For this assignment, I decided to create a simple light-controlled system using a homemade pressure switch (A foot pedal). This is because I was curious to learn how basic, mundane materials like paper could be used to create an operational input device without using typical components like push buttons. By including this on the Arduino Uno, I could turn an LED on and off with a physical press, demonstrating how simple materials around the house can be repurposed to create interactive electronics projects.
Arduino Code
I changed the original Arduino “Blink” code to make the light not turn on and off by itself, but only turn on when I trigger it using my paper and copper tape switch:
int buttonPin = 2;
int ledPin = 13;
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Enables internal pull-up resistor
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
digitalWrite(ledPin, HIGH); // LED ON when pressed
} else {
digitalWrite(ledPin, LOW); // LED OFF when released
}
}
I connected the switch to one of the Arduino’s pins that has the ability to sense if something is being touched. I also used a built-in function that helps the Arduino become aware when the switch is not being pressed. In the code, I instructed the Arduino to switch the light on when the switch is triggered, and off when it’s not. This ensures that the light will switch on directly due to my homemade pressure switch (A foot pedal).
Challenges
One of the main challenges was creating a functioning switch without a supply of crocodile clips, actual push buttons, or normal conductive material. I used paper, copper tape, and jumper wires with some trial and error to develop consistent electrical connection. Getting the copper strips into perfect alignment and holding them together in use took some experimentation. Also, getting a grasp on how to utilize the internal pull-up resistor is necessary to prevent false firing and ensure that the switch is reliable.
This week I decided to create a switch that worked on the basis of water conducting electricity.
With that, I decided to create a switch turned on by the tears of unviersity students.
It was simple: cry enough into the bowl and the LED will light up.
To do this I attached copper strips inside the bowl so that when the water level inside the bowl was high enough the water would ‘connect’ the two copper tape strips into completing the circuit.
Challenges:
One of the challenges was figuring out even if at wall the current would be strong enough to pass through the water.
Another thing was a stupid ‘bug’ where I had used a photoresistor, not a normal resistor, and pondered for a long time why the circuit was not completing.
Future improvements:
One thing I’d like to improve on is to maybe have different circuits of copper tape in such as way that more LEDs light up the more tears there are in the bowl. with 3 lit LEDs representing a full bowl or something like that.
For this project, I created an unusual switch that does not require the use of hands. The switch is activated when two animal-shaped toys from Kinder Surprise make a “kiss.” I used copper foil to conduct electricity, enabling the switch to complete or break a circuit when the toys touch or separate.
Concept and Design
The switch mechanism is based on the principle of completing a circuit when conductive surfaces meet. The copper foil serves as a conductive material, allowing current to flow when the toys touch, thereby activating a response in the circuit.
I initially created a simple circuit where an LED lights up when the toys make contact. Later, I expanded the project by incorporating a second LED to indicate different states:
When the toys “kiss,” a green LED turns on.
When they are apart, a red LED shines instead.
Circuit 1: Basic Contact Switch
-> When the toys make contact, the circuit closes, and an LED turns on.
const int toyInputPin = 2; // Copper tape contact pin
const int ledB = 13; // LED that turns ON when toys touch
const int ledA = 12; // LED that is ON by default, turns OFF when toys touch
void setup() {
pinMode(toyInputPin, INPUT_PULLUP);
pinMode(ledB, OUTPUT);
pinMode(ledA, OUTPUT);
}
void loop() {
int contactState = digitalRead(toyInputPin);
if (contactState == LOW) {
// Toys are touching
digitalWrite(ledB, HIGH); // Turn ON contact LED
digitalWrite(ledA, LOW); // Turn OFF default LED
} else {
// Toys not touching
digitalWrite(ledB, LOW); // Turn OFF contact LED
digitalWrite(ledA, HIGH); // Turn ON default LED
}
delay(10); // Debounce
}
Challenges and Learnings
Initially, the copper foil contacts were not always reliable. Adjusting the positioning of the conductive material improved accuracy.
The switch was sensitive to small movements, causing flickering. A small delay (10ms) in the code helped stabilize readings.
Future Improvements
Would be interesting to integrate a buzzer that plays a sound when the toys kiss.