Week 11 – Reading Reflection

According to the World Health Organization, 1.3 billion people, or 16% of the population, have significant disabilities. With the invention of new technology, most of the disabilities can be treated, providing a person with a relatively normal lifestyle. However, there’s a stigma posed by society that makes it treat people with disabilities differently, which complicates the process of socialization for them. And design, along with fashion, can be a great force in transitioning people’s beliefs towards accepting and equalizing our society. While I was reading, I was curious to find out how glasses, being an attribute of people with sight problems, have become an essential object of fashion in recent decades.

I believe that there should be more investments in the field of biological and medical advances that would enable the group of people with disabilities to enjoy life and implement their intellectual abilities. Design should become the transitional power to understand and accept people with disabilities, but there’s still a long way to go until people with disabilities are treated equally in most of the world.

Final Project Ideas

Idea 1

I would like to combine my midterm project with the final project, creating a tool that allows a person to learn to play the piano with a midi keyboard. My sketch on P5 will offer a user a variety of songs and an opportunity to add unique ones. The key that needs to be pressed will be shown on the screen, and if the right key is pressed, Sketch will show the next key.

Idea 2

During the last reading, I came up with the idea of creating a device that would allow blind and deaf, or blind people to read Braille. It would look like a small platform for a finger, which will have six points. The device will elevate the points according to the letters they represent in Braille. The user will be able to control the speed of the reading and upload their own text.

Week 11 Exercises

Exercise 1

