Final Year Project
Download
Report
Transcript Final Year Project
Final Year Project
Progress Presentation
Air-Mouse for Windows/Linux PC
Colin Grogan
06656404
Project Brief
To design and build an air-mouse that can give accurate
control over a Windows/Linux based PC.
Aimed at people who may have minor movement disabilities
in their hands or arms and thus cannot comfortably use a
conventional mouse.
To make a virtual keyboard so the user can enter text
without using the physical keyboard.
Components
The Toothpick will take readings from an accelerometer
and 2 to 3 buttons and send the results to the PC.
The PC will then decipher the results and control the
mouse.
Diagram of System
Alternatives to Bluetooth
Zigbee Technology
Like Bluetooth, is a wireless networking standard.
Used in large scale control and sensor networks e.g. Museum
Security grid.
More suited to be used in a system with a low data rate per
connector e.g. Sensors in a Security Grid will only send data to
turn on an alarm when something is wrong.
Why Bluetooth
Bluetooth is more suited to a small scale project such as this.
Bluetooth is used for high speed applications, battery life
suffers as a result.
Bluetooth is suited to this project more than Zigbee because
a large amount of data will need to be sent continuously.
And importantly, the Toothpick comes with full Bluetooth
support.
Gesture Recognition
Need to design an algorithm that will work with my device.
Primary idea:
When user is entering a gesture, save all points to an array.
Translate array to top-left portion of screen (i.e. 0,0).
Work out what shape has been drawn and compare to list of shapes.
Execute command associated with found shape.
Alternative idea:
Assume the mouse can move in 8 directions (N, NE, E, SE, S, SW, W, NW)
When mouse moves, say 10 pixels, in a certain direction, append the letter
corresponding to that direction onto a string.
When user is finished entering gesture, compare string with a list of strings.
Execute command associated with the found string.
Milestones
Pass:
Design and build a working air mouse that will move the mouse in real time on
the computer
Average:
Design and build demo and configuration software on the PC for the air mouse
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 LED’s and a Webcam to detect finger positions for more input options to the
PC
Exceptional:
Get both systems working effectively together
Progress!
Currently, I am at my Pass milestone.
I have the Toothpick sending data over to the Windows PC
Windows driver program is moving the mouse around the screen
successfully.
No buttons implemented in hardware yet, easily done in software.
There’s some problems though!
The mouse is very jumpy around the screen, I think this is because of
2 problems.
The Voltage Regulator is getting very hot so probably not giving out clean 5V.
The PC software is sometimes picking up a number received from device as a
negative number. The Mouse goes haywire when set to this position.
Just need to change the regulator and debug the code.
Current device hardware
Design Problems
The accelerometer only gives unique values between -90° and +90°.
Thermal based accelerometer.
Repeats itself outside of these values.
Means I cant set any position for the accelerometer as the starting or ‘centre’
position.
Requirement of the project was to allow mouse to be used by the persons
side or resting on leg.
Possible fix?
Use 2-3 of the same accelerometers to get a reading at every possible
position.
Can be very messy to get working.
Easier fix.
Get an accelerometer that uses a different technology i.e. Not thermal based
Things to do
Get libraries to control mouse and serial port under Linux.
Write the driver software to control mouse with Linux –
Should be very similar to Windows application.
Gesture recognition.
Write the gesture recognition application to work with the
driver application.
Any Questions
References
Ubuntu .iso – www.ubuntu.com
Images
Toothpick – www.microchip.com
Windows – www.microsoft.com
Ubuntu – www.ubuntu.com