Hallo zusammen, ich brauche bei einem aktuellen Projekt Hilfe. Wir haben Produktionsmaschinen im Einsatz die über einen resistiven Touch bedient werden. Die Steuerung übernimmt eine SPS mit einem abgespeckten Windows CE 4.2. Bei der rauen Umgebung in der Produktion wird der Touch ziemlich beansprucht, wodurch sich die obere Schicht mit der Zeit so stark abnutzt, dass keine Eingaben mehr möglich sind. Bisher mussten wir das Touch overlay alle 2 Jahre austauschen. Der Hersteller hat das Problem seit längerem erkannt und auf kapazitive Touchscreens umgestellt. Leider sind diese nicht kompatibel. Bis vor einiger Zeit gab es die Touch overlays als Ersatzteil, nun kann nur noch die Komplette Einheit (Touch, LCD und SPS) erworben werden. Da wir nicht alle 2 Jahre bei mehreren Maschinen die komplette Steuerung ersetzen können/wollen muss eine alternative Lösung her. Auf dem Windows ist nur ein Standard Maus und Standard Tastatur Treiber installiert, über die im Notfall die Maschine mit Maus und Tastatur bedient werden kann. Meine Idee war das resistive Touch Overlay einfach durch einen kapazitives Touch Overlay zu ersetzen und per USB anzuschließen. Leider ist es nicht möglich auf dem abgespeckten Windows CE 4.2 zusätzliche Software/Treiber zu installieren. Der Hersteller verweist nur auf die neue Steuerung da die alte nicht mehr Supported wird. Eine Umrüstung auf die aktuelle Steuerung würde allerdings enorme Kosten, Aufwand und Produktionsstillstand verursachen. Ohne Treiber läuft der Touch nicht. Einen Prototyp zu Testzwecken habe ich bereits vor Ort. Gibt es die Möglichkeit mit einem Zusätzlichen Hardwaremodule (Arduino, Raspberry...) eine Standard USB Maus zu simulieren und die Eingaben des Touches umzuwandeln und weiterzureichen? Eine Arduino Micro beispielsweise kann ja ein Standard USB Eingabegerät simulieren und Maus oder Tastatursignale senden, allerdings müsste ich zuvor ja den Touch am Arduino anschließen und die Eingaben des Touch irgendwie auswerten. Oder hat jemand einen alternativen Lösungsvorschlag?
Hallo, schau dir mal das USB-Maus-Beispiel von PJRC an. https://www.pjrc.com/teensy/usb_mouse.html Dieses Programm läuft auf einem Teensy2.0, aber auch (mit ganz kleinen Änderungen) auf einem ProMicro mit Atmega32u4 für weniger als 5,- Gruss
Michael schrieb: > Gibt es die Möglichkeit mit einem Zusätzlichen Hardwaremodule (Arduino, > Raspberry...) eine Standard USB Maus zu simulieren Das ist der einfache Teil der Aufgabe, das geht mit Arduino, Raspbi, eigenem Controller und hundert anderen Hardware-Lösungen. Darüber würde ich mir vorläufig keine grossen Gedanken machen. Das Problem sehe ich in Anschluss und Auswertung des (neuen) Touchscreens, aber darüber finde ich nichts im Post, oder habe ich das übersehen? Gibt es dafür überhaupt Unterlagen über Hardware-Schnittstelle und Protokolle? Georg
Danke euch für den Input. >Das Problem sehe ich in Anschluss und Auswertung des (neuen) >Touchscreens, aber darüber finde ich nichts im Post, oder habe ich das >übersehen? Gibt es dafür überhaupt Unterlagen über >Hardware-Schnittstelle und Protokolle? Das war der entscheidende Hinweis! Meine Gedankengänge haben sich zu sehr auf die übermittlung der Mausposition zum Endgerät fixiert. Über das Abgreifen der Signale vom Touch hab ich mir zu wenig Gedanken gemacht. Ich wollte den Touch per USB mit einem System für das es einen Treiber gibt verbinden und dann die Mausposition der GUI weiterleiten. Natürlich geht das viel einfacher und Störunanfälliger mit dem direkten Auswerden der Rohdaten vom Controller. Hab mir jetzt die Dokumentation des Controllers vom Hersteller geholt und werd das mal durcharbeiten. Wenn ich nicht weiter komme melde ich mich erneut, ansonsten stelle ich das fertige Projekt hier ein.
Ich sehe hier einen Denkfehler: Es gibt keine "Mausposition", sondern nur Maus-Bewegungen (mit Richtung und Geschwindigkeit). Positionen gibt es bei Eingabe-Tablets. Da kannst du auf einen Punkt tippen und der Cursor springt dann dort hin.
Michael schrieb: > Auf dem Windows ist nur ein Standard Maus und Standard Tastatur Treiber > installiert, über die im Notfall die Maschine mit Maus und Tastatur > bedient werden kann. Dann hast du schon fast gewonnen. Was du brauchst, ist ein popliger µC-Modul, der USB-device kann. Leg dir dazu einfach so ein BluePill-Dingens zu, alternativ das Projekt (STM32F103C8T6.ZIP), was ich vor geraumer Zeit hie rmal gepostet habe. Dann guckst du, was für ein Touch-Controller auf deinem kapazitiven Touch drauf ist. Die Dinger haben fast immer nen I2C als Anschluß. Code für den GOODIX GT911 kannst du von mir kriegen, allerdings ist es auch kein Thema, sich den selbst zu schreiben. Ich hab auch Code für den Focaltech FT5336. Der GT911 ist etwas tricky, zum Auslesen muß man das 1. Byte im Resultblock ab 0x814E mit ner Null beschreiben und dann den ganzen Block auslesen. Obendrein hat der GT911 kein Touch-Up Ereignis, weswegen man bei ihm mit nem Timeout arbeiten muß: wenn länger als etwa 100 ms kein Interrupt vom Touch gekommen ist, dann sollte man µC-intern daraus das Mouse-Up Ereignis generieren. Der FT5336 ist fast gleich, aber er kennt Touch-Up, weswegen der obige Workaround nicht nötig ist. Was du dann noch machen mußt, ist ein USB-Maus-Device im µC zu implementieren und aus den Koordinaten die passenden Mausereignisse zu generieren. That's it. W.S.
Die Multitouch-Screens von 3M funktionieren mit standard HID Treiber und könnten mit Glück auch an so alten Betriebsystemen funktionieren. Grundsätzlich bringt Windows CE 4.2 HID Treiber und auch Touchscreen Unterstützung mit. Es wäre also einen versuch wert. Abgesehen von 3M pCap Sensoren habe ich bisher mit allen anderen Herstellern nur Schwierigkeiten gehabt. Dort braucht man immer irgendwelche proprietäre Software zum Kalibrieren. Die Koordinaten der 3M Screens sind ab Werk schon gut. https://www.3mdeutschland.de/3M/de_DE/unternehmen-de/3m-touchscreen-loesungen/
Die Windows HID Treiber unterstützen absolute Pointer ohne weitere Treiber. Ich habe einen Adapter von einem alten seriellen Tablet auf USB mit einem Tiny85 und V-USB gebaut, der vom Mac, von Linux und von Windows (zumindest ab XP) richtig erkannt wird. Man muss also nicht Bewegungen simulieren, sondern lediglich den USB Deskriptor auf absolut anpassen - und natürlich sinnvolle Daten senden.
:
Bearbeitet durch User
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.