staging.inyokaproject.org

Trackball Umwandlung

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

bura200

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Hi hat jemand ne Idee um Trackball xy Steuerungswerte umzuwandeln. Haben ein Automatisierungssystem auf einen Schiff. Den original Trackball gibt es leider nicht mehr. Alle verfügbaren Trackballs haben eine andere Technologie bzw. andere Ausgangswerte.

Meine Idee nun wie folgt: neuer Trackball über Raspberry pi 4 GPIO für Eingang und dann auf 4 GPIO im Ausgang zum System Original Trackball hat 125 cycles per revolution Der neue 221 per Umdrehung

Ist sowas mit einfachen shell Programm machbar??

Danke Daniel

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Also ... mein Riechorgan sagt mir, dass das womöglich mit viel weniger als einem Raspi zu machen sein müsste.

Was ich allerdings noch nicht riechen kann: welche Trackballs Du denn nun genau hast. (von wegen Pegel- oder Quadraturumwandlung usw.)
Denn wenn es wirklich nur die Anzahl Pulse pro Umdrehung wären, die könnte man ja praktisch vernachlässigen. Dann ist der neue eben um den Faktor 2 empfindlicher - na und ? Wird softwareseitig (im Steuergerät) ausgeglichen und fertig.

Aber ich vermute, dass da vielleicht doch noch was mit "Schnittstellen" hinzukommt.

Wie gesagt: verrat mal ein bisschen mehr.

LG,

track

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Hmm Qadrature sind die beide. Auch x/y Steuerug haben beide. Der neue soll Plug&Play sein. Der Unterschied sind nur die cycls pro Umdrehung. Softareseitig ist schlecht... Die Software stamm aus 1985...

Beim Anschluß des neuen (hab 2 verschiedene versucht) springt der Cursor nur von oben nach unten und rechts nach links in die Bildschirmendlagen. Dazwischen bewegt er sich nicht.

Dachte wenn ich über ein Raspi gehe kann ich mittels des Raspidas signal bischen anpassen.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Na, denn verrat doch wenigstens mal die genauen Typenbezeichnungen.

Bei DOS-Mäusen habe ich sowas auch erlebt, dass der Cursor wild springt. Da lag es daran, dass über die (serielle) Schnittstelle nicht etwa die rohen Original-Quadratursignale übertragen wurden, sondern bestimmte Bytecodierungen. (von der Mauselektronik erzeugt, je nach Typ anders)

Jetzt müsste man mal gucken, wie das bei Dir ist. Aber wie jetzt schon 2x gesagt: ohne Typ-Refenz geht da aus der Ferne nix.
(vor Ort könntest Du die Dinger immerhin mit wireshark mitloggen und dann die Signale zu Fuß nachvollziehen ...)

Ansonsten habe ich vor Software von 1985 wenig Respekt. Immerhin habe ich seinerzeit verschiedene DOS-Treiber gepatcht, und das war auch reiner Maschinencode ...

LG,

track

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Original war es der TBS II 125 2 5 1 Neu habe ich es mit dem p55 von www.cursorcontrols.com und den Tsubis 4540173 versucht der den TBS II ersetzen soll. Der soll per Plug and play fungieren, was die softeare wohl nicht hergibt.

Kann dir auch die Datenblätter als PN mailen.

Software ist ein Autronica Selma II control system

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

bura200 schrieb:

Der Unterschied sind nur die cycls pro Umdrehung.

Hast du da mal mit einem Logik-Analyzer oder Speicheroszilloskop nachgesehen, ob die wirklich vergleichbare Pulse senden? Gibt es eventuell eine Möglichkeit das Protokoll an den Trackballs einzustellen?

bura200 schrieb:

Meine Idee nun wie folgt: neuer Trackball über Raspberry pi 4 GPIO für Eingang und dann auf 4 GPIO im Ausgang zum System Original Trackball hat 125 cycles per revolution Der neue 221 per Umdrehung

Ist sowas mit einfachen shell Programm machbar??

Wenn man das in Hardware lösen will, würde ich da eher zu einem Mikrocontroller greifen (da sollte ein kleiner Arduino(-Klon) mit mindestens 4 Interrupt-fähigen Pins genügen - den kann man bequem über USB Programmieren, ohne sich zusätzlich einen Programmer kaufen zu müssen).

Auf einem Raspberry dürfte es gerade mit Shell-Skripten schwierig sein konstante Latenzen hin zu bekommen und das Interrupt-Handling bei GPIO-Pins in der Shell ist schwer möglich - mit C/C++ unter Ausnutzung der Interrupt-Funktionen der Hardware hat man da IMHO mehr Aussicht auf Erfolg.

Wichtig beim Raspberry Pi ist auch, dass die GPIO-Pins nur mit 3,3 V arbeiten (vgl. https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md - im Gegensatz zu den Arduinos gibt es da auch keinen Schutzmechanismus gegen moderate Überspannung) - wenn der Trackball mit 5V betrieben wird, müsste man also noch einen Spannungsteiler davorsetzen und je nach Umsetzung am Ziel-Gerät den Signalpegel hinter dem Raspberry Pi wieder auf 5V heben. Bei den Arduninos (und ihren günstigen Klonen) sind Varianten mit 5V Betriebsspannung und Signalpegel üblich.

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Danke klingt Interessant. Werd ich probieren. Hast ne Empfehlung für nen guten klon?? und Bezugsquelle?

Danke daniel

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Wie kommst du daruf das 4 Pins mit interupt reichen. Brauche ja 4 pins im Eingang und 4 pins im Ausgang. Reicht der Interupt im Eingang???

