Arduino-Sketch

 

Der folgende Arduino-Sketch muss in den Arduino geladen werden, damit das Processing-Programm erfolgreich gestartet werden kann:

 

void setup() 

{

  // serial communication at 115200 bauds initialized

  Serial.begin(115200);

}

 

// endless loop

 void loop() 

{

  // read the data at analog input 0:

  int sensorValue = analogRead(A0);

  

  // send it to the PC

  Serial.println(sensorValue);

}

 

 

 

 

Bild oben: Oberfläche der Processing Software nach dem Start mit relativ gerade verlaufender Zufallslinie

 

 

Prinzip des hier vorgestellten Processing-Programms

 

Das Processing-Programm stellt eine vereinfachte Anlehnung an das Global Consciousness Project der Princeton University dar. Das von Wissenschaftlern weltweit betriebene Projekt geht davon aus, dass weltbewegende Ereignisse den Lauf von analogen (und nicht softwarebasierten) Zufallsgeneratoren schwach beeinflussen, was sich unter anderem am 11 September 2001 bereits bestätigt haben soll.

Die mathematischen Zusammenhänge bei der Erfassung des Rauschens sind kompliziert und es gibt viele Möglichkeiten, sich dem Phänomen analytisch zu nähern.

 

Funktion der Software

Das nullsymmetrische Rauschsignal kann in positive und negative Amplituden unterteilt werden. Bei absolut gleicher Verteilung positiver und negativer Werte wird, wenn man alle Samples aufaddiert, auch nach längerer Zeit ein Wert herauskommen, der nicht allzu weit von Null entfernt ist. Überwiegen jedoch positive oder negative Sample-Werte, so wird sich ein Ungleichgewicht einstellen und die Summe der Werte driftet nach Plus oder Minus.

Das Programm summiert permanent und ohne Zurücksetzung alle Amplitudenwerte und stellt die aktuelle Summe nach jedem Durchlauf im oberen Fenster (ca. 12 sec) als Pixel im unteren Fenster dar. Diese Pixel reihen sich nach einer Weile zu einer Kurve aneinander, die entweder völlig bizarr oder als ansteigende oder abfallende Gerade verlaufen kann.

 

Ob die Kurve horizontal oder schräg verläuft, hängt mit dem Offset des Rauschsignals zusammen. Bei völliger Null-Symmetrie sollte die Rauschkurve rein theoretisch waagerecht verlaufen. Hier beginnt jedoch das erste Problem: Bei einer Rauschkurve kann man keine "Mitte" zwischen Maximum und Minimum angeben, da sie nicht periodisch ist und ständig andere Amplitudenwerte aufweist. Daher lässt sich nur ein Offset über einen gemittelten Zeitraum angeben. Es hat sich gezeigt, dass dieser beim vorliegenden Projekt relativ konstant ist.

Ziel ist es, die Gerade auf dem Bildschirm (im unteren Fenster) möglichst horizontal verlaufen zu lassen. Ganz wird dies nicht gelingen, aber es ist zumindest möglich, den Offset im Analogteil mit dem betreffenden Poti so einzustellen. dass die geschätzte Mitte des Signals sich genau auf dem Wert befindet, der der halben Eingangsspannung des Arduino-A/D-Wandlers entspricht: 2,5 V (Bei einer Amplitude, die nicht größer als 3 Vss sein sollte). Das Signal liegt jetzt zwar vollkommen im positiven Bereich, aber das macht nichts, denn die Software, über die der restliche Abgleich erfolgt, stellt dies wieder richtig. 

 

Software

Die Software wandelt das analoge Eingangssignal in digitale Werte mit 10 Bit Auflösung um. Da diese Werte alle im positiven Bereich liegen, werden sie von einem Wert, der sich etwa in der Mitte zwischen Maximum und Minimum befindet, subtrahiert. Auf diese Weise erhalte ich Werte, die ungefähr um den Wert 150 herum schwanken. Theoretisch müsste es sich um den Wert 511 handel, aber durch interne Umrechnungen ergibt sich eine anderer Wert.

 

