Modul 2: Der Lügendetektor

Im folgenden Modul wirst du lernen, wie du mit dem Octopus Text auf dem Bildschirm ausgibst. Weiter lernst du, wie ein Mikrocontroller mit seiner Umgebung interagiert. 

Lernpfad

Das Problem

Der Polygraph – auch besser bekannt als Lügendetektor (vgl. Abbildung 1) – ist ein Gerät, das verschiedene Körperparameter wie Puls, Atmung, Blutdruck und elektrische Leitfähigkeit der Haut während einer Befragung misst und aufzeichnet.

In der Klasse 8a wird in der Pause immer Lügenmäxchen gespielt, ein Würfelspiel, bei dem der beste Lügner gewinnt. Wir wollen einen eigenen Lügendetektor bauen, um herauszufinden, wann ein Mitspieler lügt.

Welche Möglichkeiten bietet der Octopus?

Der Octopus kann als einfacher Lügendetektor verwendet werden. Über die analogen Kontakte (vgl. Abbildungen 2 und 3) des Octopus, können wir den Hautwiderstand der Fingerkuppe einer Testperson messen. Dieser Messwert kann Hinweise darauf geben, ob jemand die Wahrheit sagt, da Menschen beim Lügen oft schwitzige Hände bekommen.

Der analoge Eingang des Octopus liefert uns einen Messwert zwischen 0 und 1023.  Warum das so ist und wie wir daraus den tatsächlichen Hautwiderstand der Testperson bestimmen können, erfährst du in den optionalen Inhalten.

Abb. 2 Hier findest du analoge Kontakte des Octopus. Auch der weiße Stecker über den goldenen Kontakten ist ein analoger Eingang
Abb. 3 Legt man den Finger auf die Kontakte, fällt ein Wert zwischen 0 und 1023 am Kontakt an
Den Wert am analogen Eingang auslesen

Ein erstes Programm

Zu Beginn werden wir uns anschauen, wie man den Wert am analogen Eingang messen kann. Dafür benötigen wir das Bauteil "analog Read" aus der Schublade "Sensoren". Du wirst bemerken, dass das Bauteil nicht in das IoT2-Programmbauteil passt (vgl. Abbildung 4), weil es einen „spitzen“ Anschluss hat. Dies bedeutet, dass es sich um einen Zahlenwert handelt, der vom der vom Sensor erzeugt wird. Solch ein Zahelnwert kann nur zusammen mit einem anderen Bauteil weiterverarbeitet werden - z.B. zur Ausgabe des Zahlenwerts auf dem Bildschirm. Dazu holen wir uns zunächst das Bauteil „Serial print“ aus der Schublade „Kommunikation“ und anschließend, ebenfalls von dort, ein „verbinde“-Bauteil, um den viereckigen mit dem spitzen Anschluss zu verbinden (vergleiche Abbildung 5).
Zudem benötigen wir das Bauteil „Warte Millisekunden“ (das kennst du ja schon aus Modul 1), damit die Werte nicht zu schnell hintereinander auf dem seriellen Monitor angezeigt werden.

Der serielle Monitor erlaubt es uns, Daten vom Octopus an den PC zu senden und diese in Form von Texten auf dem Bildschirm auszugeben. Da man dort nur Text angeben kann, muss man zuerst Zahlwerte in Text übersetzen. Hierfür benötigen wir die Verbinder als Adapter. Den seriellen Monitor findest du am oberen Rand des Ardublocks (vgl. Abbildung 6). Wenn du auf den Button klickst, öffnet sich der serielle Monitor und es werden die Daten angezeigt, die der Octopus sendet (vgl. Abbildung 7).

Abb. 4 Der spitze Anschluss des analogRead passt nicht in das Hauptbauteil des Ardublocks
Abb. 5 Mit Hilfe des "verbinde"-Bauteils können wir das "analogRead" mit dem "Serial print" verbinden
Abb. 6 Hier findest du den "Seriellen Monitor" für das Anzeigen der Daten
Abb. 7 Die Messdaten werden jede Sekunde auf dem Monitor ausgegeben

Wie sehen die Werte aus?

Wie du an Abbildung 8 erkennen kannst, liegt am analogen Eingang nur ein kleiner Wert an, wenn du den analogen Kontakt nicht berührst. Sobald du den Finger auf den Kontakt legst, verändert sich der Wert jedoch deutlich (vgl. Abbildung 9).

Du wirst merken, dass der Wert sich verändert, je fester du auf den Kontakt drückst. Mache auch einmal deinen Finger etwas feucht und halte ihn erneut auf den Kontakt. Der Wert wird sich noch weiter erhöhen.

Abb. 8 Fasst du den analogen Kontakt nicht an, liegt dort an kleiner Wert an
Abb. 9 Liegt ein Finger auf dem Kontakt, ändert sich der Wert deutlich
Letzte Einstellungen am Lügendetektor
Abb. 10 So sieht das fertige Programm für den Lügendetektor aus

