Thema: Wiimote to PC

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.230 Beiträge
 
Delphi 12 Athens
 
#1

Wiimote to PC

  Alt 11. Okt 2010, 16:30
Einige werden es bestimmt schon gehört haben.
Man kann die coolen Wii-Remote-Controler mit dem PC verbinden.

Nja, da ich auch ein paar der Teile besitze, wollte ich das auch gerne.

Nun hab ich mir dafür ein bissl was versucht zu schreiben, mit Hilfe einiger Quellen (was mir noch so bekannt ist) :
Johnny Lee und seine Wii-Remote-Hacks (einfach mal in YouTube nach "Wiimote" und Co. suchen)
http://msdn.microsoft.com/en-us/library/ff538865.aspx (HIDClass Support Routines)
http://wiibrew.org/wiki/Wiimote
http://wiibrew.org/wiki/Wii_Balance_Board
http://wiire.org/Main_Page
http://www.delphipraxis.net/125390-w...ll-delphi.html
http://www.delphipraxis.net/131808-wiimote2midi.html
DarwiinRemote
uWiimote.pas (TheUnknownOnes.net)
U_Wiimote.pas U_Wiimote_constantes.pas
WiinRemote_v2007.1.13

Es gibt auch eine wiimotelib.dll (siehe Link), aber diese ist nicht für native Win32-Anwendungen geeignet.
Auch wollte ich es gerne ohne DLL nutzen, welches ja auchmöglich ist.

Unter WinXP (bzw. alles bis Vista) braucht man einen passenden Bluetooth-Treiber.
Hierfür hat sich BlueSoleil bei vielen als brauchbar gezeigt.

Unter Windows 7 funktioniert es entweder ebenfalls über BlueSoleil
oder man verwendet einfach die windowseigenen Treiber über den Windows-Bluetooth-Stack.
Hier wird der WiiControler vom System grundsätzlich erstmal als Joystick oder Maus erkannt, wobei Windows selber aber direkt nichts mit diesem Controler anfangen kann.
Leider läuft unter Windows 7 noch nicht alles ... aber wir sind am Probieren ob/wie es dennoch geht. (Wir = noch einige andere DPler, siehe anderer Thread und ich)


Soooo, ich weiß daß mein Code noch lange nicht fertig ist und daß ich noch so Einiges ändern/einbauen muß.
Aber da es für eine zugehörige Frage ( http://www.delphipraxis.net/155143-e...-erkennen.html ) wohl besser ist den Code zu zeigen, mach ich es jetzt doch schonmal.

Aktuell lassen sich schonmal (mehr ist noch nicht getestet oder integriert) die LEDs und der Vibrator steuern.

Im Anhang sind die nötigen Units (es wird aktuell mindestens Delphi 2009 benötigt, um diese zu verwenden) und eine Test-Anwendung
  • WiiHID.pas
    die Klassen zur HID-Verwaltung (Human Interface Device)
  • WiiAPI.pas
    die grundsätzlichen Typen und Schnittstellen der Wii-Controler
  • WiiControl.pas
    Klassen zur Steuerung der/des Wii-Controler
  • Wii_Test.dpr / Wii_Test.exe
    'ne Testanwendung
  • Wii_Test__.exe
    nocheine Testanwendung - selber Code, aber HidD_GetIndexedString und HidD_GetInputReport werden nicht verwendet.
    Stattdessen wird immer versucht über ReadFile/WriteFile zu arbeiten
  • HID.dpr / HID.exe (HIDForm.pas HIDFrame.pas)
    noch'ne Testanwendung zur HID-Klasse


Ach ja, angefangen hatte es mal mit Jonny Lee (hatte glaub ich mal wer in der SB eines seiner Videos gepostet) und dann ging es über http://www.delphipraxis.net/125390-w...ll-delphi.html hin zu einer eigenen Lib, da es für Delphi leider noch nicht wirklich was "ausgereiftes" gibt (die Programme, welche man z.B. in der DP findet, haben z.B. noch zuviel Wii-Steuercode fast undokumentiert mitten in den Test/Demo-Programmen versteckt, anstatt sie ordentlich in einer Lib zu kapseln).


- Geplant ist erstmal diese Lib zum Laufen zu bekommen.
- Dann wollte ich daraus einen Service machen, über welchen man Global die Maus und Tastatur steuern kann, um z.B. einige Mediaplayer bediehnen zu können.
Auch soll es eine Schnittstelle geben, so daß ein Programm (bei mehreren bevorzugt das mit dem Eingabefous) die Kontrolle übernehmen und auch erweiterte Features nutzen könnte.
Ich möchte also die Controler Maus/Tastatur global nutzen können, ohne daß sie fest an ein Programm gebunden sind.
(derzeit nutzen alle Libs, bzw. damit erstellte Programme diese Controler ja quasi exclusiv nur für sich)
- Und eine Verbindung mit den neuen Touch-Funktionalitäten, welche Windows 7 & Delphi 2010 bieten.


Eventuell zeigt ja chaosben auch irgendwann mal was er so hat
und wir können uns etwas austauschen/helfen.
Angehängte Dateien
Dateityp: 7z WiiHID 25.10.2010.7z (540,3 KB, 80x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Okt 2010 um 17:41 Uhr)
  Mit Zitat antworten Zitat