6 d’Arduino shot de tourelle à l’élastique (Wii Nunchuck + Arduino) (4 / 5 étapes)

Étape 4: Le logiciel

Maintenant pour le vrai plaisir : communication I2C !

Wii Nunchuks communiquent par un langage appelé I2C, qui n’est pas incroyablement compliqué, mais nous avons une bibliothèque Arduino pour faire face à cela, la bibliothèque de fils.

Voici mon code, faites ce que vous voulez de lui !

[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

#include //include la bibliothèque de fils
#include
Servo LR ; servo pour mouvement gauche-droite
Servo UD ; servo pour le mouvement haut-bas
Bang de servo ; servo pour le tir des bandes de caoutchouc

char de nunchuck = 0xA4 >> 1 ; définit l’adresse nunchuck comme 0xA4 (sur le plan opérationnel 0 x 52)

uint8_t nunData [6] ; pour le stockage des données

chunk int ; pour garder une trace de l’octet taille des blocs de données
joyX int ;
int joyY ;
accelX int ; Assurez-vous d’ajouter deux bits à cause du protocole sur l’emballage de la nunchuck
int accelY ;
int accelZ ;
octet Zbutt ; petit dernier d’isolats de numData [5]
octet Cbutt ;

void setup() {}
LR.attach(9) ;
UD.attach(10) ;
Bang.Attach(11) ;

Serial.Begin(19200) ;
Wire.Begin() ; démarre la communication I2C
Initialize() ; met en place le nunchuck
Delay(100) ;
}

void initialize() {}
Wire.beginTransmission (0 x 52) ; transmettre à un périphérique 0 x 52
Wire.Send (0 x 40) ; envoie l’adresse mémoire
Wire.Send (0 x 00) ; envoie a envoyé un zéro.
Wire.endTransmission () ; arrêter la transmission
}

void loop() {}

Wire.requestFrom (nunchuck, 6) ; m’envoyer ces données !
Chunk = 0 ;
while(Wire.available()) {//while il existe des données à envoyer
nunData [morceau] = decode(Wire.receive()) ; stocke les données de valeur « morceau » de nunData, ainsi que décode
Chunk ++ ;
}

makeVars() ;

Convert() ; empaqueter les données du capteur
Delay(50) ;
}

void convert() {//tells nunchuck pour « emballer » les données du capteur
Wire.beginTransmission(nunchuck) ; dire le nunchuck à l’écoute
Wire.Send(0x00) ; envoie zéro
Wire.endTransmission() ; ARRÊTER
}

void makeVars() {}
joyX int = nunData [0] ;
int joyY = nunData [1] ;

accelX int = nunData [2] * 2 * 2 ; Assurez-vous d’ajouter deux bits à cause du protocole sur l’emballage de la nunchuck
int accelY = nunData [3] * 2 * 2 ;
int accelZ = nunData [4] * 2 * 2 ;

octet Zbutt = (nunData [5] >> 0) & 1 ; petit dernier d’isolats de numData [5]
octet Cbutt = (nunData [5] >> 1) & 1 ;

accelX = accelX + (nunData [5] >> 2) + 2 * (nunData [5] >> 3) ; Ajoute les deux bits manquants à chaque valeur d’accel (manque de morceaux trouvés à 6 octets)
accelY = accelY + (nunData [5] >> 4) + 2 * (nunData [5] >> 5) ;
accelZ = accelZ + (nunData [5] >> 6) + 2 * (nunData [5] >> 7) ;

int horiz = carte (joyX, 78, 102, 230, 23) ; Il fait donc il y a une petite zone dans le milieu où le joystick ne sera pas actionner n’importe quoi (direction X)
Si (abs (horiz - 90) < = 2) {}
Horiz = 90 ;
}
ElseIf (horiz > 90) {}
Horiz-= 2 ;
}
ElseIf (horiz < 90) {}
Horiz += 2 ;
}

int vert = carte (joyY, 28, 231, 80, 100) ; Il fait donc il y a une petite zone dans le milieu où le joystick ne déclencher quoi que ce soit (direction Y)
Si (abs (vert - 90) < = 2) {}
vert = 90 ;
}
ElseIf (vert > 90) {}
sinople-= 2 ;
}
ElseIf (vert < 90) {}
vert = 2 ;
}

shoot int = 90 ; crée de la valeur de servo tir

Si ((Zbutt == 0) & & (Cbutt! = 0)) {//if Z est enfoncé, tournez le bouton tir servocommande avant lentement
tirer = 95 ;
}

Si ((Cbutt == 0) & & (Zbutt! = 0)) {//if C est enfoncée, faites tourner rapidement le servo arrière de tir
tirer = 82 ;
}

LR.send(horiz) ; Envoyer toutes les valeurs de servo
UD.send(vert) ;
Bang.Send(Shoot) ;

}

décode les char (octet x) {//decodes valeur de la sonde (désigné par une déclaration antérieure)
x = (x ^ 0 x 17) + 0 x 17 ; Je n’ai aucune idée ce que cela signifie...
Return x ;
}

]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

Articles Liés

Arduino Wii Nunchuck controller

Arduino Wii Nunchuck controller

