Hallo zusammen,
ich beschäftige mich mal wieder mit Benutzerschnittstellen (Drehgeber
als Einstell"potis"). Lineare Verstellung ist dann gut, wenn nur ein
kleiner Wertebereich abgedeckt werden muß, ansonsten dauert das
Einstellen zu lange. Außerdem kommen Nicht-Ingenieure gut damit klar.
Logarithmische Verstellung (z.B. nach einer G5-Reihe) funktioniert
schnell und komfortabel, ist aber für Laien extrem gewöhnungsbedürftig,
wenn die Zahlen dabei angezeigt werden.
Als brauchbarer Kompromomiss hat sich eine lineare Skala innerhalb der
Zehnerpotenzen mit n signifikanten Stelle herausgestellt, also z.B. so
für n = 1.5:
1
1.0
2
1.5
3
2.0
4
2.5
5
3.0
6
3.5
7
4.0
8
4.5
9
5.0
10
5.5
11
6.0
12
6.5
13
7.0
14
7.5
15
8.0
16
8.5
17
9.0
18
9.5
19
10.0
20
15.0
21
20.0
22
25.0
23
30.0
24
35.0
25
40.0
26
45.0
27
50.0
28
55.0
29
60.0
30
65.0
31
70.0
32
75.0
33
80.0
34
85.0
35
90.0
36
95.0
37
...
38
usw.
Nachteilig ist, dass die Auflösung nicht an jeder Stelle gleich ist.
Vorteilhaft ist, dass Laien sehr intuitiv damit klarkommen.
Wie so oft gehe ich davon aus, dass ich nicht der erste bin, der sich
eine solche Skala ausgedacht hat.
Kennt jemand dazu eine Referenz oder einen Namen?
Walter T. schrieb:> Wie so oft gehe ich davon aus, dass ich nicht der erste bin, der sich> eine solche Skala ausgedacht hat.
Bei Oszilloskopen ist schon seit Ewigkeiten eine 1-2-5 Teilung der
Dekaden üblich, hinter den E-Reihen für Widerstandswerte steckt die
gleiche Idee.
Wolfgang schrieb:> Bei Oszilloskopen ist schon seit Ewigkeiten eine 1-2-5 Teilung der> Dekaden üblich, hinter den E-Reihen für Widerstandswerte steckt die> gleiche Idee.
E-Reihe ist eine geometrische Reihe, also logarithmisch. Die
1-2-5-Teilung ist auch eine grobe Näherung an logarithmisch.
Die Skala von oben ist stückweise linear.
Walter T. schrieb:> Die Skala von oben ist stückweise linear.
Und wieso ist das vorteilhaft?
1-2-5 Teilung hat mindestens jeder der mit € zahlt intuitiv drauf. Mich
würde das plötzlich veränderte Verhalten beim Springen in die nächste
Zehnerpotenz sehr stören
9.0
9.5
10.0
beim nächsten Schritt würde ich mit 10.5 rechnen, maximal 11, aber
gewiss nicht mit 15
Walter T. schrieb:> Kennt jemand dazu eine Referenz oder einen Namen?
Gefrickel, Sackgasse. Es entspricht aber einer Eineinhalbstelligen
Anzeige 0-19, hier halt x 5. Also die halbe Stelle hinten: 0-95 mit 0/5
hinten
Walter T. schrieb:> ich beschäftige mich mal wieder mit Benutzerschnittstellen (Drehgeber> als Einstell"potis"). Lineare Verstellung ist dann gut, wenn nur ein> kleiner Wertebereich abgedeckt werden muß, ansonsten dauert das> Einstellen zu lange.>> Logarithmische Verstellung (z.B. nach einer G5-Reihe) funktioniert> schnell und komfortabel, ist aber für Laien extrem gewöhnungsbedürftig
Deswegen macht man in der Praxis keines von beidem. Wenn ein Drehgeber
große Wertebereiche abdecken soll, verwendet man eine Auswertung mit
Dynamik. Die Grundidee ist, nur bei langsamem Drehen in Einerschritten
zu zählen. Wird schnell gedreht (viele Impulse pro Zeiteinheit), erhöht
man die Schrittweite.
Ich habe so z.B. die Zeiteinstellung für meinen Platinenbelichter bis
30:00 min in Sekundenschritten realisiert. Die gewünschte Zeit ist ganz
einfach und schnell einzustellen. Weil ich das damals das erste Mal
implementiert habe, habe ich es ausführlich kommentiert. Siehe den
Quellcode aus meinem Beitrag "Kurzzeittimer (z.B. für Platinenbelichter)"
Ansonsten findest du mehr mit "Drehgeber + Dynamik"
würde ich diese mit 16 Werten in 3 linearen Abschnitten pro Dekade
nehmen:
1
1.0 1.2 1.4 1.6 1.8
2
2.0 2.5 3.0 3.5 4.0 4.5
3
5.0 6.0 7.0 8.0 9.0
4
10 12 14 16 18
5
20 25 30 35 40 45
6
50 60 70 80 90
Die Inkremente (1, 2, 5) sind ebenfalls humantauglich, aber die Folge
schmiegt sich sehr viel besser an das Ideal einer Exponentialfunktion an
(s. Anhang), womit auch die von "c r" kritisierten Sprünge kleiner sind.
Axel S. schrieb:> Wenn ein Drehgeber große Wertebereiche abdecken soll, verwendet man> eine Auswertung mit Dynamik.
Bei nur 3 Dekaden (wie in deiner Anwendung) kann man das so machen. Wenn
der Wertebereich größer ist (bspw. die Belichtungszeit einer Kamera für
astronomische Beobachtungen von 1ms bis 1000s, das sind 6 Dekaden) muss
sich die Auflösung auch an den aktuell eingestellten Wert anpassen. Man
will ja schließlich den Wert von 100s nicht mit einer Auflösung von 1ms
einstellen können/müssen.
Man kann aber beide Methoden, also die winkelgeschwindigkeits- und die
wertabhängige Auflösung, miteinander kombinieren.
Yalu X. schrieb:> würde ich diese mit 16 Werten in 3 linearen Abschnitten pro Dekade> nehmen:
Ich habe es gerade mal ausprobiert: Das geht bei groben Teilungen noch
angenehmer als meine obige grobe Beispielteilung. Sollte ich mal eine
derart grobe Teilung benötigen, nutze ich das. Die hast Du bis 8.0 vom
Fotoapparat abgeschrieben, oder?
Real nutze ich 2 echte signifikante Stellen. Das hätte die Erklärung
sehr in die Länge gezogen. Da ergäbe eine dreiteilige Teilung wieder
krumme Werte.
Axel S. schrieb:> [...]
Der Teil wurde ja schon komplett von Yalu behandelt. Das Beispiel
Fotokamera war auch mein erster Gedanke an ein Profi-Gerät mit
logarithmischen Skalen. Wobei das hauptsächlich deswegen klappt, weil
diese Skalen sein Jahrzehnten etabliert sind. Und dass man natürlich
eine Dynamik unabhängig von der Skalenteilung einführen kann, ist ja
auch klar. Ich habe sie bei mir aber tatsächlich nicht drin, weil ich
ein Poti mit 100 Strichen habe. Da kann ich mit einer Umdrehung mit der
obigen Skala 4 Dekaden abdecken. Das reicht.
Tastendruck entprellt, < 1 sek ---> zählt ein Digit auf oder ab
Tastendruck entprellt, > 1 sek/ ---> zählt fünf/sek Digit auf oder ab
Tastendruck entprellt, > 5 sek ---> zählt zehn/sek Digit auf oder ab
Tastendruck entprellt, > 12 sek ---> zählt fünfzig/sek Digit auf oder ab
Tastendruck entprellt, > 20 sek ---> zählt hundert/sek Digit auf oder ab
erweiterbar auf beliebige stellenzahl
es genügen 2 Taster
bei Encoder Eingabe,
links gibt Signum -
Mitte kein Zählimpuls, Tastendruck verlässt Zählroutine zur
Übernahmebestätigung links "nein" Rechts "ja",erneuter Tastendruck führt
aus.
rechts gibt Signum +
Tastendruck zählt nach obiger Regel
Geht rasend schnell ist intuitiv.
Walter T. schrieb:> Die hast Du bis 8.0 vom Fotoapparat abgeschrieben, oder?
Ich habe keinen Fotoapparat mit so einer Einstellmöglichkeit, war mir
aber schon bewusst, dass ich sicher nicht der Erste mit dieser Idee bin.
Walter T. schrieb:> Real nutze ich 2 echte signifikante Stellen.
Also
1
1.0 1.1 1.2 1.3 ... 9.9
?
Walter T. schrieb:> Da ergäbe eine dreiteilige Teilung wieder krumme Werte.
So krumm auch wieder nicht:
1
1.00 1.05 1.10 1.15 ... 1.95
2
2.00 2.10 2.20 2.30 ... 4.90
3
5.00 5.20 5.40 5.60 ... 9.80
Das sind 75 Werte pro Dekade mit einer Worst-Case-Auflösung von 5% über
den gesamten Wertebereich.
Mit nur einem linearen Abschnitt statt drei sind es 90 Werte pro Dekade
mit einer Worst-Case-Auflösung von 10%.
Reichen dir die 10% Auflösung, geht auch folgende Teilung mit nur 35
Werten pro Dekade:
Walter T. schrieb:> Logarithmische Verstellung (z.B. nach einer G5-Reihe) funktioniert> schnell und komfortabel, ist aber für Laien extrem gewöhnungsbedürftig,> wenn die Zahlen dabei angezeigt werden.
Wenn sich der Einstellwert logarithmisch ändert, dann zeig doch den Wert
in dB an. Bei meinem Receiver kann die Lautstärke in 1dB-Schritten
eingestellt werden, und wird auch so angezeigt.
Damit sollten Laien keine Probleme haben.
Hier zum Beispiel: 0...40dB(1) -> 1...100
Axel S. schrieb:> verwendet man eine Auswertung mit> Dynamik. Die Grundidee ist, nur bei langsamem Drehen in Einerschritten> zu zählen. Wird schnell gedreht (viele Impulse pro Zeiteinheit), erhöht> man die Schrittweite.
Exakt. Meine Mikrowelle macht das auch so. :-)
Die einfachste Methodik ist ist, die Drehimpulse zu differenzieren und
sowohl dem Proportional, als auch der Geschwindigkeit und der
Beschleunigung zuzuschlagen. Alle drei Parameter sind IIR-Filter, die zu
50% den alten Wert und zu 50% den neuen Wert nehmen, welcher beim
Proportional aus der Geschwindigkeit und selbige aus der Beschleunigung
gespeist werden.
Wenn man dann 2-3mal schnell dreht, dann dreht man den Multiplikator mit
hoch, der sich langsam wieder abschwächt. Auf diese Weise gewöhnt man
sich sehr schnell an, die großen Werte zielgenau anzusteuern.
Der Drehgeber bekommt dann auch eine Art Trägheit und "rollt weiter",
wenn man nicht dreht, so wie ein schweres Metallpoti.
In meinem Synth habe ich zudem eine Drucktastenfunktion im Drehgeber, um
die Auflösung umzuschalten. Wenn man vor oder gar bei dem Drehen
tastet, startet die Interpretation der Beschleunigung sofort auf einem
höheren Wert.
Das ist erstaunlich gut erlernbar und man ist sowohl schnell, als auch
präzise und das über den gesamten Bereich.
Jürgen S. schrieb:> Die einfachste Methodik
Ich bin da mit dem "dynamischen Drehgeber" schon zufrieden:
http://www.lothar-miller.de/s9y/archives/71-Drehgeberauswertung-mit-Beschleunigung.html
Der rollt zwar nicht aus (dafür ist dann ja eine flüssige
Displayansteuerung nötig, denn Ausrollen tut ja nur die Anzeige), lässt
sich aber bei passender Parameterwahl von Abtastzeit und der DYNAMIK
recht knackig und vor allem treffsicher einstellen.