Forum: Analoge Elektronik und Schaltungstechnik Aufbau eines linearen "Joysticks"


von Dennis Z. (justjim)


Lesenswert?

Hi, ist mein erster Post hier.

Ich wollte mal an einem µC Projekt arbeiten und
dachte mir: Ein Joystick bzw Controller wäre doch ganz cool.

Also grob zum Aufbau:
Im Gegensatz zum "normalen" Joystick sollte der hier statt sphärisch 
linear laufen. D.h. X und Y würden gerade (evt. auf Schienen? z.B. im H 
Aufbau) verlaufen, damit der Aufbau generell flacher ist.
Allgemein wollte ich zu der X und Y-Achse auch eine Rotation um die 
Z-Achse ermöglichen. Die krieg ich ja locker mit einem Drehpoti hin.

Ich weiß, die Position normaler Joysticks werden über Drehpotis oder 
Hall-Sensoren abgefragt, das ist hier ja leider nicht möglich.

Ich hatte auch schon 3 Möglichkeiten, wie ich die Position bestimme:
1) Lineare Potis, die auf den Schienen angebracht sind.
2) 3D Hallsensoren. Da bin ich mir aber nicht sicher wie die Dinger 
genau funktionieren (Muss der Magnet für X und Y anders gedreht sein?).
3) Touchpad-Panel und ein "Gleiter" der die Elektroden aktivieren kann.
Hier bin ich mir nicht sicher, welche Genauigkeit ich erreichen kann, da 
ich hier wieder in die diskrete Messung gehe.

Wie würdet ihr das am besten realisieren?

von Hermann S. (diphtong)


Lesenswert?

Auf jeden Fall nicht mit Potis, wenn dann mit Hall Sensoren...einen für 
jede Achse.
Und hier gibts noch ein interessantes Projekt fürs interface, 
funktioniert prima:
https://github.com/FreeJoy-Team/FreeJoy

Warum mit Linearschienen? Nur wg. Einem flacheren Aufbau?

Interessant sind auch die Teile hier...vll. Kannst du sowas direkt 
verwenden:
https://3dconnexion.com/de/product/spacemouse-compact/?gclid=EAIaIQobChMIi_ak_7n89QIVtZBoCR2LdwxhEAAYASAAEgIauPD_BwE

Die können sowohl rotatorische, wie auch translatorische Bewegung in 
jeder Achse.

: Bearbeitet durch User
von Dennis Z. (justjim)


Lesenswert?

Die Spacemouse hab ich schon gesehen, die find ich zwar echt cool, aber 
dafür auch sehr teuer. Und es geht mir ja hier ums selber bauen.

Ich denke, die Linearführung wäre weniger wichtig, wenn die Rotation 
flacher wäre, aber dadurch wird der Aufbau wieder höher.

Allgemein will ich gerne einen Joystick bauen, den man mit der 
Handfläche bzw. wie eine Maus bedienen kann (natürlich in jeder Achse 
limitiert) und zusätzlich eine Drehachse hat. Würde im Endeffekt wie ein 
Puck aussehen.

Ja Hall-Sensoren hatte ich wie gesagt auch schon im Blick. Da gibt es 
dann die normalen Teile, die praktisch eine Richtung erkennen (und bei 
einem Offset schon anders reagieren) und dann die 3DHall-Sensoren, die 
schon 3 Hall Sensoren integriert haben. Die Frage ist hier aber:

Wenn ich einen Magneten am unteren Ende des Joysticks befestige und die 
Hall Sensoren jeweils davor und links (bzw. rechts) dann habe ich
a) außer bei reinen X und Y Bewegungen IMMER einen Offset
b) ist immer noch das Problem offen, dass der Magnet ja anscheinend je 
nach Achse anders ausgerichtet sein muss.

von Hermann S. (diphtong)


Lesenswert?

Mit Offset meinst Du, dass die Sensoren bei 0 Gs dann z. B 2,5 V bei 5 V 
Eingang ausgeben?
Dann kannst Du den Hall Sensor mit einem anderen Magneten "Vorspannen" 
bis dass der Hall Sensor sein Minimum ausgibt.

von Ideevielleicht (Gast)


Lesenswert?

Also im Grunde genommen eine stinknormale optische Maus jedoch mit zwei 
optischen Sensoren die ein ein paar Zentimeter voneinender entfernt 
sind.

