Final Year Project: Design and Build an Air Mouse for people with
Download
Report
Transcript Final Year Project: Design and Build an Air Mouse for people with
Final Year Project:
Design and Build an Air Mouse for people
with lower mobility
Electronic and Computer Engineering
Colin Grogan
06656404
Components
The Toothpick takes readings from an accelerometer and
sends the results to the PC
PC will then control cursor based on received information
Overview of System
Design
Must fit on a glove
Tilting of hand causes cursor movement
Large zone where no cursor movement
Larger tilt causes faster movement of cursor
Buttons should be easy to press
Made from copper contacts. Removes need to “click” the
buttons
Design Goals
Pass:
Design and build a working air mouse
Average
Design software for PC that receives information from air-mouse and
move the mouse around the screen in real time
Good
Design a working gesture recognition algorithm for the mouse
Design a application on the PC so that users can define their own
gestures for later use
Very Good
Get both systems working effectively together
Exceptional
Get the system into a case and fitting onto a glove
Design Goals review
Air-Mouse is not completely working
Pass
PC successfully controls cursor based on information received
from Air-Mouse
Average
Gesture recognition algorithm effectively picks up user made
gestures.
Can easily define new gestures and associated commands
Good
Cannot launch Gesture Recognition easily from device, must use
shortcut
Device not yet in a case or mounted onto glove.
Planning
Design Decisions and why
Toothpick microcontroller used for the device.
Toothpick has a good amount of ports(for accelerometer and
buttons)
Built in support for Bluetooth protocol.
Coded in C
Using a C++ application on PC to control the cursor
C++ is compiled to machine code and therefore will run
quickly
Microsoft libraries to control cursor and serial port
Technology
Bluetooth
Bluetooth technology is easily accessible on modern PCs
High speed protocol, battery life suffers as a result
Alternative? Zigbee
Zigbee is suited to low data rate, low power applications
Not as easily accessible to PC users as Bluetooth
Hardware
Block Diagram:
Divided into functional blocks
Accelerometer – Changes output based on movement of hands
Voltage Dividers – Changes the reference voltage for the ADC
Software
3 programs needed:
Cursor Control
Connects to device
Controls cursor based on data received
Automatically disconnects when data is not received consecutively
Gesture Recognition
Detects shape made by cursor
Shapes made of movements in 4 directions, Up, Down, Left Right
Executes command associated with shape. Shapes stored in gestures.dat
Device program
Receives control data from PC
Sends requested information
Gesture Recognition
Algorithm
Simple algorithm, can quickly define new
gestures for use.
Algorithm:
Store initial position into memory
Check if the user moves past a boundary
(say 50 or 100 pixels – can easily change)
Concatenate direction of movement onto
String. Will be either U, D, L, R
Save new “initial” position into memory
Repeat until user specifies
Mouse Control program
Windows.h made it very easy to control
the cursor on screen.
Small example:
ReadFile(hSerial,inBuff,3,&dwBytesRead,NULL);
This will read from the serial port “hSerial”,
save the data into “inBuff ”, which an array
of size “3” and save the number of bytes
actually read into “dwBytesRead”
The “NULL” argument is for special
options that weren’t needed
Final Device
Problems
The device does not work as expected.
The Toothpick wont read information from the ADC
This is a result of rebuilding the circuit, original circuit worked
fine.
Accelerometer can only give unique values over 180°
Means mouse cannot be used in any position and thus is not
entirely suitable for project
Possible fix would be to use an accelerometer based on different
technology
Or use 3 accelerometers all cantered on different angles
Questions?