Forum: Mikrocontroller und Digitale Elektronik Simpler USB Taster


von Tim M. (evilmaker)


Lesenswert?

Hallo,

da ich Maschinenbauingenieur bin und dementsprechend, bis auf Arduino 
Spielereien, keine großen Erfahrungen mit Mikrocontrollern habe, wollte 
ich hier im Forum nachfragen.

Ich suche zur Zeit nach einer Moeglichkeit einen Schalter per USB mit 
einem PC zu verbinden, der bei Betaetigung einen Tastaturtastendruck 
(Buchstabe "e") simuliert.

Ich habe etwas recherchiert und herausgefunden, dass die HID 
Schnittstelle genutzt werden sollte, da diese keine zusaetzlichen 
Treiber benoetigt.

Weiterhin benoetige ich wohl einen Mikrocontroller, der einen 
Programmcode aufnimmt und bei einem Eingangssignal des Tasters einen 
Befehl per USB an den PC ausgibt.

Hat jemand konkrete Beispiele, welchen Mikrocontroller ich verwenden 
koennte und wie ich eine Prototypenschaltung bauen kann, die diese 
Anforderungen uebernehmen kann?

Ueber jeden Hinweis waere ich sehr dankbar.

Mit freundlichen Grueßen
Tim

von Tr (Gast)


Lesenswert?

Tim M. schrieb:
> Arduino Spielereien

Da hast du doch schon was passendes. Hol dir einen mit USB z.B Pro Mini 
oder Teensy. Dann brauchst du noch das HID Beispiel mit deinem Input 
verhäkeln.

von Einer K. (Gast)


Lesenswert?

ATMega8U2
Oder einen seiner größeren Brüder
Im Datenblatt findet sich sicherlich die Grundbeschaltung

von Tim M. (evilmaker)


Lesenswert?

Hallo Tr,

danke fuer deinen Beitrag. Nur wuerde ich gerne irgendwann den Schritt 
zwischen Prototypen mittels Arduino zur Platine machen, um fuer mich 
selber die Entwicklungsablaeufe zu verstehen.

von Einer K. (Gast)


Lesenswert?

Tr schrieb:
> Hol dir einen mit USB z.B Pro Mini

Der Pro Mini hat kein USB.
Und nicht jeder USB Adapter kann HID

von JensM (Gast)


Lesenswert?

Hallo Tim,

da du Arduino Erfahrung hast ist dies für dich eine kleine Aufgabe.

Nimm einfach einen Arduino Leonardo und schreib das Programm.

Der kann das alles.



Gruß JensM

von Thomas W. (diddl)


Lesenswert?

Es geht jeder Atmel mit USB interface: 90USBxxx, 32u4, 16u4 ...

Es gibt eine freie Bibliothek die HID und auch fast alle anderen 
gängigen USB devices abbildet, sowohl aktiv wie auch passiv: LUFA

http://www.fourwalledcubicle.com/LUFA.php

Mit LUFA und zb. einem 32U4 ist das ganze ein Kinderspiel.

: Bearbeitet durch User
von BlaBla (Gast)


Lesenswert?

Nimm ein alte USB-Tastatur auseinander.

von Jens S. (dh6bb)


Lesenswert?

Moin moin,
wenns nur um die Taster geht, dann könnte das was sein:
http://r.ebay.com/jqQLtQ
Software dazu sowie weitere Teile dann hier:
http://www.pcsensor.com/software-d6.html

Die Soft kann auch Zeichenfolgen senden.

Eigenentwicklung wie hier bereits beschrieben bringt natürlich eigene 
Erfahrungen und auch kann die Hard-/Software spezieller auf den 
Anwendungsfall angepasst werden!

Mfg Jens

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eine weitere Möglichkeit wäre das hier:

https://www.obdev.at/products/vusb/hidkeys.html

von Thomas W. (diddl)


Lesenswert?

