user interface engineering fs 2013 - ait lab · 2016. 3. 8. · electronics 101 eth zürich...

90
| | Input Fundamentals 23.09.2013 1 User Interface Engineering FS 2013 ETH Zürich Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

Upload: others

Post on 15-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Input Fundamentals

23.09.2013 1

User Interface Engineering – FS 2013

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 2: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Brief Overview of HCI as a discipline

History of the UI

Product perspective

Research perspective

Overview of own research as motivation

23.09.2013 2

Last Week

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Design

PrototypeEvaluation

Page 3: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 3

Today

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 4: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Buttons are everywhere

23.09.2013 4

Buttons & Switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Especially on interactive devices

Page 5: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 5ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

https://www.sparkfun.com/products/9136

Page 6: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 6ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 7: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 7ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 8: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 8

Bop It – What’s in it?

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 9: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 9

Bop It – What’s in it?

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 10: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Current, Voltage, Resistance

23.09.2013 10

Electronics 101

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Illustrations mostly from:

Paul Scherz, Practical Electronics for Inventors

Recommended Reading:

http://www.andyholtin.com/links/Practical_Electronics_for_Inventors.pdf

- The Basics - Just Enough to Scrape By™

Page 11: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 11

Current

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

The amount of charge crossing an area per unit of time

ee

e

e

e e

Page 12: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 12

Current

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

ee

e

e

e e

𝐼 =Δ𝑄

Δ𝑡=𝑑𝑄

𝑑𝑡

Page 13: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Electric currents are carried by electrons

Each electron carries a (negative) charge

− 𝑒 = −1.6 𝑥 10−19𝐶

Current is measured in Ampere (A)

1𝐴 = 1𝐶

𝑠

23.09.2013 13

Current

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

e

Page 14: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 14

Direction of Flow

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

ee

e

e

e e

Battery +-

e

e

e

e

Conventional current flow (I)

YouTube: “Oil Drop Experiment”

Page 15: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Opposing charge distributions at a distance create

electrical force between them

Unit of positive charge will “pushed” by the positive

and “pulled” by the negative distribution

When the charge unit moves it will change in

potential energy

Voltage is the amount of energy needed to move a

unit charge from one place to another

𝑃𝑜𝑡𝑒𝑛𝑡𝑖𝑎𝑙 𝑒𝑛𝑒𝑟𝑔𝑦

𝑈𝑛𝑖𝑡 𝑜𝑓 𝑐ℎ𝑎𝑟𝑔𝑒1𝑉 = 1

𝐽

𝐶

23.09.2013 15

Voltage

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

+

+

+

+

+

+

-

-

-

-

-

-

+

V

Page 16: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 16ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 17: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 17

Voltage – Reference Points

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

+

-

+

-

6V

3V

0V

Ground or 0V Reference

+

-

+

-

0V

-3V

3V

Page 18: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Reduction in current flow due to resistance in conductor

All conductive materials have some resistance

Measured in Ohm (Ω)

Potential difference of 1 Volt will force a current of 1 Ampere through a

resistance of 1 Ohm

23.09.2013 18

Resistance

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

1Ω = 1𝑉

𝐴

Page 19: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 19ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Resistance - Water Analogy

http://hyperphysics.phy-astr.gsu.edu/hbase/electric/watcir.html

Page 20: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 20

Resistor Symbol

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

R

Page 21: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Current through a conductor between two points is directly

proportional to the potential difference across the two points

23.09.2013 21

Ohm’s Law

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Ohm's law states that the R in this relation is constant,

independent of the current.

𝐼 =𝑉

𝑅𝑉 = 𝐼𝑅 𝑅 =

𝑉

𝐼

Page 22: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

The work performed by an electrical current as it runs through a circuit

Measured in Watts

23.09.2013 22

Power

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

𝑃 = 𝑉 × 𝐼 1𝑊 = 1𝑉𝐴

Page 23: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 23

Basic Circuits

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 24: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 24

Series Circuits

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 25: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 25

Parallel Circuit

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 26: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

What’s in a Switch?

23.09.2013 26ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 27: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 27

Switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

+

-

Interrupter Switch

Page 28: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 28

Switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

+

-

Two way diverter switch

Page 29: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Number of

Poles

Throws

Duration of contact

Long-term (Switch)

Momentary (Button)

Default Behavior for Push Buttons

Normally Open (NO)

Normally Closed (NC)

23.09.2013 29

Types of Switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 30: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 30

Single Pole Single Throw (SPST)

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 31: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 31

Single Pole Dual Throw (SPDT)

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 32: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 32

Dual Pole Single Throw (DPST)

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 33: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 33

Single Pole (n) Throws (SP(n)T)

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 34: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 34

Magnetic Reed Switch

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 35: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 35

Mercury Tilt-Over Switch

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 36: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 36

An interactive system – Conceptual Overview

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Mechanical

elements

Enclosure

Circuits Microcontroller Host-PC

Sensors

Actuators

ADC

DAC

Page 37: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 37

Microcontroller

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Atmel ATmega328

