# Wie die Welt in den Sensor kommt
Florian Sprenger
<div>
<p style="font-size:10pt; color:grey">
Mai 2023<br>
</p></div>
Was ist die Welt für einen Sensor? Dieser Frage möchte ich an drei Beispielen im Labor nachgehen. Mein theoretischer Ausgangspunkt ist ein Text des Informatikers Johannes Sievert, der in der letzten Ausgabe der Zeitschrift Navigationen erschienen ist. Sievert beschäftigt sich mit dem Verhältnis von Analog und Digital in Bezug auf Sensoren und stellt unter anderem die These auf, dass es keine digitalen Sensoren gibt, weil Sensoren zu messende Größen in der Welt erfassen, die erst nachträglich digital, d.h. quantifiziert, zählbar und diskret werden. Die Frage, die sich daraus ergibt, lautet, wie „das primär analog zu messende Signal seine digitale Codierung“¹ erhält. Dieser Frage möchte ich in meinen Versuchen mit dem Arduino-Sensor-Kit nachgehen und dabei David Gugerlis Frage, wie die Welt in den Computer kommt, abwandeln: Was misst ein Sensor? Welche Übersetzungen und Kalibrierungen sind dafür nötig? Und was passiert dabei mit der Welt?
Sensoren sind, so die Lehrbuchdefinition, technische Komponenten, die eine physikalische oder chemische Eigenschaft als Input in ein elektronisches Ausgangssignal umwandeln – Licht, Temperatur, Druck, Geschwindigkeit, Licht – unsere Smartphones haben mehrere Dutzend Sensoren. Im Fall der von mir genutzten Sensoren spricht man von analogen Sensoren, weil das Signal außerhalb des Sensors digitalisiert wird. Es gibt aber auch Sensoren mit integriertem AD-Wandler – insbesondere Kamerasensoren –, die etwas irreführend digitale Sensoren genannt werden. Aber auch bei solchen Sensoren ist die „zu messende Größe am Ursprung“ (Sievert, 258) immer analog, wird aber intern digitalisiert. Es gibt allerdings auch Sensoren, die nur zwei Ausgangswerte haben (etwa eine Lichtschranke) und in diesem Sinn binär sind. Auch ein Sensor, der zählt, operiert Otmar Loffeld zufolge diskret.²
Sensoren werden in diesem Sinn oft als vermeintlich neutrale Informationslieferanten aus der Außenwelt betrachtet, die die Welt abbilden. Aber davon merkt man bei der Arbeit mit ihnen nichts, weil man ständig damit beschäftigt ist, ihnen beizubringen, wie sie die Welt konstruieren und übersetzen sollen. Ein Temperatursensor misst nicht, was in der Welt los ist, sondern übersetzt ein physikalisches Ereignis in ein elektrisches Signal – nichts anderes als Elektrizität kann innerhalb einer Schaltung übertragen werden. Und genau diesen Übersetzungsprozess möchte ich Schritt für Schritt in den Blick nehmen. Ich folge dabei der These, dass die Eigenschaften und Zusammensetzung von Sensoren das Wissen über die mit ihrer Hilfe konstruierte Welt bestimmen.
Wichtig ist dabei, die Messiness dieser Arbeit zu berücksichtigen. Ständig funktioniert etwas nicht und die Hälfte der Zeit war ich damit beschäftigt, Fehler zu suchen. Zudem sind Sensoren überaus unzuverlässig und Fehlerkorrektur wird so zu einer zentralen Aufgabe. Eine Kamera weiß nichts über Nebel und über beschlagene Linsen.
![[S89oVvYA.png]]
Ein typisches Arduino-Set besteht aus dem _Microcontroller_ selbst, beispielsweise einem _Arduino Uno_, der über einen USB-Anschluss oder eine Batterie Strom erhält und von einem Computer angesteuert werden kann. Er funktioniert aber auch ohne PC. Für den didaktischen Einsatz kann der _Microcontroller_ auf einer Plastikplatte befestigt werden, auf der sich auch ein _Breadboard_ befindet. Auf diesem können Komponenten wie Transistoren, Widerstände und Sensoren mit einfachen Steckverbindungen – d.h. ohne Löten – zu Stromkreisen verbunden werden. Manche mag das an die _Kosmos_ Elektronik-Baukästen aus ihrer Jugend oder den Physikunterricht erinnern, in deren Tradition pädagogischer Anleitung und technischer Bastelei Arduino steht. <br>
![[IMG_20230508_102915.jpg]]
_Microcontroller_ haben mehrere mediale Funktionen: In diesem Fall vermitteln sie zwischen Sensoren und Aktuatoren, d. h. zwischen den Komponenten, die physikalische Ereignisse in der Umgebung registrieren und in Daten verwandeln sowie Komponenten, die Aktionen umsetzen und etwa Räder bewegen, Dioden in einer gesetzten Frequenz blinken lassen, akustische Signale produzieren oder einem Hindernis ausweichen. Besonders produktiv ist Arduino dabei aufgrund der engen Verschränkung von Hardware und Software, die das medienwissenschaftliche Interesse an Materialitäten eng mit den Bedingungen und Vorentscheidungen von Code koppelt.
Im Fall des Temperatursensors, den wir hier sehen, befindet sich in dem kleinen schwarzen Objekt ein Metallstreifen, oft aus Platin.
![[1. Sensor.jpg]]
Dieses Metall ist über das linke und das rechte Bein des Sensors in den Schaltkreis auf dem Arduino-Breadbord eingefügt. Es hat die Eigenschaft, dass sich die Atome in diesem Metall abhängig von der Umgebungstemperatur zwischen -55 und +150 Grad Celsius mehr oder weniger stark bewegen und sich dadurch der Widerstand des Sensorsstreifens verändert. Die daraus resultierende Spannung zwischen 0 und 5 Volt wiederum wird durch das dritte Bein des Sensors übertragen. Über eine Verbindung wird diese zur Temperatur linear proportionale Spannung an den analogen Eingangsport des Arduino geleitet.
Bei diesem Sensor entsprechen 10 Millivolt Spannungsänderung einem Grad Celsius – der Sensor ist also vorgeeicht. Dieser analoge Wert besteht aus der Spannung, die vom AD-Wandler des Arduino mit der Funktion analogRead() in Werte zwischen 0 und 1023 gemappt wird. Hier spielt das Shannonsche Abtasttheorem eine Rolle. Der AD-Wandler des Arduino verwandet also die analoge Spannung, die vom Sensor kommt, in digitale Werte, sobald ein Kabel in den Pin „Analog Read“ eingesteckt ist.
Dieser AD-Wandler arbeitet mit dem Prinzip mit sukzessiver Approximation – was das ist, wäre eine andere Frage, bei der ich aber noch nicht bin – und funktioniert im Prinzip nicht anders als der Wandler in einem CD-Player, der Lichtsignale des Lasers und diese dann in umgekehrter Richtung in Musik verwandelt, d.h. in analoge Spannungen, die an die vibrierende Oberfläche des Lautsprechers übertragen werden.
![[sensoren 2.jpg]]
Die Spannung liegt nicht als Zahl vor, sondern wird innerhalb des Microcontrollers, an den sie durch eine Kabelverbindung übertragen wird, in 1024 Werte differenziert. Diese 1024 Werte, die Spannungsdifferenzen bezeichnen müssen dann per Codebefehl interpretiert und in Grad umgerechnet werden - von Spannungen weiß der Computer nichts.
So sieht dann der gesamte Code aus:
![[sensoren 1.jpg]]
Wir haben hier also eine Parallelität der Spannung, die vom Sensor an den analogen Port übertragen wird, und der Registrierung dieser Spannung, die der Computer nur als digitalisierbaren Wert verarbeiten kann, eben in Form von 1024 diskreten, binär codierten Werten. In diesem Schritt wird also das Kontinuum der Temperatur in ein Kontinuum der Spannung verwandelt und dieses dann in 1024 diskrete Werte übersetzt. Das nicht-zählbare Kontinuum wird also zählbar gemacht. Es bleibt also immer ein Rest, eine geringere Auflösung, könnte man sagen. Diese Werte können dann wiederum in einer dritten Übersetzung in Grad Celsius rückübersetzt werden. Wir haben es also mit drei Übersetzungsschritten zu tun: erstens die Übersetzung von Raumtemperatur über die Atome des Platinstreifens in Spannung, zweitens die Übersetzung dieser Spannung in diskrete Werte zwischen 0 und 1023, und drittens die Übersetzung dieser Werte in die Celsius-Skala, wofür wiederum ein Ausgangswert, die sogenannte Baseline notwendig ist.
![[sensor barometer.jpg]]
Operativ beginnt man stets mit einem Basiswert, von dem dann Abweichungen gemessen werden. Dieser Basiswert (baseline) muss vorab kalibriert werden – so auch bei diesem Sensor. Bei meinem ersten Versuch mit einer Baseline von 20 Grad Raumtemperatur gibt der Sensor viel zu hohe Werte aus. Ich muss erst anhand eines analogen Raumthermometers die korrekte Temperatur als Referenzwert eingeben. Um die Werte zu interpretieren, brauche ich im Fall dieses Sensors also eine Kontrollinstanz.
In anderen Worten: Jeder Übersetzungsschritt ist auf eine Vermittlungsebene angewiesen, die Input und Output einerseits vergleichbar macht und andererseits auf genormte Werte bezieht, indem der Sensor kalibriert wird. Man sieht also, dass jeder Übersetzungsschritt eine Interpretation umfasst, die nicht zuletzt den Übergang von Analog zu Digital ermöglicht. Man muss dem Arduino beibringen, was er wie lesen soll.
![[Parts.jpg]]
In meinem zweiten Experiment nutze ich ein Grove-Sensorkit, das unterschiedliche Sensoren umfasst. Als erstes probiere ich einen Geräuschsensor aus. Dieser enthält eine Membranplatte, die im Inneren des Sensors bei Geräuschen vibriert und dabei eine Spannungsveränderung erzeugt, die gemessen wird.
Desto größer die Vibration, desto größer die Spannung. Bei lauten Geräuschen, in meinem Fall Klatschen, vibriert also die Membran und verändert die Spannung. Diese Spannung wird an den Microcontroller übertragen und wie im ersten Beispiel in Werte zwischen 0 und 1023 gemappt.
![[sensor sound 1.jpg]]
Der Sensorbefehl lautet, dass bei Überschreiten von 100 ein Zeichen gegeben wird. Was passiert dabei? Die Membran vibriert so stark, dass ein Grenzwert überschritten wird. Daraufhin gibt der Serial Port, der die Ausgangssignale auf dem PC darstellt, eine Raute aus.
![[sensor sound 2.mp4]]
Bei meinem ersten Teststellt sich 100 als zu empfindlich heraus, weshalb ich es erst mit 200 als Überschreitungswert versuche, daraufhin erhalte ich diese Ausgabe bei zweimal Klatschen.
![[sensor sound 1.mp4]]
Der zweite Test mit 500 ist noch eindeutiger und ich habe auch keine Störsignale mehr.
In diesem Verständnis ist der Ausgangspunkt der Übersetzungskette die für mich unsichtbare Vibration der Membran. Prinzipiell funktioniert ein Mikrofon genau so und misst die Schwingungen, die dann als codierter Sound als Wave-Datei vorliegen. Mein Sensor misst nur, wie stark die Membran vibriert, aber nicht mehr, d.h. keine Frequenzen, und kann daher nur feststellen, ob es ein Geräusch gibt oder nicht. Auch hier muss ich dem Arduino zunächst per Code beibringen, wie er die Spannungen interpretieren soll.
![[sensor barometer2.jpg]]
Zum Abschluss noch ein kurzes drittes Beispiel: Ein Barometer, das als Lagesensor verwendet werden kann. In der Anleitung steht, dass dieser Sensor „nano cells“ enthält, die auf den Luftdruck reagieren. Über das spezielle I2C-Protokoll werden Temperatur und Luftdruck an den PC übertragen und daraus die Höhe errechnet. Hier ist das interessante, dass zwei Sensoren parallel messen und die Lage berechnen, ich den Sensor also bewegen kann.
Von hier aus können wir so etwas wie eine Kritik der sensorischen Medialität formulieren. Im praktischen Umgang mit Sensoren im medienwissenschaftlichen Labor stellt man fest, dass Sensoren nie einfach Zugang zur Welt verschaffen, sondern es eine ganze Reihe von Vermittlungsschnitten braucht, um aus einem physikalischen Ereignis eine digitale Information zu machen, die dann z.B. als ein Temperaturwert ausgelesen werden kann. Sensoren geben also nie die Welt wieder, wie sie ist, sondern müssen kalibriert, programmiert, selektiert, weiterverarbeitet und repräsentiert werden. Das durch Sensoren erzeugte Wissen ist also nie neutral, sondern stets vermittelt und von der Vermittlung geprägt.
Nun kann man einwenden, dass diese Erkenntnis aus medienwissenschaftlicher Perspektive nicht gerade überraschend ist und man das auch hätte vorher wissen können. Interessant ist für mich aber noch ein weiterer Punkt: Zumindest die Sensoren, mit denen ich mich beschäftigt habe, geben stets elektrische Spannungen aus, die dann interpretiert werden. Man könnte also sagen, dass ein Sensor die Welt gerade nicht digitalisiert, sondern in Elektrizität verwandelt, denn nur als elektrisches Signal kann etwas übertragen werden – abwegig ist es also nicht, die Telegraphie als Bestandteil der Geschichte des Computers zu verstehen. Das Digitale spielt sich, wie Sievert schreibt, ausschließlich im Elektrischen ab.³
---
¹ Sievert, Johannes. 2022. “Die Welt Der Natur Und Die Digitale Datenwelt.” Navigationen 22 (1): 257–59, hier: 259.
² Loffeld, Otmar. 2022. “Kommentar.” Navigationen 22 (1): 259–61, hier: 259.
³ Sievert, Johannes. 2022. “Die Welt Der Natur Und Die Digitale Datenwelt.” Navigationen 22 (1): 257–59, hier: 259.