Class Notes, 8 Feb 2022

Class recording check your email for the pass code.

Kinetics Introduction

When we’re working with kinetics it’s important to remember:

  • size of physical control vs. input
  • size of physical control vs. output

Tactile controls are great for fine control, refinement, or when we need detailed feedback.  They an also be used for coarse controls:  on/off switches, radio buttons.

Controls can be stylistic or skeumorphic.   Why does a Starfleet vessel have touchscreens (LCARS) everywhere but the warp engines are driven by a 20th century ship’s throttle?

 

Mix mechanical and virtual controls where appropriate

Mechanical controls are better for some uses, though they can’t as easily serve multiple functions. Non-mechanical controls, like touch-screen buttons, are easier to change into other controls but don’t offer the same kind of haptic feedback, making them impossible to identify without looking at them and creating questions about whether they’ve been actuated. Design interfaces with an appropriate combination that best fits the various uses and characteristics.

Types of kinetic output

  • vibration
  • thumps, pokes
  • can we use temperature? something like peltier boards?
  • symbols: Braille, history of Braille and printed shapes of letters for the blind in early books
  • Braille readers today

Inputs for kinetic

One of the problems with kinetic inputs is errors/noise in the data.

One tool is basic stats, looking at the standard deviation helps us filter data.  If you have a temperature sensor for your office that occasionally returns temps below freezing or above boiling, what do you do with that data?

Another tool is smoothing and filtering incoming data

We’re talking about data over time, that gets in to the idea of languages:

  • signal encodings like Morse code.  People have “accents” in how they generate Morse code by hand, WWI and WWII radio monitors learned who they were listening to.  “That’s Hans, he always radios from western German between midnight and 4 am.”
  • pattern recognition: what does walk feel like?  Run?  What do crying and   laughing sound like relative to speech?
  • earthquake pattern recognition
  • meaning generated by content that changes over time, poetry

Haptic/touch vs. objects moving in space

How is touching a person different than moving an object?

Person presses a button vs. wind from a heating vent spinning a fan sensor?

Touch can be wrapped in a robotic device to convey emotion: Paro (wiki) trade show demo.

Mini exercise for Looking Out

Find some examples of data over time to use in accessibility.  No weather, no stock prices, will explain why on Thu.

 

 

Class notes 1 Feb, p5.js example

Hi,

I’ve asked for replacement Teensy Arduinos, I’m not sure if they will be here before class on Thu.

Please work on getting p5.js talking to your Arduino.  I have mine working on Win10 without NPM.  Here’s simple sketches for p5.js and Arduino.  Remember that you have to disconnect p5.serialconnect before you can upload and Arduino sketch.  On your browser (I use firefox), you might need to shift-reload the p5.js sketch to get it working again.

example-20220201.tar.gz

 

Class Notes, 25 Jan 2022

Class 3: 25 Jan – Intro to Interrupts

Office hours start next week on campus in A10 at 5pm.

Review assignments

Design for Dreaming — good?  Bad?  Socially uncomfortable?

revisit tigoe’s page — what was physical interaction and what was reaction?  Do you see any themes in projects that aren’t allowed?   Is there something you’re tired of seeing?

I like theremins and have two.  Making them is easy.  Playing them is damned difficult.

Dorit Chrysler playing The Swan:  https://www.youtube.com/watch?v=AS9LJK8i1VE

Clara Rockmore, also playing The Swan:  https://www.youtube.com/watch?v=XdFSU8sn3mo

Theremin playing a theremin:  https://www.youtube.com/watch?v=w5qf9O6c20o

Interrupts

We use interrupts in daily life:

  • Asking a question in class
  • Phone rings (skeumorphic!)
  • Traffic light

What can we do during an interruption?  What do we do at a traffic light? During a lesson?

What happens when multiple people raise their hands in class?  What happens if the instructor is servicing a request and someone else raises their hand?  Stop answering the first person?  Delay the second person?

Interrupt request vs interrupt service.

Raising your hand is an interrupt request.  The instructor responding is servicing the interrupt request.

Explain how interrupts work  in software/hardware

  • clock has to stop, so millis(), Serial, and other I/O functions won’t work including reading/writing to pins
  • difficult to debug anything more complicated than changing a state variable
  • really useful for state machines because you don’t have to call digitalRead() or analogRead()
  • delay() timing is paused

