mit AVR µC Mausklick an bestimmter Position simulieren

OP #4859516
Hallo Forengemeinde,
ist es möglich (und wenn ja, wie), mittels Tastendruck eines auf einem 
am µC angeschlossenen Hardware Switch einen Touchklick an einer 
bestimmten Bildschirmposition zu simulieren?

Ein bisschen was zur Erklärung:

Ich habe derzeit an einen Linux Rechner einen Touchscreen Monitor via 
DVI und USB angeschlossen. Die µC Applikation soll über ein Standard 
USB-HUB, welches in die USB Verbindung Monitor - Rechner signaltechnisch 
integriert werden wird, eingebunden werden.

Da mir das Platinenätzen etc. hierfür zu aufwendig ist, dachte ich an 
ein Evaluation Board wie bspw. ATXMEGAA3BU-XPLD von ATMEL. Der XMega 256 
hat bereits einen USB Anschluss integriert.

Es ist NICHT möglich an der Linux Software etwas zu ändern oder in Linux 
das Programm zu schreiben, auch wenn dies sicher der einfachere Weg 
wäre.

Ich hoffe auf Hilfe und freue mich auf eure Beiträge.

Danke schon einmal vorab.

Gruß

Alex
#4859670
Stefan U. schrieb:
> Dann musst du ein Zeichentablet simulieren, nicht eine Maus. Denn die
> Maus liefert keine absoluten Koordinaten.

Das ist richtig, läßt sich aber leicht dadurch umgehen, daß man mittels 
entsprechend großer Relativbewegungen den Mauszeiger zunächst mal in 
eine Bildschirmecke manövriert.
(Firma: guloshop.de) #4859914
Wie schon geschrieben wurde, geht das per HID an USB. Am einfachsten 
vielleicht mit einem ATtiny85 und VUSB. Dafür gibts auch Beispielcodes 
bzw. Beispielprojekte vom VUSB-Entwickler.

justav schrieb:
> Windows bietet dafür mit Eingabehilfen eine direkte Eingabe über RS232.
>
> Vielleicht hat Linux sowas auch.

Linux ist da einfacher.

Zuerst das Tool "xdotool" installieren. Bei Linux reicht dazu 
üblicherweise ein einfaches Kommando:
1
sudo apt-get install xdotool

Dann – ebenfalls per Kommando – einen Maustastendruck simulieren, z.B. 
an der Position 1000/200 (nach rechts und nach unten von der linken 
oberen Bildschirmecke aus).
1
xdotool mousemove 1000 200 click 1

Weiter Infos zu "xdotool" mit dem Kommando
1
man xdotool

Fast schon schade, dass man nun keinen Mikrocontroller einsetzen muss 
und deswegen keine Ausrede hat, mal wieder etwas zu löten. ;-)
Gast #4859948
Für Arduino gibt es eine Library um genau das zu machen. In der findest 
du Anregungen oder du nutzt gleich die Library. Sie funktioniert für 
alle AtMega32u4 basierten Arduino Boards.
OP #4860326
Baendiger schrieb:
> Für Arduino gibt es eine Library um genau das zu machen. In der
> findest
> du Anregungen oder du nutzt gleich die Library. Sie funktioniert für
> alle AtMega32u4 basierten Arduino Boards.

Wow! Wahnsinn!

Danke für die wirklich vielen Antworten. Leider ist es so, dass der 
Linux-Rechner als Black Box zu sehen ist, dass heisst ich benötige 
zwingend Arduino oder einen µC (also vielleicht doch löten ;-) )

@ Baendiger: Weisst du zufällig wie diese Library heisst? Zufällig 
"Mouse" (Siehe: https://www.arduino.cc/en/Reference/MouseKeyboard)?

Ich finde die Arduino Umsetzung sehr interessant. Leider ist das Problem 
ja, dass eine Maus relative Werte überträgt und ein Touchmodul am 
Bildschirm absolute Werte, oder liege ich da falsch?

Danke.


Gruß.

Alex

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.