Firefighter Car

Student: Tudor George-Alexandru

Grupa: 334CC

Introducere

Prezentarea succintă a proiectului:

Am ales realizarea unei mașinuțe care are capacitatea de a simula funcționalitățile unei mașini de pompieri. Folosind senzori de foc, mașinuța poate detecta apariția unui foc și merge în direcția lui pentru a opri incendiul. În timpul deplasării, își face simțită prezența utilizând semnale audio și luminoase facilitând astfel înaintarea mai rapidă spre sursa incendiului.

:!: De ce este utilă o astfel de mașinuță? :!:

Detectarea incendiului nu este un lucru nou, dar faptul că mașinuța acționează imediat, fără ajutor, este un lucru extrem de util. Astfel, dacă ne gândim la un nivel mai mare, pot exista astfel de mașinuțe în fiecare apartament, pentru a preîntâmpina producerea unui dezastru în cazul unui incendiu.

Descriere generală

Această mașinuță are următoarele funcționalități:

  • :-| Detectează focul din apropiere folosind 3 senzori de foc. Acești senzori se află în partea din față a mașinuței și sunt dispuși în formă de semicerc.
  • 8-o Se deplasează singură în direcția focului, în funcție de activitatea senzorilor. Mașinuța își controlează singură direcția de deplasare ajutându-se de cei trei senzori de foc. Se va opri când distanța dintre ea și foc este suficent de mică astfel încât să poată stinge incendiul.
  • 8-) Anunță detectarea unui incendiu imitând sirena pompierilor cu ajutorul unui buzzer. De asemenea, mașinuța dispune de led-uri roșii și galbene care vor semnala faptul că are o misiune. Semnalele audio și luminoase vor fi prezente pe toată durata misiunii, de la detectarea focului, până la stingerea incendiului. Mai mult, va trimite un mesaj bluetooth în care va informa utilizatorul despre prezența sursei de foc.
  • ;-) Stinge incendiul folosind o pompă submersibilă care conduce apa din recipientul din dotare al mașinuței. Odată stins focul, mașinuța intră în pauză, așteptând ca senzorii să detecteze un nou incendiu.
  • ^_^ Afișează pe LCD starea în care se află.


Mașinuța poate fi controlată prin Bluetooth

Prin intermediul aplicației, utilizatorul poate alege dintre două opțiuni:

  • mașina funcționează pe baza senzorilor de foc,
  • utilizatorul controlează funcționalitățile mașinii.

Dacă se alege prima variantă, mașina urmărește pașii descriși anterior. În schimb, cea de a doua opțiune îi permite utilizatorului să controleze independent fiecare utilitate a mașinuței:

  • pornire\oprire leduri;
  • pornire\oprire sirenă;
  • pornire\oprire pompă de apă;
  • afișare de mesaje personalizate pe LCD;
  • deplasarea mașinuței.

Schemă bloc

Hardware Design

Lista componente
  • Arduino UNO R3 ATMEGA328P
  • Placă de control motoare L293D
  • Modul BLUETOOTH HC-05
  • Senzori de flacără IR
  • Pompă submersibilă
  • Releu
  • I2C LCD Display
  • Recipient pentru apă și furtun
  • Motoare cu reductor și roți
  • Buton
  • Led-uri
  • Buzzer
  • Fire
  • 2 acumulatori 3.7V, 6800mAh

Scheme electrice

Software Design

  • mediu de dezvoltare: Arduino IDE 2.1.0
  • librării:
    • 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.
    • Wire.h: stabilește comunicarea prin interfața I2C.
  • aplicația pentru telefon a fost creată folosind MIT APP INVENTOR.

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.
app_1_firefighter_car.jpeg app_2_firefighter_car.jpeg


  • 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ă.


  • 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ă.


  • 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ă.


  • 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ă.


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

Concluzii

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.
  • 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.


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

Jurnal

  1. 10.04.2023 - Alegere temă proiect
  2. 14.04.2023 - Comandă de componente
  3. 18.04.2023 - Primire piese
  4. 04.05.2023 - Creare pagină OCW
  5. 06.05.2023 - Completare milestone 1
  6. 07.05.2023 - Funcționalități noi
  7. 17.05.2023 - Adăugare scheme electrice
  8. 19.05.2023 - Completare milestone 2
  9. 21.05.2023 - Funcționalități noi
  10. 28.05.2023 - Finalizare pagină Wiki

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite.

Resurse Hardware

Resurse Software

pm/prj2023/ndrogeanu/firefighter-car.txt · Last modified: 2023/05/30 00:04 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