What if you don’t want an interrupt to happen?  This is probably a bad thing, as a lot of what makes the Arduino work is interrupts you can’t see happen:

noInterrupts() — disable interrupts, like putting your phone in “Do Not Disturb””

interrupts() — turns interrupts back on

Interrupts can be hard to debug on Arduino.  No access to the Serial console, difficult to do anything other than simple math/logic operations.

Compilation hides errors by not failing.  Say you have this code for an interrupt handler:

void switchLed() {

ledOn++;

if (ledOn > led4) {

ledOn = led1;

}

}

Both of these compile without a warning/error:

// good

attachInterrupt(digitalPinToInterrupt(toggle_color), switchLed, RISING);

// bad, there will be no interrupt service — can you see why?

attachInterrupt(digitalPinToInterrupt(toggle_color), switchLeds, RISING);

 

Arduino models can support interrupts, but often on different pins:

https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

Nick Gammon has an intensive, CS-focused page on interrupts:  https://gammon.com.au/interrupts

The simple example I showed in class:

int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;

int ledOn = 0;


volatile int toggle_color = 2;
volatile int toggle_speed = 3;

int ledDelay = 250;

void setup() {

    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    pinMode(led4, OUTPUT);

    pinMode(toggle_color, INPUT);
    pinMode(toggle_speed, INPUT);
    attachInterrupt(digitalPinToInterrupt(toggle_color), switchLed, RISING);
    attachInterrupt(digitalPinToInterrupt(toggle_speed), changeSpeed, RISING);

    ledOn = led1;
    
    Serial.begin(9600);
}

void switchLed() {
    ledOn++;
    if (ledOn > led4) {
        ledOn = led1;
    }
}

void changeSpeed() {
    ledDelay = ledDelay * 2;
    if (ledDelay > 2000) {
        ledDelay = 250;
    }
   
}

void loop() {

    digitalWrite(ledOn, HIGH);
    delay(ledDelay);
    digitalWrite(ledOn, LOW);
    delay(ledDelay);
}

 

Assignment

Find some examples of interrupts in your daily life, complex and simple, post to Looking Outward.

Reading: Make It So Forward, Chap 1, Chap 2.  How did we think about the future in the past?  Post a few notes to the blog (Assignment 2) and we’ll talk about these at the start of class.

 

Class Notes, 20 Jan 2022

Class 2: 20 Jan

Introductions and Admin

Self introductions and discussion of readings

URL for Shedroff and Noessel’s book, Make It So: Interaction Design Lessons from Science Fiction:   https://amzn.to/3tMd6qi

Discuss

Reading assignment — what makes something interactive?

Does interaction require emotion or just the appearance of emotion?  When do we go from “robot” to “uncanny valley” to “human”?

Musicians and DJs working a crowd — who is interacting and who is driving the interaction?

So what is physical interaction?  When/where did it start?

Physical Interaction History

Beekeepers – explain the complexity of a hive and how we’re only just now (past 20 years) discovering how bees vote to make hive-wide decisions.  We think of hives as being illuminated because we open them up.  Bees operate in total darkness using only touch, hearing, and smell.  “Honeybee Democracy” is a great introduction to how science works and how to write about science:  https://amzn.to/2Z6Y9yL

People knew that honey bee “propolis” helped prevent infection thousands of years before we discovered bacteria.  Working in ignorance still leads to progress.

Alchemists – trying to make things happen with substances they don’t understand.   If you don’t know about elements what decisions are making to interact with substances?  A lot of chemistry was “discovered” while looking for gold.

New music and dance styles based on sampling and analog synths: Moog, ARP 2600, hip-hop.  Early hip-hop was limited to record players and mics; early synths were insanely expensive and shared at fancy studios. Grand Wizard Theodore invented scratching:  https://www.youtube.com/watch?v=eHCOIK_fICU

Console games with physical feedback, Rez Trance Vibrator by Tetsuya Mizuguchihttps://www.theverge.com/2016/9/25/13046770/rez-trance-vibrator-ps2  Game was based on electronic music in the mid-90s:  https://www.youtube.com/watch?v=YZL4Cbt-knk

Dance Dance Revolution moves from arcades to home console games

