Forum: Mikrocontroller und Digitale Elektronik zerlegte Tastatur per USB ansteuern


von Markus S. (Firma: touchit) (touchitnow)


Lesenswert?

Hallo zusammen,

hätte folgende Aufgabenstellung:
Eine zerlegte Tastatur soll über einen PC angesteuert werden, sprich 
anstatt die Tasten manuell zu drücken, möchte ich die Kontakte mit einem 
anderen PC zB. über USB ansteuern.

Man habe also 2 Kontakte für das z.B. "a", mit einem PC möchte ich nun 
per USB rausgehen und programatisch dafür sorgen dass die Kontakte für 
"a" geschlossen sind und somit die Tastatur ein "a" überträgt.

kurz gesagt, ich möchte mit einem 2ten PC eine Tastatur emulieren, 
jedoch anstatt den Controller von Grund aufzubauen soll hier mal eine 
alte Tastatur her, die "emuliert" ja bereits eine Tastatur. Muss nun nur 
dafür sorgen das ich den Controller ansprechen kann über einen anderen 
PC.

Kann mir bitte jemand Tipps geben, wie ich das anstelle, welche 
Bauelemente benötige ich dafür? und wie spreche ich diese an. Gibt es 
vielleicht schon was fertiges ein AVR Board oder PIC?

greets
Markus

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist eine der umständlichsten Möglichkeiten, da Du eine komplette 
Tastaturmatrix simulieren musst. Das sind immerhin über hundert 
Kontakte, die Du irgendwie betätigen musst. Reedrelais wären eine 
Möglichkeit.

Noch umständlicher wäre nur noch die mechanische Ansteuerung einer 
Tastatur über Hubmagnete.

Erheblich sinnvoller dürfte es sein, einen HID-fähigen USB-µC zu 
verwenden, den per serieller Schnittstelle o.ä. mit dem steuernden PC zu 
verbinden und die per USB an den zu steuernden PC zu sendenden Scancodes 
in diesem µC von der seriellen an die USB-Schnittstelle weiterzureichen.

von Sven H. (dsb_sven)


Lesenswert?

Sehe ich das richtig, dass du wirklich alle 110 (oder mehr) Knöpfe 
elektrisch betätigen willst? Oder willst du dem PC nur vorgaukeln, du 
hättest sie gedrückt?

von jonas biensack (Gast)


Lesenswert?

Das klingt irgendwie nach einer 0815-Lösung eins trivialen Problems, 
dass man anders lösen sollte ?!

P.S. Man kann key-events auch emulieren...d.h. du kannst das ganze auch 
in Software nachbilden...

gruß Jonas

von rudi (Gast)


Lesenswert?

Ich würde mal bei einem Protesenbauer anfragen - die bauen voll 
funktionsfähige Hände mit Fingern, die man mit einem PC steuern kann.

von Markus S. (Firma: touchit) (touchitnow)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das ist eine der umständlichsten Möglichkeiten, da Du eine komplette
> Tastaturmatrix simulieren musst. Das sind immerhin über hundert
> Kontakte, die Du irgendwie betätigen musst. Reedrelais wären eine
> Möglichkeit.
>
> Noch umständlicher wäre nur noch die mechanische Ansteuerung einer
> Tastatur über Hubmagnete.
>
> Erheblich sinnvoller dürfte es sein, einen HID-fähigen USB-µC zu
> verwenden, den per serieller Schnittstelle o.ä. mit dem steuernden PC zu
> verbinden und die per USB an den zu steuernden PC zu sendenden Scancodes
> in diesem µC von der seriellen an die USB-Schnittstelle weiterzureichen.

HI, scheinbar warst du der einzige der mich hier richtig verstanden hat 
:-)
ganz so umständlich ist es dann auch nicht das es ja nicht 110 Kontakte 
sind sondern eine Matrix.. mann nuss dann im Grunde nur sagen ok bei dem 
"a" soll Kontakt über 1-4 hergstellt werden, bei "b" 1-5 usw.

