Skip to content

A Raspberry Pi + ESP32-powered turret with real-time control, live video, and optional AI-based tracking.

Notifications You must be signed in to change notification settings

peterz0310/camera-turret-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Camera Turret System

This project is a modular camera turret system consisting of a web-based UI, a camera streaming backend, and firmware for controlling turret hardware. The system is containerized using Docker Compose for easy development and deployment.

Project Structure

  • docker-compose.yml: Orchestrates the services for development using Docker Compose.
  • ui/: Next.js web application for controlling and viewing the camera turret.
  • camera-stream/: Python backend for camera streaming and image processing.
  • firmware/: Embedded code for controlling the turret hardware (motors and camera), organized for PlatformIO.

Details

ui/

  • Built with Next.js.
  • Provides a user interface to control the turret and view the camera feed.
  • Hot-reloads in development via Docker Compose.

camera-stream/

  • Python application (see app.py).
  • Handles camera input and streams video to the UI.
  • Can serve a fallback image if the camera is unavailable.

firmware/

  • Contains PlatformIO projects for both camera and motor control.
  • Each subfolder (cam/, motors/) has its own source code and configuration for embedded development.

Development

Prerequisites

Running the System

  1. Clone the repository.
  2. From the root directory, run:
    docker-compose up --build
  3. Access the UI at http://localhost:3000.

Firmware

  • Firmware is managed separately using PlatformIO.
  • See firmware/cam/ and firmware/motors/ for details.

Parts List

Part Description Link
Screw terminals (for electrical) Amazon
Cooling fans (for electronics box) Amazon
Nema 17 motors 1.5a 42x42x38mm (x2) Amazon
ESP32 Cam Amazon
8mm flange coupling connectors Amazon
8x100mm shafts Amazon
Assorted M3 screws Amazon
Closed loop rubber belts Amazon
DRV8825 stepper motor driver Amazon
Various Dupont jumper cables Amazon

3D printed parts

Many parts of this project are 3D printed. I used a BambuLabs A1 and PETG filament, but any printer with a sufficiently large build area should be fine.

Files are available on MakerWorld.

About

A Raspberry Pi + ESP32-powered turret with real-time control, live video, and optional AI-based tracking.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published