Title: New%20Human%20Computer%20Interfaces
1New Human Computer Interfaces
Class 5 May 9 2006
- Amnon Dekel
- HUJI CSE, Spring 2006
2On the Menu
- Group Exercise Review
- Serial Port
- Board2Board
- Board2PC
- PC2Board
- Some more sensors
- Changing the world Actuators
- Projects
3Exercise Review
- View the exercise projects
- Problems and Difficulties?
- What Have You Learned?
4Serial Communications
- The OpenBoard can communicated with other devices
in the world using the Serial Communications
Protocol - You can use this to have a board Send data to
another board and receive data from another
board. - You can also use this to have the board
communicate with a workstation (Why?)
5Board to Board
- Call soft-serial-on once at the beginning of the
program. - Sending Values
- Sending is done from Pin C0.
- the command
- send1 value i.e. send1 100
- Receiving Values
- You can receive on 4 ports B0, B1, B2, B3
- To receive you need to do 2 things
- check if a new value has been received on the
pin. - newin1? will check B0
- (newin2? will check B1, newin3? will check B2,
newin4? will check B3). - The code
- loop if newin1? do something with in1
- Oren comments to use in1 best to set it into a
different variable, like - settemp in1 if temp 100 do something else
6Board to PC
- Use the regular programming cable configuration
- Sending to the PC
- Use the send command (not send1). Anything sent
this way will be sent to the PC serial port. - send value
- Reading the data on the PC
- Make sure the PC is in fact receiving the data.
Use a terminal program for this (like Hyperterm) - If all is well- write a program (in Java, C,
whatever you like) to read the serial port. - Sending data to the Board from the PC
- You use the following primitives in your code on
the board - enable-recc (to enable receiving of serial
data) - recc? (check if a value is waiting in the
serial buffer) - recc (the value itself, so you can set into
another variable) - To send serial data to the board, use the send lt8
bit integergt command from the programming
environment. - To send serial data from a different application
on your PC, it should work just by sending
numbers to the serial line, so enable the serial
line and send an integer.
7Some More About Sensors
8Types of Input
Switches
Rocker switch
Push button
Slide switch
Toggle switch
9Sensitive Switches
Roller switch
Hair trigger/whisker switch
Magnetic/Reed switch
Mercury/Tilt switch
10Analog Sensors
Force Sensitive Resistor (FSR)
Pressure sensors
11Analog Sensors
Photocell
Temperature Sensor/Thermistor
12And more
And more Capacitance sensors Piezoelectric
sensors
Accelerometers
Flex Sensor
More info ITP Sensor Workshop Report
13Changing the World Actuators
14Examples
15Actuators
- Pneumatic
- Air Pressure causing movement
- Hydraulic
- Liquid Pressure causing movement
- Electronic
- Electro-magnetic movement
- Motors (Kinetic)
- Speakers (Audio)
- Lights (Visual)
More Info
16Motors
- Linear vs. Rotary movement
- Torque
- Gear
17Selecting a Motors
- Speed (RPM)
- Movement mechanics
- Controlling the Position
- Feedback about the position
- How much weight can it carry
- Torque
- How much power does it need
- Price
18Selecting a Motors
- Speed (RPM)
- Movement mechanics
- Controlling the Position
- Feedback about the position
- How much weight can it carry
- Torque
- How much power does it need
- Price
1. The moment of a force the measure of a
force's tendency to produce torsion and rotation
about an axis, equal to the vector product of
the radius vector from the axis of rotation to
the point of application of the force and the
force vector. 2. A turning or twisting force.
19Types of Motors
Stepper
DC
DC servo
20Motors
- DC Motor
- Cheap.
- Very easy to connect
- Minimum control
- Turns 360 degrees.
- Can add components for more control
- Speed change the voltage using a POT
- Direction change the polarity
- Position cant! ? Add an H-Bridge circuit
21Motors
- DC Servo
- Expensive
- Very easy to connect
- Includes all components
- Turns 90 degrees to each side
- Full control
- Speed change the voltage
- Position Needs CHECKING
Waiting for answer from Oren
22Controlling a Servo
- DC Servo - Controlling the position
- They rotate 0 to 180 degrees depending on the
pulsewidth. About 1.5 sec to move 180 degrees. - The DC Servo takes a pulse of between 1-2 ms
every 20 ms. - A pulse of 1 ms will turn the motor to 0 degrees
1.5 MS will turn to 90 degrees, 2 ms will turn it
to 180 degrees - To keep a servo in its current position pulse it
with the same pulse width every 18-20 ms to keep
it there.
23Motors
- Stepper
- Cheap
- Usually 12V
- Hard to connect
- Need extra components
- Turns 360 degrees.
- Can stay still in one position
- Full control
- Position
- Speed
24Controlling Motors
- We want to control a few elements
- Speed
- Strength
- Direction
- Position
25Controlling Motors
- We want to control a few elements
- Speed ? power
- Strength ? Current
- Direction ? current direction/Pulse
- Position ? Pulse
26Controlling Motors
DC Motor
BS1
Controller ??? (H-Bridge)
PWM
????Feedback
Encoder
27Controlling Motors
- Using PWM to control the position
- For each motor we know the RPM in X Volt, how
many rounds per minute. - From this info we can calculate how many degrees
a pulse moves in a certain time. - When accuracy is important inertia should be
taken into account (and gear to balance it)
28Where to get motors?
?????? ??????
?????? ????????
?????? ??????????
29PAUSE
- What have we been dealing with so far?
30Controlling the world?
?Sensing the world
Vision
Video
SOUND
Pressure
Analog Output
Controlling 220V world
Digital Input
Computing
Change
Analog INPUT
Output to the PC
Digital Output
Communications
Position
MOVEMENT (Motors)
Movement
Audio
Temperature
31Projects
- Whats a good project?
- Process
- Milestones
- Presentations
32Whats a Good Project
- Explores interesting, and preferably, novel
scenarios - Shows interesting use of the technology
- Exhibits a working prototype for at least one
main part of the scenario. - Explains how it fits into the wider scenario.
- Includes good documentation
- Project explanation, process, problems, code,
possible improvements - Project Poster
33Project
- If we have time
- Class Discussion of Projects
- Home Work
- Prepare a Project Proposal
- Intro What problem am I trying to solve
- Research (what exists)
- Concept
- Technology
- Milestones (7 weeks)