Week 8 – Creative Switch

Concept

I was thinking about how I could create an unusual and creative switch and also make it fun to use. The one thing that came to mind was the game “Just Dance” in which the user has to step on the correct tile that they see on the screen to simulate dance moves and make the in-game character dance. Due to the time constraint I wasn’t able to create a fully working game, but this is a good start with the hardware part of it mostly done.

How it works and demo

Instead of using the classic button switch, I connected jumper cables to aluminum foils and put sponges between the foils so when they are pressed or in this case stepped on they will detect a signal and light the LEDs.

Here is a short demo of the project:

As for the code, it wasn’t too hard to work on. I found the Serial.println very useful in debugging and testing in general. The hardest part for this project was making all the connections with the wires as the breadboard is small and the cables kept getting into the way of one another so I think I will need to work on my cable management more in the future.

// read the input pin:
int buttonState1 = digitalRead(pushButton1);
int buttonState2 = digitalRead(pushButton2);
int buttonState3 = digitalRead(pushButton3);
int buttonState4 = digitalRead(pushButton4);

// print out the state of the connection:
Serial.println(buttonState1);
Serial.println(buttonState2);
Serial.println(buttonState3);
Serial.println(buttonState4);

I am particularly proud of how the code was clean and well readable in the end even with so many different pins and commands.

Future improvements

In the future I plan to make a full game out of this project and to make a homemade “Just Dance” video game. I also hope to work on cable management a bit more so the board looks a bit more presentable and maybe also switch the sponges for some other material as they haven’t proven to be the most reliable. Overall this was an amazing learning opportunity as well as a very fun project to work on!

Week 8 – Reading Reflection

Attractive things work better:

I think the most important point to me when reading this essay was the idea of context being a vital part of design. Depending on the time of day, mood, and situation, certain objects might be preferred over others. For example, sometimes I switch out the type of bag/purse I bring outside depending on where I’m going. The aesthetic and functionality of the bag both matter when choosing for the right occasion. Taking into account negative moods and stress when designing/using an object also rings true in this example. Let’s say I’m going somewhere with a lot of walking around/physical activity. I don’t want a clunky bag with unnecessary pockets and components; I want something easy to carry even if it means looking a little more plain. When I’m doing a lot of physical activity, I’m going to feel more stressed out. That’s why choosing a simpler bag to avoid unnecessary panic when digging for items in my bag would be smarter. People think differently when they’re under pressure or anxious

Her Code Got Humans On The Moon

I had known that women were a crucial part of the start of computer programming from a previous media class that talked about computers and the necessity of a female workforce during WWII. However, even when were women were working on the same things as men, they were portrayed in media as doing clerical or busy work. They weren’t acknowledged for how much they contributed. These were women with degrees in mathematics and various STEM fields looked down upon and dismissed despite their qualifications. Going on to the 60s with space exploration, it’s still evident how womens’ opinions aren’t as valued despite how critical they are. Hamilton’s expertise was crucial for Apollo’s success and software engineering as a whole. It’s important to remember that these people were our predecessors and a backbone in the knowledge we have available today. Even though this field has been historically male-dominated, we have to remember that women were a very important part of this field’s emergence.

Week 8 — Reading Response

This week’s readings really brought home a lot of food for thought that I hadn’t thought about before, especially the reading on Margaret Hamilton. I had heard of her prior to reading the article but only that she had done pioneering work in the field of computer science. A part that stood out to me in particular was when they were talking about her daughter playing with the command simulator and accidentally started P01 and how Hamilton wanted to add additional code to act on this possible error scenario but how it was blocked by NASA as unnecessary overhead as all astrounats will be “perfect”. However, an accident actually happened during the Apollo 11 mission when an astronaut mistakenly triggered the same program sequence, causing them to be stranded. This indicated to me that even when a woman is exceptionally intelligent and has made significant contributions, her expertise can still be undervalued or dismissed. Hamilton’s insistence on prioritizing safety and anticipating human error by putting it in the documentation, after being overruled, demonstrated to me how women in STEM have often had to fight harder to have their opinions recognized, even when their ideas ultimately prove to be crucial. It personally resonated with me quite a bit, especially as someone who has also witnessed this type of discrimination within my major, asymmetrically affecting my female peers, including myself. This story, to me, serves as an inspiration to be more vocal about my opinions, be experimental and creative, and most importantly, to trust myself more.

