Uno als Tastatur verwenden

Guten Tag,

für mein aktuelles Bastelprojekt möchte ich einen bereits vorhandenen Adruino Uno R3 (SMD-Version) als USB-Keyboard verwenden. Dazu müsste ich mit dem Programm flip ein neues Hex-File einspielen, jedoch klappt das irgendwie nicht so recht. Nachdem ich Reset auf Masse gelegt habe ist der Uno vom PC aus nicht mehr sichtbar, es müsste laut manchen Tutorials jedoch ein DFU-device erscheinen.

Ich habe mich an diese Anleitung gehalten:
www.arduino.cc/en/Hacking/DFUProgramming8U2

Flip findet jedoch keinen Connect.

Kann mir da jemand einen Tipp geben?

DeineAnleitung:
To verify you have reset the 8u2 or 16u2 chip: In the Arduino programming environment, check the list of serial ports. The serial port for your board should no longer show up.

das sieht doch also erstmal ok aus.

Was dein "Flip" weiter macht, weiss ich allerdings nicht...

stony:
Nachdem ich Reset auf Masse gelegt habe ist der Uno vom PC aus nicht mehr sichtbar, es müsste laut manchen Tutorials jedoch ein DFU-device erscheinen.

Hast Du Reset fest auf Masse gelegt? dann kann das nicht funktionieren. Du darfst das nur kurz mit Masse verbinden, dann erscheint im Gerätemanager der ATmega16U2 als Atmel USB-Device (und das serial Device verschwindet).

Hallo,

vielen Dank für die Antworten.

Diesen Reset habe ich benutzt. Die Brücke wieder zu öffnen ist ja schon mal ein guter Tipp, danke.
Jetzt habe ich nach dem Reset ein unbekanntes Gerät in der Liste und finde keinen Treiber dazu.

Du brauchst keinen Treiber!

Auf dem AtMega16U2 muss ein DFU fähiges Programm/Bootloader laufen.
Ohne dem geht es nicht mit Flip
Sollte von Original schon drauf sein.
Ansonsten: Es liegt der IDE bei.

Dann kannste Flip einfach so nutzen.
Kein Reset nötig.

Alternativ:
Nutze einen ISP Programmier Adapter.

Hallo,

den Windows-Treiber habe ich im Atmel\Flip Verzeichnis gefunden. Nun wird der der 16U2 nach dem Reset als ebensolcher angezeigt und ich kann mit Flip das neue File aufspielen. (Adruino-Keybord-03.hex)

Nach dem Neustart ist der Uno dann als Keyboard unter den Devices aufgelistet. Leider ist er dann von der IDE nicht mehr erreichbar, was dann etwas umständlich ist wenn man am Sketch was ändern möchte.

Ohne einen Reset (das heisst solange "Uno" als Divice aufgelistet wird) bekomme ich mit Flip keine Verbindung zum Uno.

Vielen Dank für die Tipps.

Nach dem Neustart ist der Uno dann als Keyboard unter den Devices aufgelistet. Leider ist er dann von der IDE nicht mehr erreichbar, was dann etwas umständlich ist wenn man am Sketch was ändern möchte.

JA, der ATmega16U2 kann nicht gleichzeitig USB-serial Wandler und Tastatur sein.

Kauf Dir einen Arduino Leonardo oder Arduino MICRO. Die können von haus aus eine USB-Tastatur emulieren.

Grüße Uwe

Hallo,

danke nochmals an alle die mir geantwortet haben. Meine "Tastatur" ist fertig und funktioniert tadellos.

uwefed:
JA, der ATmega16U2 kann nicht gleichzeitig USB-serial Wandler und Tastatur sein.

Heisst das im Umkehrschluss, wenn bei einem normalen Uno das keyboard hex mit einem usbasp auf dem 16U2 geflasht wird, macht der einen auf PC Tastatur. Und den 328 kann ich über ISP normal flashen? Bzw. per usb-ttl Adapter und BL, wenn der 16U2 im Reset gehalten wird?

Voll korrekt!

Allerdings:

Bzw. per usb-ttl Adapter und BL, wenn der 16U2 im Reset gehalten wird?

Das ist gar nicht nötig, da der 16U2 dann die Seriellen Pins u.U. gar nicht nutzt.
Wenn er sie nicht nutzt, dann auch keine Kollision.

Man kann allerdings auch mit dem ATMega328P tolle Sachen machen/rechnen, und Daten über die Serielle an den ATMega16U2 schicken, welcher dann diese an den PC, in Form von Joystick,Tastatur, oder was es auch immer an HID es geben mag, weiterreicht.

combie:
Allerdings:
Das ist gar nicht nötig, da der 16U2 dann die Seriellen Pins u.U. gar nicht nutzt.
Wenn er sie nicht nutzt, dann auch keine Kollision.

Kann ich nun nicht ganz folgen. Die Pins sind doch nach wie vor verbunden, und der 16U2 erwartet doch serielle Daten vom 328, die er als Tastaturemulator weiterreichen kann.

und der 16U2 erwartet doch serielle Daten vom 328, die er als Tastaturemulator weiterreichen kann.

Wenn das so ist, dann gibts da auch keinen Zweifel.

Wird aber keiner zu gezwungen, eine solche Software auf den 16U2 zu spielen.

Tipp:
u.U. heißt "unter Umständen"

Na ha, ich ging halt nun vom konkreten Beispiel Tastaturemulation aus, wie der TO. Und da ist man doch gezwungen, wenn man einen Uno verwendet, den 16U2 zu flashen.

Und da ist man doch gezwungen, wenn man einen Uno verwendet, den 16U2 zu flashen.

Da sage ich doch nichts gegen.

Aber das bedeutet doch nicht zwingend, dass der 16U2 die Serielle belegt.
Der kann auch alleine.
Der braucht den 328P nicht um Tastatur zu spielen.