Forum: PC-Programmierung Suche Touchscreen I2C > seriell


von Clemens J. (cleeje)


Lesenswert?

Hallo,

ich suche einen Touchscreen, dessen Oberfläche schon programmiert ist 
(ein paar Buttons würden schon genügen).
Dies soll aber nur die Voraussetzung sein. Jetzt zu meiner eigentlichen 
Idee:

Den Touchscreen möchte ich über den PC auslesen (C#). Zum Beispiel 
möchte ich mir die x- und y-Korrdinaten für einen Touch mit dem Finger 
auf dem Display auslesen. Ansprechen möchte ich den Touchscreen seriell 
(Kabel von einem USB-Port meine PC zum Touchscreen)

Wo bekomme ich so einen Touchscreen her, den ich seriell mit dem PC 
auslesen kann? hat vielleicht jemand einen Link?

Ich finde bisher nur Touchcontroller, aber ich möchte mir das löten, 
etc. ersparen und suche eine Fertiglösung, bei der ich sofort beginnen 
kann zu programmieren.

Liebe Grüße,
CleeJe

von Chris L. (kingkernel)


Lesenswert?

Schau dir mal die eDIP oder eDIPtft-Displays von electronic assembly an.

Diese lassen sich über I²C, SPI und UART ansprechen. Die oberfläche 
musst du allerdings selbst zeichen. Das geht bequem über befehle 
(Zeichne Linie von 1,1 bis 3,5 oder Zeichne Button mit dem Text "OK" an 
der Stelle 8,8)
Die Buttons bekommst du bei einem Druck auf diese als Buttoncode 
ausgegeben, du kannst allerdings auch Touchareas festlegen, von diesen 
bekommst du dann die X,Y-Koordinaten mit entsprechendem Event.

Habe ich ebenfalls in 3 verschiedenen Varianten im Einsatz. Vom Preis 
vielleicht mal abgesehen, sind sie auf jedenfall empfahlenswert.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Clemens J. schrieb:
> Zum Beispiel möchte ich mir die x- und y-Korrdinaten für einen Touch mit
> dem Finger auf dem Display auslesen.

Das widerspricht sich mit

> Ich suche einen Touchscreen, dessen Oberfläche schon programmiert
> ist (ein paar Buttons würden schon genügen)

Es gibt komplette Monitore mit Touchscreen, die Deine Forderungen 
weitestgehend erfüllen.

Was gefällt Dir an denen nicht?

Und warum erwähnst Du nicht, um welche Größe und Auflösung es Dir geht?

von Clemens J. (cleeje)


Lesenswert?

Hallo,

Auflösung, Größe ist nicht relevant.
Wichtig ist nur: I2C Schnittstelle, mit PC Touch-Kordinaten auslesen und 
senden. Also quasi einen Touch nicht nur auslesen können, sondern auch 
softwareseitig auslösen.

Kannst du mir ein Beispielprodukt nenen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Clemens J. schrieb:
> I2C Schnittstelle,

Die steuerst Du mit einem PC wie an?

von Arc N. (arc)


Lesenswert?

Clemens J. schrieb:
> Hallo,
>
> Auflösung, Größe ist nicht relevant.
> Wichtig ist nur: I2C Schnittstelle, mit PC Touch-Kordinaten auslesen und
> senden.

Oben war's noch USB... dann mal etwas, was über WLAN läuft bzw. sendet 
ein Android-Gerät Multi-Touch-Events über WLAN
https://github.com/TobiasSchwirten/tuiodroid

> Also quasi einen Touch nicht nur auslesen können, sondern auch
> softwareseitig auslösen.

Also Touch-Eingaben simulieren. Auf welchem Gerät?

https://github.com/ecologylab/EcoTUIODriver
Das wandelt die von der obigen App gesendeten Events in Events für 
Windows um.

Zu Android findet sich z.B.:
http://stackoverflow.com/questions/4396059/how-to-simulate-a-touch-event-in-android

von Jens P. (picler)


Lesenswert?


von Clemens J. (cleeje)


Lesenswert?

Hallo,

das kommt eigentlich ganz gut hin sowie ich das sehe. Konnte dem 
Datenblatt aber nicht entnehmen ob ich damit jetzt auch Touchkoordinaten 
auslesen kann, wenn ich auf das Display tippe?

von Clemens J. (cleeje)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bins nochmal leider habe ich immer noch keinen Touchscreen gefunden 
was ich brauche.
Habe jetzt auch nochmal ein Bild zum besseren Verständnis angehängt.

Gesucht wird ein Touchscreen auf dem mit dem Finger drauftippe. Am 
besten sollte er kapazitiv und mutitouchfähig sein. Ist aber kein Muss.

Wichtig ist das das ganze über die I2C Schnittstelle läuft und ich über 
meinen Laptop die I2C-Kommunikation auslesen kann.

Sprich: Auf meinen Laptop habe ich eine Window-Form in C# programmiert 
mit dem ich eine serielle Schnittstelle öffnen und auslesen kann, 
nämlich meinen USB-Port (COM-Port). Aus meinem Laptop geht also aus dem 
USB-Port ein Kabel das zum Touchscreen führt und dort entweder auch per 
USB oder I2C angeschlossen werden kann (Variante 1&2).

Kann mir jemand einen Touchscreen nennen mit dem das möglich ist und bei 
dem das entsprechende Kabel (USB-USB oder I2C-USB) Kabel dabei ist.

Gruß
CleeJE

von mino (Gast)


Lesenswert?

5,7", "monotouch" und "resistiv". Mit RS232 und passendem 
RS232->USB-Wandler-Kabel:
http://www.mino-elektronik.de/TFT-direct-drive/TFT-direct-drive.htm#tft-5

Da Du soviel Wert auf I2C legts: das interne EEPROM wird damit 
angesprochen ;-)