The other reading, Attractive Things Work Better, also gave me a new perspective on design and usability. It discussed how aesthetics influence not just our perception of a product but also our ability to use it effectively. The idea that people are more tolerant of minor usability flaws in visually appealing designs was really intriguing with me. It made me think about how often we associate beauty with functionality, even in cases where the two aren’t directly related. This reading helped me see how emotional responses to design can impact user experience in ways I hadn’t considered before, specifically for physical objects. For example, for software, I can imagine that the design aspect of UI is heavily correlated to its usability aspect of it, since clear signals have to be designed (aesthetically AND functionally) in a way that doesn’t disturb the user experience.

Week 8 – Unusual Switch

Brainstorming:

I had a hard time coming up with a unique switch idea, but my process entailed coming up with different body parts that can be used to put pieces of metal together. I thought back to a design class I took in the past and how the professor talked about accessible design; she mentioned doors with handles that turn like this which don’t require you to use your hands. You can use your elbow for example to rotate the handle and from there, pull with your elbow as well. Sometimes, when I have dirty hands from eating food, I’ll use my elbow to open doors like this to access the bathroom. 

I decided to use my elbow to trigger a switch. I taped a wire to my elbow and had a strip of copper tape on the table. This copper strip had the other part of the circuit taped to it, so as soon as the wire on my elbow comes into contact with the copper strip, a bunch of LEDs should turn on.

My first attempt was a bust. I just took the two wires connected by the buttons and put them together, but I realized that it took a while for the LEDs to turn off. I looked at the serial monitor and saw that the button was technically “on” (1) even after the circuit was broken. I realized after a while that it was because I didn’t ground the circuit. With the button and breadboard, a resistor is connected to the wire and goes to GND.

Failed attempt:

After realizing this, I taped the resistor and second wire together so that the electrons can go to GND and no longer light up the LEDs. Now, the LED immediately turns off after my elbow lifts up.

F I N A L    V I D E O:

Picture of the setup:Code:

Similar to our in-class code, but this time, I have 4 LEDs. The Serial.println line is very helpful for debugging!

Serial.println(buttonState);
// if button is pressed, turn LED on
if (buttonState) {
  digitalWrite(10, HIGH);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(11, HIGH);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(12, HIGH);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(13, HIGH);  // turn the LED on (HIGH is the voltage level)
}
// if button is not pressed, turn it off
else {
  digitalWrite(10, LOW);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(11, LOW);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(12, LOW);  // turn the LED on (HIGH is the voltage level)
  digitalWrite(13, LOW);  // turn the LED on (HIGH is the voltage level)
}

Looking forwards:

I was thinking since I’m using a strip of copper, maybe I can somehow use the distance between the wires on the copper strip to determine which color LED to turn on. It’d be cool if I can measure how far away the wires are from each other on the copper strip using analog read instead of digital.

Week 8 – Reading response

This post will answer the questions found at the end of the document

1. PART A: Which TWO statements express the central ideas of the text?

  • Hamilton developed important software that was integral to landing
    astronauts on the moon and returning them safely to Earth.
  • The coding that Hamilton took part in on the Apollo program established software engineering, a necessary branch of computer science.

 

2. PART B: Which TWO details from the text best support the answers to Part A?

  • Without it, Neil Armstrong wouldn’t have made it to the moon. And without the software written by Hamilton, Eyles, and the team of MIT engineers, the computer would have been a dud. (Paragraph 13)

  • Software engineering, a concept Hamilton pioneered, has found its way from the moon landing to nearly every human endeavor. (Paragraph 17)

