Forum: Mikrocontroller und Digitale Elektronik ATMega8a Tastendruck an Windows senden


von TheCoon (Gast)


Lesenswert?

Hallo µC-Freunde!

Ich bin komplett neu hier und suche schon seit über einer Stunde nach 
eine Lösung. Ich habe genau so etwas schon vor ein paar Jahren in der 
Schule gemacht, habe aber leider den Code nicht mehr.
Es geht um folgendes:

Ich möchte gerne mit meinem ATMega8a einen USB-Controller für meinen PC 
bauen/programmieren. Dieser Controller soll mehrere Buttons und einen 
Joystick (nicht analog, also ein D-Pad mit Griff) mitbringen. Die 
Planung steht, die Teile sind quasi auf dem Weg.

Mein Problem ist nun: Wie schreibe ich das Programm so, dass die 
Eingaben vom µC nicht intern genutzt werden sollen, sondern an Windows 
"weitergeleitet" werden sollen? Wie gesagt ich habe so etwas schon mal 
gemacht, allerdings ist das etwas länger her und ich stehe diesbezüglich 
auf dem Schlauch.

Ob die Lösung in C oder in Bascom geliefert wird, ist mir relativ 
schnuppe, da ich beides im Ansatz beherrsche. Mit Assembler habe ich 
allerdings keine Erfahrung, aber ich weiß, dass wir dieses Projekt in 
der Schule mit Bascom realisiert haben.

Ich bedanke mich schon mal im Voraus und wünsche ein Angenehmes 
Wochenende!
Coon

: Verschoben durch User
von 60/40 (Gast)


Lesenswert?

Nimm einen Controller aus einer alten USB-Tastatur und löte deine Tasten 
+ Joystick passend dran. Fertsch.

von 60/40 (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab vor Jahren mal sowas für MAME gebastelt...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

TheCoon schrieb:
> Wie schreibe ich das Programm so, dass die Eingaben vom µC nicht intern
> genutzt werden sollen, sondern an Windows "weitergeleitet" werden
> sollen?

Dein Atmega8 hat kein USB-Interface; Du kannst aber per Software (V-USB) 
ein für HID-Anwendungen ausreichendes USB-Interface per Bit-Banging 
(Pingewackel) nachbilden.

Und da, auf der V-USB-Projektseite, findest Du auch diverse Beispiele, 
wie dieses Softwarepaket genutzt werden kann:

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

von Stefan F. (Gast)


Lesenswert?

Unter dem Namen JoyWarrior kannst du so eine Platine auch fertig kaufen.

von uuu (Gast)


Lesenswert?

google ma nach usb4all, hat nur 1 kl.  nachteil: anderer uC

von Karl M. (Gast)


Lesenswert?

Hallo,

ein weiter Vorschlag mit USB 2.0 Interface: hat ein Atmega32u4 drauf.

Als fertiges Board, evtl. mit zusätzlichem Spannungswandler und 
Steckverbinder:

https://www.ehajo.de/boards/91/atmega32u4-breakout-board

Den passende USB Stack gibt's mit dem LUFA Projekt:

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

von Frank L. (hermastersvoice)


Lesenswert?

ich nehme für sowas meistens ein billiges Digisparkboard aus China. Das 
kann dann per Arduinooberfläche programmiert werden und man kann 
Tastatur und Maus damit automatisieren.

von Stephan B. (matrixstorm)


Lesenswert?

Hallo

tinyusbboard ( http://matrixstorm.com/avr/tinyusbboard/ ) kann USB_HID 
implementieren.
Dazu gibt es auch breits eine Bibliothek die das ganze HID übernimmt:

https://github.com/tinyusbboard/hid-KeyboardMouse

MfG Stephan

Nachtrag:
https://plus.google.com/108414175871566419950/posts/Lk25mNtc2qu

: Bearbeitet durch User
von TheCoon (Gast)


Lesenswert?

Erst mal vielen Dank für die vielen Antworten!

Vielleicht wäre es noch nützlich zu wissen, dass ich einen ATMega8a auf 
einem mySmartControll V1.11 von myAVR.de besitze.

von TheCoon (Gast)


Lesenswert?

TheCoon schrieb:
> Erst mal vielen Dank für die vielen Antworten!
>
> Vielleicht wäre es noch nützlich zu wissen, dass ich einen ATMega8a auf
> einem mySmartControll V1.11 von myAVR.de besitze.

von R. M. (Gast)


Lesenswert?

Auch wenn einige wieder die Nase rümpfen werden, aber
https://www.obdev.at/products/vusb/hidkeys.html
ist genau für diesen Zweck gemacht, das nur LowSpeed unterstützt wird, 
stört bei einer Tastatur auch nicht.

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Den ATMega8a für etwas anderes verwenden.
Arduino Leonardo oder Arduino Micro besorgen (haben echten USB-Port).
Arduino Joystick Library von Matthew Heironimus ziehen, Beispiel ist 
dabei.
Funktioniert super!

von Oliver S. (oliverso)


Lesenswert?

Gamepad kaufen. Fertig. Erspart 2-3 Jahre Einarbeitung in die 
Grundlagen, und unzählige Threads in einschlägigen Foren.

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> Fertig. Erspart 2-3 Jahre Einarbeitung in die Grundlagen,

Lerneffekt: 0
Erkenntnisgewinn: 0
Fähigkeiten weiterentwickelt: 0

von Oliver S. (oliverso)


Lesenswert?

Richtig. Bei dem aus der Ausgangsfrage ableitbaren Kenntnisstand geht’s 
halt nicht anders. Das Projekt ist zwanzig Nummern zu groß.

Zum Einstieg in die Materie kann er ja immer noch was passenderes 
finden.

Oliver

von Einer K. (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Lerneffekt: 0
> Erkenntnisgewinn: 0
> Fähigkeiten weiterentwickelt: 0

Siehe:
TheCoon schrieb:
> Ob die Lösung in C oder in Bascom geliefert wird, ist mir relativ
> schnuppe,
Lerneffekt: 0
Erkenntnisgewinn: 0
Fähigkeiten weiterentwickelt: 0

;-)

von Roland F. (rhf)


Lesenswert?

Hallo,

Rufus Τ. F. schrieb:

>> Fertig. Erspart 2-3 Jahre Einarbeitung in die Grundlagen,
>
> Lerneffekt: 0
> Erkenntnisgewinn: 0
> Fähigkeiten weiterentwickelt: 0

Und, wo ist das Problem? Glaubst du, das jemand der "so etwas schon vor 
ein paar Jahren in der Schule gemacht, aber leider den Code nicht mehr 
hat" wirklich interessiert daran ist etwas zu lernen?
Und warum ist es eigentlich so wichtig, das jeder Fragesteller unbedingt 
etwas lernen muss?

rhf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Roland F. schrieb:
> Und warum ist es eigentlich so wichtig, das jeder Fragesteller
> unbedingt etwas lernen muss?

Oh, Mist, das Leben ist so anstrengend.

von grundschüler (Gast)


Lesenswert?

atmega8 ist veraltet. durch pingleichen atmega328 ersetzen. Dann 
Tastenbefehle per usart über usart-usb-modul an den pc senden und mit 
vb.net auswerten.

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.