La souris Wiichuck USB en utilisant un Arduino Leonardo (2 / 3 étapes)

Étape 2: logiciel

Après avoir reçu mon Leonardo nouveau brillant, j’ai commencé à étudier comment j’allais obtenir tous les travailleurs. Puisque le Wiichuck utilise 5 V puissance et communique via I2C, le câblage a été relativement simple. J’ai simplement connecté les 5 lignes V, GND, SDA et SCL pour les ports correspondants de Leonardo et j’étais prêt à aller.

Le logiciel a été un peu plus difficile. Il m’a fallu un certain temps et beaucoup d’expérimentation pour trouver le code qui allait travailler pour ce que j’avais besoin. Comme j’ai mentionné précédemment, les deux la bibliothèque de fonctions Nunchuck (qui je l’ai inclus dans ce instructable) et le code source original (que je n’arrive pas à obtenir de télécharger correctement, donc je vais juste copier et coller ci-dessous) ont été écrits par d’autres et ensuite modifiés pour mes fins.

Essentiellement, ce que fait le code, c’est utiliser la bibliothèque de Nunchuck pour obtenir des données de la ' Chuck chaque ms. 10 avoir définir une plage pour la souris pour se déplacer dans, le code utilise cette gamme afin de déterminer le seuil au repos du joystick. Après que la boucle principale lit le C et Z les boutons et les sorties comme la gauche et droit de la souris boutons, le code puis va sur lire x et y axes. Après avoir soustrait la valeur de la position du centre de lecture reçue, la valeur absolue qui en résulte est comparée à la variable de seuil. Si la valeur est inférieure au seuil pour le mouvement, la distance de déplacement est définie sur 0, sinon la distance de déplacement est la distance de lecture. Si x ou y la distance n’est pas 0, la souris déplace la distance correspondante.

Il est à noter que tout ce processus peut fonctionner aussi bien avec l’accéléromètre. Au lieu d’utiliser les fonctions nunchuck_joyx et y, on pourrait facilement utiliser nunchuck_accelx et y. Je ne le recommanderais pas, cependant. Les résultats lorsque vous tentez d’utiliser la souris peuvent être... réussissez.

Wiichuck souris
Brian Krukoski
Avril 2012
rouge-+ 5, blanc-gnd, vert-sda, yllw-clck

#include < Wire.h >
#include « nunchuck_funcs.h »
int loop_cnt = 0 ;

paramètres pour la lecture de la manette :
gamme int = 40 ;               gamme de sortie de X ou Y mouvement
seuil d’int = rang/10 ;      seuil de repos
Centre int = gamme/2 ;         valeur de la position de repos

mouseIsActive booléen = false ;    pour contrôler la souris ou non
int lastSwitchState = faible ;        état antérieur de commutateur

void setup() {}
initialisation pour le Wiichuck
nunchuck_init() ;
Prenez le contrôle de la souris :
Mouse.Begin() ;
Serial.Begin(9600) ;
}

void loop() {}
Si (loop_cnt > 10) {/ / chaque 10 millisecondes pendant laquelle obtenir de nouvelles données
loop_cnt = 0 ;
nunchuck_get_data() ;

à droite et à gauche, cliquez sur contrôle
int leftState = nunchuck_cbutton() ;
Si (leftState) Mouse.press(MOUSE_LEFT) ; d’autre Mouse.release(MOUSE_LEFT) ;
int rightState = nunchuck_zbutton() ;
Si (rightState) Mouse.press(MOUSE_RIGHT) ; d’autre Mouse.release(MOUSE_RIGHT) ;

lire l’axe des x
int xReading = nunchuck_joyx() ; demande à la bibliothèque nunchuck_funcs pour x lecture axe
xReading = carte (xReading, 38, 232, 0, gamme) ; 38 et 232 arbitrairement déterminé par l’expérimentation, correspond à la gamme 0 et préréglage
int xDistance = xReading - center ;
Si (abs(xDistance) < seuil) valeur absolue //if de xDistance est inférieur au seuil prédéfini...
{
xDistance = 0 ;
}

lire l’axe y
int yReading = nunchuck_joyy() ; demande à la bibliothèque de nunchuck_funcs pour la lecture d’axe y
yReading = carte (yReading, 38, 232, 0, gamme) ; 38 et 232 arbitrairement déterminé par l’expérimentation, correspond à la gamme 0 et préréglage
int yDistance = yReading - center ;
Si (abs(yDistance) < seuil) valeur absolue //if d’yDistance est inférieur au seuil prédéfini...
{
yDistance = 0 ;
}

Déplacez la souris si les lectures sont au-dessus de 0
Si ((xDistance! = 0) || (yDistance! = 0)) {
Mouse.Move (xDistance, - yDistance, 0) ; yDistance - assure joystick style inversé
}
}
nunchuck_print_data() ; imprime les données nunchuck à serial monitor au débogage
loop_cnt ++ ;
Delay(1) ;

}

Articles Liés

Transformer une N64 Controller une manette de jeu USB en utilisant un Arduino Leonardo

Transformer une N64 Controller une manette de jeu USB en utilisant un Arduino Leonardo

Pour transformer une manette de jeu USB de controleur de la N64, la méthode la plus simple consiste à acheter un N64 Controller Adapter pour environ £15. Cependant il peut aussi être fait si vous avez un Arduino Leonardo ou tout autre carte Arduino a
L’émetteur RC à manette de jeu USB en utilisant Arduino

