This is an old revision of the document!
Proiectul folosește modulul ESP32-CAM pentru a construi un sistem de recunoaștere a imaginilor, capabil să identifice diverse obiecte în timp real. Modulul camera captează imaginea, iar un model de inteligență artificială antrenat pe platforma Edge Impulse o analizează și afișează rezultatul, adică obiectul detectat împreună cu procentul de încredere pe un ecran OLED. Pe lângă afișaj, am adăugat și un servomotor care rotește brațul cu 90° pentru a ridica sau coborî poarta, în funcție de obiectul identificat.
Scopul proiectului este să demonstreze că inteligența artificială nu are nevoie de servere puternice pentru a funcționa. Prin edge computing, algoritmii de IA rulează direct pe dispozitive mici și low-power, cum ar fi microcontrollerele, procesând datele local, fără a le trimite în cloud. Astfel, sistemul este rapid, independent de internet și ieftin.
Sunt pasionată de inteligența artificială și am vrut să construiesc ceva care să combine IA cu microcontrollerele. Provocarea principală este atât găsirea celui mai bun model care să clasifice corect obiectele, cât și optimizarea acestuia pentru a încăpea în memoria limitată a ESP32-CAM.
Proiectul are aplicații practice variate. Într-un supermarket, de exemplu, poate identifica automat produsul pus pe cântar, eliminând nevoia de a căuta manual codul acestuia și accelerând procesul pentru toți clienții. Pentru persoanele nevăzătoare, este deosebit de util deoarece nu mai trebuie să caute un cod pe un ecran pe care nu îl pot vedea. Mai departe, sistemul poate fi adaptat pentru inventariere și sortare automată în depozite sau clasificarea fructelor și legumelor în agricultură.
Module hardware:
Module software:
Listă de piese:
Demonstrație funcționare
Schema electrică prezintă sistemul complet al proiectului ESP32-CAM Object Detection, realizată în KiCad 10.0.3. Aceasta include patru componente principale: microcontrollerul ESP32-WROOM-32 în centrul schemei, display-ul OLED conectat prin I2C , convertorul USB-Serial FT232RL conectat prin UART pentru programare și alimentare la 5V, și servomotorul SG90 alimentat separat din baterii 4xAA la 6V. Firele verzi indică conexiunile de semnal și alimentare între componente, iar simbolurile de alimentare (+3.3V, +5V, +6V, GND) sunt distribuite corespunzător fiecărei componente în funcție de tensiunea necesară.
| Pin FTDI | Semnal | Conectat la | De ce? |
|---|---|---|---|
| VCC | Alimentare | ESP32 5V | Furnizează 5V prin USB de la laptop către ESP32 |
| GND | Masă | ESP32 GND | Referință comună de tensiune |
| TX | Transmisie | ESP32 U0R | FTDI trimite date, ESP32 primește - încărcare cod |
| RX | Recepție | ESP32 U0T | ESP32 trimite date, FTDI primește - Serial Monitor |
| Pin ESP32 | Semnal | Conectat la | De ce? |
|---|---|---|---|
| 5V | Alimentare | FTDI VCC | Primește alimentare 5V prin USB |
| GND | Masă | FTDI GND + Baterii GND + OLED GND | Masă comună pentru toate componentele |
| 3.3V | Alimentare | OLED VCC | 3.3V pentru OLED |
| GPIO0 | Boot mode | GND | Conectat la GND, mod programare. Deconectat, rulare normală |
| GPIO14 | I2C SCL | OLED SCL | Clock I2C pentru OLED |
| GPIO15 | I2C SDA | OLED SDA | Date I2C pentru OLED |
| GPIO16 | PWM | Servo semnal | Generează semnal PWM |
| Pin OLED | Semnal | Conectat la | De ce? |
|---|---|---|---|
| GND | Masă | ESP32 GND | Referință comună |
| VCC | Alimentare | ESP32 3.3V | OLED funcționează la 3.3V |
| SCL | I2C clock | ESP32 GPIO14 | Primește clock-ul I2C de la ESP32 |
| SDA | I2C date | ESP32 GPIO15 | Primește datele de afișat de la ESP32 |
| Pin Servo | Culoare fir | Conectat la | De ce? |
|---|---|---|---|
| VCC | Roșu | Baterii +6V | Alimentare separată baterii |
| GND | Maro/Negru | Baterii GND + ESP32 GND | Masă comună |
| Semnal | Portocaliu | ESP32 GPIO16 | Primește semnal PWM |
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.