Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:ndrogeanu:firefighter-car [2023/05/28 09:42]
george.tudor1906 [Software Design]
pm:prj2023:ndrogeanu:firefighter-car [2023/05/30 00:04] (current)
george.tudor1906 [Software Design]
Line 67: Line 67:
   * Buzzer   * Buzzer
   * Fire   * Fire
 +  * 2 acumulatori 3.7V, 6800mAh
  
 {{ :​pm:​prj2023:​ndrogeanu:​schema_electrica_1_firefighter_car.png?​400 }} {{ :​pm:​prj2023:​ndrogeanu:​schema_electrica_1_firefighter_car.png?​400 }}
Line 81: Line 82:
  
 <note tip> <note tip>
-  * **mediu de dezvoltare**:​ Arduino IDE+  * **mediu de dezvoltare**:​ Arduino IDE 2.1.0
   * **librării**:​   * **librării**:​
        * //​__AFMotor.h__//:​ utilizată pentru controlul motoarelor DC, oferind funcții pentru a seta viteza și direcția roților.        * //​__AFMotor.h__//:​ utilizată pentru controlul motoarelor DC, oferind funcții pentru a seta viteza și direcția roților.
        * //​__LiquidCrystal_I2C.h__//:​ folosită pentru controlul unui afișaj LCD cu interfață I2C.        * //​__LiquidCrystal_I2C.h__//:​ folosită pentru controlul unui afișaj LCD cu interfață I2C.
        * //​__Wire.h__//:​ stabilește comunicarea prin interfața I2C.        * //​__Wire.h__//:​ stabilește comunicarea prin interfața I2C.
 +  * **aplicația** pentru telefon a fost creată folosind [[https://​appinventor.mit.edu/​|MIT APP INVENTOR]].
 </​note>​ </​note>​
 +
 +===Funcții implementate===
 +  * **int detect_fire(int distance)** - primește o valoare de distanță și returnează una dintre valorile:
 +       * //NO_FIRE (0)// - dacă nu se detectează foc;
 +       * //FIRE (1)// - dacă se detectează foc la o distanță mai mare;
 +       * //​CLOSE_FIRE (2)// - dacă se detectează foc la o distanță mică.
 +
 +  * **void leds_job(bool high_led)** - controlează starea LED-urilor. Dacă parametrul high_led este true, LED-urile vor fi aprinse, în caz contrar vor fi stinse.
 +
 +  * **void buzzer_job()** - activează buzzerul și generează un sunet de alarmă.
 +
 +  * **void lcd_job(String message)** - afișează un mesaj pe display LCD.
 +
 +  * **void pump_job()** - controlează pompa de apă.
 +
 +==Funcții de control al mașinii==
 +
 +  * **void car_forward(int delay_value)** - Mașina merge înainte pentru o perioadă specificată.
 +  * **void car_backward()** - Mașina merge înapoi.
 +  * **void car_left(int delay_value)** - Mașina se rotește la stânga pentru o perioadă specificată.
 +  * **void car_rightint delay_value()** - Mașina se rotește la dreapta pentru o perioadă specificată.
 +  * **void car_stop()** - Mașina se oprește.
 +\\
 +===Logica programului===
 +
 +  * Aplicația permite selectarea unei conexiuni Bluetooth. După ce această conexiune este stabilită, utilizatorul poate alege modul în care dorește să funcționeze mașina.
 +
 +| {{ :​pm:​prj2023:​ndrogeanu:​app_1_firefighter_car.jpeg?​300 }} | {{ :​pm:​prj2023:​ndrogeanu:​app_2_firefighter_car.jpeg?​300 }} |
 +
 +\\
 +
 +  *  La alegerea opțiunii de control prin senzori, se va merge la o pagină ce conține:
 +     * un label în care vor apărea mesaje în legătură cu starea mașinuței;​
 +     * un buton de revenire la pagina anterioară. ​
 +
 +{{ :​pm:​prj2023:​ndrogeanu:​app_3_firefighter_car.jpeg?​300 |}}
 +
 +\\
 +
 +  *  Dacă utilizatorul alege să controleze singur mașina, se va merge la o pagină ce conține mai multe butoane de control pentru:
 +     * leduri;
 +     * buzzer;
 +     * pompă de apă;
 +     * display LCD;
 +     * mișcare mașină;
 +     * revenire la pagina anterioră.
 +
 +{{ :​pm:​prj2023:​ndrogeanu:​app_4_firefighter_car.jpeg?​300 |}}
 +
 +\\
 +
 +  *  La selectarea butonului de control al display-ului LCD, utilizatorul poate să:
 +     * scrie orice mesaj în caseta text;
 +     * trimită mesajul pentru a fi afișat pe LCD;
 +     * revină la pagina anterioară.
 +
 +{{ :​pm:​prj2023:​ndrogeanu:​app_5_firefighter_car.jpeg?​300 |}}
 +
 +\\
 +
 +  *  Dacă se optează pentru controlul mașinii, utilizatorul va putea să:
 +     * comande mașinuța să meargă în față/​spate/​stânga/​dreapta;​
 +     * revină la pagina anterioară.
 +
 +
 +{{ :​pm:​prj2023:​ndrogeanu:​app_6_firefighter_car.jpeg?​300 |}}
 +
 +\\
 +===Cum funcționează?​===
 +
 +Prin intermediul aplicației se trimite un string specific fiecărui buton apăsat. Se va veirifca ce comandă (string) a fost primit, iar programul va executa instrucțiunile respective.
 +
 +Pentru partea de control prin senzori, se vor citi valorile celor trei senzori și se determină distanța de la mașinuță până la sursa de foc. Dacă se detectează foc în partea stângă sau dreaptă, mașina se rotește, iar dacă focul este în față, mașinuța se deplaasează ușor în față (se folosesc funcțiile de mișcare a mașinuței). Când focul este suficient de aproape (când avem CLOSE_FIRE),​ mașinuța se oprește și pornește pompa. În tot acest timp, se trimit mesaje către LCD, mesaje care ne spun în ce stare se află mașinuța.
 +
 +La controlul de către utilizator, în funcție de stringul primit de la Bluetooth, se execută o acțiunie - leduri, pompă, buzzer. Dacă se alege controlul mașinuței,​ se va aștepta unul dintre mesajele de deplasare stânga/​față/​spate/​dreapta și se apelează funcția corespunzătoare. De asemenea, dacă se apasă pe butonul de întoarcere la pagina anterioară,​ programul va ieși din modul de control al mașinuței.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 95: Line 171:
 {{ :​pm:​prj2023:​ndrogeanu:​firefighter_car_3.jpg?​350 |}} {{ :​pm:​prj2023:​ndrogeanu:​firefighter_car_3.jpg?​350 |}}
  
-<note tip> +===== Concluzii ===== 
-Care au fost rezultatele ​obţinute ​în urma realizării proiectului vostru+Proiectarea și construirea unui astfel de robot poate oferi mai multe abilități și competențe educaționale:​ 
-</​note>​+  * **Programare și dezvoltare software**: am învățat să scriu și să dezvolt codul sursă pentru a controla motoarele, a citi datele de la senzori și a interacționa cu toate componentele robotului. Aceasta mi-a îmbunătățit înțelegerea conceptelor de bază ale programării unui microcontroller. 
 +  * ** Electronică și construcția hardware**: am acumulat cunoștințe despre circuitele electronice și modul de conectare și interacțiune cu senzori, motoare, LED-uri și alte dispozitive pentru a asigura funcționarea corectă a acestora. 
 +  * **Utilizarea și integrarea senzorilor**:​ am învățat să utilizez senzori de detectare a focului pentru a obține date și informații despre mediul ​în care se află robotul. Această experiență mi-a dezvoltat înțelegerea funcționării senzorilor și abilitatea de a integra aceste date în funcționalitățile robotului. 
 +  * **Controlul motoarelor și mișcarea robotică**:​ am dobândit competențe în controlul motoarelor în diferite direcții și viteze pentru a obține mișcarea robotică înainte, înapoi, la stânga sau la dreapta. Aceasta mi-a permis să înțeleg conceptele de bază ale controlului motorului și ale cinematicii robotice. 
 +  * **Comunicare și interacțiune**: ​ am învățat să interacționez și să comunic cu diverse componente hardware prin intermediul diferitelor dispozitive și interfețe. Am utilizat protocoale de comunicare, precum Bluetooth, pentru a transfera date între robot și alte dispozitive. Această experiență m-a ajutat să dezvolt abilități practice în comunicarea și interacțiunea cu roboții și sistemele integrate. 
 +  * **Rezolvarea de probleme și gândire critică**: am fost pus în situații în care a trebuit să identific și să remediez erori de programare și probleme hardware, precum și să găsesc soluții creative pentru a îmbunătăți performanța și funcționalitatea robotului. Aceste experiențe m-au ajutat să dezvolt abilități de rezolvare de probleme, gândire critică și capacitatea de a aborda provocările tehnice
 +\\
  
-===== Concluzii =====+De asemenea, construirea unei astfel de mașinuțe poate aduce o serie de avantaje și beneficii în gestionarea incendiilor:​
  
 +  * **Detectarea și intervenția rapidă**: poate detecta rapid focul și poate lua măsuri imediate pentru a-l stinge sau a-l controla. Aceasta poate reduce semnificativ timpul de răspuns și poate minimiza daunele cauzate de incendii.
 +  * **Acces la zone periculoase**:​ poate fi proiectat să pătrundă în zone periculoase sau greu accesibile pentru a evalua situația și a interveni acolo unde este necesar. Acest lucru poate fi extrem de util în situații în care intervenția umană este dificilă sau periculoasă.
 +  * **Automatizare și independență**:​ funcționează autonom, fiind programat să ia decizii și să execute acțiuni în funcție de datele și condițiile de mediu. Acest nivel de automatizare permite reducerea dependenței de intervenția umană directă și poate crește eficiența operațională.
 +  * **Monitorizare și raportare**:​ poate fi dotat cu senzori și dispozitive de monitorizare pentru a colecta și transmite date despre starea incendiilor,​ temperatura,​ gazul, fumul și alți parametri relevanți. Aceste informații pot fi utilizate pentru luarea deciziilor și pentru furnizarea de rapoarte precise despre situație.
 +  * **Reducerea riscurilor pentru personalul uman**: utilizarea unui robot autonom poate reduce expunerea personalului uman la riscurile asociate cu intervenția în incendii. Acesta poate acționa în sprijinul echipelor de pompieri, minimizând riscul de accidente.
 +  * **Flexibilitate și adaptabilitate**:​ poate fi proiectat și configurat pentru a se adapta la diferite tipuri de incendii și medii de lucru. De la incendii în clădiri și spații comerciale până la incendii în mediul industrial, robotul poate fi conceput pentru a face față diferitelor provocări și nevoi.
 +  * **Îmbunătățirea eficienței și a eficacității intervenției**:​ poate fi programat și proiectat pentru a lucra în tandem cu echipamente și tehnologii complementare,​ cum ar fi sisteme de supraveghere video, rețele de senzori și dispozitive de comunicații avansate. Aceasta poate duce la o intervenție mai eficientă și la o gestionare mai bună a situațiilor de urgență.
 ===== Download ===== ===== Download =====
  
 <note warning> <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ă ;-). +{{:pm:prj2023:ndrogeanu:firefighter_car_project.zip|}}
- +
-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>​ </​note>​
  
Line 121: Line 208:
   - 19.05.2023 - Completare milestone 2   - 19.05.2023 - Completare milestone 2
   - 21.05.2023 - Funcționalități noi   - 21.05.2023 - Funcționalități noi
 +  - 28.05.2023 - Finalizare pagină Wiki
 </​note>​ </​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- 
-  * https://​content.arduino.cc/​assets/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf\\ 
-  * https://​www.ti.com/​lit/​ds/​symlink/​l293.pdf\\ 
-  * https://​components101.com/​sites/​default/​files/​component_datasheet/​HC-05%20Datasheet.pd\\ 
-  * https://​cdn-learn.adafruit.com/​downloads/​pdf/​adafruit-motor-shield.pdf\\ 
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+Listă cu documente, datasheet-uri,​ resurse Internet folosite.
 </​note>​ </​note>​
  
 +===Resurse Hardware===
 +    * **Piese**
 +      * https://​cleste.ro/​arduino-uno-r3-atmega328p.html
 +      * https://​cleste.ro/​placa-de-control-motoare-l293d.html
 +      * https://​cleste.ro/​modul-bluetooth-hc-05.html
 +      * https://​www.emag.ro/​kit-sasiu-masina-cu-4-roti-4wd-cu-traductor-21670/​pd/​DDJTRHMBM/​
 +      * https://​cleste.ro/​led-de-5-mm.html
 +      * https://​cleste.ro/​modul-buzzer-pasiv.html
 +      * https://​www.sigmanortec.ro/​Senzor-flacara-4-pini-p136262597?​fast_search=fs
 +      * https://​cleste.ro/​pompa-de-apa-3-6v.html
 +      * https://​cleste.ro/​modul-releu-1-canal.html
 +      * https://​cleste.ro/​ecran-lcd-1602-iic-i2c.html
 +
 +\\
 +    * **Datasheets**
 +      * https://​content.arduino.cc/​assets/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
 +      * https://​www.ti.com/​lit/​ds/​symlink/​l293.pdf
 +      * https://​cdn-learn.adafruit.com/​downloads/​pdf/​adafruit-motor-shield.pdf
 +\\
 +
 +===Resurse Software===
 +    * https://​appinventor.mit.edu/​
 +    * https://​projecthub.arduino.cc/​SURYATEJA/​arduino-modules-flame-sensor-e48e97
 +    * https://​lastminuteengineers.com/​l293d-motor-driver-shield-arduino-tutorial/​
 +    * https://​www.irjet.net/​archives/​V8/​i6/​IRJET-V8I6583.pdf
 +
 +\\
 <​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>​
pm/prj2023/ndrogeanu/firefighter-car.1685256152.txt.gz · Last modified: 2023/05/28 09:42 by george.tudor1906
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0