This is an old revision of the document!
Proiectul „Gyroscope Controlled Car” urmărește dezvoltarea unui sistem de control wireless pentru un vehicul cu două roți, operat printr-o telecomandă care detectează mișcarea utilizatorului cu ajutorul unui giroscop. Acest sistem este conceput pentru a oferi un mod intuitiv și hands-free de a controla deplasarea unui robot mobil, doar prin înclinarea telecomenzii.
Proiectul îmbină mai multe concepte din domeniul sistemelor embedded, precum: comunicație wireless low-latency (ESP-NOW), controlul motoarelor prin PWM, interfațare I2C, UART pentru debug, GPIO, prelucrarea datelor senzorilor de mișcare, afișare în timp real și măsurare a tensiunii analogice(ADC). Soluția propusă este modulară și extensibilă, reprezentând o bază solidă pentru dezvoltarea de vehicule autonome sau controlate prin metode alternative.
Device-ul este compus din doua componente:
Controlul vehiculului se bazează pe un senzor de mișcare MPU6050, montat pe o placă ESP32 aflată în telecomandă. Informațiile despre orientare (pitch, roll) sunt procesate și transmise în timp real către vehicul prin protocolul ESP-NOW, care permite o comunicare rapidă și directă între cele două microcontrolere ESP32, fără a necesita o rețea Wi-Fi.
Vehiculul, echipat cu un alt modul ESP32, primește comenzile, interpretează direcția dorită de deplasare și controlează două motoare prin intermediul unui driver L298N. Sistemul este completat de un ecran LCD care afișează în timp real starea bateriei, și de un senzor de distanță HC-SR04, ce permite detectarea obstacolelor și implementarea unei funcții de evitare a coliziunii..
Telecomada este formata dintr-un ESP32 care primeste informatii despre pozitie de la un senzor cu gyroscope MPU6050. Cele 2 comunica prin I2C.
Pe masina avem un alt ESP32 care comunica cu cel de pe telecomanda prin ESP-NOW. Motoarele sunt controlate prin intermediul unui driver de motoare L298N care este legat la ESP32 si utilizeaza PWM pentru controlul motoarelor. LCD-ul afiseaza tensiunea bateriei de la motoare si procentul acesteia, comunicand prin I2C. De asemenea am adaugat un senzor de distanta, care, daca detecteaza o distanta mai mica de 20cm, va misca masina inapoi.
MPU6050 | ESP32 | Funcție |
---|---|---|
VCC | 3V3 | Alimentare 3.3V |
GND | GND | GND |
SDA | GPIO 21 | I2C - Date |
SCL | GPIO 22 | I2C - Ceas |
ESP32 Pin | L298N Pin | Funcție |
---|---|---|
GPIO 32 | ENA | Viteză motor stânga (PWM) |
GPIO 33 | IN1 | Direcție motor stânga |
GPIO 25 | IN2 | Direcție motor stânga |
GPIO 26 | IN3 | Direcție motor dreapta |
GPIO 27 | IN4 | Direcție motor dreapta |
GPIO 14 | ENB | Viteză motor dreapta (PWM) |
ADC 34 | VCC | Măsurare tensiune baterie |
ESP32 Pin | LCD Pin (modul I2C) | Funcție |
---|---|---|
GPIO 21 | SDA | Date I2C |
GPIO 22 | SCL | Ceas I2C |
5V (Vin) | VCC | Alimentare |
GND | GND | GND |
ESP32 Pin | HC-SR04 Pin | Funcție |
---|---|---|
GPIO 12 | Trig | Transmitere impuls ultrasonic |
GPIO 14 | Echo | Recepție ecou (măsurare timp întârziere) |
5V | VCC | Alimentare senzor |
GND | GND | GND |
Mediul de dezvotare este ArduinoIDE.
Modulul transmițător are rolul de a colecta date de la senzorul de mișcare MPU6050 și de a le transmite, prin intermediul protocolului ESP-NOW, către un modul receptor.
Modulul receptor are rolul de a primi datele transmise prin ESP-NOW de la senzorul MPU6050 (de pe transmițător) și de a executa acțiuni corespunzătoare asupra motoarelor, în funcție de mișcările detectate.
Proiectul demonstrează eficiența comunicării ESP-NOW pentru aplicații low-latency și fiabilitatea senzorilor utilizați în contextul controlului robotic. Prin combinarea mai multor tehnologii (MPU6050, HC-SR04, ESP32, LCD I2C), s-a obținut un sistem complet, capabil să răspundă în timp real la comenzile utilizatorului. Acest proiect oferă o bază solidă pentru extinderea ulterioară către vehicule complet autonome sau controlate prin alte metode, precum aplicații mobile sau comenzi vocale.