Hallo,
zu meinem baldigen Projekt muss noch eine Frage geklärt werden.
Projekt:
Über einen Mikrocontroller der seriell mit dem PC verbunden ist, soll
zum beispiel der winamp gesteuert werden.
Wenn ich beim Winamp die Tastenkombination (z.b. Strg+Alt+N für
"nächster Track") aktiviere, kann ich dann auf dem Mikrocontroller
irgendwie die Tastenkombination senden, das Winamp das dann mitbekommt
und auch reagiert?
Board: myAvr mit dem Atmega8
Verbindung: Über BTM-222 der eine serielle Schnittstelle über Com-Port
vorgaukelt.
Hoffe ich hab mich verständlich ausgedrückt :)
Gruß
Sven
Ich rate mal ins blaue, dass nicht ganz so einfach wird, da ja über die
serielle Schnittstelle normalerweise keine Tastaturen angeschlossen
werden und das Betriebssystem deshalb vermutlich das, was dort ankommt,
nicht als Tastendrücke interpretieren wird.
Dann musst du auf dem Computer ein Programm laufen lassen, was auf der
Schnittstelle horcht und dann die Tastenkombinationen im Betriebssystem
erzeugt. Das kann man schon machen.
Du stellst momentan die falsche Frage.
Die richtige Frage muss zunächst lauten: Wie kommen deine Zeichen vom
AVR über die serielle Schnittstelle ins WinAmp. Und zwar nicht einfach
irgendwie, sondern so, dass sie WinAmp über seine ganz normalen
Steuerschnittstellen auch akzeptiert.
Das kann im einfachsten Fall sein, dass man WinAmp die Zeichen in die
Input-Queue stellt, so dass es für WinAmp keinen Unterschied mehr macht
ob die Quelle jetzt tatsächlich eine Tastatur oder irgend ein anderes
Gerät ist.
Ich meine mich aber auch zu erinnern, dass WinAmp ein paar
Schnittstellen bereitstellt (Stichwort: COM-Objekte) über die man es
fernsteuern kann.
Aber sei es wie es sei: Ohne ein zusätzliches Programm, welches auf dem
PC die serielle SChnittstelle überwacht und das dort empfangene an
WinAmp weiterleitet, wird das wohl nichts werden. Es sei denn natürlich,
es gibt eine dokumentierte Schnittstelle von WinAmp selber, mit der man
es auf eine serielle aufschalten kann. Bei der Verbreitung von WinAmp
und der vielfältigen Anwendbarkeit würde mich das ehrlich gesagt noch
nicht einmal wundern.
Also: Hausaufgaben machen und rauskriegen welche Möglichkeiten es
prinzipiell gibt um WinAmp fernzusteuern. Welche dieser Möglichkeiten
kann WinAmp ganz von alleine (durch Konfiguration/Plugins) erledigen und
bei welchen muss man zusätzlich programmieren.
Es ist überhaupt nicht erforderlich, über eine Emulation der
Standard-Tastatur zu gehen oder sich irgendwelche komischen Konstrukte
zu überlegen.
Der TO hat doch ganz klar geschrieben, dass er Winamp verwenden möchte
und nicht eine beliebige Software fernsteuern.
Winamp besitzt schon seit Urzeiten die Möglichkeit, einen COM-Port
direkt anzusteuern/abzufragen, d.h. sowohl zur Darstellung von
Titellisten als auch zur Annahme von Steuerkommandos. Das entsprechende
Plugin findet man
hier:
http://www.winamp.com/plugin/com-port-winamp-control-v142/92855
Da du WinAmp über übliche Tastenkombinationen fernsteuern kannst, ist
dein Vorhaben schon möglich. Du kannst unter
"Systemsteuerung-->Eiingabehilfen-->Allgemein-->externe Eingabehilfen"
die serielle Schnittstelle als Eingabe konfigurieren. Dann hast du die
Möglichkeit über den AVR Tastencodes an WinAmp zu senden. Dazu muss
WinAmp natürlich vorher gestartet und aktiv (handle) sein. Damit köntest
du den "Umweg" über ein Zwischenprogramm dir ersparen - wobei das
sicherlich die sauberere Lösung ist.
Such mal bei Microsoft MSDN, da findest alle Infos dazu
@Remote One
Das wäre dann auch nutzbar um zum beispiel VLC shortcuts zu nutzen?!
Wäre mir sogar lieber als über das Com-Port Plugin...
Bei mir jedoch ist dieses Feld ausgegraut und der Haken nicht setzbar,
liegt warschienlich daran das im moment nichts über die
Seriellenschnittstellen angeschlossen ist...
Vielen dank. Da arbeitet man solange schon mit Windows, kennt die
FUnktion aber nicht :)
Ich hab jetzt auch den Microsoft-Artikel dazu wieder gefunden:
http://support.microsoft.com/default.aspx?kbid=260517
Wie das mir dem BTM-222 funktioniert, kann ich dir nicht sagen. Aber
sobald eine virtuelle RS232 Schnittstelle im Gerätemanager ist, sollte
das schon klappen.
ich denke, das schickste wäre die Referenzimplementierung einer
HID-Tastatur von Obdev zu benutzen
http://www.obdev.at/products/vusb/hidkeys.html
dann schließt du dein AVR an die USB-schnittstelle und Windows erkennt
ihn als normales Keayboard.
von nun an kannst du jede Tastenkombination senden, die du lustig bist.
Vlad Tepesch schrieb:> ich denke, das schickste wäre die Referenzimplementierung einer> HID-Tastatur von Obdev zu benutzen> http://www.obdev.at/products/vusb/hidkeys.html>> dann schließt du dein AVR an die USB-schnittstelle und Windows erkennt> ihn als normales Keayboard.> von nun an kannst du jede Tastenkombination senden, die du lustig bist.
So hab ich das für meine PC Fernsteuerung gemacht. Einfach noch einen
TSOP spendiert und damit Tastaturcodes zum fernsteuern des Rechners
gesendet.
@Sven:
wenn du das so machen willst, dann kann ich dir da zumindest ein wenig
Code beisteuern.
@Vlad und Remote
Brauch ich um HID zu nutzen noch irgendein Bauteil oder geht das alles
über SW?
Ich glaub ich hab das mit dem HID noch nicht ganz verstanden ^^
Nutzbarkeit mit Windows ist klar, wie wenn ich dann ein normales
Eingabegerät am Rechner anschließe. Kann ich dann auch normal Daten über
die serielle Verbindung schicken oder nur noch Tastenkombinationen?
Zitat aus Wiki: "Beschränkt wird die Nutzbarkeit unter anderem durch
eine geringere Anzahl an Endpunkten und geringe Datenübertragungsrate."
Zu meinem Projekt gehört ein Touchscreen, über den man gewünschtes
auswählt und sendet. Für die Darstellung auf dem Display wird doch
einiges an Daten gesendet und empfangen. (Schon allein die ständige
Abfrage wo der Stift/Finger gerade ist).
Dazu kommt, das ich nicht per USB auf den Rechner gehe sondern per BTM
das eine serielle COM Verbindung vorgaukelt.
Irgendwie blick ich da noch nicht ganz durch... kann mir das mal einer
transparenter erklären bitte :)
Das mit dem HID über USB war ja nur ein Vorschlag. Bis dahin wusste ja
noch keiner was du genau machen wolltest. Es hieß ja lediglich, dass du
z.B. WinAmp über Tastenkürzel steuern möchtest.
Wenn du das BTM-222 Modul hast, dann vergiss das mit dem USB einfach
wieder. Da ist es für dich sicherlich wesentlich einfacher, die serielle
Schnittstelle in betrieb zu nehmen. Der Vorteil bei der USB Variante
wäre lediglich, dass es an jedem beliebigen Rechner funktionieren würde
ohne vorher die "externe Eingabehilfe" zu aktivieren. Nachteil ist
natürlich der erhöhte Aufwand und das es kabelgebunden ist.
Sven schrieb:> Brauch ich um HID zu nutzen noch irgendein Bauteil oder geht das alles> über SW?
Na ja, mal von dem USB Stecker und ein wenig Kleinkram abgesehen,
brauchst du da nichts weiter - das wird alles in Software gemacht
Sven schrieb:> Nutzbarkeit mit Windows ist klar, wie wenn ich dann ein normales> Eingabegerät am Rechner anschließe. Kann ich dann auch normal Daten über> die serielle Verbindung schicken oder nur noch Tastenkombinationen?
Also, wenn du dich als HID Tastatur bei Windows anmeldest, dann kannst
du auch nur Taten/Tastenkombinationen schicken. Wie du die
interpretierst, ist ja dann deine Sache. Dir stehen ja schließlich auch
alle numerischen und alphanumerischen Tasten zur Verfügung.
Mit der seriellen Verbindung versteh ich deine Frage nicht ganz. Wenn du
fragst, ob du neben dem HID noch die RS232 nutzen kannst, dann kann ich
das mit ja beantworten.
Sven schrieb:> Zu meinem Projekt gehört ein Touchscreen, über den man gewünschtes> auswählt und sendet. Für die Darstellung auf dem Display wird doch> einiges an Daten gesendet und empfangen. (Schon allein die ständige> Abfrage wo der Stift/Finger gerade ist).
Die Daten, welche gesendet/empfangen werden, gehen doch aber nicht
direkt zum Rechner. Vielmehr wird es doch so sein, dass der µC die
Darstellung und Auswertung des Displays übernimmt. Wenn dann z.B. etwas
bestimmtes auf dem Display aktiviert wird, dann wird eben ein spezielles
Tastenkürzel an den PC weitergeleitet. Das ist also keine direkte
Kommunikation zwischen PC und Display. Da sitzt immer noch der µC
dazwischen als Umsetzer
Sven schrieb:> Dazu kommt, das ich nicht per USB auf den Rechner gehe sondern per BTM> das eine serielle COM Verbindung vorgaukelt.
Das ist wie gesagt die einfache Variante und zudem nicht kabelgebunden.
Aber zur Steuerung des Rechners musst du jedes mal die externe
Eingabehilfe aktivieren. Keine Ahnung wie das ausschaut, wenn du keine
Admin Rechte hast. Kann sein, dass du das dann nicht aktivieren kannst.
Zum anschließen eines HID brauchst du keine Admin Rechte und die Treiber
sind bei Windows auch dabei.
Remote One schrieb:> Sven schrieb:>> Zu meinem Projekt gehört ein Touchscreen, über den man gewünschtes>> auswählt und sendet. Für die Darstellung auf dem Display wird doch>> einiges an Daten gesendet und empfangen. (Schon allein die ständige>> Abfrage wo der Stift/Finger gerade ist).>> Die Daten, welche gesendet/empfangen werden, gehen doch aber nicht> direkt zum Rechner. Vielmehr wird es doch so sein, dass der µC die> Darstellung und Auswertung des Displays übernimmt. Wenn dann z.B. etwas> bestimmtes auf dem Display aktiviert wird, dann wird eben ein spezielles> Tastenkürzel an den PC weitergeleitet. Das ist also keine direkte> Kommunikation zwischen PC und Display. Da sitzt immer noch der µC> dazwischen als Umsetzer
Jo, war nen Denkfehler von mir ^^
Jetzt hab ich das aber auch verstanden.
Meine Liste der Bauteile hab ich jetzt auch zusammen, n8un aber erstmal
hinten anstellen. Andere Arbeiten warten auch noch.
Einen Maschinenbauer, der mir die Hülle aus legiertem Alu macht, hab ich
auch schon :)
Hallo!
Falls es sich um das Betriebssystem Windows handelt sollte sich das
Programm Eventghost (freie Software) mit dem Serial Plugin eignen.
Damit kannst Du einfach Serielle Kommandos in entsprechende Events
umwandeln ein plugin für Winamp Steuerung existiert ebenfalls und
ettliche andre Programme.
gruß,
Bjoern