Nunchuk sans fil contrôlée animatronique poupée (4 / 13 étapes)

Étape 4: Le code

Dans cette étape nous compiler et charger le code et tester notre câblage.

1. connecter l’arduino à l’ordinateur

2. Ouvrez le programme Arduino 18. Si vous ne l’avez déjà, vous pouvez le télécharger depuis la page Web Arduino :
http://Arduino.cc/en/main/Software

3. Assurez-vous que vous avez le type correct sélectionné et le port usb correcte sélectionnée avant de continuer

4. Copiez et collez le code ci-dessous. Ce code a été écrit en utilisant le code de l’utilisateur bradlight sur ce forum et le code de mon instructeur, mais je ne sais pas qui a écrit : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1259091426

5. compiler le code

6. s’il n’y a pas d’erreurs (il ne devrait pas y avoir), téléchargez le code sur l’arduino

7. une fois le code charge vous devriez maintenant être capable de contrôler le servo en inclinant le nunchuck, gauche, droite, haut ou le bas. Si le servo ne répond pas, maintenez le bouton de réinitialisation, synchronisez le nunchuk, puis relâchez le bouton de réinitialisation. J’ai trouvé que le nunchuk doit être synchronisé avant que démarre le code ou le servo se coince. C’est pourquoi ma conception comprend un interrupteur momentané pour un bouton de réinitialisation.

#include < Wire.h >
#include < string.h >
#include < stdio.h >

uint8_t outbuf [6] ;

cnt int = 0 ;
int ledPin = 13 ;

int servoPin = 5 ;
int servoPin2 = 6 ;

int pulseWidth = 0 ;
int pulseWidth2 = 0 ;

long lastPulse = 0 ;
long lastPulse2 = 0 ;

int z_button = 0 ;
int c_button = 0 ;

int refreshTime = 20 ;

int minPulse = 1000 ;
int minPulse2 = 500 ;

dtime int = 10 ;

#define pwbuffsize 10
long pwbuff [pwbuffsize] ;
long pwbuffpos = 0 ;
long pwbuff2 [pwbuffsize] ;
long pwbuffpos2 = 0 ;

void setup()
{
Serial.Begin (19200) ;
Wire.Begin () ;
nunchuck_init () ;
pinMode (servoPin, sortie) ;
pinMode (servoPin2, sortie) ;

pulseWidth = minPulse ;
pulseWidth2 = minPulse2 ;
Serial.Print ("Finished setup\n") ;
}

Sub nunchuck_init()
{
Wire.beginTransmission (0 x 52) ;
Wire.Send (0xF0) ;
Wire.Send 0 x (55) ;
Wire.endTransmission () ;
Delay(30) ;

Wire.beginTransmission(0x52) ;
Wire.Send (0xFA) ;
Wire.endTransmission() ;
Delay(30) ;

Wire.requestFrom(0x52, 6) ;
Delay(30) ;
}

Sub send_zero()
{
Wire.beginTransmission (0 x 52) ;
Wire.Send (0 x 00) ;
Wire.endTransmission () ;
}

int t = 0 ;

void loop()
{
t ++ ;
Enfin = millis() ;

Si (t == 1) {}

t = 0 ;

Wire.requestFrom (0 x 52, 6) ;

tandis que (Wire.available ()) {}
outbuf [cnt] = nunchuk_decode_byte (Wire.receive ()) ;
digitalWrite (ledPin, HIGH) ;
CNT ++ ;
}

Si (cnt > = 5) {}

printNunchuckData() ;

int z_button = 0 ;
int c_button = 0 ;

Si ((outbuf [5] >> 0) & 1)
z_button = 1 ;
Si ((outbuf [5] >> 1) & 1)
c_button = 1 ;

Switch (c_button) {}
cas 1 :
Switch (z_button) {}
case 0 :
rupture ;
cas 1 :
muovi() ;
rupture ;
}
rupture ;
case 0 :
Switch (z_button) {}
case 0 :
Delay(10000) ;
rupture ;


cas 1 :
Delay(3000) ;
rupture ;
}
rupture ;
}
}

CNT = 0 ;
send_zero() ;

} / / if(t==)

updateServo() ;

Delay(dtime) ;
}

void updateServo() {}

