Étape 6: Schéma de Circuit et le code !
La photo ci-dessus est le circuit Fritzing schématique de l’électronique utilisé pour permettre le mouvement autonome de la basse-cour de DJ. La seule partie manquant à partir du schéma est la connexion de batterie 9 V à l’Arduino Uno. Comme il ressort du schéma (et plus tard dans le code), le capteur à ultrasons déclenchera les servos de passer en rotation vers l’avance ou vers l’arrière, via le code de l’Arduino. Soyez avisé que le montage d’essai est uniquement utilisé pour son rail de puissance, donc une maquette très petit peut être utilisé pour cette configuration.
Voici le code que j’ai utilisé pour la basse-cour de DJ, il est entièrement commenté et après elle, je vais écrire une brève description de ses fonctionnalités :
/******************************************
BUT : Code de DJ BarnYardCréé par Chris Perilla
DATE : 11/04/2014
*******************************************/
#define echoPin 4 / / il s’agit de l’axe de l’écho
#define triggerPin 2 / / il s’agit de l’ergot de
#include //Include la bibliothèque de servo
Servo servoLeft ; roue gauche
Servo servoRight ; roue droite
/************************set-up function******************************************************************/ void setup() {
pinMode (echoPin, INPUT); //set pinmodes
pinMode (triggerPin, sortie) ;
servoLeft.attach(10) ; signal de servo gauche proviendra de la broche 10
servoRight.attach(9) ; signal à droite servo proviendra de la broche 9
}
/*************************main loop************************************************************************/
void loop() {}
servoLeft.write(105) ; rouler à vitesse med tant que pour exécuter à la même vitesse que le servo vilros
servoRight.write(0) ; fonctionner à pleine vitesse dans la même direction
digitalWrite (triggerPin, HIGH) ; faire une impulsion 10usec
delayMicroseconds(10) ;
digitalWrite (triggerPin, basse) ;
distance de l’int = pulseIn(echoPin,HIGH) ; maintenant lire l’impulsion qui est renvoyée par le capteur //pulseIn retourne la longueur de l’impulsion dans usec
flotter à distance1 = distance/58 ; distnace en cm
Si (distance1 < 25) {//if un objet est détecté
servoLeft.write(90) ; les deux moteurs arrêter
servoRight.write(90) ;
Delay(1000) ; attendre un sec
servoLeft.write(20) ; Définissez les deux servos à pleine vitesse en sens inverse
servoRight.write(180) ;
Delay(1000) ; attendre encore deuxième
servoLeft.write(180) ; alors seulement la servocommande gauche à fait pivoter afin que DJBarnYard se transforme
Delay(1500) ; puis il fera une boucle arrière et répétez
}
}
Code Description :
Pour le code préliminaire, je définis les broches echo et déclenchement du capteur et les servos de gauche et de droite. Je comprend pas la bibliothèque de servo ainsi.
Dans le setup Sub, j’ai mis les modes de broche pour l’Arduino, y compris les servos en utilisant le le servo .Brancher trouvé dans la bibliothèque de Servo.
En ce qui concerne la section Sub boucle, nous commençons par le code indiquant l’Arduino d’avoir les servos à rotation afin que la basse-cour DJ se déplace vers l’avant. On voit dans la partie commentée qu’un servo s’exécute plus lentement que les autres, c’est parce que j’utilisais deux marques différentes de servos. J’espère que vous n’avez pas ce problème, ce qui rendra votre code un peu plus cohérent. Ensuite, nous utilisons digitalWrite, delayMicroseconds et pulseIn pour créer une impulsion de 10 usec du capteur ultrasonique et l’impulsion qu’elle reçoit. Nous convertissons ensuite la longueur de l’impulsion à distance en cm. La si instruction commence, si un obstacle est détecté 25 cm ou moins loin alors ce qui suit va se passer ; les deux moteurs s’arrêter, inverser, et une seule roue (servo) tournera pour activer la basse-cour de DJ. Après cela si l’instruction est effectuée la boucle principale répétera. Donc, si il n’y a aucun obstacle au sein de 25 cm de Barnyard DJ après le si instruction puis il avancera jusqu'à ce qu’une telle entrave se pose.