Damit lässt sich auch eine Drehbewehung erfassen. Ich frage mich bei 
diesem Gedanken grade warum es soetwas noch nicht gibt?

von Dennis Z. (justjim)


Lesenswert?

Okay, so tief stecke ich gerade nicht in der Materie (wie gesagt, ich 
habe Hall Sensoren nie verwendet).

Mit Offset meine ich, dass wenn sich ein Magnet dem Sensor nähert, der 
Sensor ja entweder die Spannung erhöht oder verringert (je nach 
Polarität bzw. welche Seite des Magnetes man verwendet). Das 
Maximum/Minimum ist dann bei einer gewissen Distanz erreicht (sagen wir 
mal S0).

In einem Video zu 3D-Hallsensoren habe ich gesehen, dass wenn der Magnet 
nicht genau von Oben darauf zukommt, das Verhalten zunächst gleich 
aussieht, aber noch bevor man S0 erreicht, die Spannung plötzlich 
absinkt (anscheinend, weil das Magnetfeld ja auch anders auf den 
Hallsensor wirkt).

Um es mal in TextBild zu zeigen:
|| ist der Hall-Sensor
()__)__) ist der Magnet

|| <----()__)__)
Das wäre der normale Hergang.
||
   <----()__)__)
Hier würde die Spannung noch vor S0 abfallen.

Zudem ist die Frage ja immer noch:
Ich habe ja genau 1 Magnet am unteren Ende des "Joysticks".
Müsste sich dann nicht einer der Hall-Sensoren anders verhalten, da die 
Ausrichtung der Pole relativ zum jeweiligen Hall-Sensor anders ist?

von Hermann S. (diphtong)


Lesenswert?

...dafür dass sich dann Dein Mauszeiger um seine eigene Achse dreht? ^^

Dafür gibts ja dann die SpaceMouse Teile...

Aber trotzdem ne gute Idee mit den 2 optischen Sensoren

: Bearbeitet durch User
von Dennis Z. (justjim)


Lesenswert?

@Ideevielleicht
Den Gedanken hatte ich auch schon.
Doch soll der "Joystick" ja auf seine 0-Stellung zurück, wenn man ihn 
loslässt.
Da optische Mäuse ja "nur" Änderungen bemerken ist die Genauigkeit nicht 
gegeben. Das heißt, ich kann genau die selbe Strecke vor und zurück 
fahren und die Maus kann eine andere Endposition daraus berechnen.

von Cyblord -. (cyblord)


Lesenswert?

Dennis Z. schrieb:
> Die Spacemouse hab ich schon gesehen, die find ich zwar echt cool, aber
> dafür auch sehr teuer. Und es geht mir ja hier ums selber bauen.

Nur kannst du da schauen wie die lineare Bewegung aufgenommen wird.

von Dennis Z. (justjim)


Lesenswert?

Cyblord -. schrieb:

> Nur kannst du da schauen wie die lineare Bewegung aufgenommen wird.
Dem hohen Aufbau zufolge sieht das für mich nach einer Rotationsbewegung 
aus.
Die tiefe Achse sorgt, denke ich, dafür, dass es sich linear anfühlt.

Der Nintendo 3DS Thumbstick hat eine lineare Translation (meine ich).

Im Endeffekt aber Jacke wie Hose :P. Nicht böse gemeint. Ich will keinen 
verärgern (vor Allem weil ich neu bin):
a) Ich werde mir weder 3DS noch Spacemouse kaufen um sie zu zerlegen
b) Möchte ich ja gerne mit einem µC was selber bauen
Daher frage ich ja hier nach ob es da Ideen gibt.

von Ideevielleicht (Gast)


Lesenswert?

Dennis Z. schrieb:
> Da optische Mäuse ja "nur" Änderungen bemerken ist die Genauigkeit nicht
> gegeben. Das heißt, ich kann genau die selbe Strecke vor und zurück
> fahren und die Maus kann eine andere Endposition daraus berechnen.

Ja, aber ich kann die Maus hochheben und woanders platzieren. Genau so 
wie ich das in Games auch praktiziere. Ganz sicher lässt sich daraus mit 
entsprechender Software ein praktikabler "Mouse-Stick" entwickeln.

Ja ich weiß, ist ein bischen visionär was ich da schreibe. Aber 
vielleicht könnte das eine gute Anregung sein.

von Cyblord -. (cyblord)