von Clemens J. (cleeje)


Lesenswert?

Vielen Dank Mino.

Kann man das Produkt erwerbenen? Von dem USB-Anschluss konnte ich nichts 
lesen.

Grüße,
CleeJe

von Thomas F. (igel)


Lesenswert?

Hier mit RS232-Schnittstelle und vordefinierten Touch-Positionen:

http://www.lcd-module.de/pdf/grafik/kit240-7.pdf

von mino (Gast)


Lesenswert?

Clemens J. schrieb:
> Kann man das Produkt erwerbenen?
Ja, schreib mir eine Mail und erkläre Deine Anwendung ein bißchen näher, 
wer wie wann wo drückt.

> Von dem USB-Anschluss konnte ich nichts lesen.
Für USB braucht man einen Adapter für ein paar Euro 
http://www.reichelt.de/USB-Konverter/USB2-SERIELL/3/index.html?&ACTION=3&LA=2&ARTICLE=58641&GROUPID=6105&artnr=USB2+SERIELL

von Clemens J. (cleeje)


Lesenswert?

mino schrieb:
> Clemens J. schrieb:
>> Kann man das Produkt erwerbenen?
> Ja, schreib mir eine Mail und erkläre Deine Anwendung ein bißchen näher,
> wer wie wann wo drückt.
>
>> Von dem USB-Anschluss konnte ich nichts lesen.
> Für USB braucht man einen Adapter für ein paar Euro
> 
http://www.reichelt.de/USB-Konverter/USB2-SERIELL/3/index.html?&ACTION=3&LA=2&ARTICLE=58641&GROUPID=6105&artnr=USB2+SERIELL


Wenn du mir deine Email gibst gerne.

Was ich eig nur will: Wenn jemand auf den Touchscreen drückt, muss die 
Information iwie über die I2C-Schnittstelle kommuniziert werden. Z.b.: 
muss kommuniziert werden an welcher x-y-Koordinate jemand auf das 
Display gedrückt hat. Diese Kommunikation sind wahrscheinlich i.welche 
Zugriffe auf die Register des Microcontrollers/Touchcontrollers. Und 
genau diese Kommunikation über den I2C-Bus will ich mit einem PC/Laptop 
mitlesenlesen, in dem ich den Touchscreen mit dem PC verbinde. Und auf 
dem PC öffne ich dann die serielle Schnittstelle.

