Forum: Mikrocontroller und Digitale Elektronik Mausradprogrammierung


von Tom M. (Firma: Keine) (ta7)


Lesenswert?

Hallo allerseits,
ich bin ein absoluter Anfänger in der Mikrocontrollerprogrammierung. Mir 
schwirt da eine Idee im Kopf und wollte hier erstmal einige erfahrene 
user fragen ob die Idee überhaupt umsetzbar ist. Und zwar. Ich wollte 
ein ein Poti so programmieren das dieser die Bewegung des Mausrads 
übernimmt. Sprich ein Poti der die Aufgaben scroll up / scroll douwn 
übernimmt. Desweiteren soll die auflösung höher sein als die eines 
Mausrads. Geht das?

Danke für ein paar Tipps.
Schönen Grüß, Tomas

von Max M. (jens2001)


Lesenswert?

Tom M. schrieb:
> absoluter Anfänger

Tom M. schrieb:
> Geht das?

Nein!

von Stefan F. (Gast)


Lesenswert?

> Ich wollte ein ein Poti so programmieren

Potis sind nicht programmierbar.

> die Bewegung des Mausrads übernimmt

Dazu brauchst du einen USB Host. Das ist definitiv nichts für Anfänger.

> Desweiteren soll die Auflösung höher sein als die eines Mausrads.

Dann brauchst du eine andere Maus. Potis feiner abzufragen würde keinen 
Sinn machen, die reagieren schon mechanisch nicht so fein, wie du das 
gerne hättest.

Was hast du damit vor?

von Frank S. (_frank_s_)


Lesenswert?

Tom M. schrieb:
> ein Poti so programmieren

Tom M. schrieb:
> Geht das?

klingt für mich noch ein wenig unausgegoren.
Die Mäuse, die ich bisher in den Fingern hatte, haben das Mausrad 
optisch abgetastet. Wenn das Signal des Mausrades genutzt werden soll, 
wird die Auflösung der des original Mausrades entsprechen.
Es ist durchaus möglich, ein Poti auszuwerten (Stichwort ADC) und damit 
Mausradsignale zu erzeugen.

MfG von der Spree
Frank

von Dinosaurier (Gast)


Lesenswert?

Nimm eine Maus zum Ausschlachten, löte die Mausrad-Lichtschranken aus 
und schließe stattdessen einen optisch abgetasteten Drehgeber mit mehr 
Auflösung an.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die Frage ist, was du möchtest. Man kann durchaus ein Poti (z.B. in 
einem Joystick) mit Hilfe eines MC so programmieren, das der MC die 
Signale liefert, die auch ein Mausrad bietet.
Dann könnte man mit dem Poti schneller oder langsamer hoch- und 
runterscrollen, während es in der Mittelstellung ruhig ist und keine 
Scrollradsignale (eigentlich Quadratursignale) liefert.
Das funktioniert dann in etwa so wie der kleine Stick in manchen IBM und 
Lenovo Notebooks (aka 'G-Punkt Trainer'), bloss eben nur vertikal.
Als Interface zum Rechner ist eine alte Maus brauchbar.

von Rolf M. (rmagnus)


Lesenswert?

Stefan U. schrieb:
>> Ich wollte ein ein Poti so programmieren
>
> Potis sind nicht programmierbar.
>
>> die Bewegung des Mausrads übernimmt
>
> Dazu brauchst du einen USB Host. Das ist definitiv nichts für Anfänger.

In Mäusen ist doch kein USB-Host verbaut.

>> Desweiteren soll die Auflösung höher sein als die eines Mausrads.
>
> Dann brauchst du eine andere Maus. Potis feiner abzufragen würde keinen
> Sinn machen, die reagieren schon mechanisch nicht so fein, wie du das
> gerne hättest.

Außerdem haben Potis Endanschläge. Man kann also nicht sehr weit drehen.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> Man kann also nicht sehr weit drehen.
Für jedes Problem gibt es eine gute Zange.

> Außerdem haben Potis Endanschläge.
Nach der ersten Umdrehung nicht mehr.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Dazu brauchst du einen USB Host.

Nein. Dazu braucht er einen µC, der USB-Device spielen kann, und da es 
hier um HID geht, reicht im Grunde genommen irgendein AVR mit V-USB.

"Tom" möchte ein feiner auflösendes Scrollrad bauen.