3. According to the text, how did NASA’s understanding of software engineering develop over time?

  • NASA grew to understand the importance of software engineering in the Apollo missions over time

4. How does paragraph 14 contribute to the development of ideas in the text?

  • It stresses how basic computers were and how likely they were to
    experience errors.

 

5.What is the relationship between women’s contributions to and the success of the
Apollo program? Cite evidence from the text in your response.

Women’s contributions, particularly those of Margaret Hamilton, were crucial to the success of the Apollo program as they established the foundations of software engineering that ensured safe space travel. Evidence from the text states, “Without it, Neil Armstrong wouldn’t have made it to the moon,” highlighting how Hamilton’s software was integral to the mission’s success.

 

 

Discussions

1. In the text, the author describes Hamilton as “unusual” because she was a working mother and programmer. What was expected from women during this time? Do you feel like people have expectations for you based on your gender? If so, describe

During Hamilton’s time, women were generally expected to prioritize domestic roles, such as homemaking and supporting their husbands, rather than pursuing high-powered technical careers. This societal expectation made Hamilton’s role as a working mother and programmer “unusual” and “radical.”

As for personal experiences, many individuals may still face gender-based expectations, such as assumptions about career choices or responsibilities in family settings, which can influence their opportunities and societal perceptions.

 

2. In the text, Hamilton is described as loving the camaraderie at work among the programmers including the men. What obstacles do you think Hamilton faced as a woman and mother that her male coworkers at NASA did not?

As a woman and mother, Hamilton likely faced obstacles such as gender bias and skepticism regarding her capabilities in a male-dominated field, which her male coworkers did not encounter. Additionally, she had to balance her professional responsibilities with motherhood, often facing societal judgment for her choices, such as bringing her daughter to work. These challenges highlighted the unique pressures women faced in pursuing careers in technology and engineering during that era.

 

3. Hamilton’s work contributed to the software that allowed humans to reach the moon. How has this technology helped us understand more about space? Do you think developing this kind of advanced software has any disadvantages?

Hamilton’s work in software engineering enabled precise navigation and control of spacecraft, significantly enhancing our understanding of space by allowing successful missions like Apollo 11 to explore and study lunar conditions. This technology has paved the way for further advancements in space exploration, leading to discoveries about other celestial bodies and the universe.

However, developing advanced software can have disadvantages, such as the potential for over-reliance on technology, which may lead to vulnerabilities in critical situations if software malfunctions. Additionally, the complexity of such systems can result in challenges related to debugging and maintenance, which can impact mission success.

 

week 8 reading – norman

The Role of Affect in Design

Norman’s research highlights that affect—both positive and negative—plays a significant role in how users interact with products. Positive affect enhances creativity and problem-solving, which allows users to approach tasks with an open mind. In contrast, negative affect can lead to focused attention, which is beneficial in high-stress situations but may limit creative thinking.

Aesthetics vs. Usability

Norman argues that aesthetics and usability should not be seen as opposing forces but rather as complementary aspects of design. Attractive designs can enhance usability by making users more engaged and tolerant of minor issues. This perspective challenges the notion that usability must come at the expense of beauty, which suggests that a harmonious blend of both can lead to beteter user experiences.

Implications for Design Practices

The findings from Norman’s research have significant implications for design practices across various industries. This emphasizes human-centered design that considers emotional responses can lead to more effective and enjoyable products. This approach encourages designers to think beyond functionality and consider the emotional journey of the user.

Week 8 – Unusual Switch – Wind Detector

Concept

I was initially very intimidated by this assignment, I couldn’t imagine using a switch without hands, but that was the problem, I was tunnel-visioned on the word “switch” that I associate with my index finger. I then saw some examples online and completely ditched the word “switch,” I tried to think about the assignment as linking to metal pieces together, then I started getting a lot of ideas! A couple of days later, I was going through some pictures from back home on my phone. In some picture, I saw a house in the background with a small wind turbine on it’s roof, and that gave me the idea!

 

Setting up

