Inspiration

Original idea was for a cat toy for when the cat is home alone. After talking to my roommate and my father, I realized the concept could be adapted to education and electronics assembly and repair.

What it does

Allows users to use their mouse to point at objects viewed through a camera, and signal when they want to call attention to something

How I built it

A bulk of the computation is done in Processing, with the Arduino receiving instructions for what values to assign to which components. I used the serial and capture libraries for Processing, and the servos library for Arduino. The laser is mounted on a servo arm close to the camera to simplify the mapping calculations.

Challenges I ran into

Items that were generated as integers in Processing to be used as integers by the Arduino could not be sent as integers from Processing. I also had to revisit the geometry of pyramids to calculate the mapping between coordinates on the video feed and angles at the servos.

Accomplishments that I'm proud of

I had not used Processing much before this hackathon, and I was able to make a program that can simultaneously handle video input, mouse input, and serial output.

What I learned

I learned that Processing only updates the display at the end of the 'draw' function. I also learned how Processing handles serial communication with an Arduino.

What's next for Remote Interaction Device

Moving forward, there a a few improvements that can be made:

Calibration Files - Allow users to load an existing calibration instead of remapping each calibration point on startup.

Keyboard Shortcuts - Allow users to toggle the laser or the notification LED without having to move the mouse pointer off the video feed.

Calibration Refinement - Improve the sliders used to set servo positions during calibration, and refine the mapping process to allow for mapping of a skewed surface.

Built With

Share this project:

Updates