Ein Poti eignet sich dafür zwar nicht (es hat Endanschläge und liefert 
gewissermaßen absolute Positionswerte), aber ein besserer und feiner 
auflösender Drehimpulsgeber als die üblichen in Mäusen verbauten sollte 
sich auftreiben lassen.

Die Aufgabe ist mit einem Attiny85 und etwas Arduino-/USB-Code leicht 
lösbar.

Der "Digistump" von Digispark wäre als Hardwaregrundlage hierfür bereits 
völlig ausreichend. An den muss der Drehimpulsgeber angeschlossen 
werden, und programmiert werden muss dann nur noch die Auswertung des 
Drehimpulsgebers und das "füttern" der entsprechenden 
USB-Software-Schnittstellen mit den ermittelten Daten.

Mit "digimouse.h" wird die nötige Unterstützung eingebunden, mit der 
Funktion "DigMouse.scroll()" ist der Drops dann schon gelutscht.


Als schicker und haptisch reizvoller Drehimpulsgeber eignet sich ein 
Schrittmotor, mit etwas zusätzlicher Elektronik bietet der die gleiche 
Funktionalität wie ein typischer Drehimpulsgeber, aber ist aufgrund der 
größeren bewegten Masse sehr "wertig" in der Handhabung. Und es gibt 
Schrittmotoren mit ziemlich vielen Schritten pro Umdrehung.

von Stefan F. (Gast)


Lesenswert?

>> Dazu brauchst du einen USB Host. Das ist definitiv nichts für Anfänger.
> In Mäusen ist doch kein USB-Host verbaut.

Ja eben, genau deswegen. Eine Maus ist ein USB Device und dieses kann 
nur an einen USB Host angeschlossen werden. Wie sonst willst du die 
Signale einer Maus empfangen und auswerten?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Wie sonst willst du die Signale einer Maus empfangen und auswerten?

Das will er doch gar nicht.

von Rolf M. (rmagnus)


Lesenswert?

Stefan U. schrieb:
>>> Dazu brauchst du einen USB Host. Das ist definitiv nichts für Anfänger.
>> In Mäusen ist doch kein USB-Host verbaut.
>
> Ja eben, genau deswegen. Eine Maus ist ein USB Device und dieses kann
> nur an einen USB Host angeschlossen werden. Wie sonst willst du die
> Signale einer Maus empfangen und auswerten?

Er will sie nicht empfangen und auswerten, sondern mit einem Poti 
erzeugen.

von Wolfgang (Gast)


Lesenswert?

Tom M. schrieb:
> Ich wollte ein ein Poti so programmieren das dieser die Bewegung des
> Mausrads übernimmt. Sprich ein Poti der die Aufgaben
> scroll up / scroll douwn übernimmt.

Willst du mit dem Poti einen Motor steuern, der mechanisch an ein 
Mausrad gekoppelt ist, oder was hast du vor?

Vielleicht beschreibst du das mal etwas verständlicher.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Willst du mit dem Poti einen Motor steuern, der mechanisch an ein
> Mausrad gekoppelt ist, oder was hast du vor?

Ich verstehe das so, daß er ein alternatives Mausrad konstruieren will, 
das deutlich feiner auflöst statt der nur wenigen Impulse pro Umdrehung, 
das die üblichen Mausräder liefern.

von Stefan F. (Gast)


Lesenswert?

Wenn man sein Vorhaben DEUTLICH formuliert, ist man der Lösung schon 
sehr viel näher.

von Dominik J. (d-r-j)


Lesenswert?

Hat eine höhere Auflösung des Mausrades nicht den gegenteiligen Effekt?

Eine höhere Auflösung heißt mehr Impulse bei kleinerer Bewegung des 
Rades, aber die Auflösung am Computer ändert sich nicht. Es wird nur 
schneller gescrollt.

Eine höhere Auflösung am Computer muss über den Maustreiber erfolgen.


Oder habe ich die Frage missverstanden?

von Stefan (Gast)


Lesenswert?

> Oder habe ich die Frage missverstanden?

Irgendetwas sagt mir daß niemand die Frage verstanden hat ;-)

von Sebastian S. (amateur)


Lesenswert?

Es gibt im Prinzip einen unüberwindlichen Pferdefuß:
Dreh' mal am Scrollrad und dann dreh mal an einem Poti!