Si (millis() - lastPulse > = refreshTime) {}

digitalWrite (servoPin, HIGH) ;
delayMicroseconds(pulseWidth) ;
digitalWrite (servoPin, basse) ;

digitalWrite (servoPin2, HIGH) ;
delayMicroseconds(pulseWidth2) ;
digitalWrite (servoPin2, basse) ;

lastPulse = millis() ;
}
}

int i = 0 ;
Sub printNunchuckData()
{
int joy_x_axis = outbuf [0] ;
int joy_y_axis = outbuf [1] ;
int accel_x_axis = outbuf [2] * 2 * 2 ; // * 2 * 2;
int accel_y_axis = outbuf [3] * 2 * 2 ; // * 2 * 2;
int accel_z_axis = outbuf [4] * 2 * 2 ; // * 2 * 2;

int z_button = 0 ;
int c_button = 0 ;

Si ((outbuf [5] >> 0) & 1)
z_button = 1 ;
Si ((outbuf [5] >> 1) & 1)
c_button = 1 ;
Si ((outbuf [5] >> 2) & 1)
accel_x_axis += 2 ;
Si ((outbuf [5] >> 3) & 1)
accel_x_axis += 1 ;

Si ((outbuf [5] >> 4) & 1)
accel_y_axis += 2 ;
Si ((outbuf [5] >> 5) & 1)
accel_y_axis += 1 ;

Si ((outbuf [5] >> 6) & 1)
accel_z_axis += 2 ;
Si ((outbuf [5] >> 7) & 1)
accel_z_axis += 1 ;

Serial.Print (i, DEC) ;
Serial.Print ("\t") ;

Serial.Print ("X:") ;
Serial.Print (joy_x_axis, DEC) ;
Serial.Print ("\t") ;

Serial.Print ("y") ;
Serial.Print (joy_y_axis, DEC) ;
Serial.Print ("\t") ;

Serial.Print ("AccX:") ;
Serial.Print (accel_x_axis, DEC) ;
Serial.Print ("\t") ;

Serial.Print ("AccY:") ;
Serial.Print (accel_y_axis, DEC) ;
Serial.Print ("\t") ;

Serial.Print ("AccZ:") ;
Serial.Print (accel_z_axis, DEC) ;
Serial.Print ("\t") ;

Serial.Print (z_button, DEC) ;
Serial.Print ("") ;
Serial.Print (c_button, DEC) ;
Serial.Print ("\r\n") ;
i ++ ;
}

nunchuk_decode_byte de char (char x)
{
x = (x ^ 0 x 17) + 0 x 17 ;
Return x ;
}

Sub muovi () {}
flotteur tilt = (700 - outbuf[3]*2*2) ;
flotteur tilt2 = outbuf [2] * 2 * 2 ;

inclinaison = (inclinaison) ;
pulseWidth = (inclinaison * 5) + minPulse ;

Tilt2 = (tilt2-288) ;
pulseWidth2 = (tilt2 * 5) + minPulse2 ;

pwbuff [pwbuffpos] = pulseWidth ;
pwbuff2 [pwbuffpos2] = pulseWidth2 ;

Si (++ pwbuffpos == pwbuffsize) pwbuffpos = 0 ;
Si (++ pwbuffpos2 == pwbuffsize) pwbuffpos2 = 0 ;

pulseWidth = 0 ;
pulseWidth2 = 0 ;

pour (int p = 0; p < pwbuffsize; p ++) {}
pulseWidth += pwbuff [p] ;
pulseWidth2 += pwbuff2 [p] ;
}

pulseWidth / = pwbuffsize ;
pulseWidth2 / = pwbuffsize ;

}



Articles Liés

Sans fil contrôlées omanais directionnel Robot Soccer à l’aide de la nRF 24L 01 + et Arduino

Sans fil contrôlées omanais directionnel Robot Soccer à l’aide de la nRF 24L 01 + et Arduino

Hey tout le mondeBienvenue sur mon premier instructable. Un robot sans fil contrôlé omanais directionnelle robot.a sans fil contrôlée peut être utilisé dans de nombreux ways.i fait cela pour jouer un football parce qu'il y avait un événement du footb
3D imprimé main gant sans fil contrôle

