This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:casian.drugea [2026/05/08 23:24] casian.drugea |
pm:prj2026:bianca.popa1106:casian.drugea [2026/05/09 23:16] (current) casian.drugea |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== RoboTracker ====== | + | |
| + | ====== RoboTracker - Sistem Autonom de Navigație și Tracking ====== | ||
| + | |||
| + | ===== 1. Introducere ===== | ||
| + | |||
| + | **RoboTracker** este un robot mobil 4WD construit în jurul platformei Arduino Uno, proiectat să demonstreze integrarea senzorilor ultrasonici cu algoritmi de control în timp real. | ||
| + | |||
| + | * **Scopul:** Realizarea unui vehicul capabil să mențină o distanță fixă față de un obiect (auto-tracking) și să execute manevre de precizie (cum ar fi cercul cu diametrul de 1m). | ||
| + | * **Ideea de bază:** Combinarea controlului manual prin interfață Serială (UART) cu sisteme automate de siguranță de tip „hardware interrupt” pentru evitarea coliziunilor. | ||
| + | * **Utilitate:** Proiectul servește ca bază pentru studiul sistemelor de asistență la conducere (ADAS), demonstrând cum un microcontroler poate prioritiza siguranța (frânarea de urgență) peste comenzile utilizatorului. | ||
| + | |||
| + | ===== 2. Descriere generală ===== | ||
| + | |||
| + | Proiectul este organizat într-o structură ierarhică: | ||
| + | * **Modulul de Percepție:** Utilizează senzorul HC-SR04 pentru a mapa distanța până la cel mai apropiat obiect. | ||
| + | * **Modulul de Control (FSM):** O mașină de stări implementată în software care decide comportamentul robotului (INAINTE, INAPOI, CERC, TRACKING). | ||
| + | * **Modulul de Siguranță:** O rutină de întrerupere hardware (ISR) care monitorizează pinul de Echo și poate opri motoarele independent de fluxul principal al programului. | ||
| + | * **Modulul de Execuție:** Driverul L298N care traduce semnalele PWM de la Arduino în mișcare fizică prin cele 4 motoare DC. | ||
| + | |||
| + | ===== 3. Hardware Design ===== | ||
| + | |||
| + | ==== Listă de componente ==== | ||
| + | * **Microcontroler:** Arduino UNO R3 | ||
| + | * **Modul Bluetooth:** HC-05 | ||
| + | * **Șasiu:** 4 x motoare DC 5V cu reductor și roți de cauciuc | ||
| + | * **Driver Motoare:** L298N Dual Bridge | ||
| + | * **Senzori distanță:** 2 x HC-SR04 | ||
| + | * **Alimentare:** 2 x acumulatori Samsung 18650 Li-ion (7.4V serie) | ||
| + | * **Monitorizare:** Modul nivel baterie 2S (8.4V) | ||
| + | * **Interacțiune:** Întrerupător cu cheie, switch MTS-102, modul laser | ||
| + | |||
| + | ==== Schemă Bloc ==== | ||
| + | |||
| + | {{pm:prj2026:bianca.popa1106:bloc1.png?600 | Schema Bloc RoboTracker}} | ||
| + | |||
| + | ===== 4. Software Design ===== | ||
| + | |||
| + | ==== Mediu de dezvoltare ==== | ||
| + | * PlatformIO (Visual Studio Code Core) | ||
| + | * Framework: Arduino | ||
| + | |||
| + | ==== Algoritmi și Structuri ==== | ||
| + | * **Mașina de Stări (Finite State Machine):** Robotul navighează între 5 stări (STAI, INAINTE, INAPOI, CERC, TRACKING) folosind comenzi primite prin UART (Serial Monitor). | ||
| + | * **Pin Change Interrupt (PCINT):** Spre deosebire de funcția standard pulseIn() care blochează procesorul, am configurat registrele PCICR și PCMSK2 pentru a detecta ecoul ultrasonic asincron. | ||
| + | * **Formula distanței utilizată:** $distanta = durata\_puls / 58$ | ||
| + | * **Algoritm de Tracking:** Implementat sub forma unui controller de tip „dead-zone”: | ||
| + | * $d < 7cm \rightarrow$ Retragere (INAPOI) | ||
| + | * $7cm \le d \le 14cm \rightarrow$ Menținere (STAI) | ||
| + | * $14cm < d < 25cm \rightarrow$ Urmărire (INAINTE) | ||
| + | |||
| + | ===== 5. Rezultate Obținute ===== | ||
| + | |||
| + | * **Navigație:** Robotul execută un cerc stabil cu diametrul de aproximativ 1m folosind un coeficient de viteză diferențială de 0.68. | ||
| + | * **Siguranță:** Timpul de reacție al frânei de urgență la detectarea unui obstacol este de ordinul microsecundelor, prevenind impactul. | ||
| + | * **Tracking:** Robotul „urmărește” cu succes un obiect, menținând zona de confort între 7 și 14 cm. | ||
| + | |||
| + | ===== 6. Concluzii ===== | ||
| + | |||
| + | Proiectul RoboTracker a demonstrat că un sistem complex de robotică poate fi controlat eficient pe un hardware limitat (ATmega328p) dacă se folosesc întreruperile hardware în locul polling-ului. Cea mai mare provocare a fost sincronizarea motoarelor, rezolvată prin maparea corectă a pinilor PWM (3 și 9) pentru a permite o plecare liniară a șasiului 4WD. | ||
| + | |||
| + | ===== 7. Jurnal de Progres ===== | ||
| + | |||
| + | * **Săptămâna 1:** Asamblare șasiu și cablare driver L298N. | ||
| + | * **Săptămâna 2:** Implementare logică UART și mașină de stări de bază. | ||
| + | * **Săptămâna 3:** Rezolvare probleme sincronizare | ||
| + | * **Săptămâna 4:** Configurare registre PCICR pentru întreruperi hardware pe senzorul ultrasonic. Calibrare diametru cerc 1m. | ||
| + | * **Săptămâna 5:** Implementare mod Tracking și finisare documentație. | ||
| + | |||
| + | ===== 8. Bibliografie/Resurse ===== | ||
| + | |||
| + | * Datasheet ATmega328p | ||
| + | * HC-SR04 User Guide - Specificații timpi de propagare. | ||