Final Year Project: Design and Build an alternative input device Air Mouse Colin Grogan Design • Air Mouse – Fit on a Glove ▫ No discomfort on hand when wearing • Tilt of hand causes mouse to move on screen ▫ Design system so that angular positions are predefined locations on screen - Unlike the nipple on some keyboards and the Wii remote • Try solve the “Gorilla-Arm” problem Gorilla Arm • The arm becomes very sore, inaccurate and uncomfortable to use when held up in front of body with no support. • Destroyed mainstream touch screen technologies in the ‘80s. ▫ Problem today with, for e.g. Wii controllers • Design air mouse to be ‘centred’ to any position ▫ This position will be the centre of the screen ▫ Deviations from this ‘centred’ position will cause the mouse to move around the screen ▫ User will define which ever position is comfortable for him/her (could be the users knee, the desk where the mouse would be used normally, hanging beside his side, anywhere really!) Overview of System PC Monitor Bluetooth Dongle Glove PC toothPIC microcontroller: Bluetooth 1 accelerometer 3 buttons Data will be sent both ways, the PC will send configuration data to the device. This will then take necessary readings and send the results back. Configuration data will be sent only when a connection is established or when configuration changes are made on the PC. Readings from glove will constantly be sent to PC, unless user has turned off transmission, e.g. if user wants to use the computers keyboard he could turn off mouse. Design Goals • 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 Design Decisions and why • Going to use a Toothpick microcontroller for the device. ▫ Toothpick has a good amount of ports(for accelerometer and buttons) and is coded in C. ▫ I have experience working with Toothpick’s. • Using a Java application on PC to control the mouse pointer. ▫ Have good knowledge of Java and can code efficiently in it. ▫ Using Java to control the mouse means the device will control a Linux machine too. Sun Slogan: “Write once – Run anywhere” What’s been done so far • The Toothpick successfully transmits results from accelerometer to PC via Bluetooth. • Can use a Java class to move the mouse around the screen • Sadly they don’t work together. No native Bluetooth support in Java ▫ Write my own, use 3rd party software Things to Do 1) 1. 2. Get mouse working effectively on the PC 3. 2) Design applications on PC 1. 2. 3) 4) Support for Virtual Serial (RS-232) over Bluetooth Test accuracy and speed of transmissions – Try improve if not good enough Design buttons to connect to the Toothpick so user can press a mouse button 1. 2. A demo application to show how to use the mouse quickly and to demonstrate the usefulness of the device An app that can be used to control settings for use with the mouse – Configuration, Calibration etc. Design an algorithm for Gesture Recognition Must reliably detect gestures as they are made by the user The gestures must be configured by the user to do whatever – Launch a program, perform a keystroke etc. Research whether it’s feasible to use LED’s to detect finger positions to perform recognisable gestures