Lesenswert?

Dennis Z. schrieb:
> b) Möchte ich ja gerne mit einem µC was selber bauen

Aber Konzepte kann man sich trotzdem holen. Tust du hier im Forum ja 
auch.

Ich denke die möglichen sind bekannt, wie man grundsätzlich solche 
Bewegungen erfassen kann.

von Dennis Z. (justjim)


Lesenswert?

Cyblord -. schrieb:
> Aber Konzepte kann man sich trotzdem holen. Tust du hier im Forum ja
> auch.
>
> Ich denke die möglichen sind bekannt, wie man grundsätzlich solche
> Bewegungen erfassen kann.

Ja sicher. Aber wie gesagt: zum Studieren sind die Teile zu teuer.

Nur nochmal zurück zu den Hall-Sensoren. Wie würde so ein Aufbau 
aussehen?
Ich verstehe halt immer noch nicht, wie man 2 Sensoren verwenden könnte.
Einem Hall Sensor nähert man sich doch immer mit einer Seite des 
Magneten, dann bekäme aber der andere Sensor aber praktisch immer die 
volle Breitseite (sozusagen)

von Hermann S. (diphtong)


Lesenswert?

Dennis Z. schrieb:
> Cyblord -. schrieb:
>> Aber Konzepte kann man sich trotzdem holen. Tust du hier im Forum ja
>> auch.
>>
>> Ich denke die möglichen sind bekannt, wie man grundsätzlich solche
>> Bewegungen erfassen kann.
>
> Ja sicher. Aber wie gesagt: zum Studieren sind die Teile zu teuer.

Google: "spacemouse teardown"
>
> Nur nochmal zurück zu den Hall-Sensoren. Wie würde so ein Aufbau
> aussehen?
> Ich verstehe halt immer noch nicht, wie man 2 Sensoren verwenden könnte.
> Einem Hall Sensor nähert man sich doch immer mit einer Seite des
> Magneten, dann bekäme aber der andere Sensor aber praktisch immer die
> volle Breitseite (sozusagen)

Pro Achse ein Sensor und 2 Magneten. Nicht der Sensor bewegt sich, 
sondern die Magnete.
Also so (rechtes Bild)...da wird auch das Offset kompensiert:
https://hackaday.com/wp-content/uploads/2020/10/halleffect_magnets.png?resize=800,299

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Dennis Z. schrieb:
> Wie würdet ihr das am besten realisieren?

Da die üblichen Joystickeingänge Potis sehen wollen, würde ich auch 
Potis verwenden.

Sonst bräuchtest du halt noch eine aufwändige Elektronik.

Wenn es sich mechanisch anbietet entnimmt man nur die Widerstandsbahn 
und den Schleifer aus einem Fader.

Interessanter ist die Mechanik, die du wohl besonders flach hinbekommen 
willst, und die auch gut gleiten soll ohne zu klemmen. Wenn du am Rand 
zumindest den halben Potiweg als zusätzliche Fläche hast, kann man sogar 
ein starre Abdeckung haben.

von Dennis Z. (justjim)


Lesenswert?

Hermann S. schrieb:
> Pro Achse ein Sensor und 2 Magneten. Nicht der Sensor bewegt sich,
> sondern die Magnete.
> Also so (rechtes Bild)...da wird auch das Offset kompensiert:
> 
https://hackaday.com/wp-content/uploads/2020/10/halleffect_magnets.png?resize=800,299

Okay ich hab gesehen wie die Spacemouse funktioniert. Echt clever. Weder 
Hall noch Potis sondern nur Dioden und Schlitze vor den 
Fototransistoren. Das ganze "schwebt" sozusagen auf 3 Federn. Wenn man 
jetzt die Rotation blockieren würde, hätte ich genau das, was ich suche. 
Ich müsste nur den Weg etwas vergrößern, da ich ja keine 
Bewegungsänderung weiter geben will, sondern eine absolute Position.
Danke für den Tipp!

Zu deinem Bild:
In welche Richtung bewegen sich die Magneten in deinem Beispiel?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Dennis Z. schrieb:
> Wie würdet ihr das am besten realisieren?

Da kommt auf die Anwendung an.
Bei einem Joy-Stick ist normalerweise keine Präzision erforderlich, weil 
der sowieso in einem Regelkreis sitzt.
Für eine genaue, lineare Positionsmessung eignen sich sonst 
Glasmeßstäbe, wie sie z.B. in Maschinen für Längenmessungen eingesetzt 
werden.

