Table of Contents

Masinuta cu telecomanda

Introducere

Proiectul își propune să implementeze o mașinuță teleghidată, cu o telecomandă dedicată și o cameră pentru a putea vizualiza împrejurimile. Datorită camerei cu direcție controlată prin două servomotoare, mașinuța poate fi folosită pentru a inspecta vizual locuri greu accesibile.

Proiectul a pornit de la ideea unei mașinuțe simple (fără cameră), controlată printr-o aplicație pe telefon, însă a evoluat până la utilizarea unei camere și a unei telecomenzi dedicate, cu un display integrat.

Descriere generală

Hardware Design

Lista Piese

Schema Electrica

Schema PCB

PCB Fizic

Software Design

Mediu de Dezvoltare

PlatformIO IDE (VS Code) cu două environment-uri: env:car și env:remote. Framework Arduino pe ESP32-S3, compilator Xtensa GCC (ESP-IDF toolchain).

Biblioteci 3rd-Party

Bibliotecă Nod Utilizare
arduino-esp32 Car + Remote Wi-Fi, AsyncUDP, ADC, FreeRTOS
esp32-camera Car Driver OV2640, captură JPEG, PSRAM
NimBLE-Arduino Car + Remote BLE Coded PHY Extended Advertising
LovyanGFX Remote Display ILI9341 parallel 8-bit, drawJpg()
ESP-IDF LEDC Car PWM motoare DC (4 canale, 1 kHz, 10-bit)
ESP-IDF MCPWM Car PWM servomotoare SG90 (50 Hz, 1 µs rezoluție)
video_protocol.h / ble_protocol.h Shared Struct-uri și constante protocol custom

Algoritmi și Structuri

Surse și Funcții Implementate

car/main.cpp: initMotors, motorsDrive, motorsStop, initServos, servoTask, initCamera, sendFrame, cameraTask, initWiFiAP, initBLE

remote/main.cpp: onPacketReceived, videoTask, calibrateJoysticks, readAxis, controlTask, connectToCar, startBLEScan, updateSpeedLEDs, LGFX (clasă display)

include/: video_protocol.hVideoPacketHeader, constante UDP; ble_protocol.hControlCommand, UUID-uri BLE

Rezultate Obţinute

Masinuta: https://youtu.be/yV8iQhhMfLA

Telecomanda: https://youtu.be/jgnJoZh3GZg

Ansamblu final

Concluzii

Download

design_circuit_voinea_radu_mihai_335ca.zip

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

4 aprilie 2026


3 aprilie 2026


1 aprilie 2026


30 martie 2026


29 martie 2026


26 martie 2026


25 martie 2026


24 martie 2026


23 martie 2026

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF