Versuchen Sie es mit der Wii-Fernbedienung in Java

Dieses Mal möchte ich die Wii-Fernbedienung mit Java verwenden.

Es gibt nur wenige japanische Dokumente und sie sind alt, daher hoffe ich, dass Sie sie als neue Dokumente verwenden können.

Hinweis

Es funktioniert nur, wenn die Wii-Fernbedienung als Bluetooth-Gerät mit dem PC gekoppelt ist. Stellen Sie sicher, dass Sie vor der Ausführung ein Pairing durchführen.

Umgebung

Windows 10 Home Edition Eclipse 4.6 Java 1.8

Bibliotheksbeschaffung

Wir werden als gewöhnliches Projekt fortfahren, nicht als Maven.

WiiuseJ Wiiusej 0.12a.zip unter https://code.google.com/archive/p/wiiusej/downloads

Projektaufbau

Legen Sie wiiuse.dll und WiiUseJ.dll für Windows sowie libwiiuse.so und libWiiuseJ.so für Mac-Benutzer im Ressourcenordner ab.

Spiel mit der Bibliothek

Suchen Sie vorerst nach der Wii-Fernbedienung

Wenn eine Wii-Fernbedienung gefunden wird, enthält die wiimote-Variable das Wii-Fernbedienungsobjekt.

example.java


import com.github.awvalenti.wiiusej.WiiusejNativeLibraryLoadingException;

import wiiusej.WiiUseApiManager;
import wiiusej.Wiimote;

public class MainAccessPoint {
	
	private Wiimote wiimote;
	private Wiimote[] wiimotes;
	
	public MainAccessPoint() throws InterruptedException {
		try {
			System.out.println("Finding wiimotes...");
			
			while(wiimotes == null) {
				/*2019/8/5 Es ist ein Fehler aufgetreten. getWiimotes(1);Nicht getWiimotes(1, true);war. Außerdem wurde statisch auf WiiUseApiManager zugegriffen.*/
				wiimotes = WiiUseApiManager.getWiimotes(1, true);
				if(wiimotes != null && wiimotes.length > 0) {
					wiimote = wiimotes[0];
					System.out.println("Wii-Fernbedienung gefunden. Ich würde: " + wiimote.getId());
					break;
				}
				wiimotes = null;
				continue;
			}
			
		} catch (WiiusejNativeLibraryLoadingException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String args[]) throws InterruptedException {
		MainAccessPoint main = new MainAccessPoint();
	}
}

Versuchen Sie, die LED zu wechseln

Geben Sie mit boolean in der Reihenfolge von links ab dem ersten Argument an.

python


wiimote.setLeds(true, false, false, false);

Registrieren Sie den Listener auf der Wii-Fernbedienung

Registrieren Sie die folgenden Listener in wiimote.

Hörer

Listener.java


import wiiusej.values.GForce;
import wiiusej.wiiusejevents.physicalevents.ExpansionEvent;
import wiiusej.wiiusejevents.physicalevents.IREvent;
import wiiusej.wiiusejevents.physicalevents.MotionSensingEvent;
import wiiusej.wiiusejevents.physicalevents.WiimoteButtonsEvent;
import wiiusej.wiiusejevents.utils.WiimoteListener;
import wiiusej.wiiusejevents.wiiuseapievents.ClassicControllerInsertedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.ClassicControllerRemovedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.DisconnectionEvent;
import wiiusej.wiiusejevents.wiiuseapievents.GuitarHeroInsertedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.GuitarHeroRemovedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.NunchukInsertedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.NunchukRemovedEvent;
import wiiusej.wiiusejevents.wiiuseapievents.StatusEvent;

public class Listener implements WiimoteListener {

    public Listener() {
    }

    //Zünden, wenn die Taste gedrückt wird. Sie können anhand des Methodennamens erkennen, um welche Schaltfläche es sich handelt.
    @Override
    public void onButtonsEvent(WiimoteButtonsEvent arg0) {
        if(arg0.isButtonHomeJustPressed()) {

        } else if(arg0.isButtonHomeJustReleased()) {

        } else if(arg0.isButtonPlusJustPressed()) {

        } else if(arg0.isButtonPlusJustReleased()) {

        } else if(arg0.isButtonMinusJustPressed()) {

        } else if(arg0.isButtonMinusJustReleased()) {

        } else if(arg0.isButtonOneJustPressed()) {

        } else if(arg0.isButtonOneJustReleased()) {

        } else if(arg0.isButtonTwoJustPressed()) {

        } else if(arg0.isButtonTwoJustReleased()) {

        } else if(arg0.isButtonAJustPressed()) {

        } else if(arg0.isButtonAJustReleased()) {

        } else if(arg0.isButtonBJustPressed()) {

        } else if(arg0.isButtonBJustReleased()) {

        } else if(arg0.isButtonRightJustPressed()) {

        } else if(arg0.isButtonRightJustReleased()) {

        } else if(arg0.isButtonLeftJustPressed()) {

        } else if(arg0.isButtonLeftJustReleased()) {

        } else if(arg0.isButtonUpJustPressed()) {

        } else if(arg0.isButtonUpJustReleased()) {

        } else if(arg0.isButtonDownJustPressed()) {

        } else if(arg0.isButtonDownJustReleased()) {

        }
    }

    //Zünden, wenn sich die Wii-Fernbedienung bewegt.
    @Override
    public void onMotionSensingEvent(MotionSensingEvent arg0) {
        //Der Wert des 3-Achsen-Beschleunigungssensors beträgt 1 bis-Es wird im Bereich von 1 zurückgegeben.
        GForce force = arg0.getGforce();
        System.out.println("X: " + force.getX());
        System.out.println("Y: " + force.getY());
        System.out.println("Z: " + force.getZ());
    }

