Lie Detector

Introducere

Proiectul „Arduino Lie Detector” folosește un Arduino Uno R3 pentru a integra și demonstra măsurători multiprotocol (OneWire, I2C, ADC) și interfațare hardware (LED, buzzer, LCD) într-un sistem care detectează modificările electrodermice (EDA), ritmul cardiac și temperatura. La apăsarea butonului sau automat la pornire, dispozitivul realizează o fază de stabilizare, apoi măsoară răspunsul la întrebări și afișează verdictul („FALS”/„ADEVĂRAT”) pe un display LCD I2C, cu semnal sonor și feedback luminos.

Descriere generală

Dispozitivul include:

Arduino Uno R3 (ATmega328P) ca unitate de control

Senzor EDA (fybrid foil) pe pin A1, cu rezistor de pull-down 2 kΩ către GND

Modul puls KY-039 pe pin A3, calibrare 5 s pentru prag hardware

Senzor DS18B20 pe magistrala OneWire (pin D2)

Display LCD I2C (address 0x27) pe SDA (A4) și SCL (A5)

LED-uri roșu/verde pe D8/D9 cu rezistențe 220 Ω

Buzzer pasiv pe D6

Dispozitivul rulează o mașină de stări: calibrare puls, stabilizare EDA, așteptare răspuns, verdict. În paralel, transmite date de temperatură (°C), BPM și EDA raw spre Serial Plotter.

Functionalitati cheie

Măsurarea EDA (Electrodermal Activity) prin doi electrozi pe degete (analog A1)

Măsurarea pulsului cu modul KY-039 (analog A3 + calibrare automată)

Măsurarea temperaturii cu DS18B20 (OneWire, pin D2)

Afișaj verdict și interfață pe LCD I2C 16×2 (pini A4=SDA, A5=SCL)

Feedback vizual prin LED roșu și verde (pini D8, D9)

Feedback audio prin buzzer pasiv (pin D6), ton lung pentru „FALS” și trei bipe pentru „ADEVĂRAT”

Vizualizare grafică a temperaturii, pulsului (BPM) și EDA în Serial Plotter la 500 ms interval

Hardware Design

Componente și legături

EDA electrode (2× folie aluminiu)

A1

Măsurare electrodermală (include 2 kΩ la GND)

= KY-039 AO =

A3

Semnal analogic pentru puls

KY-039 DO (opțional)

D2

Semnal digital prag (calibrare externă)

= DS18B20 =

D2

OneWire temperatură

LCD I2C

A4 (SDA), A5(SCL)

Afișaj verdict

LED roșu

D8

Feedback minciună (digital)

LED verde

D9

Feedback adevărat (digital)

Buzzer pasiv

D6

Feedback audio

GND, 5 V

GND, 5 V

Alimentare și referință

Protocoale utilizate

ADC: EDA și puls (A1, A3), conversie 10 biți

OneWire: DS18B20 pe D2

I2C: LCD pe A4/A5

GPIO: LED-uri și buzzer

Bill of Materials (BOM)

Componentă

Tip

Pin Arduino

Cantitate

Arduino Uno R3

MCU

-

1

EDA electrodes (folie)

Electrod analogic

A1

2

KY-039

Senzor puls analog

A3

1

DS18B20

Senzor temperatură

D2

1

LCD I2C 16×2

Display

A4/A5 (I2C)

1

LED 5 mm roșu/verde

Indicator vizual

D8, D9

1/1

Rezistențe 220 Ω

Limitator LED

-

2

Rezistor 2 kΩ

Pull-down EDA

-

1

Buzzer pasiv

Audio

D6

1

Fire Dupont jumper

Conexiuni

-

câte 1

Protocoale utilizate

ADC: EDA și puls (A1, A3), conversie 10 biți

OneWire: DS18B20 pe D2

I2C: LCD pe A4/A5

GPIO: LED-uri și buzzer

Software Design

Mașina de stări

PULSE_CAL: calibrare 5 s senzor puls (min/max) → prag = media

EDA_STAB: stabilizare 10 s măsurare EDA base

EDA_RESP: așteptare 10 s răspuns, calcul Δ EDA și verdict

DONE: verdict afișat pe LCD, LED, buzzer

Bucla principală

Serial Plotter la 500 ms: Serial.println(tempC, “\t”, lastBPM, “\t”, edaRaw)

Detecție puls: eșantionare 100 Hz, rising edge peste prag și now - lastBeat >= 300 ms → beatCount++

Calcule BPM la fiecare 15 s: BPM = beatCount * 60000 / 15000

Funcții și variabile cheie

minVal, maxVal, threshold pentru senzor puls

edaBase pentru EDA

lastState, lastBeatTime, beatCount pentru puls

Imagini

Senzor gsr improvizat Display LDC i2c + Arduino Senzor puls

Rezultate Obţinute

Calibrare automată a senzorului puls

Măsurători EDA și BPM integrate

Verdict analogic: „FALS” sau „ADEVĂRAT” cu LED și sunet

Afișare verdict pe LCD I2C

Vizualizare grafică în Serial Plotter

Concluzii

Proiectul demonstrează integrarea senzorilor electrodermal, puls, temperatură și a interfețelor I2C, OneWire și ADC pe Arduino Uno R3, oferind un sistem funțional de detecție a stărilor emoționale. Poate fi extins cu salvare de date pe card SD sau transmitere wireless.

Download

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

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Resurse Hardware

Arduino Uno R3 (ATmega328P) – pagina oficială Arduino

KY-039 Heart Rate Sensor Module

DS18B20 Digital Temperature Sensor

Modul LCD I²C (HD44780/PCD8544)

Rezistor 2 kΩ, rezistențe 220 Ω

Resurse Software

Arduino IDE – mediu de dezvoltare oficial Arduino

LiquidCrystal_I2C – librărie pentru LCD I²C

OneWire & DallasTemperature – librării pentru DS18B20

Tone, noTone, Serial – funcții din Arduino Core

Exemple Serial Plotter – documentație Arduino pentru afișare grafică

Alte referințe

Electrodermal Activity (GSR) – Wikipedia

Polygraph – Wikipedia

Piezo Buzzer Connection – tutoriale online

Export to PDF

pm/prj2025/avaduva/radu.tulumb.txt · Last modified: 2025/05/28 18:59 by radu.tulumb
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