Bei einem Scrollrad kannst Du das Tagelang machen, bei einem Poti ist, 
normalerweise nach 270° Feierabend. Natürlich gibt es andere Bauformen, 
die keinen Anschlag haben (die liefern am Ende kurz Blödsinn und 
springen dann "zurück") und welche, die bis zu 20 Umdrehungen haben 
(aber auch da gibt es einen Anschlag).

Noch was: Bei den meisten Konstruktionen kann man zwar eine sehr 
empfindliche Reaktion generieren, aber wenn Du z. B. über den Bildschirm 
"fahren" willst, brauchst Du dann u. U. 30 Umdrehungen...

von Hubert M. (hm-electric)


Lesenswert?

Es gibt auch noch bei Windoof Einstellungsmöglichkeiten für das 
scrollrad...

von Dominik J. (d-r-j)


Lesenswert?

Sebastian S. schrieb:
> Noch was: Bei den meisten Konstruktionen kann man zwar eine sehr
> empfindliche Reaktion generieren, aber wenn Du z. B. über den Bildschirm
> "fahren" willst, brauchst Du dann u. U. 30 Umdrehungen...


Genau andersrum. Um so empfindlicher das Mausrad, desto schneller das 
Scrollen.

Das Mausrad(Hardware) teilt nur mit, wie viele "Schritte" es macht.
Die Treiber(Software) entscheidet wie weit jeder "Schritt" 
weiterscrollt.



In der Systemsteuerung(Maus) kann man den Bildlauf(Rad) einstellen.

Beitrag #5231327 wurde von einem Moderator gelöscht.
von Tom M. (Firma: Keine) (ta7)


Lesenswert?

Hallo,
die Idee ist mit dem Poti Softwaresynthesizer zu bedienen. Zur zeit 
mache ich das mit einem Midicontroller. Was sich durch den Poti ändern 
würde wäre, ich müsste nicht mehr über die Learnfunktion erstmal die 
Parameter zuweisen bevor ich sie ändere sondern könnte einen Parameter 
einfach anwählen und den wert gleich ändern. Gerade mit einem Laptop 
wäre das praktisch da ich hier überwiegen mit einem Touchpad arbeite. 
Kennt ihr denn einige Mäuse die höhere Auflösungen haben? Ich dachte die 
wären alle gleich.

Gruß, Tomas

von Wolfgang (Gast)


Lesenswert?

Hubert M. schrieb:
> Es gibt auch noch bei Windoof Einstellungsmöglichkeiten für das
> scrollrad...

Wo sagt der TO irgendetwas von "Windows" oder überhaupt etwas von "PC"?

von Stefan F. (Gast)


Lesenswert?

Ich habe immer noch keinen Schimmer davon, was du machen willst.

Willst du das Signal vom Rad einer Maus erfassen oder simulieren? Und 
wie passt da ein Poti mit seinem beschränkten Drehwinkel rein?

Was für eine Art von Input benötigt denn der Software Synthesizer? Bist 
du dessen Programmierer oder musst du Standard-Eingabegeräte simulieren?

Wenn du das nicht in Worte fassen kannst, dann hilft vielleicht ein 
Bild.

von Klaus I. (klauspi)


Lesenswert?

War in den Paddles von früher nicht auch ein Poti?

von Rolf M. (rmagnus)


Lesenswert?

Ich denke, verstanden zu haben, was er will:
In seiner Software kann er mit der Maus ein Bedienelement (im Prinzip 
ein virtuelles Poti) auswählen und dann mit dem Mausrad verstellen.
Nun möchte er statt eines Mausrades ein echtes Poti dafür verwenden.
Er nimmt dann zum Auswählen das Touchpad seines Laptops, mit dem er den 
Mauszeiger auf das Bedienelement schiebt, und nun will er ein reales 
Poti haben, an dem er drehen kann, um den gewählten Parameter zu 
verstellen, indem sein Poti die gewünschten Mausrad-Events generiert.

Wie schon gesagt wurde, eignet sich ein Poti hier nicht, da es 
Endanschläge hat und Absolutwerte generiert. Das haben die virtuellen 
Bedienelemente zwar vermutlich auch, aber das echte Poti kann sich ja 
mit denen nicht "synchronisieren", wenn man mit der Maus über das 
Bedienelement geht.
Man braucht also einen Drehgeber.

Klaus I. schrieb:
> War in den Paddles von früher nicht auch ein Poti?

Was sind die "Paddles von früher"?

