This shows you the differences between two versions of the page.
pm:prj2022:sionescu:poligraf [2022/05/02 21:40] mihaela.nicolae |
pm:prj2022:sionescu:poligraf [2022/06/01 14:39] (current) mihaela.nicolae [Descriere generală] |
||
---|---|---|---|
Line 4: | Line 4: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Acest proiect constă în realizarea unui **poligraf**, cunoscut și sub numele de detector de minciuni, acesta fiind un aparat ce poate detecta dacă persoana testată spune adevărul sau dacă minte, măsurând anumiți parametri fiziologici precum **pulsul cardiac** și **temperatura corpului**, în timp ce persoanei îi sunt adresate o serie de întrebări. În urma procesării datelor colectate, poligraful ne va putea da răspunsul, informându-ne dacă persoana testată a fost sinceră sau nu. | + | Acest proiect constă în realizarea unui **poligraf**, cunoscut și sub numele de detector de minciuni, acesta fiind un aparat ce poate detecta dacă persoana testată spune adevărul sau dacă minte, măsurând anumiți parametri fiziologici precum **pulsul cardiac**, în timp ce persoanei îi sunt adresate o serie de întrebări. În urma procesării datelor colectate, poligraful ne va putea da răspunsul, informându-ne dacă persoana testată a fost sinceră sau nu. |
+ | |||
+ | {{ :pm:prj2022:sionescu:pm:prj2022:ca:nicolaemihaela_poza.png?500 |}} | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 10: | Line 12: | ||
Pentru a determina dacă persoana este sinceră, i se va conecta poligraful și i se vor adresa o serie de întrebări, iar pe baza valorilor colectate de senzorii conectați se va determina și se va afișa rezultatul folosind led-uri colorate. | Pentru a determina dacă persoana este sinceră, i se va conecta poligraful și i se vor adresa o serie de întrebări, iar pe baza valorilor colectate de senzorii conectați se va determina și se va afișa rezultatul folosind led-uri colorate. | ||
- | Vom folosi un **senzor de puls cardiac** și un **senzor de temperatură** care îi vor fi atașate persoanei testate pe încheietura mâinii. Utilizând informațiile colectate de acești senzori împreună cu trei led-uri de culori diferite vom afișa rezultatul: | + | Vom folosi un **senzor de puls cardiac** care îi va fi atașat persoanei testate pe unul dintre degete. Utilizând informațiile colectate de acest senzor, împreună cu trei led-uri de culori diferite, vom afișa rezultatul: |
+ | <note tip> | ||
* verde - persoana spune adevărul ✔️ | * verde - persoana spune adevărul ✔️ | ||
* roșu - persoana minte ❌ | * roșu - persoana minte ❌ | ||
* galben - nu se poate determina ❔ | * galben - nu se poate determina ❔ | ||
+ | </note> | ||
+ | |||
+ | Inițial, vom conecta persoana la poligraf și vom aștepta până când pulsul este preluat corect, după care apăsăm butonul de pornire al poligrafului. Fiecare întrebare va fi adresată pe rând și va fi afișată pe ecranul LCD, după care vor urma 10 secunde în care măsurăm pulsul și comparăm valorile obținute cu cele anterioare. | ||
În plus, vom adăuga un led și un buzzer care vor pâlpâi/face zgomot pe ritmul bătăilor inimii, pentru a simula ritmul cardiac al persoanei testate. | În plus, vom adăuga un led și un buzzer care vor pâlpâi/face zgomot pe ritmul bătăilor inimii, pentru a simula ritmul cardiac al persoanei testate. | ||
+ | |||
+ | În funcție de fluctuațiile pulsului, vom determina dacă persoana a fost sinceră și vom aprinde led-ul corespunzător. | ||
==== Schemă bloc ==== | ==== Schemă bloc ==== | ||
- | {{:pm:prj2022:sionescu:diana-schema-bloc.png?750|}} | + | {{ :pm:prj2022:sionescu:pm:prj2022:ca:nicolaemihaela_schema_bloc.png?600 |}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | ==== Listă de piese ==== | + | <note> |
- | * Arduino UNO | + | Listă de piese: |
- | * Breadboard | + | * Placă de dezvoltare cu ATmega328p |
- | * Senzor puls cardiac | + | * Breadboard HQ |
- | * Senzor temperatură | + | * Senzor puls cardiac XD-58C |
- | * Led-uri | + | * LED-uri de 5mm (roșu, galben și verde) |
- | * Buzzer | + | * Modul LCD I2C |
+ | * Buzzer pasiv de 5V | ||
+ | * Buton 6mm | ||
+ | * Rezistențe 1kΩ | ||
* Fire | * Fire | ||
- | * Rezistențe | ||
- | |||
- | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | ||
- | * listă de piese | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
- | * diagrame de semnal | ||
- | * rezultatele simulării | ||
</note> | </note> | ||
+ | |||
+ | ==== Layout în TinkerCad ==== | ||
+ | {{ :pm:prj2022:sionescu:pm:prj2022:ca:nicolaemihaela_tinkercad.png?750 |}} | ||
+ | |||
+ | ==== Schemă electrică ==== | ||
+ | {{ :pm:prj2022:sionescu:pm:prj2022:ca:nicolaemihaela_schema_electrica.png?600 |}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediul de dezvoltare folosit a fost **Arduino IDE**, în care am folosit bibliotecile PulseSensorPlayground pentru senzorul de puls, LiquidCrystal_I2C pentru LCD și ezButton pentru butonul de start. | ||
+ | Pentru monitorizarea pulsului am folosit aplicația de vizualizare **Processing**. | ||
- | <note tip> | + | {{ :pm:prj2022:sionescu:pm:nicolaemihaela_visualizer.png?500 |}} |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
- | ===== Rezultate Obţinute ===== | + | <note important> |
+ | Inițializarea senzorului de puls (pinul și led-ul ce va pâlpâi): | ||
+ | <code> | ||
+ | PulseSensorPlayground pulseSensor; | ||
+ | pulseSensor.analogInput(PULSE_PIN); | ||
+ | pulseSensor.blinkOnPulse(PULSE_LED); | ||
+ | pulseSensor.setThreshold(thresh); | ||
+ | </code> | ||
+ | |||
+ | Determinarea pulsului (BPM) și afișarea datelor, împreună cu pâlpâirea led-ului și a buzzer-ului: | ||
+ | <code> | ||
+ | int myBPM = pulseSensor.getBeatsPerMinute(); | ||
+ | pulseSensor.outputSample(); | ||
+ | |||
+ | // if there was a heartbeat | ||
+ | if (pulseSensor.sawStartOfBeat()) { | ||
+ | // print BPM to lcd | ||
+ | ... | ||
+ | lcd.print(myBPM); | ||
+ | ... | ||
+ | |||
+ | // output heartbeat | ||
+ | pulseSensor.outputBeat(); | ||
+ | tone(BUZZER, 900); | ||
+ | | ||
+ | ... | ||
+ | } | ||
+ | </code> | ||
+ | </note> | ||
+ | ===== Rezultate Obţinute ===== | ||
+ | {{ :pm:prj2022:sionescu:pm:nicolaemihaela_demo.png?600 |}} | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Un scurt demo cu poligraful poate fi vizionat [[https://youtu.be/uNFV37I9K58|aici]]. |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Proiectul realizează ceea ce își propune, fiind un poligraf rudimentar, care nu garantează o acuratețe de 100%. Scopul lui a fost de a realiza un obiect funcțional și distractiv, cu ajutorul căruia m-am familiarizat cu lucrul cu plăcile de dezvoltare. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note tip> |
- | 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ă ;-). | + | Arhiva cu fişierele obţinute în urma realizării proiectului: {{:pm:prj2022:sionescu:pm:nicolaemihaela.zip|}} |
</note> | </note> | ||
Line 68: | Line 105: | ||
* 22.04 -> alegere temă proiect | * 22.04 -> alegere temă proiect | ||
* 02.05 -> creare pagină wiki cu introducere și descrierea proiectului | * 02.05 -> creare pagină wiki cu introducere și descrierea proiectului | ||
+ | * 23.05 -> implementare hardware | ||
+ | * 01.06 -> finalizare pagina wiki | ||
- | ===== Bibliografie/Resurse ===== | + | ===== Resurse ===== |
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://create.arduino.cc/projecthub/electropeak/arduino-polygraph-machine-lie-detector-7d8b10|Arduino Polygraph Machine (Lie Detector)]] |
+ | * [[https://lastminuteengineers.com/pulse-sensor-arduino-tutorial/|Monitor the Heart Rate using Pulse Sensor and Arduino]] | ||
+ | * [[https://create.arduino.cc/projecthub/abiodun1991/developing-a-device-for-heart-rate-using-pulse-sensor-22746c|Developing a device for Heart Rate using pulse sensor]] | ||
+ | * [[https://create.arduino.cc/projecthub/Arnov_Sharma_makes/lcd-i2c-tutorial-664e5a|LCD I2C Tutorial]] | ||
</note> | </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> | ||