function draw() {
  background(250, 200, 152);

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

    // ellipse
    fill(255, 0, 0);
    ellipse(map(rVal, 0, 1023, 0, width), height / 2, 100, 50);

Link to the sketch: Sketch Exercise 1 

Exercise 2

function draw() {
  background(250, 200, 152);

  if (!serialActive) {
    print("Press Space Bar to select Serial Port");
  } else {
    brightness = Math.floor(map(rVal, 0, 1023, 0,255));
    right = Math.floor(brightness);

The only change in Arduino code I made was using analogWrite instead of digitalWrite.

Link to the sketch: Sketch Exercise 2

Exercise 3

function draw() {
  if (!serialActive) {
    print("Press Space Bar to select Serial Port");
  } else {
    if (state == 1){

    if (position.y > height-mass/2) {
      velocity.y *= -0.9;  // A little dampening when hitting the bottom
      position.y = height - mass/2;

    if (position.y >= height - mass/2 - 5) {
      left = 1;
    } else {
      left = 0;

  wind.x = map(rVal, 0, 1023, -1, 1)

For this sketch, I used the state machine to allow the Arduino to load before the ball starts to fall. Otherwise, the LEDs wouldn’t work properly.

Link to the sketch: Sketch Exercise 3

Video demonstration: VIDEO

Assignment 10 – IM (Ivan & Muhammad) Techno


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:



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("cm ");
      Serial.print(" with duration = ");

      // 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 {


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.

Week 10 – Reading Reflection

When I was young, I used to watch fiction movies portraying the future. I’ve seen that the vision of it shifts significantly over time because, whereas filmmakers strive to develop pre-existing technologies, inventors revolutionize them by bringing in new ideas and perspectives on the world. For instance, I recall the old movie where the main characters could instantly get any book, which would appear in a special box if they said its title. Right now, with the invention of the Internet and smartphones, we can get the same result, but the way we do it is remarkably different. In that sense, I absolutely support the position of Bret Victor about stopping to visualize our future as an advanced version of the present, but rather thinking about how we might revolutionize it and create something entirely new.

Regarding the use of “Picture Under Glass”, I believe it will still be used for at least 3 decades, but personally, I would like to see the transition to the new form of control. Bret Victor promotes the idea that, similar to how we use physical objects and tools, we should use technology in a naturally human way. More or less, I support the idea of involving human actions as a way of controlling things, but I don’t think that it’s the only way to go, as it’s hard to see the world where every control will involve action or physical sensation. It may be implemented alongside other technologies, but not as the only path to technological development.

Week 9 – Reading Reflection

Making Interactive Art: Set the Stage, Then Shut Up and Listen

While reading the article, I resonated a lot with the author. I do believe that artists should create a space where the mind of a person experiencing the artwork can feel free to explore. By doing so, the artist can not only analyze how interactive and understandable the artwork is, but also take a look at their own work from different perspectives.

The other great point was about not making people adopt the author’s interpretation of the work. I do believe that every artwork should find its own unique place in a person’s mind. And that’s why the idea of artwork having only one interpretation doesn’t make any sense to me.

On the other hand, I do believe that for complex projects, guidance for the user is necessary, even though it can be interpreted as “giving a user a way of doing things”. But otherwise, the initial idea of creating a free space doesn’t see the light because the user may not be able to enter that space.

Physical Computing’s Greatest Hits (and misses)

I really enjoyed the idea described in the first paragraph that it’s worth doing something that has already been done because there’s always room for originality. But I also believe that humans should be inventors, and before pursuing any type of work, think if there’s something more that can be done.

The article gave me ideas that can be used in the projects. I saw most of the ideas mentioned in the article being implemented in real life. Particularly, I see a lot of room for originality in the project involving gloves.

Assignment 9 – “Don’t steal my Arduino UNO Part 2”


For this assignment, I decided to advance my first assignment by using an analog sensor (ultrasonic range finder) to calculate the distance to the object, indicating if it has been moved too far from the sensor.

Technical structure

For the digital switch, I used the one from the last assignment, where the conductive fabric was used to complete the circuit when an object touched the wires. When it happens, the blue LED lights up.


As I mentioned earlier, for the analog switch, I decided to use the ultrasonic range finder. It turned out that working with this sensor is quite easy; however, while I was testing the sensor, I found that sometimes the waves go through the object (e.g., hands), and the sensor detects dramatic changes in distance, which makes it slightly inaccurate.

The program is constantly checking the distance to the object, and when the distance detected is more than 10 cm, the red LED starts fading.


void loop() {

  digitalWrite(trigPin, LOW);

    digitalWrite(trigPin, HIGH);  

    digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH);
  distance = (duration*.0343)/2;

  if (distance >= 10){
    analogWrite(led, brightness); // set the brightness of pin 11:
    brightness = brightness + fadeAmount; // change the brightness for next time through the loop:

    // reverse the direction of the fading at the ends of the fade:
    if (brightness <= 0 || brightness >= 255) { 
      fadeAmount = -fadeAmount;

    // wait for 3 milliseconds to see the dimming effect
  } else {
    analogWrite(led, 0); // turn off the light if the object is within 10 cm distance

  Serial.print("Distance: ");  


In this part of the code, the loop function for the project is described. The first part controls the functionality of the switch, and starting with the if function, the red LED is being controlled. In line 11, the duration is multiplied by 0.343 because the speed of sound in centimeters per microsecond is .0343 c/μS. Then it’s being divided by two because the sound waves travel to the object and back.


Link to the video: Assignment demonstration


While working on the assignment, I realized that making a theft detection device is not as simple as it seems to be. The device I created can be easily bypassed by placing another object in front of the sensor. But if the person is not aware of how the system functions, the device can be used successfully. I enjoyed working with a new sensor, and I hope to expand my knowledge of Arduino more.

Sources used:

“Getting Started with the HC-SR04 Ultrasonic sensor”


Assignment 8 – “Don’t steal my Arduino UNO”


For this assignment, I tried to come up with a functional switch that could be potentially used in real life. As it was my first time working with electronics, I found it very interesting to explore different tools and materials that could be used in the project.

After some consideration, I decided to create a theft detection switch that is triggered when an object is taken out of the place. One of the complications I had to solve was to make a switch more convenient by not connecting the wire directly to the object that was being tracked.

Technical structure

For this switch, I used conductive fabric, which was put on the back of the object. I secured two wires on the table, one of which was connected to an Arduino Uno, while another was connected to a solderless breadboard. When an object is lying on the wires, the circuit completes and the LED lights up. The moment you take the object from its place, the LED goes out.


Link to the video: Switch_demostration


I really enjoyed working with electronics, and I see how many things can be done using them. I’m glad I managed to find a practically usable switch that could be potentially used in future work. I’m looking forward to learning more about Arduino and creating more and more sophisticated projects.

Week 8 Reading Reflection

I’ve always been aware of the importance of aesthetics in design and how greatly it changes the perception of objects, websites, apps, etc., and Donald Norman’s article proved such a position to be right. Even though the whole article was dedicated to the positive and negative affects, I would be more interested to see the author’s point of view on what a positive and negative affect is and how the processes in our brain and the system of human perception influence our view of pleasuring and unaesthetic things. How does a person decide whether something is pleasurable or not? How big of a difference in perception is there between different people? Is there a universal understanding of pleasant-looking objects and unpleasant objects? Someone may say that humans like following patterns, and we may see this concept date back far into human history. But what about transitions, smoothness, sharpness, and color palette—concepts widely used in art? What neurobiological processes are responsible for recognizing pleasurable things?

Furthermore, I believe that humans are limited in recognizing aesthetics in such a way that there are no other creatures whose perception of things would be on a higher level than ours and who could communicate with us. Everything that is being produced is limited by a human’s mind, even though it’s conceptually very broad. I’m wondering how different our world would be if we could see how creatures on a higher level perceived the world, and would we be able to understand them at all?

After reading the article about Margaret Hamilton, I was very surprised to find out that she was one of the founders of the software engineering industry. Being interested in astronautics, I’ve gone through many materials dedicated to the Apollo program, but I can’t remember her name being mentioned. I believe that she deserves much more recognition for what she has done to advance technology and humanity.

Midterm Project – Virtual piano experience


Link to the sketch: https://editor.p5js.org/MR_Shark/full/oYWGrKk87

My initial idea for the project was to give a user an opportunity to experience playing the piano. While working on my project, I realized that I could create not only a musical instrument simulator, but I could also create a whole educational project aimed at teaching people how to play simple piano pieces. Furthermore, this project can provide people with a tool that could give a partial overview of what it feels like to play the piano without acquiring an actual instrument.


The user experience begins with a start screen and the music piece composed by Ludovico Einaudi – “Fly”


Clicking on the screen takes the user to the actual piano simulator.

The keys are assigned to the user’s keyboard so that they replicate the actual piano experience. However, due to the limited width of the computer keyboard, the piano is divided into two halves.

The octaves from 3 to 5 are available to the user as they cover the scope of the most compositions.

Clicking the buttons at the bottom of the page makes the canvas display the notes of the piano pieces that a user can learn how to play. Clicking the left button displays the notes as they appear on the screen (e.g. A, D, F# etc.). Clicking on the right button displays the notes as they appear on a user’s keyboard (e.g. Q,V, [ , M etc.)

Parts of the code I’m proud of

soundFormats("mp3", "ogg");
  mainscreensound = loadSound(
    "x2mate.com - Ludovico Einaudi - Fly (Intouchables Soundtrack) (192 kbps).mp3"
  let a = 0;
  for (let letter = unchar("A"); letter < 72; letter++) {
    for (i = 3; i < 6; i++) {
      let fileName = char(letter) + i + ".mp3";
      soundfiles[a] = loadSound(fileName);
      a = a + 1;
    if (letter != 67 && letter != 70) {
      for (i = 3; i < 6; i++) {
        let fileName = char(letter) + "b" + i + ".mp3";
        soundfiles[a] = loadSound(fileName);
        a = a + 1;

I had a problem with importing a large number of audio files into the program, and I’m proud of the way I managed to solve the problem with importing a large number of sound files (thank you, Professor Shiloh) using char and unchar functions.

Furthermore, I enjoyed creating classes for the piano keyboard. The code for creating black keys is designed in such a way that they appear as meaningful class objects with properties:

class BlackKey {
  constructor(x, y) {
    this.note = blackkeys[y % 5];
    this.octave = Math.floor(y / 5);

  display(x, y) {
    rect(30 + 30 * x, 300, 20, 75, 3);
    text(blackkeys[y % 5], 40 + 30 * x, 365);


The project helped me implement the knowledge I gained throughout the lectures and readings. I see a lot of room for improvement in this project, either technical or graphical. I believe that if I choose to continue the work on the project, creating a broader range of choices for users, improving graphics, and adding more musical instruments, this project could potentially become a widely known useful tool for people trying to get an understanding of what the experience of playing musical instruments feels like without actually possessing the instrument.