week 11 – group assignment (maya)

1st exercise: 
We used the existing example: Week 11 Bidirectional serial communication(p5js Sketch) to fulfill the 1st exercise. We created a new variable “moveEllipse” to map the alpha value to the canvas width. We then used our variable as the x-position of the ellipse, successfully enabling the ellipse to move from one edge to the other as the potentiometer value increased.

let moveEllipse = map(alpha, 0, 1023, 0, width);  
//
stroke(0);
ellipse(moveEllipse, height / 2, 60);

2nd exercise:
Editing that same example, we added the bouncing ball javascript from p5.js: https://editor.p5js.org/icm/sketches/BJKWv5Tn . The LED becomes brighter when the ball moves towards the right edge of the canvas. Conversely, the LED becomes dimmer when the ball moves towards the left edge of the canvas. We edited the arduino to replace digitalWrite with AnalogWrite to enable the control of the LED brightness.

//
let x = 320;
let y = 180;
let xspeed = 3;
let yspeed = 2;
let r = 25;

//
  ellipse(x, y, r*2, r*2);
  // mapping brightness to canvas width
  let rightValue = map(x, 0, width, 0, 255);
  right = int(rightValue);
  //
  x += xspeed;
  y += yspeed;
  if (x > width - r || x < r) {
    xspeed = -xspeed;
  }
  if (y > height - r || y < r) {
    yspeed = -yspeed;
  }
}

3rd exercise: https://youtu.be/YFucULMGidI

I took the main structure of the code from the exercise we looked at in class- where we had to press our spacebar to connect to our board. There, I added the code with the bouncing ball given to us through this link: https://editor.p5js.org/aaronsherwood/sketches/I7iQrNCul

The approach was to call bounceBall() function once the serial is activated, where p5js will continuously send touch value (1 means it touched the ground and 0 means it’s above ground) to the arduino. In return, the arduino would send lightStatus value (the input read from the light sensor). If the received value is bigger than 500, the wind blows from left to right and right to left if the value is smaller than 500.

arduino:

int ledPin = 5;
int lightPin = A1;
int lightStatus;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(lightPin, INPUT);

  // start the handshake
  while (Serial.available() <= 0) {
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("0");
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(100);
  }
}

void loop() {
  while (Serial.available()) {
    digitalWrite(ledPin, HIGH);

    int ledLight = Serial.parseInt();
    lightStatus = analogRead(lightPin);
    if (Serial.read() == '\n') {
      digitalWrite(ledPin, ledLight);
      delay(50);
      digitalWrite(ledPin, LOW);
      Serial.println(lightStatus);
      delay(5);
    }
  }
  digitalWrite(LED_BUILTIN, LOW);
}

Week 11 Reading Response

In Graham Pullin’s book, “Design Meets Disability,” he thoroughly discusses the importance of considering design factors in medically designed equipment for disabled individuals. In our evolving world, design plays an increasingly prominent role. Pullin proceeds to showcase various objects used by disabled people and explores how design can be integrated into them. While it’s commendable that he emphasizes design and aesthetics in medically designed equipment, my concern grows regarding how these designs might ultimately impact the overall affordability of such equipment.

Pullin suggests renaming wheelchairs as “chairwear” and hearing aids as “hearwear,” advocating for a shift from a medical to a consumer-oriented model. While the idea of personalized and fashionable devices is appealing, the incorporation of fashion and aesthetics may lead to higher demand, subsequently driving up prices and potentially making it challenging for disabled individuals to find specific equipment.

Disabled individuals would have a wide variety of colors, models, and designs to choose from when selecting medical equipment, a positive aspect. However, as the fashion industry becomes more competitive and expensive if medical equipment like hearing aids becomes overly equipped with designs and aesthetics, multiple brands might sell them at higher-than-usual prices. While this might not seem like a significant issue for those seeking both functionality and aesthetics, the increased prices could significantly affect individuals in lower economic statuses who urgently need medical equipment.

Due to the heightened demand for attractive medical equipment, the market may shift towards selling designer medical equipment at higher prices. Lower-status individuals may struggle to find affordable and reliable medical equipment, as cheaper options may incorporate less attention to electronics and have a higher tendency to malfunction. While Pullin’s consideration of beauty and design features within medical equipment is positive, it could jeopardize the easy access, affordability, and reliability of essential medical equipment. Unlike other fashion products that can be expensive and disposable, disabled individuals need proper equipment to perform tasks without difficulty or exposure to potential dangers caused by malfunctions.

An illustrative example of medical equipment seamlessly incorporating aesthetics and design is glasses, not for fashion but for medical purposes. In the past, medical glasses were simpler and affordable for everyone. However, due to the growing trend of glasses as a fashion accessory, many fashion industries sell proper medical glasses at much higher prices. In today’s world, purchasing only the lenses has become significantly costlier due to their high demand.

