Differences

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

Link to this comparison view

pm:prj2022:sionescu:poligraf [2022/05/02 20:06]
mihaela.nicolae created
pm:prj2022:sionescu:poligraf [2022/06/01 14:39] (current)
mihaela.nicolae [Descriere generală]
Line 1: Line 1:
-====== ​Nume proiect ​======+====== ​Poligraf ​====== 
 +Nicolae Mihaela-Diana | 335CA 
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +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ț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. 
-Prezentarea pe scurt a proiectului vostru: + 
-  ​ce face +{{ :​pm:​prj2022:​sionescu:​pm:​prj2022:​ca:​nicolaemihaela_poza.png?​500 |}} 
-  ​care este scopul lui +
-  ​care a fost ideea de la care aţi pornit +
-  ​* de ce credeţi că este util pentru alţii şpentru voi +
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +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țse va determina și se va afișrezultatul folosind led-uri colorate.
-O schemă bloc cu toate modulele proiectului vostruatât software cât şhardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.+
  
-Exemplu ​de schemă blochttp://​www.robs-projects.com/​mp3proj/​newplayer.html+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 ✔️ 
 +  * roșu - persoana minte ❌ 
 +  * galben - nu se poate determina ❔
 </​note>​ </​note>​
  
-===== Hardware Design =====+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.
  
-<​note ​tip+Î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. 
-Aici puneţi tot ce ţine de hardware design+ 
-  * listă de piese +În funcție de fluctuațiile pulsului, vom determina dacă persoana a fost sinceră și vom aprinde led-ul corespunzător. 
-  * 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 ​ +==== Schemă bloc ==== 
-  * rezultatele simulării+{{ :​pm:​prj2022:​sionescu:​pm:​prj2022:​ca:​nicolaemihaela_schema_bloc.png?​600 |}} 
 + 
 +===== Hardware Design ===== 
 +<​note>​ 
 +Listă ​de piese
 +  * Placă de dezvoltare cu ATmega328p 
 +  * Breadboard HQ 
 +  * Senzor puls cardiac XD-58C 
 +  * LED-uri de 5mm (roșugalben și verde
 +  * Modul LCD I2C 
 +  * Buzzer pasiv de 5V 
 +  * Buton 6mm 
 +  * Rezistențe 1kΩ 
 +  * Fire
 </​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.gProcyon 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|}}
- +
-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>​
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip+  * 22.04 -alegere temă proiect 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului. +  * 02.05 -> creare pagină wiki cu introducere ​și descrierea ​proiectului 
-</note>+  * 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>​
  
pm/prj2022/sionescu/poligraf.1651511210.txt.gz · Last modified: 2022/05/02 20:06 by mihaela.nicolae
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