Used in Arduino and other electronics

frameworks

Page 38: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 38

Arduino Pin Mapping

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 39: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 39

Arduino Board

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 40: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 40ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 41: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Switch closes/breaks circuit

Problem?

Input is floating

Undefined behavior on digital read

Value might stay or it might alternate quickly

(50Hz hum)

Solution:

Connect to ground value via resistor

Pull-Down Resistor

23.09.2013 41

Connecting to a digital pin

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

5V

SP

ST

Input

10K

Page 42: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Pull-Up resistor is equivalent

Pulls voltage up to high logic state

23.09.2013 42

Pull-Up Resistor

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

5V

SP

ST

Input

10K

Page 43: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 43

Interactivity

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

D

LED

1K

Output 12

5V

SP

ST

Input 13

10K

Page 44: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 44ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

/* * Switch and LED test program */

int ledPin = 12; // LED is connected to pin 12

int switchPin = 13; // switch is connected to pin 13

int val; // variable for reading the pin status

void setup()

pinMode(ledPin, OUTPUT); // Set the LED pin as output

pinMode(switchPin, INPUT); // Set the switch pin as input

void loop()

val = digitalRead(switchPin); // read input value and store it in val

If (val == LOW) // check if the button is pressed

digitalWrite(ledPin, HIGH); // turn LED on

if (val == HIGH) // check if the button is not pressed

digitalWrite(ledPin, LOW); // turn LED off

Page 45: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Switches and Buttons are mechanical mechanisms

Not truly binary!

Many switches don’t change instantaneously from “on” to “off” – they bounce

between states

Especially momentary buttons, spring loaded buttons and tilt switches where a

mass moves to make or break contact

23.09.2013 45

Switch Debouncing

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 46: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 46

Switch bounce

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

htt

p://w

ww

.la

dya

da

.ne

t/le

arn

/ard

uin

o/le

sson

5.h

tml

Page 47: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Read Input once => Wait for bounce duration => Read again

Only if readings agree change state

Issue?

Introduces unnecessary latency

Bounce duration needs to be evaluated empirically

23.09.2013 47

Naïve Debounce

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 48: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 48

Counter based Debounce

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

unsigned char counter; //Variable used to countunsigned char T_valid; //Variable used as the minimum duration of a valid pulse

void main() P1 = 255; // Initialize port 1 as input portT_valid = 100; //Arbitrary number from 0 to 255 where the pulse if validated

while(1) //infinite loop

if (counter < 255) //prevent the counter to roll back to 0counter++;

if (P1_0 == 1)

counter = 0; //reset the counter back to 0

if (counter > T_valid) //....// Code to be executed when a valid pulse is detected.//....

//....//Rest of you program goes here.//....

Page 49: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Introduce capacitor into circuit

Capacitor resists the voltage change on the out pin

Response speed and hence “harshness” of filter can be tuned exactly

23.09.2013 49

Analog solutions

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 50: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

15 Minute Break

23.09.2013 50ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 51: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Designing with Switches

23.09.2013 51ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 52: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 52ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 53: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 53ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 54: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 54

Key cap construction

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Key Switch Membrane

Conductive Layer

Conductive Layer

Spacer Non Conductive

Page 55: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 55

Key cap construction

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Key Switch Membrane

Conductive Layer

Conductive Layer

Spacer Non Conductive

Page 56: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

IBM compatible keyboard has 104(+) keys

Issue?

To expensive to read each key individually

Depending on controller 20-100 IO pins

Needed for many different tasks

Solution:

Connect buttons in matrix fashion

Keyboard: 16x8 matrix requires 24 pins

23.09.2013 56

Keyboard Switch Matrix

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 57: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 57ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 58: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Rows & Columns connected to

microcontroller

Controller drives circuitry and generates key

events (key codes)

Each row and column pin

Can be used as in- or output pin

Output pins are driven (low / high)

Input pins are read (low / high)

23.09.2013 58

Key Matrix

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

A B

C D

Mic

rocontr

olle

r

Page 59: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Drive rows, read columns

Drive columns, read rows

23.09.2013 59

Single Key

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

A B

E F

C D

G H

I J

M N

K L

O P

Page 60: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Drive columns sequentially

Read rows simultaneously

23.09.2013 60

Multiple Keys

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

A B

E F

C D

G H

I J

M N

K L

O P

Page 61: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Certain constellations may lead to erroneous key press/release events

“C” is detected – pressed or not

Release of “B” can’t be detected

23.09.2013 61

Multiple Keys - Ghosting and Masking

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

A B

C D

A B

D

Page 62: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Diodes restrict flow direction of current

23.09.2013 62

Eliminating Ghosting and Masking

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

D

Page 63: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 63ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 64: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 64ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 65: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Many other devices (can) produce binary events just like buttons

Proximity detector

Touch sensor

Light barrier

23.09.2013 65

Things that act like switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 66: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 66ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 67: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 67ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 68: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 68ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

IR Emitter

Photo Diode

Page 69: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 69ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Forward / Backward rotation is ambiguous!