The absence of a substantial discussion on the affordability and democratization of these design solutions is a noticeable gap. Designing for disability, as Pullin suggests, should not only evoke positive images but actively address financial barriers. It is crucial to ensure that the benefits of resonant design reach a broad and diverse demographic, not just those with the financial means to engage in a boutique-style consumption model.

Week 11 – Reading Reflection

In “Design Meets Disability”, I found myself agreeing with most of the author’s arguments, especially when it came to balancing problem-solving and playful exploration in design. However, while I believe that products for people with disabilities could be more playful and focused on aesthetics, I also recognize that personal preferences vary. Some individuals may prefer traditional products that mimic the human body, while others may lean toward more fashionable or visually appealing options. Recognizing this diversity of taste and choice is essential.

 

Moreover, in exploring the history of design and utility in products for people with disabilities, the reading provided intriguing insights. It was interesting to learn about the various examples, such as glasses becoming more of a fashion item in some cases. This highlights the cultural role that fashion plays in the acceptance of products designed for individuals with disabilities, but it makes sense if you think about it. It is much easier to make glasses look more visually appealing than let’s say crutches because glasses are not as invasive and can sometimes even enhance visuals. From a positively stereotypical perspective, they can sometimes make someone appear smarter or more intellectual, but I cannot think of any appeal in a lot of other products for people with disabilities.

week 11 – reading reflection

I agree with the author’s perspective that adopting a discreet design for “aids” may not be the optimal choice. This approach perpetuates the notion that these aids conflict with societal norms and thereby draw undue attention, and so should be concealed. This inadvertently contributes to the stigmatization of disabilities in general, reinforcing the idea that it is something to be embarrassed about. Nevertheless, I understand that individuals with disabilities may desire discrete designs due to probable negative attention towards their conditions. Society often reacts adversely to things that deviate from the norm, leading some to prefer aids that blend in. Considering the limited market for disability-related products, it may be pragmatic to focus on designs that cater to the majority rather than a smaller fraction of individuals who embrace their disabilities and seek products that stand out.

I resonate with the notion that the lack of stigma surrounding bad eyesight is attributed to the normalization of glasses as a fashion accessory. The integration of glasses into everyday wear, regardless of bad/ good eyesight, has contributed to their acceptance and reduced their visibility as a medical aid. This normalization could serve as a valuable model for the design of other aids, reducing the perception of these devices as conspicuous or abnormal. The article’s observation about the exclusion of designers in the creation of aids, such as prosthetics and hearing aids, is particularly poignant. It seems paradoxical that individuals who themselves may use aids are not involved in their design. This exclusion perpetuates the categorization of aids as purely medical products, further intensifying the stigma associated with bodily “aids”. Inclusion of designers with personal experiences of using aids could offer valuable insights, bridging the gap between functionality and aesthetic appeal and challenging the prevailing stigmas associated with these essential tools.

week 11: class exercise

 

  1. make something that uses only one sensor  on Arduino and makes the ellipse in p5 move on the horizontal axis, in the middle of the screen, and nothing on arduino is controlled by p5.

I took the existing Arduino and p5 code that we saw in class, and simply added this line in the p5 loop() function:

// move ellipse
ellipse(map(alpha, 0, 1023, 0, 640), width/2, 55, 55);

This allowed me to control the horizontal position of the ellipse by turning the potentiometer.

 

2. make something that controls the LED brightness from p5Again, starting with the same code, I just made some adjustments. Here’s the relevant part from the p5 code:

if (!serialActive) {
    text("Press Space Bar to select Serial Port", 20, 30);
  } else {
    text("Connected", 20, 30);

    // Print the current values
    text("rVal = " + str(rVal), 20, 50);
    text("alpha = " + str(alpha), 20, 70);
    
    mouseXMapped = map(mouseX, 0, width, 0, 255);
    right = int(mouseXMapped);
    mouseYMapped = map(mouseY, 0, height, 0, 255);
    left = int(mouseYMapped);
  }

This just informs the Arduino of the mouse’s X and Y coordinates.

On the Arduino code, I connected both LEDS to PWM capable ports, and simply added these two lines:

analogWrite(leftLedPin, left);
analogWrite(rightLedPin, right);

The brightness of the left LED increases as the cursor moves to the bottom of the p5 window, and the brightness of the right LED increases as the cursor moves to the right edge of the p5 window.

