Das Detail ist entscheidend

Es sind die kleinen Details, die darüber entscheiden wie gut am Ende etwas funktioniert. Dank des Visualisierungstools, vorgestellt beim letzten mal, konnte ich endlich einige wichtige Phänomene untersuchen.

Eines dieser Phänomene war, dass die Sensorik zur Erkennung der Position der Drehscheibe nicht so zuverlässig war wie erwartet. Das Prinzip basiert darauf dass die Position der Scheibe durch mehrere Schlitze kodiert ist. Licht wird auf diese Schlitze geworfen und von der anderen Seite detektiert – die Kodierung funktioniert dann mit der Information ob an dieser Licht durchgelassen wird oder nicht. Um Umgebungslicht raus zurechnen nutzte ich für das ankommende Signal softwareseitig noch einen Lock-In-Verstärker. Das funktionierte auch, nur waren die Unterschiede zwischen Durchlässig-Undurchlässig niedriger als erwartet. Dieser Unterschied wurde beim Batteriebetrieb so gering dass eine absolut zuverlässige Messung schwierig wurde.

Es dauerte ein wenig bis ich meine These schlussendlich verifizieren konnte: Die massiv lichtundurchlässig wirkenden Drehscheiben waren im Bereich des verwendeten Lichts der Sensorik gar nicht so lichtundurchlässig wie erwartet. Ein Detail das ich im Hinblick der scheinbar trivialen Aufgabe nicht recherchiert hatte. Bestätigung brachte ein extra Streifen Gewebeband auf der Drehscheibe, welche das Signal deutlich verbesserte. Ich entschied mich dieses Problem in Software anzugehen – mit der Information dass die Drehscheibe teilweise durchlässig ist konnte ich durch softwareseitige Anpassungen durchaus zuverlässige Resultate bekommen. Trotzdem war das Problem immer noch fundamental im Batterie betriebenen Modus vorhanden.

Das zweite Detail, verantwortlich für dieses Verhalten, war mit einem Oszilloskop schneller gefunden: Ein- bzw. ausgeschaltet werden die LEDs mit einem N-Channel MOSFET, direkt betrieben vom Mikrocontroller. Ungünstig wenn dieser MOSFET mit zu geringer Spannung am Gate nicht mehr genug leitend wird. Für die Prototypen-Platine hatte ich aus meinem vorhandenen Repertoire einen MOSFET rausgesucht, der durchaus seinen Gate-Threshold unter 3 V hat und dabei bereits einige hundert Milliampere verträgt. Die geringere Betriebsspannung bei Batteriebetrieb reichte dann aber nicht mehr zum Durchschalten. Ein leicht zu behebendes Problem, das später wohl sowieso nicht aufgetreten wäre mit den eigentlich ausgewählten Komponenten – jetzt warte ich doch noch auf das Eintreffen von ein paar Komponenten.

Verlauf des Massepotenzials der Sensor-LED beim im ein- und ausgeschalteten Zustandes des N-Channel MOSFETs bei 3.3 V (blau) und Batteriebetrieb (orange)

Live-Sensordaten Visualisieren mit Serial Studio

Um Problemen schnell auf die Schliche zu kommen und kurz zu Testen ist ein volles Debugging-Tool nicht immer die erste Wahl. Stattdessen lässt man gewöhnlich sich Informationen über die serielle Schnittstelle ausgeben. Geht es um Daten von Sensoren wird das schnell unübersichtlich.

Dieses Problem gab es auch beim Projekt Scoreboard. Für die sechs Drehscheiben gibt es insgesamt 18 einzelne Sensorwerte. Möchte ich mir dazu noch weitere interne Daten live mit „hoher“ Abtastrate anschauen sieht man nur noch Zahlensalat. Letztendlich habe ich auf GitHub ein nettes kleines Tool gefunden das mir übertragene Werte in einem Graph visualisieren kann – mit ein wenig Fleißarbeit für das richtige Ausgabeformat hat das auch geklappt. Export in einer CSV ist auch möglich. Die Darstellung hilft schon sehr, auch wenn ich gerne ganze Gruppen an Graphen ausschalten können wollen würde – denn 18 Graphen sind noch immer eine Menge. Zu finden ist das Programm übrigens unter https://github.com/Serial-Studio/Serial-Studio/

Blick auf alle wichtigen Daten beim Debuggen des Scoringboards.

Das Proof-of-Concept steht

Während die Mechanik der Punkteanzeige Standard und lang erprobt ist gilt das für die Elektronik nicht. Sie muss zuverlässig bei jedem Wind und Wetter die Position der Drehscheiben und damit Punktestand zuverlässig erkennen und dann auch noch an die Basisstation weiter senden. Dabei steht auch nur die im Kondensator begrenzt gespeicherte Energie zu Verfügung – die Elektronik muss entsprechend haushalten.

Nach einiger Optimierung der Sensorleisten und des Auslesealgorithmus steht der Beweis dass das System prinzipiell funktioniert. Jetzt muss sich in einem Langzeittest zeigen wo es noch Schwächen gibt.