Hallo. Mir ist von einem alten Tele-Spiel (Tele-Match) ein Kreuzknüppel mit 2 Tastern in einem schönen Gehäuse zugelaufen. Was macht der Hobby-Bastler also als erstes damit ? Klar. Aufschrauben und reingucken. Gefunden hab ich die Mechanik des Kreuzknüppels mit 2 Potis dran. Jeweils 300 KOhm. An jedem Poti sind 2 Drähte angeschlossen. Also eigendlich nur ein veränderbarer Widerstand. Die Mechanik begrenzt allerdings den Einstellbereich der Potis auf 10 - 70 KOhm. Jetzt hab ich mir überlegt die Stellung des Knüppels durch 2 AD-Wandler zu bestimmen und stoße dabei auf auf ein Problem. Wenn ich z.B. alle 256 Schritte ausnutzen will, woher weiß ich denn wo die Anschläge sind. Klar kann ich das irgendwie mit Trimmern so abgleichen das das hinkommt. Aber andererseits haben die das in dem Tele-Match Spiel ja auch geschafft ohne irgendwas mit Trimmern abzugleichen. Die Potis kann man ja auch noch verdrehen und den Einstellbereich damit z.B. auf 40-100 KOhm verstellen. Jetzt die Frage : Nutzen die gar nicht die volle Auflösung des AD-Wandlers ? Und woher wussten die wann der Kreuzknüppel am Anschlag ist ohne das er vor Spielbeginn einmal in alle 4 Ecken bewegt wurde ? Irgendwie bin ich da noch etwas ratlos. Wie kann ich den Widerstandswert so in eine Spannung umsetzen die es mir erlaubt alle 256 Schritte des AD-Wandlers auszunutzen ? Ohne Abgleich ! Ganz automatisch ! Ging in dem Spiel ja auch. Irgendwie
Hans I. schrieb: > Nutzen die gar nicht die volle Auflösung des AD-Wandlers ? Vermutlich war in dem alten Telespiel nicht mal ein AD-Wandler drin, sondern ein Frequenzgenerator, der die Frequenz je nach Potistellung ändert. Oder die Potistellung wurde durch ein RC-Glied an einem Digitalpin ausgewertet. Ein kleiner Offset war da nicht störend, weil der Spieler dann den Knüppel einfach ein wenig anders positioniert hat, um den Ball zu treffen. > Wie kann ich den Widerstandswert so in eine Spannung umsetzen die es mir > erlaubt alle 256 Schritte des AD-Wandlers auszunutzen ? Ich würde einen 10-Bit Wandler nehmen und die Skkalierung auf die gewünschten 8 Bit in der Software machen. BTW und OT: wozu das Geplenke? Ein Satzzeichen hat keine eigene Zeile verdient!
:
Bearbeitet durch Moderator
Hans I. schrieb: > Mir ist von einem alten Tele-Spiel (Tele-Match) ein Kreuzknüppel mit 2 > Tastern in einem schönen Gehäuse zugelaufen. Die gängige Bezeichnung dafür ist "Joystick" > Gefunden hab ich die Mechanik des Kreuzknüppels mit 2 Potis dran. > Jeweils 300 KOhm. An jedem Poti sind 2 Drähte angeschlossen. Also > eigendlich nur ein veränderbarer Widerstand. Die Mechanik begrenzt > allerdings den Einstellbereich der Potis auf 10 - 70 KOhm. Also Standard. > Jetzt hab ich > mir überlegt die Stellung des Knüppels durch 2 AD-Wandler zu bestimmen > und stoße dabei auf auf ein Problem. > Wenn ich z.B. alle 256 Schritte ausnutzen will, woher weiß ich denn wo > die Anschläge sind. Klar kann ich das irgendwie mit Trimmern so > abgleichen das das hinkommt. Aber andererseits haben die das in dem > Tele-Match Spiel ja auch geschafft ohne irgendwas mit Trimmern > abzugleichen. Die alten Telespiele benutzten keinen ADC. Die Joystick-Potis wurden als zeitbestimmende Teile in einem Monoflop oder Astabilen Multivibrator verwendet (gern mit 555). Die CPU hat dann die Pulslängen ausgezählt. Die Auflösung war typisch viel kleiner als 8 Bit. Und die Nullstellung wurde kalibriert. Entweder in Software "Joystick bitte in Nullstellung bringen" oder indem der Poti-Korpus gegenüber der Achse verdreht wurde.
Hans I. schrieb: > Wenn ich z.B. alle 256 Schritte ausnutzen will, woher weiß ich denn wo > die Anschläge sind. Vergiss die 256 Schritte. Normalerweise wird der komplette Bereich ratiometrisch gemessen und der genutzte Bereich bei der Kalibrierung ausgemessen und rechnerisch auf den gewünschten Bereich abgebildet.
:
Bearbeitet durch User
Ich hab mir schon gedacht dass eine Hardware Kalibrierung nur schwer machbar ist. Bei einem Videospiel ist das auch kein Problem wenn ich nach dem Einschalten erst alle 4 Ecken anfahren muss. Wenn ich aber damit z.B. Stellmotoren eines Teleskops steuern will ist das nicht so toll wenn sich das Teil beim Kalibrieren mitbewegt. Aber da ich ja nur diesen einen Kreuzknüppel habe reicht ja eine Kalibrierung aus. Die Werte lassen sich ja speichern und beim nächsten einschalten direkt abrufen. Das sollte klappen. Danke euch
:
Bearbeitet durch User
Hans I. schrieb: > Mir ist von einem alten Tele-Spiel (Tele-Match) ein Kreuzknüppel mit 2 > Tastern in einem schönen Gehäuse zugelaufen. Trotzdem würde ich dieses Teil nicht mehr verwenden. Die alten Potis könnten Kontaktschwierigkeiten haben, und falls eines kaputt geht, wird es schwer Ersatz zu bekommen. Vor allem ist die Beschaltung als Widerstand ein echtes Problem, weil die Widerstandswerte nicht gleich sind und abhängig von Temperatur, Alter, Feuchtigkeit und sonst noch was sind. Ausserdem ergibt das keine lineare Kennlinie. Sooo teuer sind neue ratiometrische Joysticks auch nicht https://www.ebay.de/itm/405397091330 selbst wenn man da noch die Knöpfe extra kaufen muss. Gewöhnlich werden diese Potis zwischen +U (Betriebsspannung des µC) (100%) und GND (0%) gelegt, und der Schleifer geht an den Eingang eines ADC, der im µC enthalten ist. Da der ADC ebenfalls +U als Referenz benutzt, ist sein Messwert nur noch von der Position des Paddels abhängig. Die absoluten Werte der Spannungen und Widerstande spielen keine Rolle mehr. Wenn das Teleskop, wie ich vermute, portabel ist, wirst du aber trotzdem ein Kalibriermöglichkeit brauchen um die Besonderheiten des Aufstellungsortes zu berücksichtigen. (Nordrichtung, Geographische Länge und Breite, Uhrzeit und Datum, Neigung des Geländes). Ich empfehle dir deshalb, das Rad nicht neu zu erfinden, sondern mit anderen Hobby-Astronomen Kontakt aufzunehmen, die solche Computerisierten Teleskopsteuerungen schon längst gebaut haben und dich auch bei der Bauteileauswahl beraten können.
Hp M. schrieb: > Wenn das Teleskop, wie ich vermute, portabel ist, wirst du aber trotzdem > ein Kalibriermöglichkeit brauchen um die Besonderheiten des > Aufstellungsortes zu berücksichtigen. (Nordrichtung, Geographische Länge > und Breite, Uhrzeit und Datum, Neigung des Geländes). Standort, Uhrzeit und Alter des Mannes im Mond gehen den Joystick überhaupt nichts an. Damit wird nur die Geschwindigkeit einer Relativbewegung gesteuert.
Hp M. schrieb: > Ausserdem ergibt das keine lineare Kennlinie. Es ist auch gut möglich, dass die Potis logarithmisch sind. In analogen PC-Joysticks wurden die damals auch oft verwendet, weil sie billiger sind. Das Einlesen passierte beim Joystick-Port durch Aufladen eines C mit folgender Entladung über den Widerstand des Potis, wobei die Entladedauer gemessen wurde. Anschließend wurde dieser Wert auf sehr einfache Weise in Software auf den richtigen Bereich umgerechnet. Das ist natürlich alles andere als linear und präzise, reicht aber für Spiele in der Regel völlig aus. Das wird bei diesem Telespiel vermutlich ähnlich sein.
:
Bearbeitet durch User
Hans I. schrieb: > Ich hab mir schon gedacht dass eine Hardware Kalibrierung nur schwer > machbar ist. Bei einem Videospiel ist das auch kein Problem wenn ich > nach dem Einschalten erst alle 4 Ecken anfahren muss. > Wenn ich aber damit z.B. Stellmotoren eines Teleskops steuern will ist > das nicht so toll wenn sich das Teil beim Kalibrieren mitbewegt. Aber da > ich ja nur diesen einen Kreuzknüppel habe reicht ja eine Kalibrierung > aus. Die Werte lassen sich ja speichern und beim nächsten einschalten > direkt abrufen. Das sollte klappen. Und die Anschaffung eines neuen Kreuzknüppels kommt nicht in Betracht? Gerade wenn man ihn für ein Teleskop nutzen will? Es muss ein Uralt-Tele-Spiel Controller sein?
Auf den Gaming Karten war meines Wissens ein LM339 (4 Komparatoren) verbaut. Mit 4 Kondensatoren hat er dann die 4 Potistellungen in eine Zeit umgesetzt, die dann im Programm gemessen wurde.
Hp M. schrieb: > Trotzdem würde ich dieses Teil nicht mehr verwenden. > Die alten Potis könnten Kontaktschwierigkeiten haben, und falls eines > kaputt geht, wird es schwer Ersatz zu bekommen. Das ist bei neuen nicht anders. Eher schlechter, weil noch mehr auf geplante Obsoleszenz getrimmt. > Vor allem ist die Beschaltung als Widerstand ein echtes Problem, weil > die Widerstandswerte nicht gleich sind und abhängig von Temperatur, > Alter, Feuchtigkeit und sonst noch was sind. Ausserdem ergibt das keine > lineare Kennlinie. Das war in den 80er Jahren kein Problem. Warum sollte es das jetzt sein? Außerdem wird man wohl kaum die Absolutposition des Steuerknüppels direkt auf die Ausrichtung des Teleskops mappen. Man wird nur die Verfahrgeschwindigkeit in 2 Achsen halbwegs feinfühlig steuern. Mit einen großen Totbereich um die Nullstellung.
:
Bearbeitet durch User
Um nochmal auf die letzten Beiträge zu antworten. Ich bin einfach nicht so der Konsum-Typ. Mein Hobby lebt vom Ausschlachten alter Geräte. Warum also neu kaufen wenn die alten Sachen noch zu gebrauchen sind. Mir gefällt das Teil irgendwie. Kreuzknüppel mit 2 Tastern in einem schönen Gehäuse ist doch perfekt. Ok, die Potis darin musste ich aufbiegen um die Kohlebahn und den Schleifer mit n Lederstäbchen zu reinigen. Funktioniert jetzt wieder super. Die haben auch 3 Anschlüsse von denen allerdings nur 2 benutzt wurden. In dem Anschlusskabel sind allerdings noch 2 Adern frei. Lässt sich also problemlos anders verkabeln. Und Linear sind sie auch. Ich werd einfach mal sehen wie weit ich damit komme. Die Umrechnerei der Position schreckt mich grad noch etwas ab weil ich meist in Assembler programmiere. Das wird wohl auf Division mit Kommastellen und runden hinauslaufen. Hab ich noch nie gebraucht. Aber ich bin ja noch jung (grad in Rente). Hab also noch viel Zeit :)
Hans I. schrieb: > Die haben auch 3 Anschlüsse von denen allerdings nur 2 benutzt wurden. > Und Linear sind sie auch. Wenn du nur 2 der Anschlüsse benutzt und dazu einen Pullup, wird die Übertragungskennlinie nichtlinear. > Die Umrechnerei der Position schreckt mich grad noch etwas ab weil ich > meist in Assembler programmiere. Das wird wohl auf Division mit > Kommastellen und runden hinauslaufen. Ein Tipp: eine Division durch eine Konstante lässt sich leicht in eine Multiplikation umformen. Für die AVR und eine Multiplikation jenseits der generischen 8 Bit gibt es die Appnote AVR201. > Hab also noch viel Zeit :) Auf C umsteigen wäre da doch eine nette Aufgabe.
:
Bearbeitet durch Moderator
Lothar M. schrieb: >> Hab also noch viel Zeit :) > Auf C umsteigen wäre da doch eine nette Aufgabe. +1 Man muss sich das Leben nicht künstlich schwer machen. Hans I. schrieb: > Ich bin einfach nicht so der Konsum-Typ. Mein Hobby lebt vom > Ausschlachten alter Geräte. > Warum also neu kaufen wenn die alten Sachen noch zu gebrauchen sind. Mir > gefällt das Teil irgendwie. Kreuzknüppel mit 2 Tastern in einem schönen > Gehäuse ist doch perfekt. Das ist völlig verständlich. Die Vorschläge einen neuen Poti zu benutzen kommen aus der Überlegung: Der ausgeschlachtete hat einen nicht definierten Verschleißgrad. Wenn du ein neues Gerät damit baust, und der Kreuzpoti erweist sich als unrettbar defekt (Widerstandsbahn verschlissen) dann wirst du ggf. schwerlich einen identischen Ersatz finden und dein Gerät umbauen müssen. Da dir das aber bewusst zu sein scheint viel Erfolg.
:
Bearbeitet durch User
Lothar M. schrieb: >> Die Umrechnerei der Position schreckt mich grad noch etwas ab weil ich >> meist in Assembler programmiere. Das wird wohl auf Division mit >> Kommastellen und runden hinauslaufen. > Ein Tipp: eine Division durch eine Konstante lässt sich leicht in eine > Multiplikation umformen. Genau. Wenn man beispielsweise durch 5,7 teilen müsste, einfach mit 45 multiplizieren und das Ergebnis um 8 Bit nach rechts schieben. Das ist hinreichend nah dran.
An Lothar Ich hatte ja geschrieben das in dem Anschlusskabel noch 2 unbenutzte Drähte drin sind. Die werde ich benutzen um alle 3 Poti-Anschlüsse zu nutzen. Was das Dividieren in Assembler angeht hab ich mal das Internet befragt und einige gute Seiten gefunden wo das beschrieben ist. Sogar auf Deutsch, was mir sehr entgegen kommt. Und zum Thema „C“. Da hab ich mich vor 2-3 Jahren mal eingearbeitet und auch 2 Projekte in C verwirklicht. Dann hab ich aber ein halbes Jahr lang gar nichts gemacht. Als ich dann mal wieder was Programmieren wollte stand ich da wie ein Ochs vorm Berg. Ich hatte den ganzen (Und ich weiß, ihr werdet mich alle dafür hassen) kryptischen Humbug wieder total vergessen und habs wieder in Assembler gemacht. Meiner Meinung nach ist C eher was für Leute die oft und viel programmieren. Meine kleinen Programme sind meist weniger als 2KB lang. Das kann man noch gut in Assembler realisieren. Und das find ich deutlich einfacher als in C. Keine Datentypen, keine Typumwandlung, keine make-files. In Assembler bin ich Herr und Meister über den Controller :). Ich weiß genau wozu jedes einzelne Bit benutzt wird. An dem Code wird weder irgendwas weg optimiert noch dazu gedichtet. Und die Sprache ist so einfach das ich auch nach einem halben Jahr nichts tun sofort wieder loslegen kann. Statt dessen würde ich mich lieber mit VHDL beschäftigen. Wenn ich FPGAs programmieren könnte würde das die Schaltungen wohl deutlich verkleinern und die Layouts vereinfachen. Ich habs auch schon mal versucht. Leider hab ich die Xilinx Software mit meinem Test -Board nicht ans laufen gekriegt. Lag wohl daran das die 30 verschiedene Versionen anbieten und ich keine Lust hatte die alle durch zu probieren. An Udo Ich denke das Teil wird noch lange seinen Dienst tun da es ja deutlich weniger beansprucht wird als beim Spiele zocken. Außerdem sind da handelsübliche Potis drin verbaut die sich relativ problemlos austauschen lassen. Müsste ich dann nur wieder 1 mal neu kalibrieren.
Hans I. schrieb: > Das wird wohl auf Division mit Kommastellen und runden > hinauslaufen. Hab ich noch nie gebraucht. Nein, du brauchst Festkommaarithmetik. Eine Division wird einfach, wenn es sich um glatte 2er-Potenzen handelt, so dass daraus im Assembler eine Shift-Operation wird. Das Komma kennt nur derjenige, der die Daten interpretiert, aber in der Rechnung taucht es nicht auf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.