3D imprimé main gant sans fil contrôle

Cette instructable a été créée conformément à une exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). C'est une main imprimés 3D seul degré de liberté sans fil muni d'un gant. Les doigts de la main sont transpor
Autonome, sans fil contrôlée aéroglisseur

Autonome, sans fil contrôlée aéroglisseur

il s'agit d'une instructable qui vous emmène à travers un ensemble mois et demi de travail, concevoir et créer un wirelessly contrôlée aéroglisseur modulaire, qui peut être contrôlé avec un contrôleur RC, ou fait totalement autonome. Je vais vous gui
Sans fil contrôler un Robot en utilisant Arduino et Modules RF !

Sans fil contrôler un Robot en utilisant Arduino et Modules RF !

/*Edit 05/05/2016Hé les gars, j'ai été occupé avec le Collège et ne pouvait pas répondre aux commments. La plupart de vous tous voulait le code et schémas faits un peu mieux alors j'ai fait les schémas sur Eagle 7.2.0 et téléchargées tout sur Github.
Sans fil contrôlé aéroglisseur (Wonder4)

Sans fil contrôlé aéroglisseur (Wonder4)

L'aéroglisseur est le dispositif qui peut voyager par voie terrestre sans roues. En raison de l'enthousiasme pour le génie et l'exigence du parcours Vg100, nous, quatre étudiants de UM-SJTU Joint Institute, a formé l'équipe Wonder4 et nos propres aér
Arduino sans fil contrôlée de réservoir (nRF24L01)

Arduino sans fil contrôlée de réservoir (nRF24L01)

Salut!Aujourd'hui je vais vous montrer comment construire un réservoir d'Arduino contrôlée et télécommande. La 3d imprimés parties du réservoir (à l'exception du contrôleur, suivre le guide et le réservoir de la couverture) ont été conçus par timmicl
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
Interrupteur de contrôle horaire (433MHz) sans fil de Arduino pour plusieurs périphériques

Interrupteur de contrôle horaire (433MHz) sans fil de Arduino pour plusieurs périphériques

J'ai écrit cette instructable parce que j'ai fait un projet similaire récemment et pensé qu'il serait agréable d'écrire mon travail et partager avec les autres.Ce que nous voulons atteindre avec cette instructable, est sans fil contrôler plusieurs ap
Un contrôle sans fil, babillard électronique Arduino-Powered

Un contrôle sans fil, babillard électronique Arduino-Powered

construire vous-même un babillard électronique sans fil contrôlé, Arduino-powered !Voici un projet simple qui crée un babillard électronique programmable sans fil. Il utilise des modules XBee pour fournir une liaison série sans fil entre votre ordina
Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

le bouclier inventeurs utilise un tuyau sans fil, qui est un module RF sans fil spécial qui vous permet facilement et de manière fiable, envoyer et recevoir les données sans erreur sans fil entre deux ou plusieurs cartes Arduino.C'est Long Range – le
Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Il s'agit d'un obstacle sans fil contrôlé, autonome détection robot !Un temps, j'avais fait ce Instructable et voulait faire quelques mises à jour majeures depuis.Voici les caractéristiques du robot:-1.HE de contrôle sans fil en utilisant des 433 mod
Sans fil de téléphone cellulaire allumeur

Sans fil de téléphone cellulaire allumeur

Contrôler un allumeur à distance depuis votre téléphone mobileVoici un allumeur sans fil contrôlé par un téléphone mobile. Il peut être utilisé pour allumer des feux d'artifice ou des fusées de modèle à bonne distance. Les principaux éléments sont :
Ajout de commande sans fil à Monkey Light M232

Ajout de commande sans fil à Monkey Light M232

cette instructable vous explique comment ajouter une télécommande sans fil à vos feux de vélo Monkey Light M232 existants. J'adore ces lumières - modèles rad 42, des tonnes de couleurs différentes, deux réglages de luminosité et faible consommation d
Sans fil Animatronic main

Sans fil Animatronic main

Voici une vidéo de quoi il ressemble pour l'instant :L'utilisation d'un robot devient une nécessité quotidienne, nous les utilisons pour la fabrication de produits et articles, aider les personnes ayant des besoins et même améliorer notre propre faib