3. take the gravity wind example (https://editor.p5js.org/aaronsherwood/sketches/I7iQrNCul) and make it so every time the ball bounces one led lights up and then turns off, and you can control the wind from one analog sensorVideo

demo: https://www.youtube.com/shorts/-m7XMTdTVoUI

made the potentiometer control the wind speed (mapped from -1 to 1), and the blue LED blinks whenever the ball comes in contact with the ground. Here’s the complete p5 code, and I left the Arduino code almost untouched, except for a small delay after the LED blinks once, just to make it less jittery.

if (Serial.read() == '\\n') {
      digitalWrite(leftLedPin, left);
      if (left == HIGH) {
        delay (100);
      }
      int sensor = analogRead(A0);
      delay(5);
      int sensor2 = analogRead(A1);
      delay(5);
      Serial.print(sensor);
      Serial.print(',');
      Serial.println(sensor2);
    }

 

Reflection – Week 10

Interaction Design

Bret Victor’s critique of the current state of interaction design grabbed my attention because I hadn’t really delved into thinking deeply about existing interaction designs before, nor had I formed a strong opinion on the matter. According to Victor, the current approach lacks boldness and visionary thinking, urging a shift beyond established norms to cultivate a more ambitious perspective for the future. While I agree with his viewpoint, transitioning from familiar interaction patterns to something entirely different is not a simple task. People need time to adapt to new lifestyles and products, so changing how we interact with technology may require considerable effort and adjustment.

Considering the evolution of current interaction technology, it becomes apparent that what we have today likely originated from visionary ideas but underwent gradual enhancements over time. As I understood it from the subsequent response, Victor’s vision revolves around the concern that contemporary and future technology might limit our mobility. I believe that the trajectory of people’s vision for interactive technology has remained somewhat consistent. Victor’s frustration with incremental changes to existing products resonates with me, as I think we need to strike a balance. Some technologies, like iPads and iPhones, are user-friendly and effective, but there’s a need to transition to more actively interactive technology  and something that involves more of our senses that we are naturally utilizing without fully realizing and without compromising physical health. Achieving this shift would require engaging brainstorming, diverse suggestions, and expertise from various fields to make it both interesting and feasible.

Week 10 Reading Reflection

A Brief Rant on the Future of Interaction Design

From a personal point of view, I think that the main point of this text might be misunderstood by a lot of people. More than anything, because the follow-up article is a key part that adds context, depth, and information to the author’s rant.

In any case, I agree with a big part of the ideas presented in the text. However, it is not clear to me whether the problems presented should be taken with the same heaviness the author mentions. The reason behind this is none other than the feasibility of a solution to the problems that the author mentions. I believe the critique makes total sense because it gives value to the other mobility functions of the human body. However, finding new methods of interaction that the common user would prefer over traditional ones is not an easy task. If it helps, we never imagined leaving the mouse and keyboard behind, and here we are, using touch screens in everything. Considering how old this article is, it makes sense for the author to say that we should leave touchscreens behind eventually. But, after 10 years, we clearly haven’t moved on.

A follow-up article

As I mentioned before, the idea of a “rant” was confusing indeed. Most readers expect to find a solution to the problems presented in the previous text, but none were found. This is simply because most people will not get the main point of this text. The text does not imply that a solution will be found any time soon, but the opposite: the main objective is to inspire and motivate people to start researching for an answer.

I personally think he makes a great point in his ideas for the future. This doesn’t mean either I can provide a clear answer to the problems that he proposed back in his rant, but I can definitely say that reading his post encouraged me to start thinking about them.

Week 10 Production – Instrument

Concept)
There were two conditions I wanted to meet when creating this instrument
– it should involve both hands
– it should be able to play different notes separately  (i.e. the sound is not continuous)

It naturally made sense to have one of the hands be responsible of how long a note should be played, and the other hand to specify the note. I saw different videos for inspiration and saw instruments that use the distance to decide the note to be played.

Production)

Code)

int trig = 10;
int echo = 11;
int light = 5;
long  duration;
long  distance;
int   buttonState;


void setup() {
  pinMode(echo, INPUT);
  pinMode(trig, OUTPUT);
  pinMode(light, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  duration = pulseIn(echo, HIGH);
  distance = (duration / 2) * 0.0344;
  /*
    duration = time it took for ultrasonic pulse to travel to and back from the object
    distance equation: conversion from duration to distance
    because the duration includes the travel time to and back from the object, 
      divided by 2
    multiplied by 0.0344: speed of sound in air (in room temperature
                            = 343 m/s ==> convert to cm
  */


  int notes[7] = {261, 294, 329, 349, 392, 440, 494};
  //C, D, E, F, G, A, B

  buttonState = analogRead(A1);

  int sound;

  if (distance < 0 || distance > 50 || buttonState < 100) {
      sound = -1;
  } else if (distance <= 5) {
      sound = 0;
  } else if (distance <= 10) {
      sound = 1;
  } else if (distance <= 15) {
      sound = 2;
  } else if (distance <= 20) {
      sound = 3;
  } else if (distance <= 30) {
      sound = 4;
  } else if (distance <= 40) {
      sound = 5;
  } else {
      sound = 6;
  }

  if (sound != -1) {
      digitalWrite(light, HIGH);
      Serial.println(sound);
      tone(12, notes[sound]);
  } else {
      noTone(12);
      digitalWrite(light, LOW);
  }

}

I think the most interesting part of this code was figuring out how to convert the duration to distance, and the distance to different notes.

Future Improvements)
I think it’s be interesting if I can connect a force censor, for instance, to create the beat on the background. Then, it would have a simple instrument that consists of the base beat (like a drum) and the melody part through the hands.

