This shows you the differences between two versions of the page.
pm:prj2025:cmoarcas:matei.plescan [2025/05/05 14:50] matei.plescan created |
pm:prj2025:cmoarcas:matei.plescan [2025/05/30 00:10] (current) matei.plescan |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== RC Car with Front Assist ====== | ====== RC Car with Front Assist ====== | ||
+ | |||
+ | Matei Plescan 333CA | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | + | Mașinuța cu front assist oferă un moment de distracție chiar și celor mai proști șoferi, deoarece reușește să frâneze înainte ca aceștia să facă un accident. |
- | Prezentarea pe scurt a proiectului vostru: | + | |
- | * ce face | + | Proiectul își propune să atingă subiectul detecției de coliziuni cu obstacole pentru vehiculele teleghidate la distanță sau autonome, și pe cel al conducerii prin telecomandă la distanță mică, folosind WiFi. |
- | * care este scopul lui | + | |
- | * care a fost ideea de la care aţi pornit | + | |
- | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
- | </note> | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Robotul realizat va putea să se deplaseze, fiind controlat prin WiFi de pe un dispozitiv mobil. El va detecta obstacolele de care se apropie și va frâna automat. Mai mult, nu va permite decât mersul cu spatele cât timp detectează un obstacol în fața sa. Va trimite și date de presiune și temperatură, semnalând când apar posibilități de defecte din astfel de cauze. Controlul robotului se va face printr-un website găzduit pe microcontroller, la care se poate conecta un dispozitiv mobil prin WiFi. |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | {{ new-block-matei.png?500 }} |
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | Plăcuța de dezvoltare cu ESP32 (cu WiFi și Bluetooth integrate) va fi plasată pe șasiul cu 2 roți, alături de un driver TB6612FNG pentru motoarele roților, un senzor HC-SR04P, un senzor BMP180, și alte elemente de conexiune (breadboards, fire, etc.). Plăcuța va comunica prin WiFi cu un dispozitiv mobil. Cu senzorul BMP180, va folosi I2C, cu cel HC-SR04P semnale digitale, iar cu driverul va folosi PWM pentru controlul roților. |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | **Piese folosite:** |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * ESP32 Devkit |
- | * diagrame de semnal | + | * Șasiu cu 2 roți și 2 motoare DC |
- | * rezultatele simulării | + | * Modul buck convertor MP1584EN |
- | </note> | + | * Modul driver TB6612FNG |
+ | * Senzor ultrasonic de distanță HC-SR04P (compatibil 3.3V) | ||
+ | * Senzor de temperatură și presiune BMP180 | ||
+ | * Suport baterii 4xAA | ||
+ | * Breadboards | ||
+ | * Fire | ||
+ | |||
+ | **Pinii ESP32:** | ||
+ | |||
+ | |||
+ | ^ Pin ESP32 ^ Funcție ^ Conectat la ^ | ||
+ | | VIN (5V) | Alimentare | TB6612FNG Vcc, de la MP1584 | | ||
+ | | 3V3 | Alimentare | HC-SR04P Vcc | | ||
+ | | IO21 | SDA | BMP180 | | ||
+ | | IO22 | SCL | BMP180 | | ||
+ | | IO05 | TRIG | HC-SR04P | | ||
+ | | IO18 | ECHO | HC-SR04P | | ||
+ | | IO12 | STBY | TB6612FNG | | ||
+ | | IO33 | PWMA | TB6612FNG | | ||
+ | | IO26 | AIN1 | TB6612FNG | | ||
+ | | IO25 | AIN2 | TB6612FNG | | ||
+ | | IO32 | PWMB | TB6612FNG | | ||
+ | | IO27 | BIN1 | TB6612FNG | | ||
+ | | IO14 | BIN2 | TB6612FNG | | ||
+ | |||
+ | |||
+ | |||
+ | <note important>**Alimentare** | ||
+ | |||
+ | Folosesc 4 baterii AA, care scot ~6V. Pentru a le folosi pentru alimentarea circuitului, am introdus un modul de buck convertor bazat pe MP1584EN, care scoate o tensiune de 5V stabilă (ce alimentează ESP32). Senzorul de distanță este alimentat la 5V (dar dă output 3.3V), la fel și logica driver-ului (care primește VCC 6V separat pentru motoare). Senzorul de presiune și temperatură este alimentat de la 3.3V (de la ESP32).</note> | ||
+ | |||
+ | Schema electrică a proiectului: | ||
+ | |||
+ | {{ rc-car-schematic-new-new-matei.png?700 }} | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | <note tip> | + | Mediu de dezvoltare: PlatformIO |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Librării de interes: |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * WiFi.h – pentru conectarea la rețea |
- | * (etapa 3) surse şi funcţii implementate | + | * WebServer.h - pentru crearea unei pagini web cu JavaScript |
- | </note> | + | * Adafruit_BMP085.h + Wire.h - pentru comunicarea I2C cu senzorul de presiune și temperatură |
+ | |||
+ | Algoritmi principali: | ||
+ | |||
+ | * Un server web simplu cu butoane pentru direcții (înainte, înapoi, stânga, dreapta, stop) | ||
+ | * Citirea senzorului ultrasonic | ||
+ | * Logica de siguranță: dacă distanța < 10cm, comanda de mers înainte este ignorată | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | {{ img_7308.jpeg?300 }} {{ screenshot_2025-05-30_at_00.08.59.png?200 }} | ||
- | <note tip> | + | [[https://youtu.be/o2j7rwSTR1c]] |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost un proiect din care am învățat destul de multe, aș spune, mai ales despre alimentare, pentru că am fost nevoit să găsesc soluții la tot felul de probleme legate de tensiunea pe care o ofer plăcuței, dar și motoarelor. | ||
===== Download ===== | ===== Download ===== | ||
- | + | {{ rc-car.zip }} | |
- | <note warning> | + | |
- | 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**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | |||
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||