: Bearbeitet durch User
von Tom M. (Firma: Keine) (ta7)


Angehängte Dateien:

Lesenswert?

Stefan U. schrieb:
> Ich habe immer noch keinen Schimmer davon, was du machen willst.
>
> Willst du das Signal vom Rad einer Maus erfassen oder simulieren? Und
> wie passt da ein Poti mit seinem beschränkten Drehwinkel rein?
>
> Was für eine Art von Input benötigt denn der Software Synthesizer? Bist
> du dessen Programmierer oder musst du Standard-Eingabegeräte simulieren?
>
> Wenn du das nicht in Worte fassen kannst, dann hilft vielleicht ein
> Bild.

Hallo Stefan,
Ich bin reiner Anwender also kein Programmierer.
Im Grunde genommen geht es nur darum das Mausrad durch einen Poti zu 
ersetzen. Ich dachte da an ein Endlospoti wie es bei vielen 
Midicontrollern üblich ist. Die Synthesizer die ich damit bedienen 
möchte sind VST/DXI Plugins wie der im Anhang. Im Moment ist es so das 
ich mit der Maus einen Regler vom Synth auswähle und den Regler 
anschließend mit dem Mausrad bewege. Wenn das nicht geht oder sehr 
schwer ist würde ich auch bei einer handelsüblichen Maus bleiben. Gibt 
es da denn auch welche mit höheren Auflösungen? Jetzt ist es so das die 
Einstellungen am Synth über das Mausrad zu grob sind.
Z.B. ich möchte die Lautstärke des Synths ändern. Ich wähle den 
Lautstärkeregler mit der Maus aus und und stelle ihn nun mit dem Mausrad 
ein. Die Schrittweite ist zum Beispiel so das die Sprünge in dreier 
Schritten sind ( Level 10 auf Level 13 ...16...19..etc ). Ich hätte 
gerne die Möglichkeit zumindest in einer Schritten ein zu stellen.
Gibt es sonst Mäuse mit höheren Aulösungen?

Danke, Tomas

von Hubert M. (hm-electric)


Lesenswert?

Die 3er Schritte sind in Windoof standardmäßig so eingestellt, stell das 
um auf 1...

von Dr. Sommer (Gast)


Lesenswert?

Tom M. schrieb:
> in dreier
> Schritten sind ( Level 10 auf Level 13 ...16...19..etc ). Ich hätte
> gerne die Möglichkeit zumindest in einer Schritten ein zu stellen.
> Gibt es sonst Mäuse mit höheren Aulösungen?
Das ist reine PC-Software-Sache. Die Maus sendet dass sich das Rad um 
eine Rastung weiter gedreht hat, und die Software springt um 3 Schritte 
weiter. Das kannst du durch Umbauen der Maus nicht ändern. Schau 
erstmal, ob sich in der Software einstellen lässt, dass eine Maus-Raste 
auch ein Regler-Schritt ist. Ggf. hilft auch der Mauseinstellungs-Dialog 
von Windows, da kannst du einstellen wie viele (Text)-Zeilen eine 
Rastung scrollt.
Wenn du das geschafft hast und dir dann das Drehen zu langsam geht 
(weil die Rastungen so weit auseinander sind), kannst du dir überlegen 
was eigenes zu konstruieren mit mehr/kleineren Rastungen. Dafür ist 
gewiss ein hochauflösender Drehgeber besser als ein Poti geeignet. 
Alternativ sollte es möglich sein eine normale Maus rein mechanisch 
umzubauen.

von Stefan F. (Gast)


Lesenswert?

> Ich bin reiner Anwender also kein Programmierer.

Dann hat sich das Thema schon fast erledigt. Du wirst kein Gerät bauen 
können, das eine Maus emuliert, ohne zu programmieren. Und da hier USB 
involviert ist, wird das kein Kinderspiel.

Eventuell kannst du die Elektronik einer handelsüblichen Maus mit einem 
besseren Drehgeber kombinieren. Ich würde an deiner Stelle in diese 
Richtung weiter forschen.

> Die Schrittweite ist zum Beispiel so das die Sprünge in
> dreier Schritten sind

Das wird wohl von der Software so vorgegeben sein. Deine Maus wird wohl 
kaum drei Impulse pro Rastung erzeugen. Durchsuche mal die Einstellungen 
des Programmes. Eventuell hat auch die Einstellung des Scrollings in der 
Systemsteuerung einen Effekt (obwohl das schon ziemlich gaga wäre).

