If you’re looking for a fun way to control your camera module with the Raspberry Pi , take a closer look at this mouse-operated camera system created by maker and developer Erwin Chin. With a custom web app and 3D printed housing, he’s devised a simple interface for changing what the camera is focused on using nothing more than mouse input. Likening the project to a first-person shooter game, users are able to look around through the camera with crosshairs overlaying the video feed.
While this is the first Raspberry Pi project we’ve seen from Chin, a quick look at his GitHub history indicates experience with Python—the go-to choice for many developers on the Raspberry Pi. This also appears to be the first 3D-printed project Chin has shared to Thingiverse.
This project relies on both a Raspberry Pi and a separate machine to access the web interface. Users can log into the web app to see what the camera sees in real-time—moving the cursor around the web app window causes the camera to move in the same direction with reasonable speed and accuracy.
A Raspberry Pi 3B+ is used to operate the camera and run the web app, but there’s no reason you couldn’t use a Pi 4 module. A Zero W might pull off the project as well, but you’ll have better luck with a bit of extra memory from the bigger Pi models. The camera module used is a Raspberry Pi Camera v2.1 mounted to a custom 3D-printed frame . This frame also houses a couple of RDS3115mg servo motors and an Adafruit 16ch PWM HAT to help drive them.
Users have a few options for running web servers on the Pi. In this case, Chin opted to use a Flask server along with MJPEG to stream the video feed to the browser window. The pan/tilt directions are handled using MQTT commands. Chin was kind enough to make the project open-source with all of the code used in this project made available over at GitHub .
If you’d like to recreate this Raspberry Pi project , check out the original project thread on Reddit , and be sure to follow Chin for more projects and any future updates on this one.

