This shows you the differences between two versions of the page.
pm:prj2025:avaduva:radu.tulumb [2025/05/13 11:59] radu.tulumb |
pm:prj2025:avaduva:radu.tulumb [2025/05/28 18:59] (current) radu.tulumb [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Lie Detector ====== |
===== Introducere ===== | ===== 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. | ||
- | <note tip> | ||
- | Prezentarea pe scurt a proiectului vostru: | ||
- | * ce face | ||
- | * care este scopul lui | ||
- | * care a fost ideea de la care aţi pornit | ||
- | * de ce credeţi că este util pentru alţii şi pentru voi | ||
- | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Dispozitivul include: |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
+ | 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 | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <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> | ||
+ | |||
+ | 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 | ||
+ | |||
+ | {{:pm:prj2025:avaduva:schemablocradutulumb.drawio.png?200|}} | ||
+ | |||
+ | |||
+ | =====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 ===== | ===== 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 | ||
- | <note tip> | ||
- | 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> | ||
+ | ===== Imagini ===== | ||
+ | Senzor gsr improvizat | ||
+ | {{:pm:prj2025:avaduva:senzor_gsr.jpeg?200|}} | ||
+ | Display LDC i2c + Arduino | ||
+ | {{:pm:prj2025:avaduva:lcdi2carduino.jpeg?200|}} | ||
+ | Senzor puls | ||
+ | {{:pm:prj2025:avaduva:senzor_puls.jpeg?200|}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Calibrare automată a senzorului puls |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | 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 ===== | ===== 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 ===== | ===== Download ===== | ||
Line 60: | Line 283: | ||
</note> | </note> | ||
- | ===== Bibliografie/Resurse ===== | + | ==== Bibliografie/Resurse ===== |
- | <note> | + | Resurse Hardware |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | 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 | ||
<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> | ||