Opgave 4

Lav din egen løgnedetektor

Hvordan fungerer en løgnedetektor? En professionel en af slagsen måler både puls, sved, hjerterytme, og meget mere for at opfange nogle af de små stress-symptomer, der opstår, når en person fortæller løgnehistorier.

Vidste du, at de fleste mennesker begynder at svede en lille smule – eller meget – i hænderne, når de fortæller en løgn? I denne øvelse kan du lave en simpel løgnedetektor, der bruger fugtmåleren til at registrere, hvor meget sved, din testperson udskiller gennem huden på fingrene. Jo mere sved, jo hurtigere transmitteres signalerne mellem de to sensor-gaffelgrene.

Det er kun sjov og ballade! Din testperson kan jo også begynde at svede, hvis der er meget varmt, eller hvis han griner meget af dine spørgsmål!

Trin 1

Sådan kobler du
komponenterne sammen

Sensor:bit
P1: Fugtmåler

Øvrige tilslutninger:
IIC: OLED skærm
Batteriholder

Trin 2

Programmér startskærm

2.1

Indsæt en ”ved start” kommando fra Grundlæggende menuen.

2.3

Indsæt “show string” fra OLED menuen, og skriv din starthilsen ind som værdi. Fx. ”Placer fingrene”.

2.2

Indsæt ”initialize OLED with height width” fra OLED menuen.

2.4

Indsæt en ”pause” fra Grundlæggende menuen. Sæt den til 3000 ms

Trin 3

Programmér en testmåling af din testperson, før forhøret går i gang

Før du kan teste din prøvekanin, skal du først måle, hvor meget fugt, der udskilles gennem fingrene, når personen er rolig, og holder to fingre på fugtmåleren. Denne del af koden får fugtsensoren til at måle de elektriske impulser mellem de to fingre med få sekunders mellemrum gennem et minuts tid. Så udregner den et gennemsnit. Det gennemsnit bruges som udgangspunkt for, at din testperson taler sandt.

Indsæt en “Sæt liste til” kommando fra Variabler. Højreklik på ”list” og vælg ”new variable” – ny variabel. Den nye variabel kan du kalde for ”std” for standard.

I din ”square root” kommando, indsætter du denne kommando fra Matematik menuen:

Indsæt ”sæt liste til array of 1 2 – +” fra Matricer menuen. Tryk på ”-”, indtil der står ”empty array”.

I din ”gentag-lav” kommando, indsætter du ”list tilføj værdi til slut” fra Matricer menuen.

Indsæt ”ændr list af 1” fra Variabler menuen. Klik på list og vælg ”New variable – ny variabel. Kald f.eks. din nye variabel for ”elec” for elektriske impulser.

Indsæt ”pause” fra Grundlæggende menuen. Sæt værdien til 1500 ms (=  1,5 sekunder).

Indsæt ”square root” (kvadratrod) fra Matematik menuen som værdi som vist på billedet.

Opret en ny variabel under Variabler menuen, som du kan kalde for ”stdafv” for standardafgivelse, og indsætter den som den første square root værdi. Den anden square root værdi skal være 30.

Indsæt en ”gentag-lav” kommando fra Løkker menuen. Sæt værdien til 30.

Indsæt ”analog læs pin til slut” fra Pins menuen, og vælg P1 som værdi.

Indsæt også her ”analog læs pin til slut” fra Pins menuen, og vælg P1 som værdi.

Trin 4

Udregn et gennemsnit som udgangspunkt for din test.

Den næste del af koden udregner gennemsnittet af de elektriske impulser, du lige har målt på din testperson. Den bliver dit udgangspunkt for ”sand”-værdier – dvs. hvornår din testperson taler sandt.

Indsæt ”sæt til” fra Variabler menuen. Højreklik på den første værdi, vælg New variable – og kald din nye variabel ”average”.

Indsæt ”for hvert element lav” fra Løkker menuen.

Indsæt ”ændr værdi af 1” fra Variabler menuen. Vælg ”stdafv” som din første værdi.

Nu kan du trække hele strengen ind på plads, og rette værdierne til, som de ser ud på billedet.

Indsæt ”show number”.

Indsæt en ”square root” kommando fra Matematik menuen. I den første værdi indsætter du ”elec” fra din Variabel menu. Klik på pilen, hvor der står ”square root”, og vælg ”heltal divideret med” i stedet. I den anden værdi skriver du 30.