I taped a wire connected to the breadboard on the wall, and put a piece of aluminum foil behind it. The idea of the aluminum foil behind the wire its to create more area for contact with other conductors, that will be useful later on.

You probably are wondering what use is the mentos cap for this project, and to be honest, the mentos cap was probably one of the most important components of this project. It created just the perfect space for the conductor I will soon tape on the cap to not be too close to the wire so its on all the time, nor be too far so wind does not connect the two conductors together.

Here’s a full picture of the project with the circuit, well they’re not the prettiest, but they sure work.

 

 

 Video

Whenever I blow on the circular foil, the green LED turns on.

 

Code

The code to this project is honestly really really simple, I used  the same code for the button example from the examples dropdown, I just modified it a little bit.

void setup() {
  Serial.begin(9600);
  pinMode(A2, INPUT);
    pinMode(13, OUTPUT);

}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(A2);
  Serial.println(buttonState); // debugging
  if (buttonState == 1) {
    digitalWrite(13, HIGH);  // LED ON
  } else {
    digitalWrite(13, LOW);   // LED OFF
  }


}

 

 

Week 8 — Unconventional Swtich

Ideation

I was initially very intimidated by the idea of having to create a switch that didn’t use our hands (to turn on a switch, I’m assuming), especially after seeing the trash can example since it seemed like a relatively complicated example. However, I looked at a couple more examples from other students and it seemed like the idea itself had to be creative rather than the technical aspect being advanced. I almost immediately knew that I wanted to work with something that had to do with food utensils, then I thought of chopsticks. In Korea, people use chopsticks as their main utensil to eat but I always thought that it would act as an interesting pair of drumsticks.

Process

I replicated the switch circuit that we made in class then decided to use alligator tongles to collect the wires to one of each of the chopsticks. At first, I thought to use electricity-conducting tape, but then I had a hard time finding them in the lab so I decided to use the tongles. After I knew it worked by using one of the LED bulbs, I thought something more could be added to make the project more musical. This is when I decided to integrate a speaker into my circuit. I watched this tutorial to get a grasp on how to connect and play audio from Arduino then use the example code 02. Digital > toneMelody and integrated it into my switch code to play a sound when I’m hitting the chopsticks together.

Code Highlight / Obstacles

One part of my code that I’m particularly proud of is how I figured out the correct Arduino melody chords to play on the speaker. Unlike conventional musical notation, Arduino represents notes using predefined frequency values rather than standard sheet music notation. This means that converting a melody from traditional sheet music to Arduino code requires understanding how the notes map to Arduino’s tone() function.

To start, I searched for the chorus notes of We Will Rock You on the piano and found a beginner-friendly sheet music version. The melody consisted of the notes F, E, D, C, D, and D in the fourth octave. Since Arduino uses a different notation system, I used ChatGPT to convert these piano notes into corresponding Arduino frequency values.

After generating the initial translation, I decided that the melody sounded too low, so I asked ChatGPT to shift the notes up by one octave. This adjustment results in the notes F5, E5, D5, C5, D5, and D5, which gave the melody a brighter and more distinct sound when played through the speaker.

const int melody[] = {698, 659, 587, 523, 587, 587};

In addition, one part that I also struggled with was making sure that the notes incremented by 1 each time that the switch was turned on since in the loop it kept going around in the same-ish notes because I had initially put the noteIndex increment in the else statement. So I instead created a boolean variable that would be set to false and then set to true once I hit the chopsticks together for the first time. After that, there was an else statement that would check if first was true, and only then increment the noteIndex and set first back to false. This way, the note only advances once per button release, preventing the loop from rapidly cycling through all the notes while the button is held down.

if (switchPosition == HIGH) {
  first = true;
  digitalWrite(ledPin, HIGH);
  tone(speakerPin, melody[noteIndex]);
} else {
  digitalWrite(ledPin, LOW);
  noTone(speakerPin);

  if (first) {
    noteIndex = (noteIndex + 1) % 6;
    first = false;
  }
}