Rufus Τ. F. schrieb:
> Eine weitere Möglichkeit wäre das hier:
>
> https://www.obdev.at/products/vusb/hidkeys.html

Nee!

Keine VUSB Geschichten, außer man will sich seinen USB Zweig total 
ausbremsen. Der Atmega ist nicht gedacht direkt an einem super schnellen 
Bus zu hängen. Das ist vergewaltigung.

Vorallem wo die USB Megas doch nur noch ein paar euros kosten!!

Man baut doch auch keinen 50 PS motor auf ein Fahrrad ...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Thomas W. schrieb:
> Keine VUSB Geschichten, außer man will sich seinen USB Zweig total
> ausbremsen. Der Atmega ist nicht gedacht direkt an einem super schnellen
> Bus zu hängen. Das ist vergewaltigung.

Das ist ... Humbug. HID-Geräte wie Tastaturen und Mäuse sind 
Low-Speed-Devices mit 1.5 MBit, d.h. die V-USB-Lösung ist komplett 
standardkonform.

Da wird nichts ausgebremst, und da wird auch nichts "vergewaltigt".

von Thomas W. (diddl)


Lesenswert?

Genau, der atmega zwingt alle Geräte am selben Hub hin auf Low Speed. 
Das ack kommt auch stark verzögert. Weil durch Software emuliert.

Natürlich kann ich auch Software Uart oder Software Spi verwenden statt 
Hardwarer. Da ist es genau dasselbe. Funktioniert irgendwie mit 
Einschränkungen. Aber wozu, wenn es günstig Hardware gibt die das viel 
besser kann???

: Bearbeitet durch User
von list (Gast)


Lesenswert?

BlaBla schrieb:
> Nimm ein alte USB-Tastatur auseinander.

und verbinde die 2 richtigen Kontakte und du kannst jede Taste schicken
die du brauchst.

zB 
http://www.doctormonk.com/2011/08/hack-usb-computer-keyboard-to-make.html

von Stefan F. (Gast)


Lesenswert?

Du brauchst einen Key-Warrior http://www.codemercs.com/en/keyboard

von W.A. (Gast)


Lesenswert?

JensM schrieb:
> Nimm einfach einen Arduino Leonardo und schreib das Programm.

Wieso schreiben?
Das ist doch bei der Arduino IDE schon als Beispiel schon fast fertig 
dabei.

von F. F. (foldi)


Lesenswert?

BlaBla schrieb:
> Nimm ein alte USB-Tastatur auseinander.

Wieso auseinander? Wenn der TO möglichst einfach ein "E" senden will, 
dann kann er das mit der Tastatur doch am besten. Später kann er ja noch 
ein Vokal kaufen.

von Pro Micro (Gast)


Lesenswert?

Arduino F. schrieb:
> Tr schrieb:
>> Hol dir einen mit USB z.B Pro Mini
>
> Der Pro Mini hat kein USB.
> Und nicht jeder USB Adapter kann HID

Der meinte den Pro Micro von Sparkfun:
https://www.sparkfun.com/products/12640

Der ist für sowas genau richtig - einfach und schön klein. Per USB 
Bootloader super einfach zu programmieren und der Code für ein 
Tastenanschlag ist simples Copy&Paste...

Gibts wenn man warten kann billig aus China z.B, hier:
http://www.ebay.de/itm/Leonardo-Pro-Micro-ATmega32U4-Arduino-5V-16MHz-Bootloader-Micro-USB-Pro-mini-/381813793804

Oder wenn man Apothekenpreise zahlen will auch bei Watterott (teurer hab 
ich ihn in DE nicht gefunden):
http://www.watterott.com/de/Pro-Micro-5V/16MHz

von Joe F. (easylife)


Lesenswert?

Mit den Cypress PSoCs lassen sich Full-Speed Geräte auch recht schnell 
und einfach realisieren.
Guck mal hier: http://www.cypress.com/file/139611/download

"Project 1: Keyboard with LEDs" (Kapitel 8, S.14ff)

