Étape 6: Monter un circuit jouet
Maintenant, il y a un peu d’un cornichon ici. L’arduino transmet habituellement une valeur de « 0 ». Toutefois, pour des raisons que nous n’avons pas encore déterminé, l’arduino transmet parfois tout comme un caractère ASCII 48 au-dessus de tout ce que vous avez désiré. Nous sommes arrivés à cette difficulté en ayant juste le test arduino récepteur pour les deux valeurs possibles, mais nous serons sûrs de mettre à jour si nous comprendre pourquoi nous obtenons les valeurs drôles parfois. Il est utile de s’assurer que vous utilisez la commande Serial.write(), pas les commandes Serial.print() ou Serial.println() lorsque vous espérez réellement transmettre des données à travers les radios. Aussi, à ce stade, que vous commencez à brancher les choses dans et mettre le code sur la Arduinos, vous voudrez éviter le téléchargement de code à un Arduino qui a rien branché c' est TX ou RX broches (pins 0 & 1).
Nous avons utilisé trois 1.5V piles en série pour alimenter l’arduino (trois AAs). L’arduino effectue une réglementation de l’énergie interne, donc vous pouvez alimenter l’arduino hors de 4, 5V ou 6V.
Souder les cosses de sol des capteurs deux flex et l’ensemble, en laissant l’extrémité d’un plomb à brancher sur la carte arduino. Faites de même avec les fils de trois alimentation. Le sol une des broches au sol les fils sur l’arduino et la puissance de Branchez les fils la broche d’alimentation 5V. Branchez le câble d’alimentation de le XBee dans le 3.3V pin et le fil de masse de le XBee dans une autre goupille de la terre, puis branchez le cordon RX/DIN sur la broche TX de l’arduino. (Le XBee reçoit de l’arduino, d'où l’entrée de le XBee connecté à la sortie de l’arduino.) Enfin, branchez le fil de masse de l’emballage de la pâte dans la broche de terre final et le câble d’alimentation de la batterie dans l’axe du Vin.
Les circuits de jouet sont maintenant assemblé ! Maintenant tout ce que vous devez faire est de programmer l’arduino. Nous avons utilisé le code pour contrôler notre jouet ci-dessous.
Lecture de valeurs
int accelVal = 0 ;
int bendVal1 = 0 ;
int bendVal2 = 0 ;
int accelRef ;
int bendRef1 ;
int bendRef2 ;
accelOn booléen = false ;
bendOn booléen = false ;
int sendVal = 0 ;
void setup() {}
Ce code s’exécute une fois, au début
Serial.Begin(9600) ; Initialiser le serial monitor
Obtenir des valeurs de référence : ceux-ci permettent de calibrer les valeurs que nous envoyons pour toute variation dans le comportement du composant
accelRef = analogRead(A3) ;
bendRef1 = analogRead(A4) ;
bendRef2 = analogRead(A5) ;
}
void loop() {}
Ce code s’exécute en continu
Delay(1) ;
Obtenir des valeurs
accelVal = analogRead(A3) ;
bendVal1 = analogRead(A4) ;
bendVal2 = analogRead(A5) ;
Vérifier si l’accéléromètre est activé
Si ((accelVal-accelRef) > (accelRef / 3)) {/ / il s’agit d’une référence arbitraire que nous avons trouvé a bien fonctionnée
accelOn = true ;
} else {}
accelOn = false ;
}
Vérifier si les capteurs de pliage sont sur
Si ((bendVal1 < (3 * bendRef1/4)) || (bendVal2 < (3 * bendRef2/4))) {/ / Il s’agit d’une référence arbitraire
bendOn = true ;
} else {}
bendOn = false ;
}
Déterminer la valeur correcte de transmettre basée sur les capteurs
Si (accelOn == false) {}
Si (bendOn == false) {}
sendVal = 0 ;
} else {}
sendVal = 1 ;
}
} else {}
Si (bendOn == false) {}
sendVal = 2 ;
} else {}
sendVal = 3 ;
}
}
Transmettre la valeur
Serial.Write(sendVal) ;
}