Table of Contents

Remote-Controlled Pan-Tilt Selfie Camera

Introduction

Project Overview: This project consists of an internet-enabled camera system mounted on a dual-axis (Pan-Tilt) mechanical platform. It allows users to remotely control the camera's orientation through a web interface and capture high-resolution images stored locally on an SD card.

Purpose and Goal: The primary goal is to create a versatile monitoring tool that combines real-time low-latency video streaming with on-demand high-definition photography. By offloading mechanical control to a dedicated microcontroller, the system ensures smooth movement without interrupting the visual processing.

General Description

Module Descriptions

ESP32-CAM : Acts as the central processing unit. It hosts the Web Server, handles Wi-Fi connectivity, captures video frames via the OV2640 sensor, and manages the SD interface for file storage.

ATmega328P : Dedicated to hardware execution. It listens for commands via UART from the ESP32 and generates PWM signals to drive the servomotors. It also manages the 16×2 LCD for real-time telemetry.

Pan-Tilt Mechanism: Driven by two SG90 servomotors, providing vertical and horizontal movement.

I2C LCD Display: Provides immediate feedback on system status, such as the current IP address and coordinates.

Hardware Design

The hardware implementation will use the following components:

- ESP32-CAM

- ATMega328P-Xmini

- OV2640: high resolution camera for esp32

- SG90 servo x 2

- QAPASS 1602A: 16 x 2 LCD

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Datasheets:

- ESP32-CAM: https://www.handsontec.com/dataspecs/module/ESP32-CAM.pdf

- ATMega328P-Xmini: https://ww1.microchip.com/downloads/en/devicedoc/50002659a.pdf

- OV2640 camera: https://www.uctronics.com/download/cam_module/OV2640DS.pdf?srsltid=AfmBOoo3vdFbGk7ETYZYiuJ8k7jHcNlunSU3DsBpVrOuNQln2gw7Lgb2

- SG90 servo: https://www.friendlywire.com/projects/ne555-servo-safe/SG90-datasheet.pdf

- QAPASS LCD: https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/5773/CN0295D%20other%20related%20document.pdf