    @Override public void onStatusEvent(StatusEvent arg0) {}
    @Override public void onDisconnectionEvent(DisconnectionEvent arg0) {}
    @Override public void onClassicControllerInsertedEvent(ClassicControllerInsertedEvent arg0) {}
    @Override public void onClassicControllerRemovedEvent(ClassicControllerRemovedEvent arg0) {}
    @Override public void onExpansionEvent(ExpansionEvent arg0) {}
    @Override public void onGuitarHeroInsertedEvent(GuitarHeroInsertedEvent arg0) {}
    @Override public void onGuitarHeroRemovedEvent(GuitarHeroRemovedEvent arg0) {}
    @Override public void onIrEvent(IREvent arg0) {}
    @Override public void onNunchukInsertedEvent(NunchukInsertedEvent arg0) {}
    @Override public void onNunchukRemovedEvent(NunchukRemovedEvent arg0) {}

}

Registrieren Sie den Listener bei wiimote

wiimote.addWiiMoteEventListeners(new Listener());

Aktivieren Sie den Motion Listener

Sie müssen den folgenden Code schreiben, um die Bewegung zu erhalten.

wiimote.activateMotionSensing();

Ich werde es hinzufügen, wenn ich etwas herausfinde. Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar.

Recommended Posts

Versuchen Sie es mit der Wii-Fernbedienung in Java
Versuchen Sie es mit Redis mit Java (jar)
Versuchen Sie es mit der Stream-API in Java
Versuchen Sie, mit JZOS von Java aus auf das Dataset zuzugreifen
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Versuchen Sie es mit RocksDB mit Java
Versuchen Sie es mit GloVe mit Deeplearning4j
Versuchen Sie eine DB-Verbindung mit Java
Versuchen Sie, das Eratostenes-Sieb mithilfe der Java-Standardbibliothek zu implementieren
Versuchen Sie gRPC mit Java, Maven
Verwenden von Mapper mit Java (Spring)
Versuchen Sie es mit globalem Hooking in Java mithilfe der JNativeHook-Bibliothek
[Java] Versuchen Sie, die Elemente der Json-Zeichenfolge mithilfe der Bibliothek zu bearbeiten
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Java-Vergleich mit der compareTo () -Methode
Folgen Sie dem Link mit Selen (Java)
Verwenden von Java mit AWS Lambda-Eclipse-Vorbereitung
[Java] Versuchen Sie, mithilfe von Generika zu implementieren
Versuchen Sie es mit dem Nachrichtensystem Pulsar
HTML5-Entwicklung von Java mit TeaVM
Versuchen Sie es mit der IBM Java-Methodenverfolgung
Verwenden des Proxy-Dienstes mit Java-Crawling
Versuchen Sie es mit dem Java SDK von Hyperledger Iroha
[Java] Wo haben Sie versucht, Java zu verwenden?
Probieren Sie HelloWorld mit der Mindestkonfiguration von Heroku Java Spring-Boot aus
Ist die von Ihnen verwendete Version von Elasticsearch mit Java 11 kompatibel?
Überprüfen Sie den Betrieb mit dem Steg mit Maven.
Verwenden von Java mit AWS Lambda-Implementation-Check CloudWatch-Argumenten
Versuchen Sie, den Dienst auf Android Oreo zu verwenden
Verwenden von Java mit AWS Lambda-Implementierung-Stop / Launch EC2
Verwenden von JupyterLab + Java mit WSL unter Windows 10
Probieren wir WebSocket mit Java und Javascript aus!
Java lernen Versuchen Sie es mit einem Scanner oder einer Karte
Versuchen Sie es mit der JSON-Format-API in Java
Versuchen Sie es mit Spring Boot mit VS-Code
Versuchen Sie, den CORBA-Dienst unter Java 11+ aufzurufen
Spieleentwicklung mit zwei Personen mit Java 2
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Spieleentwicklung mit zwei Personen mit Java 1
Versuchen Sie es mit der REST-API von JobScheduler - Java RestClient-Implementierung -
Versuchen Sie, Java-Bibliotheken mit AWS CodeArtifact zu verwalten
Versuchen Sie es mit der Emotion API von Android
Spieleentwicklung mit zwei Personen mit Java 3
[Java] Ermitteln Sie das Datum mit der LocalDateTime-Klasse
Versuchen Sie das Remote-Debuggen von Java mit Remote-Containern in Visual Studio Code Insiders
Versuchen Sie, Firebase Cloud-Funktionen unter Android (Java) zu verwenden.
Versuchen Sie es mit der RestClient Test-Klasse der REST-API-Java von JobScheduler.
Versuchen Sie es mit libGDX
Versuchen Sie, mit Scala mithilfe der Standardbibliothek von Java Text zu einem Bild hinzuzufügen
Verwenden Sie Vorlagen für den Klassenpfad mit Apache Velocity
Interagieren Sie mit der LINE Message API mit Lambda (Java)
[LeJOS] Lassen Sie uns den EV3-Motor mit Java steuern
ChatWork4j für die Verwendung der ChatWork-API in Java
Versuchen Sie es mit powermock-mockito2-2.0.2
Versuchen Sie es mit GraalVM
[Java] Stellen Sie die Zeit im Browser mit jsoup ein
Probieren Sie Java 8 Stream aus
Versuchen Sie es mit jmockit 1.48
Grundlegendes zum MVC-Framework mit serverseitiger Java 1/4 View