Week 10 – Reading response

I get where the author is coming from about how our current way of interacting with tech might be a bit limiting. Using just our fingers on touchscreens seems a tad one-dimensional. But here’s the thing: the touch-and-swipe tech we’ve got now is pretty complex and convenient as is. It’s taken us a long way, and I’m all for making things better. However, I think there’s a sweet spot. We don’t necessarily need more complexity for the sake of it; we’ve got a good thing going. What we really need is to make tech simpler and more accessible, especially for humans with disabilities. Let’s not complicate things for everyone; instead, let’s focus on tech that works for everyone, regardless of their physical abilities. That’s where the real magic lies.

however, this is where I partially agree As one person stated in the follow-up article “My child can’t tie his shoelaces, but can use the iPad.” I’m with the idea that they should step up their game, tapping into the full potential of our grown-up minds and bodies. Referring to tools dumbed down for kids as “toys”? The analogy about channeling all interaction through a single finger to limiting literature to Dr. Seuss’s vocabulary is like a lightbulb moment. Sure, the one-finger tech is more accessible, but I also believe, we adults deserve a lot more sophisticated technological interfaces that go beyond simplicity for the sake of it.

Assignment 10 – IM (Ivan & Muhammad) Techno

Concept

It took a while for us to come up with a properly functioning musical instrument with a decent sound. At first, we tried to incorporate an ultrasonic sensor for controlling the height of a sound, a servo motor to create a beat, and a flex sensor for controlling the duration of the notes. It turned out to be fine, but we weren’t satisfied with the quality of the sound or its instability. After a little experimenting, we finally decided to use transistors to amplify the sound, which gave the music a feel of the techno genre.

Technical structure

We decided to use a transistor to amplify the signal to the speaker. Moreover, we added an external 9V power supply to power the speaker, and these additions greatly enhanced the volume and clarity of the sound. The potentiometer controlling the volume is connected in series with the input signal to the speaker from the Arduino, and so the physical reduction of the voltage of the signal by adjusting the resistance of the potentiometer controls the volume. Therefore, we use the potentiometer as a variable resistor instead of an input here.

On the other hand, the potentiometer used for the delay is used to get analog input to the Arduino, which is then used to control the delay interval in code. This is just a way to showcase the different use cases of the same components.


Video demonstration:

 

Code

int mapDistanceToIndex(float distance) {
  // Map distances into array index (2 cm steps from 5 cm to 15 cm)
  // int index = constrain((distance - MIN_DIST) / 2, 0, ARRAY_LENGTH - 1);
  int dist = int(distance);
  int index = constrain(map(dist, MIN_DIST, MAX_DIST, 0, ARRAY_LENGTH - 1), 0, ARRAY_LENGTH - 1);
  return index;
}

void loop() {
  float dist = getDistance();

  noteDuration = map(analogRead(OFFSET_DIMMER), 0, 1023, 100, 500);

  if (millis() - noteStartTime >= noteDuration) {
    // noTone(SPEAKER_PIN);
    // delay(10);
    // Play a funky note continuously based on the distance range
    if (dist >= MIN_DIST && dist <= MAX_DIST) {
      int note = FUNKY_NOTES[mapDistanceToIndex(dist)];


      Serial.print(dist);
      Serial.print("cm ");
      Serial.print(note);
      Serial.print("HZ");
      Serial.print(" with duration = ");
      Serial.print(noteDuration);
      Serial.println();

      // Check if the note duration has elapsed, then check for a new note


      // If the note has changed, start a new note
      if (note != lastNote) {
        lastNote = note;
        tone(SPEAKER_PIN, note);
        noteStartTime = millis();  // Record the start time of the current note
      }
    } else {
      noTone(SPEAKER_PIN);
    }
  }

Reflection

We have succeeded in creating a new instrument that wouldn’t just become the replication of already existing ones. Furthermore, we had a chance to experiment with new sensors and get experience working with transistors and potentiometers, implementing them in one project. We believe there’s more potential for this project, especially if we could use the mp3 files. Nevertheless, we had fun working on this project, experimenting with Arduino.