Page 70: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 70

Quadrature Encoding

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Clockwise

Rotation

Phase A B

1 0 0

2 0 1

3 1 1

4 1 0

C-Clockwise

Rotation

Phase A B

1 1 0

2 1 1

3 0 1

4 0 0

Page 71: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 71

Example: Rotary Encoder

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 72: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Continuous Input

23.09.2013 72ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 73: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Convert variable resistance to measurable signal

Resistance-varying and fixed resistor in series,

measure voltage between them

No discrete event

Polling required

ADC necessary

23.09.2013 73

Voltage divider

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

𝑉𝑂𝑢𝑡 = 𝑉𝑠𝑢𝑝𝑝𝑙𝑦 ×𝑅2

𝑅1 + 𝑅2

Page 74: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Resistive element

Strip or arc

Sliding contact (Wiper)

Electrical terminals at each end of resistive element

Electrical terminal at the wiper

23.09.2013 74

Example: Potentiometer

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

R

Page 75: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Force Sensing Resistor

23.09.2013 75

Further examples

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

http://www.openmusiclabs.com/learning/sensors/fsr/

Page 76: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 76ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 77: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Resistance straight: 10kΩ

Resistance bent: 40kΩ

23.09.2013 77

Further examples: Flex sensor

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 78: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 78ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 79: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 79ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 80: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Instead of measuring force directly measure

velocity

Delay between closing of two switches

Time between break and make of SPDT

switch

Or two staggered switches

23.09.2013 80

Force sensing Switches

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 81: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 81ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 82: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Optoelectronic sensor

essentially a super fast low-res camera

Typically 18x18 pixel

Sometimes >3000Hz (gaming mice)

LED at grazing angle

Onboard microprocessor computes 2D

coordinates

23.09.2013 82

Optical Mice

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 83: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Mouse sensor operates under very

constraint circumstances

Translation only

Fixed illumination

Simple flow methods are sufficient

23.09.2013 83

Optical Flow

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 84: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Optical Flow estimates motion of

Camera

Objects

Between two successive frames

In the case of the mouse the problem is

slightly easier:

Moves in 2D

On a flat surface

Controlled Illumination

Can be computed efficiently in hardware

23.09.2013 84

Optical Flow

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 85: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Cross-Correlation

Computes similarity between signals (offset in

some dimension(s))

CC-based Optical Flow computation

Shift frame t0 relative to frame t1

n times in all directions

Highest correlation score signifies motion

direction

23.09.2013 85

Onboard Optical Flow

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 86: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Implemented on ASIC

Integrates imaging sensor and processor

Compute optical flow via correlation

Store previous frame

(Row- and column-wise) sums of XORs of

single pixels

Integrate decisions to track movement

Massive parallel implementation

Very fast in hardware

23.09.2013 86

Optical Flow in Hardware

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 87: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Uses infrared laser diode rather than LED

for illumination.

Exploit laser speckle

Pattern produced by mutual interference of

several wavefronts of the same wavelength

but different phase and amplitudes

Observable when coherent lightsource (i.e.

laser) is shown onto a surface (each point on

the surface acts as secondary lightsource)

Increases observable structure in the

environment

Allows for much higher sensing fidelity and

faster update rate

Works on more surfaces (even glass)

23.09.2013 87

Laser Optical Mice

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 88: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

|| 23.09.2013 88

Summary

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Overview of input devices built from simple buttons and

switches

Discrete (Game controller buttons, Keyboards)

Analog(-ish) (Mouse-Wheel, Data Glove)

Electronics basics

Current, Voltage, Resistance, Power, Circuits

Working principle of several fundamental input devices

Mouse

Keyboard

Page 89: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

You have been given three cards

Write down three real-world application ideas using some of the technologies

you learned about today

A (traditional) input device that you are sure will work

A non-traditional input device that re-purposes sensor technologies in a creative

way (e.g., Bop-It, PhotoHelix)

An “out-there” input device – you don’t even need to be sure whether it will work or

not – creativity counts most.

You have 10 Minutes time

Drop off your cards when you are done

We will discuss a select number of your designs next week

23.09.2013 89

Application Cards

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges

Page 90: User Interface Engineering FS 2013 - AIT Lab · 2016. 3. 8. · Electronics 101 ETH Zürich –Departement Computer Science User Interface Engineering FS 2013 Prof. Dr. Otmar Hilliges

||

Scherz, Paul (2006). Practical Electronics for Inventors. McGraw-Hill

Tucker, Allen B. (2004). Computer Science Handbook (Fundamental Input and

Output Devices). Chapman and Hall. 2nd Ed.

Lyon, Richard F. (1981). The Optical Mouse and an Architectural Methodology for

Smart Digital Sensors. Xerox PARC TechReport

Borchers, Jan (2013). Arduino in a Nutshell. http://hci.rwth-aachen.de/arduino

23.09.2013 90

Reading suggestions

ETH Zürich – Departement Computer Science – User Interface Engineering – FS 2013 – Prof. Dr. Otmar Hilliges