danke daniel

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

bura200 schrieb:

Wie kommst du daruf das 4 Pins mit interupt reichen. Brauche ja 4 pins im Eingang und 4 pins im Ausgang. Reicht der Interupt im Eingang???

Wenn der Trackball auf 4 Leitungen Daten ohne Rückkanal sendet, müssen die Ausgänge nach meinem Verständnis nur abhängig von den Signalen an den Eingängen (und den sonstigen Anforderungen an das Protokoll) geschaltet werden, dazu braucht es dann nur normale Output-Pins, die du auf Low oder High ziehen kannst, um dem Zielgerät einen passenden Trackball vorzuspielen.

Am besten wäre es natürlich vorab gut zu wissen, was was die neuen Trackballs senden und was der alte Trackball so von sich gibt (hoffentlich liefert da wenigstens eine Achse noch brauchbare Daten).

Wenn die Anforderungen nicht zu hoch sind, kommt man vermutlich mit einem Arduino Leonardo Klon mit einem ATmega32U4 weg (die laufen z.B. unter dem Namen Pro Micro - wenn man auf den Versand aus Fernost warten kann, kostet der nur ein paar Euro, z.B.: http://www.ebay.de/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini/140972980117) - laut Arduino-Referenzmaterial hat der 5 Pins, an die man einen Interrupt binden kann: https://www.arduino.cc/en/Reference/AttachInterrupt - alternativ könnte man es statt über Interrupts (die Anfällig fürs Pendeln des Eingangssignals sind) auch wie in https://www.mikrocontroller.net/articles/Drehgeber beschrieben über Timer lösen, mit denen man regelmäßig den Status der Pins abfragt.

Du könntest auch mal in einem spezialisierten Forum wie https://www.mikrocontroller.net/forum/ fragen, da tummeln sich Leute mit wesentlich mehr Erfahrung, die dir hoffentlich eine bessere Hilfestellung geben können. Vermutlich kann man das ohne die Arduino-Abstraktionen noch effizienter Lösen, aber so tief bin ich in die µC-Programmierung noch nicht eingestiegen.

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Danke. Sind die Klone denn voll kompatibel?? Hast da gute Erfahrung gemacht?? Hatte schon mal nen Orangepi statt nen Raspberry aber der ist Schrott. Werde mal nen Mega klon probieren für 10 €.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

bura200 schrieb:

Sind die Klone denn voll kompatibel??

Das hängt von der verbauten Hardware ab - beim Arduino Nano sparen sich die Klon-Hersteller z.B. gerne mal den teuren USB auf Serial Wandler FTDI 323, (es gab auch Fälle, wo auf Klonen gefälschte FTDI-Chips verlötet wurden) und ersetzen ihn durch ein CH340, was den möglichen Durchsatz über USB reduziert. Da die Schaltpläne der Arduinos frei verfügbar sind, muss der Klon-Hersteller im Prinzip nur die Platine produzieren und mit passenden Bauteilen bestücken.

Hast da gute Erfahrung gemacht??

Bislang hatte ich mit den Klonen keine Probleme.

Hatte schon mal nen Orangepi statt nen Raspberry aber der ist Schrott.

Der ist IIRC auch nicht Hardware-kompatibel zum Raspberry Pi.

Werde mal nen Mega klon probieren für 10 €.

Wie schon geschrieben würde ich mir vorab mal klar machen, was da an Daten gewandelt werden soll und mir dann überlegen, was dafür schnell genug ist.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Noch was ganz anderes: womöglich ist es sogar machbar, den alten Trackball zu reparieren ... bei so einem 100€- teil würde sich das ja durchaus lohnen.

Kannst Du sagen, was da genau dran kaputt ist ?

track

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Das haben wir schon versucht. Haben mehrere alte und schon aus 3 Stück einen gemacht. Das Problem ist die x/y Abtastung die über Lichtschranke funktioniert.... Na ich werd mal probieren. Das mit dem Microcontroller klingt gut. Habe ich aber noch nie benutzt. Müßte ja die 4 Eingänge über Interrupt auf 4 Ausgänge.... Mal sehen ob ich das hin bekomme. 100 € reichen nicht, die 2 Alternativen haben über 300€ gekostet.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Selber daran schrauben ist ja etwas anderes als es von einer Firma machen zu lassen, die sich darauf spezialisiert hat - und die behaupten ja sogar, dass sie den TBSII-125-1-5-1 als Neuware oder als Generalüberholte Variante beschaffen können (und du dabei auf Wunsch deine alte, kaputte Hardware eintauschen kannst).

bura200 schrieb:

Na ich werd mal probieren. Das mit dem Microcontroller klingt gut. Habe ich aber noch nie benutzt. Müßte ja die 4 Eingänge über Interrupt auf 4 Ausgänge.... Mal sehen ob ich das hin bekomme.

Gerade wenn du mit C++ und µCs noch keinen Kontakt hattest und nicht über das passende Equipment verfügst, um die generierten Signale zu vergleichen, kann das ein ziemlich zeitraubender Prozess werden - je nachdem was dir deine Zeit wert ist, kann es lohnender sein das originale Ersatzteil zu kaufen.

bura200

(Themenstarter)

Anmeldungsdatum:
14. April 2017

Beiträge: 21

Wir hatten uns auch schon einen generalüberholten für 250€ von Lektronics bestellt. Mußten wir zurück schicken, war genauso ausgelutscht und unbrauchbar wie unsere alten. Wurde kommentarlos zurück genommen und erstattet. Das zu den Statements.

Antworten |