Wir wollen unseren Lügendetektor nun fertig programmieren. Dafür müssen wir festlegen, ab welchem Wert eine Aussage als Lüge gilt. Wir stellen hier den Wert 300 ein. Um zu unterscheiden, ob es sich um eine Lüge handelt oder nicht, benötigen wir das Bauteil "Falls/sonst" aus der "Kontrollstrukturen"-Schublade. Damit können wir testen, ob der Wert, der am analogen Kontakt gemessen wird, größer oder kleiner als 300 ist. Ist der Wert kleiner als 300 soll die linke LED grün leuchten und andernfalls rot (wie in Modul 1). Du wirst merken, dass man in das obere Abteil des "Falls/sonst"-Bauteils nur Bauteile mit rundem Anschluss einsetzen kann. Hierbei handelt es sich um Wahrheitswerte (wahr oder falsch). Wir verwenden das "Kleiner"-Bauteil aus der "Log. Operatoren"-Schublade. Du benötigst weiter einen Zahlwert, in dem du die 300 einträgst. Ihn findest du in der "Variablen/Konstanten"-Schublade. In Abbildung 10 siehst du, wie das fertige Programm aussehen muss. Wir lassen uns hier den Wert zusätzlich auch noch auf dem seriellen Monitor anzeigen.

Was können wir noch tun? (optional)

Den Lügendetektor verbessern

Abb. 11 Wir können testen, ob eine Person die Kontakte berührt, indem wir eine untere Grenze angeben. Ansonsten schalten wir die LED aus

Aktuell leuchtet die LED am Octopus auch grün, wenn niemand den Kontakt berührt. Da dies im Kontext des Lügendetektors aber bedeutet, dass jemand die Wahrheit sagt, kann das zu Verwirrung führen. So kann man beispielsweise "schummeln", wenn man den Finger nicht richtig auf die Kontakte legt. Wir sollten daher abprüfen, ob eine Person den analogen Eingang des Octopus berührt. Sobald das passiert, ist der Wert auf jeden Fall größer als 20. Wir prüfen daher, ob der Wert größer als 100 ist, bevor wir eine LED aufleuchten lassen. Ansonsten schalten wir die LED aus. In Abbildung 11 kannst du sehen, in wie weit du das Programm verändern musst.

Andere Sensoren am analogen Eingang - die Lärmampel

Abb. 12 Wir können weitere analoge Sensoren am linken Grove-Anschluss des Octopus verwenden. Jeder analoge Sensor kann mit dem Bauteil "Analog Read" verwendet werden!

Wir können unser ursprüngliches Programm aus Abbildung 10 verwenden, um eine Lärmampel zu bauen. Analoge Sensoren funktionieren immer gleich und geben stets
Werte zwischen 0 und 1023 aus (vgl. Fachliche Informationen).
So auch der Sound-Sensor. Diesen schließen wir zunächst am
linken Grove-Anschluss des Octopus an. (siehe Abbildung 12). Jetzt müssen wir noch einen Grenzwert festlegen, bis zu dem wir die Lautstärke noch als angenehm empfinden. Das Programm (nutze das Bauteil „Analog Read“) mus jetzt so angepasst werden, dass die LED bei angenehmer Lautstärke grün leuchtet und rot, wenn es zu laut wird. Vielleicht ist ja eine solche Lärmampel auch für euer Klassenzimmer geeignet?!!

Fachliche Informationen (optional)

Wie werden die Werte am analogen Eingang ausgelesen?

Wenn die wir den Finger auf den Kontakt am Ocotpus legen, verändert sich durch den Hautwiderstand die Spannung, die am Kontakt anliegt. Die insgesamt an den mit A0 beschrifteten Kontakten anliegende Kleinspannung wird durch einen Analog-Digital-Wandler (ADC) in einen proportionalen Zahlenwert umgewandelt. In unserem Fall hat der ADC eine Auflösung von 10 bit, was bedeutet, dass unser Messbereich von 0 bis 3 V in die Zahlenwerte 0 bis 210-1 (=1023) umgewandelt wird. 

Das Bauteil AnalogRead wandelt also die physikalische Größe Spannung in einen Zahlenwert um. Schließen wir an der Grove-Buche A0 (linke weiße Buchse) z.B. einen Loudness-Sensor an, so können wir so die Lautstärke im Klassenzímmer messen.

Die abfallende Spannung am analogen Kontakt bestimmen (für Profis)

Wenn du deinen Finger auf den analogen Kontakt legst, sorgt dein Hautwiderstand dafür, dass am analogen Kontakt die Spannung abfällt. Dies liegt daran, dass den Kontakten ein weiterer Widerstand vorgeschaltet ist. Dieser Widerstand und dein Finger teilen die eigentliche Spannung, mit der der Octopus arbeitet, auf. Man spricht hierbei von einem Spannungsteiler. Der Octopus arbeitet normalerweise mit einer Spannung von 3 Volt. Demnach muss die Spannung am Kontakt niedriger sein als 3 Volt. 

Diese niedrige Spannung kannst du ganz einfach ausrechnen. Lese den analogen Wert zwischen 0 und 1023 aus und teile ihn durch 1023. Danach multiplizierst du ihn mit 3. Als Ergebnis erhälst du die Spannung, die am analogen Kontakt abfällt.

Wenn du mehr über den Spannungsteiler und seine zahlreichen Einsatzgebiete erfahren möchtest, kannst du hier klicken.

Andere analoge Sensoren

Neben dem Sound-Sensor gibt es noch viele weitere Sensoren, die wir auf genau die gleiche Weise verwenden können, indem wir das "Analog Read"-Bauteil verwenden. So können wir hier beispielsweise auf Lichtsensoren, Beschleunigungssensoren, Distanzsensoren und Temperatursensoren zurückgreifen. Wenn du wissen möchtest, wie du selbst einen Lichtsensore bauen kannst, solltest du auf folgenden Link klicken: https://www.umwelt-campus.de/iot-werkstatt/tutorials/physik-selbstbau-lichtsensor

Abb. 1 Ein Verdächtiger am Lügendetektor
back-to-top nach oben