Watch my live demo in class hehe 🙂

Week 8: Unusual Switch

Concept

My switch is based on the sleepless student stereotype, where students are often so sleep-deprived that they fall asleep in their classes. This phenomena, while at times may be attributed to time management (I can attest ), is not entirely so. Scientific research has demonstrated that students do better with later school start times, as teenage brains typically track a circadian rhythm that makes it difficult to fall asleep before midnight.

Thus, to counteract this sleepy-student syndrome, I have designed a switch using a pressure-sensitive resistor and buzzer, powered by a basic voltage divider circuit. My pressure-sensitive resistor is placed underneath a pillow, on a desk. Then, if a sleep-ridden student accidentally places their head on the pillow, it will adjust the resistor and trigger the switch, sounding the wake-up alarm to bring them back to consciousness.

Week 8: Reading Response

Her Code Got Humans on the Moon

I found a lot in this article particularly interesting and inspiring. One aspect of Margaret Hamilton was all of the challenges that she had to overcome to be where she ended up. Beyond being an incredible scientist, she had to be comfortable being the only woman in many of the spaces she occupied. In this regard, she was a definite trailblazer.

One line that stood out to me, however, was “I was one of the guys.” From what I’ve experienced (and my colleagues), STEM is a highly male-dominated field, and often caters to a very specific “guy culture.” It can be ostracizing for those who may not fit into the “guy culture,” dynamic.

All of that to say–I am remarkably inspired by Margaret Hamilton’s story–but I fear how many scientists we must have lost out on because they didn’t have a personality that fit into “guy culture.” I love the story of Margaret Hamilton, but wonder if she would have been held back if her personality was less compatible to the cultural expectation? To be explicit, this is in no way a critique of Margaret Hamilton–she is surely entitled to her own personality and cultural preferences. I am instead calling out the “one of the guys,” culture that many men likely imposed then and still impose now. Why don’t we be a bit more accepting of whatever culture bright scientists bring to the table–regardless of how it may or may not conform to existing expectations?

Attractive Design

Designing systems that feel intuitive is surely a skill, which does not necessarily come naturally to many of us. However, I can definitely agree with the article, in that tools that feel nice to use genuinely just make me feel better. The value of a pleasant looking UI and sensible inputs cannot be understated. This, in my opinion, is one of the essential reasons that Apple has such a prolific market share: They understand how to engineer products that users will enjoy using.

Reading this article made me remember a talk given by Prof. Scott Shenker, where he mentioned about how engineers typically find joy in mastering complexity. However, systems that require mastering complexity is often diametrically opposed to intuitive user design. In other words, while engineers may find joy in learning to understand complex systems so that they can interact with them effectively, the average user does not want or need to understand this complexity in order to interact with something in a simple way.

We may also introduce additional nuance, however, considering how there’s often a balance between tools for experts and tools for non-experts. Microsoft Excel may be a nice example, where non-experts can generally make a basic table with almost no guidance or prior knowledge of working with the software. However, put an accountant down in the same seat and watch them setup the most complex formulas and use every keyboard shortcut you didn’t know existed. This exemplifies a system that is generally usable to anyone, but is increasingly useful to those who truly know it.

The program that made me consider this paradigm was actually the Vim text-editor, which is infamous for being unusable to new users. However, once you learn the in and outs of it, I can confirm that it’s almost impossible to start using any other text-editor. The keyboard shortcuts are just too useful, and too enjoyable, to go back to anything else–despite the incredibly unintuitive design.

Another example of this is the Rust programming language, which also has an incredibly steep learning curve. To be honest, I had to take Computer Systems Organization before Rust really clicked in my brain. Yet, despite the high barrier to entry, Rust consistently is ranked as a developer favorite–above Python and JavaScritpt. Rust genuinely feels fun to program–even when you’re struggling through the basics. To me, these two examples come down to ergonomics. Despite their high complexity and profound lack of intuitive design, the thoughtful ergonomics more than compensate–providing an overall unique experience.