aber ja im Grunde natürlich alles umständlich und schon garnicht nicht 
produktionsreif, aber soll vorerst auch nur ein prototyp werden.
Einen HID fähigen USB-µC wollte ich deshalb vermeiden um diverse Treiber 
Probleme zu umgehen. Es sollte als Standardtastatur erkannt werden ohne 
irgendwelche Treiber installieren zu müßen, aber das sollte sich ja auch 
mit einem eigenen HID machen lassen.

Also angenommen ich nehme einen HID fähigen USB-µC, welche Teile genau 
brauch ich dazu, bin neu was microelektronik angeht und die tausenden 
Teile bei Conrad verwirren mich.

Hast du vielleicht Links zu den Teilen die ich hier zu benötige? und 
gibts vielleicht eine vernünftige bzw. vollständige Anleitung wie man so 
einen HID bastelt.

von Lehrmann M. (ubimbo)


Lesenswert?

Markus Smith schrieb:
> ganz so umständlich ist es dann auch nicht das es ja nicht 110 Kontakte
> sind sondern eine Matrix.. mann nuss dann im Grunde nur sagen ok bei dem
> "a" soll Kontakt über 1-4 hergstellt werden, bei "b" 1-5 usw.

Du bist zu unpräzise. Wenn du nur a drücken möchtest brauchst du 
natürlich nur einen Reedrelais. Wenn du allerdings alle Tasten drücken 
können möchtest, dann brauchst du auch Reedrelais für alle Tasten. Blöd 
sind wir auch nicht.

Markus Smith schrieb:
> Einen HID fähigen USB-µC wollte ich deshalb vermeiden um diverse Treiber
> Probleme zu umgehen.

Welche Treiberprobleme? Welche Standart HID-Tastatur hat deiner Meinung 
nach Treiberprobleme. Mir wäre da nichts bekannt.

Markus Smith schrieb:
> Es sollte als Standardtastatur erkannt werden ohne
> irgendwelche Treiber installieren zu müßen, aber das sollte sich ja auch
> mit einem eigenen HID machen lassen.

Du musst auch keine Treiber installieren. HID ist ja standartmäßig 
dabei.

Markus Smith schrieb:
> Also angenommen ich nehme einen HID fähigen USB-µC, welche Teile genau
> brauch ich dazu, bin neu was microelektronik angeht und die tausenden
> Teile bei Conrad verwirren mich.

Du machst zuerst mal das hier: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

und in ein paar Wochen unterhalten wir uns nochmal über USB. Und nein es 
geht nicht, dass du dieses Tutorial auslässt. Das haben schon hunderte 
vor dir probiert - erfolgreich war keiner von denen.

Markus Smith schrieb:
> Hast du vielleicht Links zu den Teilen die ich hier zu benötige? und
> gibts vielleicht eine vernünftige bzw. vollständige Anleitung wie man so
> einen HID bastelt.

Das kannst du dann, wenn du das Tutorial durchgemacht hast, dann hast du 
schon einige Grundlagen. Es gibt genügen Projekte. Ohne Grundlage sind 
die allerdings nicht zu meistern.

von Frank K. (fchk)


Lesenswert?

Markus Smith schrieb:

> Hast du vielleicht Links zu den Teilen die ich hier zu benötige? und
> gibts vielleicht eine vernünftige bzw. vollständige Anleitung wie man so
> einen HID bastelt.

Nimm einen PIC18F2550, der hat ein USB-Device Interface eingebaut. Der 
Chiphersteller liefert fertige Bibliotheken, die Du nur noch benutzen 
musst.

