In the future, we believe that everything should just work as is, without any hassles. In a transition world of augmented and virtual reality, it only makes sense that everyone should be able to experience the change. So we thought about how to universally modernize any device. But at the same time we must consider that it must be a seamless process, without bulk hardware.
What it does
What we came up with is a device that turns your hands into a pointing device for any computer (with USB support). With a pointing device such as this, it can transform your hands into a laser pointer for a presentation, turn any monitor into a remote touch screen or control your late-night media center right from your bed.
How we built it
The basis of P3 Pointer works by transmitting a pointer location from your hand wirelessly to a receiver attached to the target computer. On your hand, we start with a raspberry pi and a 9DOF (9 Degrees of Freedom Sensor) and fetch sensor data from the gyroscope and accelerator via the I2C bus. Then we combine the data into a orientation of the device in 3D space. From the initial orientation, any changes in the sensor data will be combined to produce a new orientation relative to the initial. Then we can use the relative locations against calibration data of the screen location to find the where the cursor should be on the screen. The location is then sent to another Raspberry Pi connected to the computer. However, the Pi cannot be used as a USB slave, so put a intermediary device between the Pi and the computer. This middleman is a custom PCB driven by a ATmega32u4 which communicates to the Pi via SPI. The ATMega is then recognized by computers as a generic HID-compliant mouse, which then gives it it's plug and play functionality. The data is then continuously transferred from the hand-band to the receiver to provide a pointer location for the target computer.
Challenges we ran into
- Sensors drifting and inaccurate
- Projecting 3D vectors onto a 2D plane is generally difficult
- Raspberry Pi's cannot be used as a USB slave
- Custom PCB board did not expose slave selector pin
Accomplishments that we're proud of
Just having a working demo is probably the biggest accomplishment of our entire project. The development was all split up for most of the hackathon, where the 4 of us were all working on different parts of the project (receiver, hand-band, calculations, physical construction). We didn't have a working demo until 30 minutes before the submission deadline so just having the tech demo is an accomplishment in and of itself.
What we learned
- USB Protocol is complicated
- Time management is vital
What's next for P3 Pointer
P3 Pointer is mainly a prototype or proof of concept of what is possible with today's technology to power the future. The idea of a remote pointer based on your hand is exciting, so we are thinking about shrinking the design so that it fits into devices that we normally put on our arms already, such as smartwatches and fit-bands. This way just by plugging in our receiver into any computer, it would work truly out of the box.