Auf jeden Fall musst du das zuerst klären. Solange die Software aus 
einem Impuls drei Schritte macht, ist jede Hardware-Änderung sinnlos.

Nachtrag: Dr. Sommer war schneller. Er hat absolut Recht.

von Tom M. (Firma: Keine) (ta7)


Lesenswert?

Okay. Danke für die Antworten und Infos. Euch nen schönen Abend noch.

Gruß, Tomas

von Joe F. (easylife)


Lesenswert?

Für dein Vorhaben benötigst du keine Mausrademulation, sondern einen 
externen USB Midi-Controller.
z.B. den "Faderfox PC4" oder eines der vielen anderen Geräte.

Nachdem einmal die Knöpfe des Controllers auf die Knöpfe deines Plugins 
gemappt wurden, kannst du die Plugin-Fader direkt mit der Hardware 
einstellen, ohne die Maus mühselig auf den entsprechenden 
Bildschirm-Knopf schieben zu müssen. Für das mappen gibt es in der 
Software in der Regel einen "learn" Modus, d.h. man klickt den Knopf auf 
dem Bildschirm an, dreht einen Knopf am Controller, und fertig.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Stefan U. schrieb:
> Dann hat sich das Thema schon fast erledigt. Du wirst kein Gerät bauen
> können, das eine Maus emuliert, ohne zu programmieren. Und da hier USB
> involviert ist, wird das kein Kinderspiel.

Mit einem Arduino Pro Micro oder einem anderen mit ATmega32u4 µC und der 
Arduino Mouse-Library ist das aber auch kein Hexenwerk.
https://www.arduino.cc/reference/en/language/functions/usb/mouse/

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Hubert M. schrieb:
> Die 3er Schritte sind in Windoof standardmäßig so eingestellt, stell das
> um auf 1...

So sieht das in Windows aus - hier mal ein englisches XP.

von Rolf M. (rmagnus)


Lesenswert?

Joe F. schrieb:
> Für dein Vorhaben benötigst du keine Mausrademulation, sondern einen
> externen USB Midi-Controller.
> z.B. den "Faderfox PC4" oder eines der vielen anderen Geräte.
>
> Nachdem einmal die Knöpfe des Controllers auf die Knöpfe deines Plugins
> gemappt wurden,

Seine Frage ist daraus entstanden, dass er genau das nicht will:

Tom M. schrieb:
> Zur zeit mache ich das mit einem Midicontroller. Was sich durch den Poti
> ändern würde wäre, ich müsste nicht mehr über die Learnfunktion erstmal
> die Parameter zuweisen bevor ich sie ändere sondern könnte einen
> Parameter einfach anwählen und den wert gleich ändern.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Der Hinweis das Rad einer USB-Maus mit einem Drehencoder "umzubauen"
sollte doch da genau passen.

Maeuse kann Mann ja mehr als eine im System haben. Und die
umgebaute hat halt nur noch einen (Endlos-)Drehknopf.

Ich wuesste jetzt zwar nicht was daran besser sein sollte,
als gleich das Mausrad einer externen Maus zu benutzen...

"Feinfuehliger" ist der Drehencoder naemlich auch nicht.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

P.S.: Es gibt durchaus auch VST-Plugins, die sich ueberhaupt nicht
fuer das Rad der Maus interessieren.

Da bleibt dann sowieso nur der Midicontroller...

von Dr. Sommer (Gast)


Lesenswert?

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#5231635:
> Da bleibt dann sowieso nur der Midicontroller...
Kann man sowas nicht auch per USB anschließen und so kompakt wie eine 
USB-Maus bauen...

von Rolf M. (rmagnus)


Lesenswert?

Dr. Sommer schrieb:
>> Da bleibt dann sowieso nur der Midicontroller...
> Kann man sowas nicht auch per USB anschließen und so kompakt wie eine
> USB-Maus bauen...

Doch, kann man. Aber das Problem ist dann, der Software zu sagen, dass 
der MIDI-Controller immer auf das Bedienelement wirken soll, das gerade 
per Maus ausgewählt ist. So eine Funktionalität wäre mir in keiner 
Software bekannt. Üblich ist da, dass man das Poti fest mit genau einem 
Bedienelement verknüpft. Soll es auf ein anderes Element wirken, muss 
man das erst umkonfigurieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.