von c-hater (Gast)


Lesenswert?

Thomas W. schrieb:

> Genau, der atmega zwingt alle Geräte am selben Hub hin auf Low Speed.

So ein Unsinn. Selbst wenn man das gezielt erreichen wollte: das geht 
einfach nicht, das gibt der USB-Standard einfach nicht her...

Kurzfassung: du hast sowas von keine Ahnung, das tut schon echt weh...

von Pro Micro (Gast)


Lesenswert?

> da ich Maschinenbauingenieur bin und dementsprechend, bis auf Arduino
> Spielereien, keine großen Erfahrungen mit Mikrocontrollern habe

da würde ich das vielleicht auf den zweiten Prototypen verlegen mit dem 
nackten Chip ein eigenes Gerät zu bauen...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Thomas W. schrieb:
> Genau, der atmega zwingt alle Geräte am selben Hub hin auf Low Speed.

Das ist Unfug.

von Manfred (Gast)


Lesenswert?

Tim M. schrieb:
> da ich Maschinenbauingenieur bin und dementsprechend, bis auf Arduino
> Spielereien, keine großen Erfahrungen mit Mikrocontrollern habe, wollte
> ich hier im Forum nachfragen.
Brauchst Du eine Lösung oder willst Du Wissen aufbauen?

> Ich suche zur Zeit nach einer Moeglichkeit einen Schalter per USB mit
> einem PC zu verbinden, der bei Betaetigung einen Tastaturtastendruck
> (Buchstabe "e") simuliert.
Lösungsorientiert würde ich eine PC-Tastatur zerlegen. Die mir bekannten 
Siemens-Tastaturen habe eine kleine Platine, weniger als halbe Postkarte 
groß, wo die Tastenmatrix dran hängt. An der Matrix ausmessen, welche 
Pins das "E" verbindet, Taster an die Platine und fertig. Ist 
unsportlich, kostet eine Tastatur - aber bereitet am wenigsten 
Zeitaufwand.

Pro Micro schrieb:
> Der meinte den Pro Micro von Sparkfun:
> https://www.sparkfun.com/products/12640
> Der ist für sowas genau richtig - einfach und schön klein. Per USB
> Bootloader super einfach zu programmieren und der Code für ein
> Tastenanschlag ist simples Copy&Paste...
"für ein Tastenanschlag" - Deutsche Grammatik schwer? Ein en Anschlag!

Ich glaube, den Arduino-Sketch lädt man genau einmal und nie wieder hoch 
- wenn der USB des 32u4 als HID-Device umprogrammiert wurde, kann er 
nicht mehr zu weiteren Uploads benutzt werden?

von Frank K. (fchk)


Lesenswert?

Die mit Abstand billigste Lösung mit einem Mikrocontroller mit 
Hardware-USB-Device ist der PIC16F1454/1455. Der '55 hat noch analoge 
Eingänge und einige andere Funktionen, die hier aber unwesentlich sind. 
Weiteres Plus für den Bastler: das Ding gibts als DIP für Lochraster.

Schau her: Hier findest Du Schaltplan und Software und Erklärungen.

Teil 1:
http://www.codeproject.com/Articles/830856/Microchip-PIC-F-USB-Stack

Teil 2:
http://www.codeproject.com/Articles/832135/Microchip-PIC-F-USB-Stack-Part

Hier gibts den Chip:
https://www.reichelt.de/PIC-16C-16F17-Controller/PIC-16F1455-I-P/3/index.html?ACTION=3&GROUPID=7201&ARTICLE=144953&SEARCH=16f1455&OFFSET=16&;

fchk

PS: Zur Schaltung in Teil 1: Du solltest noch einmal 100nF zwischen VCC 
und GND direkt am PIC packen. Der läuft dann stabiler.

: Bearbeitet durch User
von Karsten (Gast)


Lesenswert?