: Bearbeitet durch User
von Simulant (Gast)


Lesenswert?

Clemens J. schrieb:
> Und
> genau diese Kommunikation über den I2C-Bus will ich mit einem PC/Laptop
> mitlesenlesen, in dem ich den Touchscreen mit dem PC verbinde. Und auf
> dem PC öffne ich dann die serielle Schnittstelle.

Was willst Du denn nun wirklich? I2C geht nicht automatisch auf die 
serielle Schnittstelle, da muß im Touchscreen schon ein Umsetzer von 12C 
auf seriell arbeiten.

von Clemens J. (cleeje)


Lesenswert?

Simulant schrieb:
> Clemens J. schrieb:
>> Und
>> genau diese Kommunikation über den I2C-Bus will ich mit einem PC/Laptop
>> mitlesenlesen, in dem ich den Touchscreen mit dem PC verbinde. Und auf
>> dem PC öffne ich dann die serielle Schnittstelle.
>
> Was willst Du denn nun wirklich? I2C geht nicht automatisch auf die
> serielle Schnittstelle, da muß im Touchscreen schon ein Umsetzer von 12C
> auf seriell arbeiten.

Ok und falls das nicht so ist, muss ich ich doch trotzdem die I2C 
Kommunikation im Touchscree mit dem PC mitlesen können. Reicht da nicht 
ein einfacher I2C/USB Adapter ?

von Thomas F. (igel)


Lesenswert?

Clemens J. schrieb:
> Reicht da nicht ein einfacher I2C/USB Adapter ?

I2C ist nicht so einfach wie RS232 oder ein Virtual-Port an USB. Da 
müssen erst Adressen ausgetauscht und ACK-Bits versendet werden.
Warum hängst du also so an i2C?

Nimm doch gleich ein Display mit RS232 und häng einen RS232-USB-Adapter 
dazwischen.

von Clemens J. (cleeje)


Lesenswert?

Thomas F. schrieb:
> Clemens J. schrieb:
>> Reicht da nicht ein einfacher I2C/USB Adapter ?
>
> I2C ist nicht so einfach wie RS232 oder ein Virtual-Port an USB. Da
> müssen erst Adressen ausgetauscht und ACK-Bits versendet werden.
> Warum hängst du also so an i2C?
>
> Nimm doch gleich ein Display mit RS232 und häng einen RS232-USB-Adapter
> dazwischen.


Hallo,
ja es soll  I2C sein. Der Grund ist ja erstmal hinfällig. Klar ist die 
Kommuniaktion etwas komplizierter. Aber kann ich das generell so 
umsetzten. USB am PC und I2C am Touchscreen?

von Simulant (Gast)


Lesenswert?

Clemens J. schrieb:
> USB am PC und I2C am Touchscreen?

Und dazwischen?

von Clemens J. (cleeje)


Lesenswert?


von Simulant (Gast)


Lesenswert?

Clemens J. schrieb:
> Dachte an sowas:
> 
http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html

Könnte funktionieren. Weißt Du denn jetzt endlich, welchen Touchscreen 
Du nehmen wirst?

von Clemens J. (cleeje)


Lesenswert?

Simulant schrieb:
> Clemens J. schrieb:
>> Dachte an sowas:
>>
> 
http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html
>
> Könnte funktionieren. Weißt Du denn jetzt endlich, welchen Touchscreen
> Du nehmen wirst?


Bisher ist das eig mein Favorit:

http://cdn-reichelt.de/documents/datenblatt/A500/DS_EVALEDIP128-240.pdf

Aber bin mir einfach nicht sicher ob das damit funktioniert.

von Thomas F. (igel)


Lesenswert?

Clemens J. schrieb:
> Bisher ist das eig mein Favorit:

Also ein Board mit fertiger USB-Schnittstelle, wleches über eine 
zusätzliche Adapterplatine erst I2C-fähig wird, um diesen dann über noch 
ein weiteres I2C-USB-Interface wieder an einen USB-Port anzuschliessen.

Du wirst schon wissen warum du das willst....

von Felix Adam (Gast)


Lesenswert?

