Skurrile Waage-App / Bizarre scale app

Abstract: It is shown that the amount of liquid in a container can be determined by measuring the tilt angle. A corresponding smartphone application is described.

Der Bedarf für diese App entstand aus rein privaten Überlegungen: Ich wollte beim Kauf eines teuren homöopathischen Nahrungsergänzungsmittels (Beerensaft) wirklich volle Glasflaschen aus dem Supermarktregal fischen - diese sind einzeln in Kartons verpackt und somit nicht sichtbar. Ich weiß, mein Ziel klingt kleinlich und naiv. Aber ich wage zu behaupten, dass die herausgekommene App erwähnenswert und interessant ist.

Ich entwickelte sie nachdem meine Versuche, verschiedene Waagen-Apps mit OnTouchListener und onTouchEvent-Funktion zu erstellen, fehlschlugen. Aber nicht weil ich etwas falsch gemacht hätte. Die Ursache lag an der gängigen Touchscreen-Technologien. Auf meine Frage an Bing-Copilot und iAsk AI "Auf welchen Smartphones können Touchscreens als Waage verwendet werden?" gaben die KI-Webseiten in etwa die gleiche Antwort: Einige ältere Smartphones mit resistiven Touchscreens reagieren theoretisch auf Druck, aber selbst diese erkennen nur, ob und wo auf dem Display Druck vorhanden ist. Moderne Smartphones mit kapazitiven Touchscreens sind noch weniger dafür geeignet, da sie auf elektrische Leitfähigkeit und nicht auf Druck reagieren.

Deswegen entstand eine neue App-Idee, die auf folgender Annahme basiert: Schmale und hohe Gefäße sollten bei unterschiedlichem Füllgrad durch eine deutlich wahrnehmbare Veränderung der Schwerpunktlage unterschiedliche Kippwinkel haben. Wenn das der Fall ist, kann man die Kippwinkel messen und daraus den Füllgrad (d.h. auch die Saftmenge) berechnen. Es geht also darum, die Abhängigkeit zwischen Füllgrad und Schwerpunktlage (oder Kippwinkel) herauszufinden.

Um den Kippwinkel zu berechnen, kann man die folgende Formel verwenden:

θ = arctan(h / b​) (*) 

Hierbei ist: θ - der Kippwinkel, h - die Höhe des Schwerpunkts über dem Boden, b - die horizontale Entfernung von der Kippkante zum Schwerpunkt. Mit Bodengröße 7.0 cm x 4.2 cm der Verpackung bekommt man b = 3.5 cm oder b = 2.1 cm - je nachdem, zu welcher Seite der verpackte Saftbehälter gekippt wird, und h = 5.5 cm (die Hälfte der Glasgefäßhöhe und der Verpackung).

Die Schwerpunktlage wird im Allgemeinen nach folgender Formel berechnet:

hs = Ʃ(mi * hi) / Ʃmi 

Hierbei ist: mi - die Masse des einzelnen Punktes, hi - die Position des einzelnen Punktes. 

In vorliegendem Fall gilt die Formel:

hs = (mg * hg  +  mf * hf) / (mg + mf)

Hier: mg - die Masse des Glasgefäßes, hg - die Höhe seiner Schwerpunktpositiion, mf - die Masse der Flüssigkeit, hf - ihre Schwerpunktpositionhöhe. 

Man kann auch die tatsächliche Flüssigkeitsmaße im Behälter als 

mf = k * mfmax (wo k[0, 1] - Füllgrad, mfmax - vorgegebene Flüssigkeitsmaße)

darstellen.   

In Zahlen ausgedrückt sieht das also so aus:

mg = 200 g, hg = 5.5 cm, mf = k * 200 g, hf = k * 5.5 cm

Dann hs = (200 * 5.5 + k * 200 * k * 5.5) / (200 + k * 200)

oder hs = 5.5 * (1 + k^2) / (1 + k)

Die starke Vereinfachung der primären Formel ist darauf zurückzuführen, dass die Masse des Glasgefäßes (200 g) zufällig gleich der maximalen Masse der Flüssigkeit (200 g) ist.

