This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:firefighter-car [2023/05/28 11:08] george.tudor1906 [Concluzii] |
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. | ||
Line 107: | Line 108: | ||
* **void car_forward(int delay_value)** - Mașina merge înainte pentru o perioadă specificată. | * **void car_forward(int delay_value)** - Mașina merge înainte pentru o perioadă specificată. | ||
* **void car_backward()** - Mașina merge înapoi. | * **void car_backward()** - Mașina merge înapoi. | ||
- | * **void car_left()** - Mașina se rotește la stânga. | + | * **void car_left(int delay_value)** - Mașina se rotește la stânga pentru o perioadă specificată. |
- | * **void car_right()** - Mașina se rotește la dreapta. | + | * **void car_rightint delay_value()** - Mașina se rotește la dreapta pentru o perioadă specificată. |
* **void car_stop()** - Mașina se oprește. | * **void car_stop()** - Mașina se oprește. | ||
\\ | \\ | ||
Line 115: | Line 116: | ||
* 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. | * 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?350 }} | {{ :pm:prj2023:ndrogeanu:app_2_firefighter_car.jpeg?350 }} | | + | | {{ :pm:prj2023:ndrogeanu:app_1_firefighter_car.jpeg?300 }} | {{ :pm:prj2023:ndrogeanu:app_2_firefighter_car.jpeg?300 }} | |
\\ | \\ | ||
Line 123: | Line 124: | ||
* un buton de revenire la pagina anterioară. | * un buton de revenire la pagina anterioară. | ||
- | {{ :pm:prj2023:ndrogeanu:app_3_firefighter_car.jpeg?350 |}} | + | {{ :pm:prj2023:ndrogeanu:app_3_firefighter_car.jpeg?300 |}} |
\\ | \\ | ||
Line 135: | Line 136: | ||
* revenire la pagina anterioră. | * revenire la pagina anterioră. | ||
- | {{ :pm:prj2023:ndrogeanu:app_4_firefighter_car.jpeg?350 |}} | + | {{ :pm:prj2023:ndrogeanu:app_4_firefighter_car.jpeg?300 |}} |
\\ | \\ | ||
Line 144: | Line 145: | ||
* revină la pagina anterioară. | * revină la pagina anterioară. | ||
- | {{ :pm:prj2023:ndrogeanu:app_5_firefighter_car.jpeg?350 |}} | + | {{ :pm:prj2023:ndrogeanu:app_5_firefighter_car.jpeg?300 |}} |
\\ | \\ | ||
Line 153: | Line 154: | ||
- | {{ :pm:prj2023:ndrogeanu:app_6_firefighter_car.jpeg?350 |}} | + | {{ :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 165: | Line 174: | ||
Proiectarea și construirea unui astfel de robot poate oferi mai multe abilități și competențe educaționale: | Proiectarea și construirea unui astfel de robot poate oferi mai multe abilități și competențe educaționale: | ||
* **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. | * **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. | * ** 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. | * **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. | * **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. | * **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. | * **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. | ||
- | \\ | ||
\\ | \\ | ||
Line 181: | Line 184: | ||
* **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. | * **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ă. | * **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ă. | * **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. | * **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. | * **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. | * **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ță. | * **Î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 213: | 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> |