Étape 5: Programmation Java
Pour recevoir les données en série d’un Arduino en Java, vous aurez besoin de la bibliothèque RXTX, qui est disponible ici : http://fizzed.com/oss/rxtx-for-java - instructions d’installation sont dans le fichier zip compressé.
Normalement, sans contrôleur, vous devrez utiliser votre clavier et la souris pour jouer. En Java, il y a une classe appelée « Robot » qui est faite pour imiter les frappes et les mouvements de la souris.
API Java pour la classe Robot : https://docs.oracle.com/javase/7/docs/api/java/awt...
J’ai ajouté le code source de Java avec des commentaires, mais je vais écrire à ce sujet ici aussi.
Tout d’abord, nous allons ouvrir le port série avec le nom (si ce n’est pas COM3, changez-le au port de l’arduino) et les données (9600 bauds, parité, données et stop bits..). Vous pouvez télécharger le squelette d’ici : http://playground.arduino.cc/Interfacing/Java
Dans la fonction SerialEvent vous pouvez accéder à l’entrée dans la mémoire tampon (la ligne créée dans l’arceau à l’arduino) à l’entrée. Appel de fonction ReadLine().
Ensuite, je vais passer la chaîne à la fonction de guitare, dans lequel je vais faire les étapes pour créer la séquence de touches.
La chaîne est fractionnée en un tableau d’entiers, parce que c’est plus facile de vérifier que les valeurs. L’indexation est identique à celui de l’Arduino.
Si le premier élément du tableau est l’un, cela signifie que la première frette touche, et nous devons imiter que quelqu'un appuie sur la touche « 1 » sur le clavier. C’est pourquoi nous avons l’appel de robot.keyPress(KeyEvent.VK_1); .
Si il était pressé, mais il est sorti aujourd'hui, il faut relâcher la touche ainsi avec l’appel de fonction : robot.keyRelease(KeyEvent.VK_1) ;
Si la deuxième frette touche, nous allons appeler le robot.keyPress pour la touche « 2 » et ainsi de suite et ainsi de suite.
J’ai dû le faire pour chaque bouton de la frette, évasion, et pouvoir de star et le strumming haut et bas. Pour les frettes, le « 1 » pour « 5 » touche correspondant à l’indice de la frette sur le cou. Pour la gratte les flèches haut et bas sont pressés, pour l’évasion, il appuie sur évasion et pour les étoiles de la puissance, la clé '.
Lorsque le vibrato est déclenchée, il appelle la fonction de coup dur, ce qui crée un nouveau thread, déplacez la souris sur l’axe des X, parce qu’elle peut être définie dans le jeu pour activer le coup dur avec la souris. Quand il se déplace, elle oscille, donc c’est non seulement binaire 1 ou 0 pour le coup dur. Avec un nouveau thread démarré, vous pouvez aller sur d’autres touches et gratter, il n’y aura aucun problème. Et aussi si vous déclenchez le coup plusieurs fois, plusieurs threads sont lancés et la souris va et vient. Je pense que c’est une belle solution pour le problème.
La communication est démarrée après l’envoi d’un « 1 » à l’Arduino dans la fonction principale en bas.
Si vous l’essayer dehors, lorsque vous appuyez sur les boutons de la frette, c’est le même que lorsque vous appuyez sur les touches correspondantes de votre clavier.
Nous allons mettre dans le jeu !