310 likes | 427 Views
New Human Computer Interfaces. Class 5 May 9 2006. Amnon Dekel HUJI – CSE, Spring 2006. On the Menu. Group Exercise Review Serial Port: Board2Board Board2PC PC2Board Some more sensors Changing the world: Actuators Projects. Exercise Review. View the exercise projects
E N D
New Human Computer Interfaces Class 5 May 9 2006 Amnon Dekel HUJI – CSE, Spring 2006
On the Menu • Group Exercise Review • Serial Port: • Board2Board • Board2PC • PC2Board • Some more sensors • Changing the world: Actuators • Projects New Human Computer Interfaces - HUJI - Spring 2006
Exercise Review • View the exercise projects • Problems and Difficulties? • What Have You Learned? New Human Computer Interfaces - HUJI - Spring 2006
Serial 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?) New Human Computer Interfaces - HUJI - Spring 2006
Board to Board • Callsoft-serial-ononce 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] New Human Computer Interfaces - HUJI - Spring 2006
Board 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 <8 bit integer> 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. New Human Computer Interfaces - HUJI - Spring 2006
Types of Input Switches Rocker switch Push button Slide switch Toggle switch New Human Computer Interfaces - HUJI - Spring 2006
Sensitive Switches Roller switch Hair trigger/whisker switch Magnetic/Reed switch Mercury/Tilt switch New Human Computer Interfaces - HUJI - Spring 2006
Analog Sensors Force Sensitive Resistor (FSR) Pressure sensors New Human Computer Interfaces - HUJI - Spring 2006
Analog Sensors Photocell Temperature Sensor/Thermistor New Human Computer Interfaces - HUJI - Spring 2006
And more … And more: Capacitance sensors Piezoelectric sensors Accelerometers Flex Sensor More info: ITP Sensor Workshop Report New Human Computer Interfaces - HUJI - Spring 2006
Examples New Human Computer Interfaces - HUJI - Spring 2006
Actuators • Pneumatic • Air Pressure causing movement • Hydraulic • Liquid Pressure causing movement • Electronic • Electro-magnetic movement • Motors (Kinetic) • Speakers (Audio) • Lights (Visual) More Info New Human Computer Interfaces - HUJI - Spring 2006
Motors • Linear vs. Rotary movement • Torque • Gear New Human Computer Interfaces - HUJI - Spring 2006
Selecting 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 New Human Computer Interfaces - HUJI - Spring 2006
Selecting 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. New Human Computer Interfaces - HUJI - Spring 2006
Types of Motors DC Stepper DC servo New Human Computer Interfaces - HUJI - Spring 2006
Motors 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: can’t! Add an H-Bridge circuit New Human Computer Interfaces - HUJI - Spring 2006
Motors 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 New Human Computer Interfaces - HUJI - Spring 2006
Controlling 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. New Human Computer Interfaces - HUJI - Spring 2006
Motors Stepper: • Cheap • Usually 12V • Hard to connect • Need extra components • Turns 360 degrees. • Can stay still in one position • Full control: • Position • Speed New Human Computer Interfaces - HUJI - Spring 2006
Controlling Motors We want to control a few elements: • Speed • Strength • Direction • Position New Human Computer Interfaces - HUJI - Spring 2006
Controlling Motors We want to control a few elements: • Speed power • Strength Current • Direction current direction/Pulse • Position Pulse New Human Computer Interfaces - HUJI - Spring 2006
Where to get motors? חנויות טיסנים חנויות רובוטיקה חנויות אלקטרוניקה New Human Computer Interfaces - HUJI - Spring 2006
PAUSE What have we been dealing with so far?
Controlling the world Sensing the world Vision Video SOUND Pressure Analog Output Controlling 220V world Digital Input Computing Change Analog INPUT Outputtothe PC Digital Output Communications Position MOVEMENT (Motors) Movement Audio Temperature New Human Computer Interfaces - HUJI - Spring 2006
Projects • What’s a good project? • Process • Milestones • Presentations New Human Computer Interfaces - HUJI - Spring 2006
What’s 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 New Human Computer Interfaces - HUJI - Spring 2006
Project • 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) New Human Computer Interfaces - HUJI - Spring 2006