Lav en ny Variabel, du kalder value3, indsæt den som første værdi i din løkke, og vælg ”list” i den anden værdi.

For at lave den lange, lilla streng i denne del af koden, kan du starte med at trække en ”0 x 0” kommando ud på makecode editoren. Derefter indsætter du en ”0 – 0” kommando som værdier på hver side af ”x”-tegnet i din ”0 x 0” streng.

Indsæt ”show string fra OLED menuen, og indtast den tekst, der skal vises på skærmen, når gennemsnittet er udregnet – f.eks. ”Dit gennemsnit”.

Indsæt ”square root” fra Matematik menuen, og udfyld værdierne som vist.

Trin 5

Få målinger hvert 5. sekund under din test

Når testmålingen er overstået, skal løgnedetektoren lave målinger hvert 5. sekund. Det gøres med denne kode:

5.1

Start en ”for altid” kommando fra Grundlæggende menuen.

5.3

Indtast ”0” som værdi for at nulstille efter testmålingen.

5.5

Indsæt ”ændr resultater af” fra Variabler menuen, og indsæt ”analog læs pin” fra Pins menuen, og indsæt P1 som værdi.

5.2

Indsæt en ”sæt til” kommando fra Variabler, og opret en ny variabel, der hedder ”readings”.

5.4

Indsæt en ”gentag-lav kommando fra Løkker menuen, og sæt værdien til 5.

Trin 6

Få vist positive og negative resultater

Nu skal vi kigge på, hvordan du får LED skærmen til at vise et X, når elektriske impulser er højere end gennemsnittet. Dvs. når din testperson sandsynligvis pynter lidt på sandheden!

Det ser sådan her ud:

Indsæt en “clear OLED display”
fra OLED menuen.

Indsæt ”0 > 0” fra Logik menuen, og indsæt de viste strenge fra Matematik og Variabler menuerne og sæt til “≥”.

Indsæt ”show number” fra OLED menuen, og udfyld med den viste streng fra Matematik og Variabler.

Indsæt en pause på 1500 ms fra Grundlæggende menuen. Indsæt ”Ryd skærmen” fra Grundlæggende menuen for at slette krydset, så detektoren er klar til næste spørgsmål. (Du finder den ved at klikke på Grundlæggende, og så klikke på de tre prikker, hvor der står ”more”.)

Indsæt en ”hvis-sand-ellers” kommando fra Logik menuen.

Indsæt ”show string” fra OLED menuen, og udfyld den tekst, der skal vises på skærmen, når resultaterne er højere end gennemsnittet. Fx. ”Bukserne flyver!”

Indsæt ”vis ikon” fra Grundlæggende menuen, og klik på den for at vælge X-ikonet.

Hvis måleresultaterne ligger på eller under gennemsnittet, og dermed inden for normal aktivitet, er der stor sandsynlighed for, at din prøvekanin taler sandt. Så kan du få skærmen til at vise et flueben:

Højreklik på “Show string “Bukserne flyver!”” -modulet og vælg duplér. Flyt de 5 sammenhængende moduler ned under “ellers” og omdøb “Show string” til “Sandhed”.

Ændr ”vis ikon” modulet til √-ikonet.

Du er nu klar til at teste din kode

Download den til din løgnedetektor, sæt fugtmåleren fast på din prøvekanins fingre med elastikker.
HUSK: Det er vigtigt, din testperson holder fingrene på sensor-pindene i 30 sekunder, før du starter dit forhør.

Tip: Hvis du vil opnå de mest troværdige resultater, så sørg for, din testperson sidder godt, i et behageligt rum, og selvfølgelig ikke så varmt, at han eller hun allerede sveder, inden testen er gået i gang! Hvis du vil prøve igen, skal du trykke på ”reset” knappen på bagsiden.

Er der noget, der driller?

Tjek, om du har husket det hele, og prøv igen. Eller download den færdige kode her.

Flere forsøg med løgnedetektoren?

Kan man gøre løgnedetektoren endnu mere præcis?
Hvad sker der, hvis du bruger løgnedetektoren alene og prøver at lyve for dig selv?
(Kan du lave en løgndetektor der viser sandt, selvom man lyver?)