Wenn Du die ganzen Tipps umgesetzt hast und Dein Custom HID Gerät nun 
läuft, brauchst Du auch noch was für die PC Seite. Schau mal hier:
http://ahidlib.com/pages/index.php?lang=de

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Thomas W. schrieb:
> Natürlich kann ich auch Software Uart oder Software Spi verwenden statt
> Hardwarer. Da ist es genau dasselbe. Funktioniert irgendwie mit
> Einschränkungen.
Wenn man das richtig macht, ist die einzige Einschränkung, dass man 
Rechenleistung vom UC braucht. Und genau das ist die einzige 
"Einschränkung" beim VUSB.

: Bearbeitet durch Moderator
von Christian M. (Gast)


Lesenswert?

Ja, der Arduino Micro ist wirklich perfekt geeignet! Funktioniert auf 
Anhieb! Selbst Nicht-C-Programmierer bringen in 5min. ein Programm 
fertig, das einen Buchstaben ausgibt!

Etwas knifflig ist das Flashen wenn schon als HID geflasht: Der Reset 
muss muss nach dem kompilieren schnell gedrückt werden, dass der Micro 
in den Bootloader-Modus geht.

Gruss Chregu

von Walter S. (avatar)


Lesenswert?

Tim M. schrieb:
> Nur wuerde ich gerne irgendwann den Schritt
> zwischen Prototypen mittels Arduino zur Platine machen, um fuer mich
> selber die Entwicklungsablaeufe zu verstehen.

dann sieh dir doch den Schaltplan des Arduino an und binde ihn in deinen 
Schaltplan ein

von Pro Micro (Gast)


Lesenswert?

Manfred schrieb:
> Ich glaube, den Arduino-Sketch lädt man genau einmal und nie wieder hoch

Nein, den kann man genau so oft programmieren, wie der Flash das 
aushält. Es gibt nämlich bei dem Einschalten ein Zeitfenster in dem der 
Bootloader zu der Verfügung steht.

von Joachim B. (jar)


Lesenswert?

Tim M. schrieb:
> Ich suche zur Zeit nach einer Moeglichkeit einen Schalter per USB mit
> einem PC zu verbinden, der bei Betaetigung einen Tastaturtastendruck
> (Buchstabe "e") simuliert.

Warum das?

Eine billige USB Tastatur, alles abklemmen und  die Zeilen Spalten 
Matrix der Taste 'e' mit einem Taster überbrücken.

wozu der Arduino?

Tim M. schrieb:
> da ich Maschinenbauingenieur bin

kannst du dir auch sicher ein kleine Gehäuse aus dem Block (Material 
nach Belieben) fräsen dafür.

Tim M. schrieb:
> Weiterhin benoetige ich wohl einen Mikrocontroller

der das übernehmen kann, da musst du dich nicht mit USB Treiber und Co 
rumplagen.

: Bearbeitet durch User
von F. F. (foldi)


Lesenswert?

Wenn jemand etwas bauen will, ok. Aber wenn jemand sich nicht mit 
Elektronik auskennt und nur ein bestimmtes Ziel erreichen möchte, dann 
sagt man ihm den einfachsten Weg dahin.
Oben hat es schon jemand vorgeschlagen und ich habe es dann noch mal 
genauer gesagt.
So eine BT Tastatur gibt es auch in sehr klein, kosten ab ca. 30 Euro 
und es bedarf keiner weiteren Kenntnisse um ein "E" zu senden.

von Martin (Gast)


Lesenswert?

So etwas gibts für wenig Geld schon fertig:

https://learn.adafruit.com/trinket-usb-keyboard/overview

Die fertige Platine gibts für 6,75? hier:

http://www.exp-tech.de/catalogsearch/result/?q=EXP-R15-242

Martin

von Tiny (Gast)


Angehängte Dateien:

Lesenswert?

Geht auch sehr viel einfacher.
Hab den mal nachgebaut und siehe da, funktioniert einwandfrei.

http://blog.flipwork.nl/?x=entry:entry081009-142605

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.