Wenn die Aufgabe darin besteht, I2C mitlauschen zu können, kauf doch ein 
25MHz picoscop. Das hat eine Decodierfunktion für I2C an Bord.

von Clemens J. (cleeje)


Lesenswert?

Nicht in dem Sinne lauschen. Sondern die I2C Kommunikation mitlesen. 
Also welche Register werden gerade beschreiben oder gelesen.

Ein befehl könnte iwie so aussehen:

<T1, 1 , 65, 3> (Syntax: <Register, schreiben (1) /lesen (0), x-coord, 
y-coord).


Ist jetzt nur ein Beispiel. aber so in der art erhoff ich mir das 
auslesen. Die Befehle sehen sicher etwas komplizierter aus, aber mit dem 
entsprechden manual dazu sollte sich das ja übersetzten lassen.

von Clemens J. (cleeje)


Lesenswert?

Wenn sich die I2C-Kommunikation des Touchscreen auch so auslesen lässt 
wäre das natürlich noch besser. Dann hätte ich ja sowohl beim PC als 
auch am Touchscreen eine USB Buchse.

Bin mir halt nicht sicher ob der Touchscreen dann intern schon einen 
Übersetzter von I2C auf seriell (USB) hat.

von Felix Adam (Gast)


Lesenswert?

Dann wäre so ein USB-Scope wohl eine sinnvolle Lösung. Oder du 
programmierst dir einen uC, der quasi passiv am Bus auf dieselben 
Adressen lauscht.
Aus Erfahrung kann ich dir aber sagen, dass das nur gewollt ist, wenn 
man basteln will.

Ansonsten für knapp 170 Euro neu:
http://www.reichelt.de/USB-Oszilloskope/PS-2204A/3/index.html?&ACTION=3&LA=2&ARTICLE=143637&GROUPID=4055&artnr=PS+2204A

Busdecoding ist im Artikeltext und der Anleitung beschrieben

von Felix Adam (Gast)


Lesenswert?

Nachtrag:
je nachdem wieviele Daten(bytes) du aufnehmen willst, reichen die 8k 
Samples von diesem hier eventuell nicht aus.

von Max D. (max_d)


Lesenswert?

Irgendwie sind hier mehrere Wünsche miteinander vermischt.
Erkläre einfach mal WAS du tun willst und nicht wie.
Sachen wie "der Grund ist erstmal hinfällig" riechen irgendwie nach 
Hausaufgabe.

Also: Karten auf den Tisch und nicht immer nur um den heißen Brei 
rumgeredet. Dann kann man dir auch sinnvoll helfen.

von Clemens J. (cleeje)


Lesenswert?

Max D. schrieb:
> Irgendwie sind hier mehrere Wünsche miteinander vermischt.
> Erkläre einfach mal WAS du tun willst und nicht wie.
> Sachen wie "der Grund ist erstmal hinfällig" riechen irgendwie nach
> Hausaufgabe.
>
> Also: Karten auf den Tisch und nicht immer nur um den heißen Brei
> rumgeredet. Dann kann man dir auch sinnvoll helfen.


Ich möchte von einem Touchscreen, die I2C Kommunikation mitlesen. 
Interessieren tut mich vor allem die Kommunikation, wenn ich auf dem 
Touchscreen Einagben mache. Ich möchte also auslesen welche Register bei 
einer Eingabe wie angesprochen werden. Ein beispiel habe ich ja schon 
genannt. Ein Oszi hilft mir da nicht weiter.

von Clemens J. (cleeje)


Lesenswert?

Felix Adam schrieb:
> Dann wäre so ein USB-Scope wohl eine sinnvolle Lösung. Oder du
> programmierst dir einen uC, der quasi passiv am Bus auf dieselben
> Adressen lauscht.
> Aus Erfahrung kann ich dir aber sagen, dass das nur gewollt ist, wenn
> man basteln will.
>
> Ansonsten für knapp 170 Euro neu:
> 
http://www.reichelt.de/USB-Oszilloskope/PS-2204A/3/index.html?&ACTION=3&LA=2&ARTICLE=143637&GROUPID=4055&artnr=PS+2204A
>
> Busdecoding ist im Artikeltext und der Anleitung beschrieben