L’émetteur RC à manette de jeu USB en utilisant Arduino

Pourquoi est-ce que je devrais faire cela ?Quand il s'agit d'avions RC en utilisant un simulateur de vol peut être une excellente façon de perfectionner vos compétences en basse saison ou même préparer pour votre premier vol. L'inconvénient majeur au
Manette de Wii USB utilisant Arduino Leonardo

Manette de Wii USB utilisant Arduino Leonardo

Le week-end dernier, j'ai essayé la nouvelle RetroPie sur ma belle nouvelle Raspberry Pi 3, mais le contrôleur de jeu que j'ai est l'oldie Wii manette classique ; alors, comment puis-je convertir il à un contrôleur de jeu USB ordinaire ?Après quelque
À l’aide d’Arduino Leonardo comme souris et clavier, controll par bluetooth.

À l’aide d’Arduino Leonardo comme souris et clavier, controll par bluetooth.

Une fonctionnalité d'awsome Arduino Leonardo, qui rendent la Commission spéciale, est qu'elle peut servir de souris et de clavier sur ordinateur. Cela pourrait être utile pour contrôler l'ordinateur de manière différente, comme le bâton de joie et BL
Souris optique odomètre pour Robot (Arduino)

Souris optique odomètre pour Robot (Arduino)

Déterminer avec exactitude l'état d'avancement d'un robot à roues peut être assez difficile (et cher!). Dead reckoning suppose que nos moteurs sont parfaitement adaptées, nos roues ne glissent pas et la surface nous courons sur est parfaitement plane
Contrôleur de Volume PC USB Media basé sur Arduino

Contrôleur de Volume PC USB Media basé sur Arduino

Bonjour à tous et Bienvenue sur mon troisième Instructable.Un de mes amis a un système de son avec un cadran de réglage du volume, et il est assis sur son bureau à la recherche de vraiment bien. Je voulais quelque chose de semblable, mais avec des fo
Ajouter contrôleur de jeu USB pour Arduino Leonardo/Micro

Ajouter contrôleur de jeu USB pour Arduino Leonardo/Micro

Remarque importante : Cet article est pour Arduino IDE version 1.6.5 (ou au-dessous). Pour ajouter un contrôleur de jeu USB un Arduino Leonardo ou le Micro à l'aide de l'IDE Arduino version 1.6.6 (ou supérieur) Voir l'Instructable suivant : Arduino L
En utilisant un Arduino de contrôler ou de tester un dispositif électronique de SPI

En utilisant un Arduino de contrôler ou de tester un dispositif électronique de SPI

il y a beaucoup de dispositifs électroniques qui utilisent le bus SPI, ou le bus Serial Peripheral Interface, pour les communications (p. ex. divers capteurs, LCD affiche, potentiomètres numériques, convertisseurs D/A et A/D, sans fil émetteurs et ré
Simple distance données traçant utilisant Android / Arduino / pfodApp

Simple distance données traçant utilisant Android / Arduino / pfodApp

Simple distance données traçant utilisant Android / Arduino / pfodApp Ce Instructable vous montre comment tracer des données de capteur Arduino sur votre mobile Android et le capturer pour ensuite télécharger vers votre ordinateur.  Ces instructions
Foudre de Noël en utilisant ide arduino dp32 Conseil

Foudre de Noël en utilisant ide arduino dp32 Conseil

Choses que nous devons :1. DP32 Conseil2. PGM programmeur (pour programmer le jury)3. 2 câbles USB (micro et mini)4. Adruino IDE5. chargeur de démarrageÉtape 1: Télécharger l'ide MPLABX et ArduinoLien pour télécharger MPLABX -> http://www.microchip.c
Afficher le code Morse sur Chipkit DP 32 utilisant IDE Arduino

Afficher le code Morse sur Chipkit DP 32 utilisant IDE Arduino

Dans ce projet, nous allons programmer une puce kit dp 32 pour afficher un message en code morse à l'aide de l'IDE Arduino. Le message qui sera affiché est inscrits sous forme de chaîne dans le programme.Etape 1: Tout ce dont nous avons besoin :Les a
En utilisant un Arduino Uno R3 comme un contrôleur de jeu

En utilisant un Arduino Uno R3 comme un contrôleur de jeu

Mise à jour de 2016 : je vais vous donner n'est plus prise en charge dans la section commentaires. Il s'agit d'une méthode dépassée et obsolète qui a très peu de raisons de plus être utilisé. Le garder seulement pour des fins d'information.Naturellem
Edison Intel basé chauffée enceinte d’imprimante 3d (utilisation un arduino, edison suce, a gelé à chaque fois!)

Edison Intel basé chauffée enceinte d’imprimante 3d (utilisation un arduino, edison suce, a gelé à chaque fois!)

** Avertissement ** ce Instructable implique l'utilisation de courant de 120 volts. Si vous n'êtes pas confortable avec haute tension, un sèche-cheveux 12v et le relais peuvent fonctionner (je n'ai pas un à tester, si quelqu'un le fait, s'il vous pla
Lumière de LED en utilisant un Arduino

Lumière de LED en utilisant un Arduino

Un Arduino est une informatique libre, logiciel open-source et microcontrôleur à base de produits pour la construction d'appareils numériques et des objets interactifs qui peuvent détecter et contrôler les périphériques physiques. Il y a plusieurs tâ