Poligraf

Nicolae Mihaela-Diana | 335CA

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, î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.

Descriere generală

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 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:

  • verde - persoana spune adevărul ✔️
  • roșu - persoana minte ❌
  • galben - nu se poate determina ❔

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 funcție de fluctuațiile pulsului, vom determina dacă persoana a fost sinceră și vom aprinde led-ul corespunzător.

Schemă bloc

Hardware Design

Listă de piese:

  • Placă de dezvoltare cu ATmega328p
  • Breadboard HQ
  • Senzor puls cardiac XD-58C
  • LED-uri de 5mm (roșu, galben și verde)
  • Modul LCD I2C
  • Buzzer pasiv de 5V
  • Buton 6mm
  • Rezistențe 1kΩ
  • Fire

Layout în TinkerCad

Schemă electrică

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.

Inițializarea senzorului de puls (pinul și led-ul ce va pâlpâi):

  PulseSensorPlayground pulseSensor;

  pulseSensor.analogInput(PULSE_PIN);
  pulseSensor.blinkOnPulse(PULSE_LED);
  pulseSensor.setThreshold(thresh);

Determinarea pulsului (BPM) și afișarea datelor, împreună cu pâlpâirea led-ului și a buzzer-ului:

  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);
    
    ...
  }

Rezultate Obţinute

Un scurt demo cu poligraful poate fi vizionat aici.

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

Arhiva cu fişierele obţinute în urma realizării proiectului: nicolaemihaela.zip

Jurnal

  • 22.04 → alegere temă proiect
  • 02.05 → creare pagină wiki cu introducere și descrierea proiectului
  • 23.05 → implementare hardware
  • 01.06 → finalizare pagina wiki

Resurse

pm/prj2022/sionescu/poligraf.txt · Last modified: 2022/06/01 14:39 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