Table of Contents

AutoDrift - Masina RC cu Drift si Telemetrie IMU in Timp Real

Introducere

AutoDrift este o masinuta RC construita pe un sasiu RWD cu roti spate din plastic dur, care permite generarea de drifturi naturale prin supravirare controlata. Masinuta este controlata wireless de pe telefon (iOS si Android) prin Bluetooth BLE, iar un senzor IMU MPU-6050 masoara in timp real unghiul de yaw si durata driftului, afisate live pe un display OLED SSD1306.

Ideea proiectului porneste de la dorinta de a crea un produs interactiv si spectaculos care sa demonstreze practic controlul PWM al motoarelor, comunicarea I2C si UART, si procesarea datelor de la un senzor inertial pe microcontrollerul ATmega324P.

Proiectul este util deoarece:

Ipoteza: Credem ca aplicarea unui impuls PWM asimetric (diferenta peste 40% intre motorul stang si cel drept) combinat cu un viraj brusc va genera un unghi de drift masurabil de minim 30 de grade fata de axa de deplasare, deoarece reducerea tractiunii rotilor posterioare provoaca supravirare controlata detectabila de giroscopul MPU-6050.

Descriere generala

Sistemul este organizat in module functionale care comunica prin intermediul microcontrollerului ATmega324P. Acesta primeste comenzi de directie si viteza prin UART de la modulul HM-10 BLE, controleaza motoarele prin PWM via driverul L298N, citeste datele IMU prin I2C de la MPU-6050 si le afiseaza pe OLED-ul SSD1306 (tot I2C). LED-ul RGB ofera feedback vizual instant despre starea masinii.

Schema bloc a sistemului:

+-------------------------------------------------------------+
|              AutoDrift - RC Drift Car                       |
|  [Telefon iOS/Android]                                      |
|         | Bluetooth BLE                                     |
|     [HM-10 BLE] ---UART---> [ATmega324P]                    |
|                                   |                         |
|              +--------------------+------------------+      |
|          [I2C bus]             [PWM]             [GPIO]     |
|    [MPU-6050]  [SSD1306]      [L298N]           [LED RGB]   |
|    Giroscop +  OLED Display  [Motor St] [Motor Dr]          |
|                          [Servo SG90] - directie fata       |
+-------------------------------------------------------------+

Modulele principale ale proiectului sunt:

Interactiunea dintre module:

Hardware Design

Lista de componente

Referinta Componenta Cantitate
U1 ATmega324P (placa de dezvoltare PM) 1
U2 MPU-6050 (giroscop + accelerometru, I2C) 1
U3 HM-10 BLE Module (Bluetooth 4.0, UART) 1
DISP1 OLED SSD1306 128×64 (I2C) 1
DRV1 L298N Motor Driver 1
M1, M2 Motoare DC 3-6V (tractiune spate) 2
SRV1 Servo SG90 (directie fata) 1
LED1 LED RGB catod comun 1
R1, R2, R3 Rezistoare 220 ohm (limitare curent LED) 3
BAT1 Baterie LiPo 7.4V 2S 1
REG1 Regulator tensiune 5V (LM7805 sau LM2596) 1
BB1 Breadboard 1
Sasiu RWD low-profile 1
Roti spate din plastic dur (low-friction) 1 set
Fire jumper tata-tata / tata-mama

Conexiuni electrice

Pin ATmega324P Tip Conectat la
PD0 (RXD) UART RX TX - HM-10 BLE
PD1 (TXD) UART TX RX - HM-10 BLE
PC0 (SCL) I2C SCL SCL - MPU-6050 + SCL - SSD1306
PC1 (SDA) I2C SDA SDA - MPU-6050 + SDA - SSD1306
PB3 (OC0A) PWM ENA - L298N (motor stang)
PD4 GPIO IN1 - L298N
PD5 GPIO IN2 - L298N
PB4 (OC0B) PWM ENB - L298N (motor drept)
PD6 GPIO IN3 - L298N
PD7 GPIO IN4 - L298N
PB1 (OC1A) PWM / Timer1 Semnal servo SG90 (50Hz, 1-2ms)
PC2 GPIO / PWM LED RGB - R
PC3 GPIO / PWM LED RGB - G
PC4 GPIO / PWM LED RGB - B
VCC (5V) Power HM-10, MPU-6050, SSD1306, L298N logic
GND GND Masa comuna