Dieser Wert (150) kann mit den Pfeiltasten (Calibration) verändert werden. Den richtigen Wert stellen Sie wie folgt ein: Lassen Sie das Programm einige Minuten laufen und beobachten Sie, ob die gezeichnete Linie nach oben oder unten verläuft. Nun korrigieren Sie die Einstellungen im Feld "Calibration" so lange, bis die Kurve ungefähr horizontal verläuft. Der Abgleich ist nicht einfach, da es sich ja um eine Zufallskurve handelt, die plötzlich wie von selbst die Richtung ändern kann, ohne dass man die Einstellung vorher verändert hat. Mit etwas Geduld, Feingefühl und Erfahrung werden Sie jedoch bald in der Lage sein, die richtige Einstellung zu finden. Ändern Sie die Einstellung bei der Kalibrierung am besten nur immer in Einzelschritten, da das System sehr empfindlich reagiert.

 

Wenn die Kurve den rechten Rand des Grafikfensters erreicht, wird automatisch "umgeblättert". Die Daten werden automatisch alle 30 Minuten in dem Verzeichnis gespeichert, in dem sich auch der Processing-Programmcode befindet. Dabei wird die bestehende Datei immer wieder neu überschrieben. Die Startzeit ist im Dateinamen enthalten. Die Zeit der Speicherung finden Sie im Explorer unter "Details".

 

Die gespeicherten Dateien können während der Laufzeit geladen (LOAD FILE) und betrachtet werden (Display Loaded File). Ein Laden der Datei ist auch erforderlich, wenn Sie die aktuelle Datei zu einem früheren Zeitpunkt anschauen möchten. Bei Betrachten der Datei können Sie zwischen einzelnen Seiten (Display loaded file)  und einem Gesamtüberblick (Loaded file overview) wählen. Mit "Display current Data" kehren Sie zurück zur Anzeige der aktuellen Daten.

 

Neben der Mittelwertabweichung wird mit einer violetten Linie auch noch das Verhältnis zwischen geraden und ungeraden Zahlen angezeigt. Inzwischen ist jedoch klar, dass dabei immer die gleich, leicht positiv ansteigende Gerade entsteht, die sich, im Gegensatz zur positiv-negativ-Linie, niemals ändert. Diese Linie muss daher nicht beachtet werden. Wer sich mit Processing-Programmierung auskennt, kann sie im Code deaktivieren.

 

Ergebnisse

Es hat sich gezeigt, dass die grüne Kurve stundenlang oder auch tagelang relativ gerade verlaufen kann (bei Divider value mode 1 = 128) . Je näher man mit diesen Buttons in die Kurve zoomt, desto "zackiger" verläuft sie, was bei einer Zufallskurve ja nicht weiter verwundert. Bei immer weiter gehender Verkleinerung der Amplitude (größere "Divider"-Werte), wird die Kurve immer glatter und der Trend ist zu erkennen: Gerade oder auf und ab gehend. Bei einer geraden Kurve spielt es keine Rolle, ob sie ansteigt oder abfällt: Entscheidend ist dass die Linie relativ gerade ist.

 

Interessant wird es, wenn die Kurve innerhalb Stunden oder gar weniger Minuten plötzlich die Richtung wechselt.

In diesem Falle sollten Sie nachschauen, ob sich in der Welt etwas Spektakuläres ereignet hat. Ein solches Verhalten der Kurve habe ich bei der Wahl von Donald Trump in den USA festgestellt: Nachdem die Kurve Tage zuvor und danach relativ glatt verlief, schien sie in der Wahlnacht und zwei Tage danach völlig verrückt zu spielen. Inzwischen ist der Verlauf wieder relativ geradlinig und glatt. Das kann natürlich auch Zufall gewesen sein, da ich mit einem einzigen Gerät und einem einzigen Fall natürlich niemals in der Lage sein werde, einen Zusammenhang zu beweisen. Vielleicht haben Sie ja Lust bekommen, ihre eigenen Experimente anzustellen.

Ich habe mich übrigens mit zwei Ingenieuren unabhängig voneinander über das Prinzip meiner Methode unterhalten und bekam dankenswerter Weise viele gute Ratschläge, wie man es besser machen könne. Es hat sich jedoch gezeigt, dass die hier angewendete Methode der endlosen Aufsummierung bisher die einzige ist, die empfindlich genug reagiert und das Ergebnis auch noch klar interpretierbar anzeigt. 

Angeblich soll man mit der Analyse der Struktur der Gauß-Kurve der Rauschwerte ebenfalls aussagekräftige Werte erhalten. Ich habe bereits geplant, entsprechende Experimente zu machen und werde berichten, falls sich interessante Ergebnisse zeigen.