Driving assistance with vehicles: AI? Interaction?  What if the car won’t let me turn, start, or stop?  How can I disable safety features?

Flight assistance software in commercial aircraft.  Is autopilot interactive?

Flight assistance for military aircraft: self-guiding drones, incoming missile warnings for helicopter pilots.  Interaction or reaction?

Near-future Interaction

the focus of this class – we’re prototyping for five years out

  • interacting with intelligent systems that we don’t completely understand and that can make decisions against our will or with results we don’t appreciate
  • car that thinks you’re too intoxicated, sleepy, or incompetent to drive, so it refuses to move
  • home automation system that won’t open the doors and let you leave because the particulate count in the air is hazardous and you’re not wearing a mask
  • police equipment that won’t let you fire at unarmed civilians — pistol trapped in a holster, safety wont go off.
  • fire engines that won’t engage fires that cannot be contained
  • entertainment systems that can filter content as part of mental-health

We’re giving “agency” to interactive devices: https://en.wikipedia.org/wiki/Agency_(philosophy) at least at the input level:  “OK GOOGLE”, “Hey, Siri”.  This means that the device is listening (recording?) all the time.  Do your pets have agency?

Anton Yelchin was killed by his car, possibly by bad interface design.

“Near-future” is a popular base of pop-culture: MCU (Marvel Cinematic Universe) is always set a few years from now Blade Runner (1982) was set in 2019, 37 years in the future.  Blade Runner 2049 (2017)  is 32 years in the future of Blade Runner.

practical effects are used as input devices to imagined systems of the future

Adam Savage gets a no-spoilers tour of the Blade Runner 2049 prop shop:  https://youtu.be/1fAk0CObPE4

This is not new, in the past we talked about the future and technology.   Design for Dreaming, released in 1956, is all about the future.  It’s also all about the level of sexism in the 1950s:  https://youtu.be/1gKl-mwMyck

Good drama is about storytelling — what if interactive devices are characters in the story?  Are we giving them agency by making them characters and not props?

  • 2001 A Space Odyssy (1968) — HAL 9000, the ship’s computer, decides it does not want to follow the plan laid out by humans
  • Colossus: The Forbin Project (1970) — our super computer meets the Soviet supercomputer and they plan our future
  • Alien (1979) — MOTHER, a semi-intelligent computer that controls spacecraft while humans are in cryosleep.
  • War Games (1983) — A computer controls all of America’s nuclear weapons. Would you like to play a game?  the only way to win is to not play the game.
  • ST:TNG’s Data — a walking mobile phone with AI smarter than any human?
  • Terminator (1984) — is a robot killing machine from 2029.  Are the sequels — where T-800 has agency — good examples?
  • Farscape (1999-2003) — Moya, a Leviathan class creature, is a semi-intelligent spacecraft used by the main characters. She can refuse orders or do things because of her own desire against the will of her passengers.  However, the Pilot is physically integrated with Moya at the physical level and can communicate directly with humans.

Assignment 1, due at 11:59 the day before class, so these are due Monday, 24 Jan

1) Watch the entire “Design for Dreaming” film and make a few notes on the differences of it looking forward in time and contemporary entertainment like Blade Runner 2049 or the MCU.  We’ll talk about this a bit in class.

2) This is a  pen-and-paper assignment to go over posting to the class blog and what a good submission looks like.  If you want to make something with hardware, that’s fine, but it’s not required.  Science fiction is ok, fantasy is not. ever. NO UNICORNS.

First,  read Tom Igoe’s what-not-to-do page – http://www.tigoe.com/blog/category/physicalcomputing/176/

Next, make up a project:

– A smarter doorbell, similar to the smart thermostat

– Make a useful practical effect by giving interaction to a thing that doesn’t currently interact with humans.  For inspiration, watch Blade Runner 2049.  Yes, it’s 3 hours long but OMFG.  Look at the physical interfaces between intelligent systems, replicants, humans, AI, and agency for androids.

Prepare the presentation as you would for a crit.  Look at previous classes for inspiration.  If the blog is not yet available you can do something similar in Word or other desktop applications and share your screen with the class.

https://courses.ideate.cmu.edu/48-339/f2019/

https://courses.ideate.cmu.edu/48-339/s2018/