Um die Extremwerte zu finden, wird die erste Ableitung der hs-Funktion berechnet und zu Null gesetzt. Die Lösung für das Minimum der Funktion lautet hs(0.4142, 4.5563). Die Funktion wird grafisch wie folgt dargestellt:

Daraus folgt erstens, dass sich der Schwerpunkt des Glasgefäßes mit Flüssigkeit bei Änderung des Füllgrades deutlich verschiebt - von 5.5 cm auf 4.6 cm, also um etwa 0.9 cm. Zweitens gibt es im Bereich k[0, 1] immer eine Schwerpunktlage, die zwei Füllgraden gleichzeitig entspricht (mit Ausnahme des Funktionsminimums bei k = 0.4142). Dies ist jedoch nicht wirklich kritisch, da bei verpackten Flaschen der Füllgrad nie kleiner als 0.4142 ist.

Jetzt kann man mit Formel (*) die Kippwinkel ausrechnen, die den zwei Extremwerten hs(0.4142, 4.5563) und hs(0, 5.5) entsprechen. Dies hängt jedoch davon ab, zu welcher Seite der Behälter gekippt wird. Beim Kippen des Gefäßes zur kürzeren Seite (größerer Abstand zwischen Kippkante und Schwerpunkt) erhält man

θ1 = arctan(5.5 / 3.5​) = arctan(1.5714​) =  57.5°,

θ2 = arctan(4.56 / 3.5​) = arctan(1.3029) =  52.5°

Beim Kippen des Gefäßes zur längerer Seite

θ3 = arctan(5.5 / 2.1​) = arctan(2.619​) = 69.1°

θ4 = arctan(4.56 / 2.1​) = arctan(2.1714) = 65.3°

Die berechneten Werte entsprechen nicht unbedingt der Realität. Dies hat mindestens zwei Gründe. Zum einen ist der Behälter nicht streng stabförmig, sondern hat einen kurzen Flaschenhals. Zum anderen verschiebt sich der Schwerpunkt der gesamten Verpackung bei unterschiedlichen Füllgraden des Behälters nicht nur in der Höhe, sondern auch beim Kippen horizontal - es ist ja Flüssigkeit drin. Dabei sind die berechneten Winkeldifferenzen (θ1- θ2 = 57.5°- 52.5° = 5° und θ3- θ4 = 69.1°- 65.3° = 3,8°) erheblich und nicht zu vernachlässigen. Es erweist sich daher sinnvoll, die Winkelmessung beim Kippen über die kürzere Seite der Verpackung durchzuführen.

Die Berechnungen bestätigen also die Annahme, dass es möglich ist, den Grad der Füllung des Glasgefäßes durch die Messung des Kippwinkels zu bestimmen.  Diese Messung kann auf mindestens zwei verschiedene Arten erfolgen: entweder mit Hilfe einer Kippwinkelschablone, oder mit einer Smartphone-Applikation.

Für die Winkelschablonenvariante spricht die einfache Handhabung: verpackte Flasche an die Schablone anlegen und feststellen, ob sie kippt oder nicht.

Dagegen sprechen die Notwendigkeit, die Schablone beim Supermarktbesuch unbedingt dabei zu haben und die erforderliche streng horizontale Ausrichtung des Schablonenfußes ­- Regalbrett ist nicht unbedingt horizontal. Außerdem erhält man als Ergebnis einer solchen "Messung" nicht den Winkelwert und den Füllgrad des Gefäßes, sondern sehr grobe Winkelschätzung.

Die Smartphone-Applikation hätte keinen der genannten Nachteile: Das Smartphone ist sowieso immer dabei, seine Applikation reagiert nicht auf die Regallbrettlage und die App gibt sowohl den Kippwinkel als auch den Füllgrad des Gefäßes und die Saftmenge aus.

Um die Abhängigkeit des Kippwinkels vom Füllgrad des Gefäßes zu erhalten, kann man in der obigen Formel θ = arctan(h / b) den Wert h durch k-Ausdruck und b durch 3.5 cm ersetzen:

