Étape 6: Croquis de l’Arduino et mohawk
Les Mohawks : prendre le pinceau 3" po et crazyglue, versez-la à environ 1 1/4 po po de l’extrémité du pinceau. Faire tremper les deux côtés (porter des gants) et laisser sécher pendant 20 min... Une fois sec coupe 1 1/2 po de l’extrémité de la brosse, maintenant Prenez ce morceau et le coller à la tête à l’aide d’un ciment de pvc ou toute autre colle plastique.
Branchez votre Arduino pour votre téléchargement ordinateur le croquis ci-dessous. Félicitations que vous avez terminer la construction de la TurtleDuino.
TurtleDuino Obstacles évitant Robot par : RobDavinci
bibliothèque de Servo //include #include < Servo.h >
const int RForward = 0 ;
const int RBackward = 180 ;
const int LForward = RBackward ;
const int LBackward = RForward ;
const int RNeutral = 90 ;
const int LNeutral = 90 ; constantes de vitesse du moteur
const int pingPin = 7 ;
const int irPin = 0 ; Goupille de Sharp capteur infrarouge
const int dangerThresh = 10 ; seuil d’obstacles (en cm)
int leftDistance, rightDistance ; distance de chaque côté
Servo panMotor ;
Servo leftMotor ;
Servo rightMotor ; déclarer des moteurs
longue durée ; temps nécessaire pour recevoir PING))) signal
void setup()
{
rightMotor.attach(11) ;
leftMotor.attach(10) ;
panMotor.attach(6) ; fixer les moteurs aux broches appropriées
panMotor.write(90) ; jeu de PING))) pan vers le centre
}
void loop()
{
int distanceFwd = ping() ;
Si (distanceFwd > dangerThresh) //if chemin est clair
{
leftMotor.write(LForward) ;
rightMotor.write(RForward) ; aller de l’avant
}
d’autre //if chemin est bloqué
{
leftMotor.write(LNeutral) ;
rightMotor.write(RNeutral) ;
panMotor.write(0) ;
Delay(500) ;
rightDistance = ping() ; Scan vers la droite
Delay(500) ;
panMotor.write(180) ;
Delay(700) ;
leftDistance = ping() ; numérisation vers la gauche
Delay(500) ;
panMotor.write(90) ; retourner au centre
Delay(100) ;
compareDistance() ;
}
}
Sub compareDistance()
{
Si (leftDistance > rightDistance) //if gauche est moins obstruée
{
leftMotor.write(LBackward) ;
rightMotor.write(RForward) ; tourner à gauche
Delay(2000) ;
}
ElseIf (rightDistance > leftDistance) //if droit est moins obstruée
{
leftMotor.write(LForward) ;
rightMotor.write(RBackward) ; tourner à droite
Delay(2000) ;
}
d’autre //if qu'ils sont tout aussi obstrués
{
leftMotor.write(LForward) ;
rightMotor.write(RBackward) ; virage de 180 degrés
Delay(2000) ;
}
}
ping() longue
{
Impulsion de signal envoyer des PING)))
pinMode (pingPin, sortie) ;
digitalWrite (pingPin, basse) ;
delayMicroseconds(2) ;
digitalWrite (pingPin, HIGH) ;
delayMicroseconds(5) ;
digitalWrite (pingPin, basse) ;
Obtenir la durée qu’il faut pour recevoir l’écho
pinMode (pingPin, entrée) ;
durée = pulseIn (pingPin, HIGH) ;
Convertir la durée en distance
durée de retour / 29 / 2 ;
}
J’espère que ce instructable était amusant pour vous car il était pour moi tout en bâtissant. Si vous avez besoin aider faites le moi savoir et je serai plus qu’heureux de vous aider à construire votre robot.