Readings

The Design of Everyday Things - Don Norman

Observations - I can't say how many times i've read this chapter over my engineering career. The idea of good design is something that affects us numerous times a day with all the things we interact with. It sucks when a designer creates something with this vision in mind and the users don't know how to use it. This idea comes down to playtesting and making sure that you aren't leaving your users in the dark.

Norman, Emotional Design, Chapter 1, “Attractive Things Work Better

If something is hard for users to figure out whether it's hardware (Push or pull doors) or software (Industry software that has been used since Windows 95 cause no one else knows how to use it.)

Designers will never lack for things to do, for new approaches to explore.

Lab Time

This lab was all about us getting familiarized with our cute little Arduino. We at ITP are using an Arduino Nano 33 IoT

ABX00027_03.front_934x700.webp

Figure 1: Arduino Nano 33 IoT

This lab wanted us to focus on Digital I/O, Analog Input, and Sensor Change Detection.

Let's get started

I plugged in the Arduino into the breadboard, and then started typing away on the Arduino IDE.

I wanted to run code that turns the Red LED off and turns on the yellow LED when the button is pressed and the opposite when you stop pressing it.

void setup() {
  // put your setup code here, to run once:
  pinMode(2, INPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}

void loop() {
   // read the pushbutton input:
   if (digitalRead(2) == HIGH) {
     // if the pushbutton is closed:
     digitalWrite(3, HIGH);    // turn on the yellow LED
     digitalWrite(4, LOW);     // turn off the red LED
   }
   else {
     // if the switch is open:
     digitalWrite(3, LOW);     // turn off the yellow LED
     digitalWrite(4, HIGH);    // turn on the red LED
   }
 }

76086D9E-2B10-436D-907E-404FD4C2F698.jpeg

Figure 2: A circuit that toggles between the Yellow and Red LEDS

After that I wanted to play around a little more with the Arduino and see if I could add a little delay to the system, so I typed out some code using the delay(ms) function.

Run code that pauses for 5 seconds before lighting anything up.

void setup() {
	// put your setup code here, to run once:
	pinMode(2, INPUT);
	pinMode(3, OUTPUT);
	pinMode(4, OUTPUT);
}

void loop() {
	// read the pushbutton input:
	if (digitalRead(2) == HIGH) {
		delay(5000);
		// if the pushbutton is closed:
		digitalWrite(3, HIGH);    // turn on the yellow LED
		digitalWrite(4, HIGH);     // turn off the red LED
	}
}