Wenn Du was fertiges haben willst, kauf ein PICDEM FS USB Demo Board 
(Teilenummer bei Microchip: DM163025) und einen PICKIT3, und dann hast 
Du alles, was Du brauchst. Auf der beiliegenden CD sind dann auch die 
ganzen USB-Bibliotheken. Im Gegensatz zu den Basteleien mit einem 
Low-Speed Software-USB an gewissen AVRs ist das ist alles 
standard-konform, und Du kannst von Microchip sogar eine offizielle 
VendorID/ProductID (eindeutige Gerätekennung, die JEDES USB-Gerät haben 
muss) bekommen, wenn Du einen Antrag ausfüllst.

So ein Board liegt hier neben mir. Da ist ein PIC18F4550, die 44-pinnige 
Variante. Auf dem Board sind alle Pins herausgeführt.

fchk

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus Smith schrieb:
> Einen HID fähigen USB-µC wollte ich deshalb vermeiden um diverse Treiber
> Probleme zu umgehen.

Genau die Treiberprobleme hast Du nicht, wenn Du HID auf einem µC 
implementierst. Denn dann wird der betriebssystemeigene HID-Treiber 
verwendet.

Einen guten Ausgangspunkt für derartiges bietet übrigens das 
V-USB-Projekt von obdev.at, dafür ist noch nicht mal ein µC mit 
USB-Hardwareunterstützung erforderlich. Und für ein HID ist die Lösung 
obendrein sogar standardkonform (was sie bei CDC nicht hundertprozentig 
ist).

von Ulf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Markus!

>bin neu was microelektronik angeht und die tausenden
Teile bei Conrad verwirren mich.

Dann ist USB- Bastelei vielleicht etwas zu hoch gegriffen. Für den 
Anfang hat man schon genügend Probleme, eine Leuchtdiode zum Blinken zu 
bringen.

Zur Sache:
Für eine Meßschieberschnittstelle habe ich eine Tastatur(eigentlich nur 
ein Keypad mit Ziffernblock) gekauft und die entsprechenden Zeilen/ 
Spaltenleitungen über eine Transistormatrix mit einem Mikrocontroller 
verbunden(siehe Scaltplanauszug).
Um die komplette Tastatur zu simulieren, bräuchtest Du einen 
Mikrocontroller mit USB und 8+18 Ports für Zeilen+Spalten- Leitungen, 
8+18 Transistoren, eine Prise Widerstände etc, und eine Menge Erfahrung 
mit all den Teilen.
Der Programmieraufwand ist auch nicht zu unterschätzen.
Schon das Layout der Leiterplatte ist eine Herausforderung!

An Deiner Stelle würde ich die Aufgabenstellung noch mal überdenken, es 
gibt andere Wege, einen PC fernzusteuern. Für's Erste reicht die 
Ansteuerung der Leuchtdiode...

Nur Mut!

ulf.

von Markus S. (Firma: touchit) (touchitnow)


Lesenswert?

danke mal euch allen für die Tipps,
werd mich mal umsehen bzgl. dieser Teile.

@Lehrmann Michael
danke für das tutorial, werd mir das zu Herzen nehmen und mal 
durchgehen.

von Markus S. (Firma: touchit) (touchitnow)


Lesenswert?

> An Deiner Stelle würde ich die Aufgabenstellung noch mal überdenken, es
> gibt andere Wege, einen PC fernzusteuern. Für's Erste reicht die
> Ansteuerung der Leuchtdiode...

die kann ich leider nicht überdenken, da ich genau das brauche  :-)

aber scheinbar ist es dann doch etwas komplexer als was ich es mir 
vorgestellt habe.
werde mir für das benötigte wohl lieber einen elektroniker suchen
und selbst mal mit LEDs beginnen  :-)

von P. S. (Gast)


Lesenswert?

Lehrmann Michael schrieb:
> Und nein es geht nicht, dass du dieses Tutorial auslässt. Das haben schon
> hunderte vor dir probiert - erfolgreich war keiner von denen.

Ich hab's ausgelassen und war erfolgreich :-D

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.