von HartKern OberBastler (Gast)


Lesenswert?

> Nur nochmal zurück zu den Hall-Sensoren. Wie würde so ein Aufbau
> aussehen?
> Ich verstehe halt immer noch nicht, wie man 2 Sensoren verwenden könnte.

Löse dich erstmal von der Idee dass z.B Magnete direkt unterm Puck fix 
angebracht sind: das kommt schon davon weg dass sie sich sowohl in X wie 
auch in Y in der Ebene bewegen denn das soll nur der Puck als Griff.

Stell dir vor z.b ein Magnet mit Loch rutscht auf z.b einem Zahnstocher, 
an einem Ende des Zahnstochers dann z.b der Hallsensor. Nun bleibt der 
Magnet also immer "frontal auf der Achse" zum Sensor.

Ich schreibe immer "z.b" weil anstellt Magnet/Hallsensor könnte es auch 
ein Seilzug sein der einerseits auf Umlenkrolle und andererseits um 
Potiachse läuft.

Von solchen eindimensionalen Linearsensoren werden halt 2 benötigt: je 1 
f. X und Y.


Jetzt erst kommt die Frage wie der Puck der auf einer begrenzten 
(rechteckigen? ovalen?) fläche rutscht, mit dem X UND Y Linearsensor 
mechanisch zu verknüpfen ist...

Schau dir mal an (nur als Inspiration!) wie Kreuztische f. Fraesen 
gemacht sind. So wird es zwar nicht gehen, aber du suchst ja irgendwie 
das umgekehrte... :-)

Also so etwas wie 2 orthogonal zueinander verbundene Schiebekulissen.