θ = arctan(5.5 * (1 + k^2) / (3.5 * (1 + k)) ​) = arctan(1.57 * (1 + k^2) / (1 + k)) 

Die grafische Darstellung der Funktion sieht wie folgt aus:

Für die Berechnung des Füllgrades mit einer App benötigt man jedoch die umgekehrte Abhängigkeit, nämlich k(θ). Hinzu kommen noch folgende Überlegungen. In der Praxis werden keine fast leeren oder halb gefüllten verpackten Saftflaschen verkauft. Daher sollte die Smartphone-App nicht zwei, sondern ein Ergebnis aus dem Bereich 0,8 =< k =<1 liefern. Und die obige Abbildung zeigt, dass in diesem Bereich die geforderte Funktion k(θ) durch eine laufende über zwei Punkte Gerade approximiert werden kann (wenn k=0.8, θ=arctan(1.4315)≈ 55°, wenn k=1, θ=arctan(1.5714​) =  57.5°; also A(0.8, 55°), B(1, 57.5°)). Die Gleichung für diese Gerade lautet:

(k - 0.8) / (1 - 0.8) = (θ - 55°) / (57.5° - 55°)

Nach der Vereinfachung bekommt man die gesuchte Funktion:

k = (θ - 45°) / 12.5 .

Grafische Darstellung dieser Funktion:

So weit die Theorie. Die daraufhin entwickelte Smartphone-App nutzt die eingebauten Beschleunigungs- und Näherungssensoren. Diese ermöglichen die Messung des Neigungswinkels des Smartphones und des darauf platzierten verpackten Glasbehälters bzw. die Erfassung des Kippwinkels des Behälters. Der Kippwinkel wird gemessen, wenn sich der Behälter vom Smartphone beim Kippen löst. Das eigentliche Trennungsereignis zwischen Smartphone und Behälter wird mit dem Näherungssensor erfasst. 

Die Entwicklung der Anwendung erfolgte in zwei Phasen. Zunächst wurde die Kippwinkelmessung implementiert und für die Datenerhebung für die deskriptive statistische Analyse verwendet. Die gemessenen Kippwinkel haben bei zwei Füllgraden (0,8 und 1,0) des Behälters und jeweils 16 Proben folgende Werte und Parameter (in °): 

Die berechneten Mittelwerte des Kippwinkels für zwei vorgegebene Füllgrade zeigen, dass sie aus den vorher genannten Gründen tatsächlich deutlich von den theoretischen Werten abweichen. 

Um die bereits reelle Funktion k(θ) zu erhalten, kann nun die neue Gleichung für die durch zwei Punkte laufende Gerade wie folgt formuliert werden:

(k - 0.8) / (1 - 0.8) = (θ - 60.8°) / (63.2° - 60.8°)

Daraus folgt:  k = (θ - 51.2°) / 12

Bei der Anwendung dieser Formel entsprechen die Standardabweichung von 0,53° und die Spannweite von 1,70° aus der obigen Tabelle den Saftmengen von 8.8 g (relativ wenig) und 28 g (gar nicht wenig). Letzteres unterstreicht die Notwendigkeit, nicht nur eine, sondern mehrere Kippwinkelmessungen und die Mittelwertbildung in der App durchzuführen.

In der zweiten Entwicklungsphase wurde die reelle k(θ)-Funktion zur Berechnung der Saftmenge in die Applikation implementiert.

Im Nachhinein könnte man sagen, dass die oben durchgeführten theoretischen Berechnungen überflüssig waren - es genügte, die Kippwinkel bei zwei Füllgraden zu messen und ihre lineare Abhängigkeit mathematisch zu beschreiben. Dies ist jedoch nicht der Fall. Die theoretischen Berechnungen ergaben einerseits eine nichtlineare (parabolische) Funktion θ(k), aber andererseits deren linearen Abschnitt in dem für die Anwendung entscheidenden Bereich.

Hier das Screenshot der Smartphone-App:

Reicher bin ich durch diese App nicht geworden, aber es hat Spaß gemacht, sie zu entwickeln.


Kommentare