Comment faire pour commander 2 servos pensé le nunchuck wii.Étape 1: pièces Wii nunchuckArduino2 servoCarte de prototypageFils de raccordementÉtape 2: se connecter Brancher le nunchuck wii comme ce schéma.Étape 3: Télécharger le CodeÉtape 4: fait!!!
Sans fil Wii Nunchuck contrôlée Arduino

Sans fil Wii Nunchuck contrôlée Arduino

Utiliser un complètement non modifiée sans fil Wii Nunchuck comme un système de contrôle pour tout projet Arduino basé. Aucune paire d'émetteur/récepteur radio ajouté etc..Cette instructable assume-t-il certaine expérience avec le microcontrôleur Ard
Wii Nunchuck comme contrôleur généraliste via carte Arduino

Wii Nunchuck comme contrôleur généraliste via carte Arduino

Rappel des faits :J'ai fait une planche à roulettes électrique autonome qui est orientée à l'aide d'un Wii Nunchuck en utilisant le levier de commande de pouce sur le dessus ou en l'inclinant gauche ou droite, selon qui des deux boutons à l'extrémité
Niveau à bulle Wii Nunchuck Arduino

Niveau à bulle Wii Nunchuck Arduino

depuis que j'ai lu un article sur le blog todbot, j'ai acheté un couple de Wii Nunchucks d'ebay. Je ne me souviens pas combien j'ai payé pour eux, mais il était beaucoup moins cher que d'acheter l'accéléromètre planches en petits groupes. Avec les bi
Commander votre Robot à l’aide d’un Wii Nunchuck (et un Arduino)

Commander votre Robot à l’aide d’un Wii Nunchuck (et un Arduino)

après les avoir portés moi-même en jouant à Wii boxe je suis arrivé à penser ne serait-il pas merveilleux si je pourrais l'utiliser pour contrôler mon robot, (à la recherche de ma main gauche).En regardant autour de l'internet j'ai trouvé une foule d
Arduino Wii nunchuck et Wii motion plus avec code mis à jour pour IDE 1.0.2 et del

Arduino Wii nunchuck et Wii motion plus avec code mis à jour pour IDE 1.0.2 et del

alors, j'ai essayé de pirater mon nunchuck Wii parce que je veux contrôler les moteurs et les lumières avec le nunchuck Wii.Le premier problème que j'ai trouvé était de savoir comment connecter le contrôle sans adaptateur, je comptais en faire un, ma
Wii Nunchuck contrôlée tourelle

Wii Nunchuck contrôlée tourelle

vous avez 99 problems ? Satanés écureuils ? Hordes d'enfants costumés ennuyeux, habillés comme des zombies ? Hordes de zombies réelles à votre porte ? Voici les types de problèmes qui peuvent être résolus en lançant des choses ? Dans l'affirmative, c
Matrice de LED Arduino avec Wii Nunchuck contrôle

Matrice de LED Arduino avec Wii Nunchuck contrôle

vidéo de la Main :Documentation
Arduino / Wii contrôlé tourelle de fusée de Lego Star Wars

Arduino / Wii contrôlé tourelle de fusée de Lego Star Wars

carte Arduino An reçoit des données d'un Wii Nunchuck et l'envoie au rois servos: x, y et détente. Un laser indépendant a été ajouté pour le ciblage. Actuellement très bancale à cause des servos bon marché utilisés.Etape 1: Construction La tourelle d
Arduino animatronics-Vérifiez vos costumes génial plus impressionnants !

Arduino animatronics-Vérifiez vos costumes génial plus impressionnants !

Voici comment ajouter des lumières, de sons et d'action à votre projet Halloween favori en utilisant l'open source Arduino microcontrôleur. Arduino est facile d'apprendre à utiliser et il ouvre un tout nouveau monde pour les constructeurs de costume
Ajouter une lueur à une poignée de Nyko Perfect Shot Wii

Ajouter une lueur à une poignée de Nyko Perfect Shot Wii

est cette instructable va être tout sur l'ajout d'un flash à l'extrémité de la poignée de pistolet de Nyko Perfect Shot pour télécommandes Wii.J'aime la poignée beaucoup de tir des jeux comme Resident Evil, mais pour moi il manquait les accents visue
Telecran (Etch a Sketch) + Arduino = Telecranduino !

Telecran (Etch a Sketch) + Arduino = Telecranduino !

je suis tombé sur un tas de moteurs pas à pas et je cherche depuis pour un projet à faire avec les enfants.Un vieux Telecran (Français pour Etch-a-Sketch) plus tard, nous sommes en affaires !Ce que j'ai utilisé pour ce projet :-un arduino Uno-2 moteu
Labyrinthe de l’Arduino

Labyrinthe de l’Arduino

le but de notre projet était de pain Conseil uneArduino micro contrôleur de servo de commande deuxmoteurs sur un axe « X » et « Y » avec une manette de jeu.Le programme et le servo pourraient alors servir àcontrôler un labyrinthe en bois, mais peut é
Animatronic tentacules avec Arduino

Animatronic tentacules avec Arduino

AVERTISSEMENT *** Cette instructable est documentation pour un travail en cours. Bien que le projet n'est pas encore terminée, il a atteint un endroit où je pense qu'il peut commencer à être bénéfiques aux autres responsables.Le concept de ce projet