Ich denke Kunsstoffplatten mit Längsrillen (Halbzeug oder 3D-gedruckt - 
vgl. Wellkarton gleiten aufeinander ungefähr passend für dein 
Experiment...


Mein geschreibsel dürfte als Denkanstoss reichen, ja?

von Johannes S. (Gast)


Lesenswert?

Habe jetzt nicht alles gelesen, hier ist noch eine Space Mouse zum 
selber bauen:
https://github.com/FaqT0tum/Orbion_Space_Mouse

von Blechbieger (Gast)


Lesenswert?

Ein einzelner 3D-Hallsensor (2D könnte auch gehen) in der Mitte sollte 
eigentlich für X- und Y-Position reichen, denn der liefert nicht nur 
Richtung sondern auch Stärke das Magnetfeldes und damit Abstand. 
Magnetpole vertikal am Stick. Mit einem zweiten Sensor am Rand und den 
Magnetpolen horizontal am Stick kann man vielleicht sogar die Z-Achse 
messen.

von Dennis Z. (justjim)


Angehängte Dateien:

Lesenswert?

Okay. Ich hab mal ein wenig in Blender gespielt und ein grobes Modell 
entworfen, wie ich mir das in etwa vorgestellt habe. Die Positionsfedern 
habe ich erstmal weggelassen, da sie dann eh am Puck und Boden befestigt 
werden.
In der Version hier werden 2 Linear-Potis verwendet (man kann sie ja 
denke ich durch Magnet + Hall ersetzen auf jeder Achse. Oder 3D-Hall im 
Zentrum).

Was haltet ihr davon?

von MaWin (Gast)


Lesenswert?

Dennis Z. schrieb:
> Was haltet ihr davon?

Man sieht auf Anhieb, wie es verkantet, und ohne die intellektuell viel 
schwierigere Abdeckung fällt noch das halbe Brot rein.

Noch sehr naiv, noch sehr Kindergarten.

Besorge dir mal 2 alte 5 1/4" Floppylaufwerke und deren Kopfschlitten, 
möglichst die noch auf 2 Achsen gelagerten.

von Johannes S. (Gast)


Lesenswert?

ich kann mir nicht vorstellen das so etwas läuft ohne schnell zu 
klemmen. Das müssen dann schon sehr präzise und steife Schienen und 
Lager sein.

von Dennis Z. (justjim)


Lesenswert?

Die maße

MaWin schrieb:
> Man sieht auf Anhieb, wie es verkantet, und ohne die intellektuell viel
> schwierigere Abdeckung fällt noch das halbe Brot rein.


Die Maße sind jetzt nicht zu 100% das was ich mir vorstelle. Ist nur ein 
schneller Entwurf gewesen.
Die Abdeckung wäre eine Platte mit Kreisausschnitt.

von Gerald B. (geraldb)


Lesenswert?

Dennis Z. schrieb:
> Ich weiß, die Position normaler Joysticks werden über Drehpotis oder
> Hall-Sensoren abgefragt, das ist hier ja leider nicht möglich.

Nein. Meistens gibt es nur einen Schalter in der Endposition. Einen 
Joystick mit Potis gab/gibt es nicht oft.

: Bearbeitet durch User
von Dennis Z. (justjim)


Angehängte Dateien:

Lesenswert?

Hm okay. Ohne euch nerven zu wollen (ich hab nicht so viel Ahnung bis 
jetzt. Wäre mein 1. Projekt), wäre hier meine 2. Idee.
Das blaue ist der 3D Hall Sensor. Das ganze ist auf Federn gelagert. 
Damit es keine Neigungsbewegung gibt, ist auf der Unterseite des Deckels 
eine Scheibe angebracht.

Wäre das so möglich?

von Blechbieger (Gast)


Lesenswert?

Gerald B. schrieb:
> Nein. Meistens gibt es nur einen Schalter in der Endposition. Einen
> Joystick mit Potis gab/gibt es nicht oft.

Du kommst wohl von C64 oder Amiga? Am PC gab es schon immer analoge 
Joysticks. Früher mit Potis die immer am driften waren, heute mit 
HAL-Sensoren.

von MaWin (Gast)


Lesenswert?

Blechbieger schrieb:
> Du kommst wohl von C64 oder Amiga? Am PC gab es schon immer analoge
> Joysticks. Früher mit Potis die immer am driften waren, heute mit
> HAL-Sensoren.

Vor allem hat er wohl nie eine Modellfunkfernsteuerung besessen, die 
hatte weitgehend analoge Kreuzknüppel. Der Apple ][ auch.

Drift ist bei Potis kein Problem, bei Hallsensoren hingegen erheblich.

von Cyblord -. (cyblord)


Lesenswert?

Blechbieger schrieb:
> Du kommst wohl von C64 oder Amiga? Am PC gab es schon immer analoge
> Joysticks. Früher mit Potis die immer am driften waren, heute mit
> HAL-Sensoren.

Schon mein Apple //c hatte analoge Joysticks.

von Sid Greybeard (Gast)


Lesenswert?

>> Früher mit Potis die immer am driften waren, heute mit
>> HAL-Sensoren.
>
> Schon mein Apple //c hatte analoge Joysticks.

Du Nachzügler du... (Apple II hier) ;-)

Was da driftete waren nich die Potis, sondern Schaltung als ganzes: die 
Potis sind da Teil eines RC-Zeitgliedes. Unsorgsam (aka billig) 
ausgefûhrt sind RC-Zeitglieder in der Tat nicht für Stabilität bekannt.

von Dennis Z. (justjim)


Angehängte Dateien:

Lesenswert?

So. Habe mich das Wochenende mal etwas inspirieren lassen und mir ein 
paar Gedanken gemacht. Die Spacemous ist schon ziemlich cool. Aber 
allein die 1D Position sensitiven Detektoren kosten einiges.

Dann hab ich mir ein paar Youtube Videos dazu angeschaut und bin auf ein 
interessantes Projekt gestoßen.

Hab mich dann mal ein wenig an CAD versucht und das ist dabei 
rausgekommen.
So unterstützt das Teil zunächst lineare Bewegung in X und Y Richtung 
mittels an der Unterseite angebrachten Hall-Sensoren (bzw 1 3D 
Hallsensor), sowie Rotation um X und Y Achse über einen MPU-6050. Zudem 
kommt oben noch ein Knauf drauf, der sich mit Hilfe eines Kugellagers 
drehen kann (geplant ist NUR die Seitenwand zu rotieren) um Rotationen 
um die Z Achse zu erkennen. Gelesen werden die über 2 Hallsensoren und 
im rotierenden Bereich Nord-Süd-alternierend angebrachte Magnete.

Wie würdet ihr hier noch die Z-Translation unterbringen?
Im Prinzip wäre es im Knauf oder an der Basis möglich. Aber wie könnte 
ich das realisieren ohne Probleme mit evtl. Verkannten zu kriegen?

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.