Detalii module hardware

Modulul de control wireless - HM-10 BLE

Modulul HM-10 utilizeaza Bluetooth Low Energy 4.0, compatibil atat cu iOS cat si cu Android, spre deosebire de HC-05 care functioneaza doar cu Android. Comunicarea cu ATmega se face prin UART la 9600 baud. Pe telefon se poate folosi orice aplicatie de tip BLE joystick (ex: Bluetooth for Arduino pe App Store, Serial Bluetooth Terminal pe Play Store).

Modulul IMU - MPU-6050

MPU-6050 este conectat pe magistrala I2C impreuna cu display-ul OLED, ambele pe pinii PC0 (SCL) si PC1 (SDA). Adresa I2C implicita este 0x68. Datele de viteza unghiulara de pe axa Z (GYRO_ZOUT) sunt citite la fiecare 20ms si integrate software pentru a obtine unghiul de yaw curent.

Detectia driftului activ se face cand:

Modulul de actionare - L298N

L298N controleaza independent cei doi motori DC. Driftul se genereaza prin aplicarea unui PWM asimetric: motorul din exteriorul virajului primeste duty cycle mai mare decat cel din interior, provocand supravirarea rotilor spate pe suprafata cu frictiune redusa.

Servo SG90 - directie fata

Servo-ul primeste un semnal PWM de 50Hz generat de Timer1 al ATmega. Pozitia neutra corespunde unui duty cycle de 1.5ms, stanga la 1ms si dreapta la 2ms. Comanda de directie din aplicatia de telefon modifica proportional valoarea duty cycle-ului.

Software Design

TODO - va fi completat in etapa urmatoare.

Se planifica implementarea urmatoarelor functionalitati:

Structura principala a algoritmului:

setup:
  initializeaza UART (9600 baud) pentru HM-10
  initializeaza I2C pentru MPU-6050 si SSD1306
  initializeaza Timer0 pentru PWM motoare
  initializeaza Timer1 pentru servo (50Hz)
  initializeaza GPIO pentru L298N si LED RGB
  afiseaza ecran de start pe OLED

loop (la fiecare 20ms):
  citeste comanda UART de la HM-10
  parseaza comanda (F/B/L/R/S + intensitate)
  calculeaza PWM stanga si dreapta
  aplica PWM la L298N
  actualizeaza servo directie
  citeste GYRO_ZOUT de la MPU-6050 prin I2C
  integreaza viteza unghiulara => unghi yaw
  detecteaza drift activ (prag unghi sau viteza)
  actualizeaza OLED (unghi, durata drift, status BT)
  actualizeaza LED RGB (verde/rosu/albastru)

Rezultate Obtinute

TODO - va fi completat dupa implementare si testare.

Metrici tinta propuse:

Concluzii

TODO - va fi completat la finalul proiectului.

Proiectul isi propune sa demonstreze folosirea practica a comunicatiei Bluetooth BLE, a controlului PWM al motoarelor si a procesarii datelor de la un senzor IMU pe microcontrollerul ATmega324P. Prin masurarea unghiului de yaw in timp real, sistemul poate cuantifica si afisa fenomenul de drift intr-un mod interactiv si spectaculos.

Download

TODO - se va adauga arhiva proiectului dupa implementare.

Arhiva finala va contine:

Link repository Git: TODO

Jurnal

Data Activitate
09.05.2026 Alegerea temei proiectului si realizarea documentatiei initiale.
09.05.2026 Definirea modulelor principale si a schemei bloc.
09.05.2026 Stabilirea listei de componente hardware.

Bibliografie/Resurse

Resurse Hardware

Resurse Software