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.
Log in or sign up for Devpost to join the conversation.