Aber damit kann ich ja nicht auslesen welche Register des Controller 
angesprochen werden.

von Felix Adam (Gast)


Lesenswert?

Häh? Die Registernummern und Werte gehen doch über den I2C-Bus oder 
nicht?

von Max D. (max_d)


Lesenswert?

Ich versuch das mal zusammenzufassen:
Du suchst ein fertiges Gerät dessen Touchscreen per I²C an den Prozessor 
angebunden ist und willst da die Zugriffe mitlesen ?

Darf man erfahren welchen Effekt du dir davon erhoffst ?

von Clemens J. (cleeje)


Lesenswert?

Max D. schrieb:
> Ich versuch das mal zusammenzufassen:
> Du suchst ein fertiges Gerät dessen Touchscreen per I²C an den Prozessor
> angebunden ist und willst da die Zugriffe mitlesen ?
>
> Darf man erfahren welchen Effekt du dir davon erhoffst ?


ja so kann man es zusammenfassen. Ich will die mitgelesenen Befehle dann 
in Koordinaten übersetzen (x,y) um diese dann grafisch darzustellen.

von Thomas F. (igel)


Lesenswert?

Clemens J. schrieb:
> Nicht in dem Sinne lauschen. Sondern die I2C Kommunikation mitlesen.
> Also welche Register werden gerade beschreiben oder gelesen.

Wie max_d auch schreibt:
Unverständlich dein Vorhaben ist. (Star-Wars läuft im Kino)

Deine C#-Anwendung schickt also einen Register-Schreib-Befehl raus und 
du willst deinen eigenen Befehl dann auf dem Bus mitlesen? Welchen Sinn 
soll das haben?

Suchst du sowas?
Beitrag "I2C (TWI) Sniffer mit AVR"

von Max D. (max_d)


Lesenswert?

Clemens J. schrieb:
> ja so kann man es zusammenfassen. Ich will die mitgelesenen Befehle dann
> in Koordinaten übersetzen (x,y) um diese dann grafisch darzustellen.

Mal anders gefragt: Welchen Vorteil siehst du in diesem Ansatz gegenüber 
der Verwendung eines Tocuhscreens auf den du selber dinge druaf malst 
und der dir dann mitteilt wo gedrückt wurde ?

von Clemens J. (cleeje)


Lesenswert?

Meine C#-Anwendung hat nur den Sinn den seriellen Port am PC zu öffnen 
und auszulesen. Also hat nur eine reine Lesefunktion. Die gelesenen 
Daten werden dann einfach in ein Textfeld geschrieben. Und die Daten 
sollen vom I2C des Touchscreen abgegriffen werden.

von Clemens J. (cleeje)


Lesenswert?

Auf dem Touchscreen können ja auch Buttons sein (also nicht nur malen). 
Und gerade solche koordinaten hätte ich gerne auf dem PC um dann den 
Ablauf der verschiednene Touchpostionen zu visualisieren. Wenn ich jetzt 
z.B 5 mal auf den Button klicke, bekomme ich 5 verschiedene x,y 
Wertpaare, da ich ja  nicht immer die exakt gleiche Stelle treffe. Und 
diese Wertpaare bmöchte ich dann am PC visualisieren, da mich dort z.B 
die Abweichung interessiert wenn ich 5 mal auf einen Button klicke.

von Thomas F. (igel)


Lesenswert?

Clemens J. schrieb:
> Also hat nur eine reine Lesefunktion. Die gelesenen
> Daten werden dann einfach in ein Textfeld geschrieben. Und die Daten
> sollen vom I2C des Touchscreen abgegriffen werden.

Du weißt I2C / TWI ist eine Master-Slave Schnittstelle. und der 
Touch-Controller, welcher dir x,y-Koordinaten errechnet, ist der Slave. 
Von sich aus sendet der nichts auf den Bus. Den musst du schon aktiv 
abfragen.

von CleeJe (Gast)


Lesenswert?


von CleeJe (Gast)


Lesenswert?


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.