ArduBot (5 / 8 étapes)

Étape 5: capteurs

La communauté de parallaxe et arduino ont un grand exemple codes sur comment faire fonctionner les capteurs PIR et PING utilisés dans ce robot. Donc il devrait être seulement une question d’attribution et indépendante des fonctions pour chaque capteur afin que nous pouvons appeler pour eux quand nous le souhaitons.
Voici quelques fonctions que j’ai défini pour le capteur de PING :

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned longue durée, pouces, cm, dir ;   durée mesure le temps entre les PINGs
minsafe long = 15 ;                         distance de sécurité minimale devant robot
int count ;                                 utilisé pour aider à identifier lorsque le robot est dans un coin

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long PING() {//triggers une fois le capteur de ping et retourne la valeur
pinMode (pingPin, sortie) ;              Faire la Pingpin à la sortie
digitalWrite (pingPin, basse) ;                 Envoyer une impulsion faible
delayMicroseconds(2) ;                        attendez deux microsecondes
digitalWrite (pingPin, HIGH) ;               Envoyer une impulsion de haute
delayMicroseconds(5) ;                       attendez 5 secondes micro
digitalWrite (pingPin, basse) ;               Envoyer une impulsion faible
pinMode(pingPin,INPUT) ;                 passer la Pingpin à l’entrée
durée = pulseIn (pingPin, HIGH) ; Ecoute pour echo

/ * Convertir micro secondes en pouces
*/

po = microsecondsToInches(duration) ;
cm = microsecondsToCentimeters(duration) ;
Serial.Print (cm) ;
Serial.Print ("CM") ;
Serial.println () ;

retour cm ;

}

{microsecondsToInches(long microseconds) long
retourner les microsecondes / 74 / 2 ;
}
{microsecondsToCentimeters(long microseconds) long
retourner les microsecondes / 29 / 2 ;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long leftping () {//records distance vers la gauche du robot et le renvoie vers le centre
int gauche ;                                            utilisé pour enregistrer la distance mesurée par le PING ()
(DE GAUCHE) ;
retard (420) ;
STOP () ;
Delay(10) ;

Serial.Print ("gauche:") ;
gauche = PING () ;
retard (420) ;

(DE DROITE) ;
retard (420) ;
STOP () ;
retour gauche ;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned long rightping () {//records distance à la droite du robot et le renvoie vers le centre
droit int ;
(DE DROITE) ;
retard (420) ;
STOP () ;
retard (10) ;

Serial.Print ("droit:") ;
droite = PING () ;
retard (420) ;

(DE GAUCHE) ;
retard (420) ;
STOP() ;
retourner à droite ;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long forwardping () {//essentiallhy PING
int moyen ;
STOP () ;
retard (10) ;
Serial.Print ("moyenne:") ;
moyenne = PING () ;
retour moyen ;

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long choisi () {//used à choisir entre nos fonctions deux ping
leftping() ;
forwardping() ;
rightping() ;
if(leftping > rightping)
Si (leftping > forwardping)
(DE GAUCHE) ;
retard (420) ;
STOP() ;
dir = forwardping () ;
Si (rightping > leftping)
Si (rightping > forwardping) {}
(DE DROITE) ;
retard (420) ;
STOP() ;
dir = forwardping () ;
} else
STOP () ;
dir = forwardping () ;

}
/////////////////////////////////////////////////////////////////////////////////////////////////////

Articles Liés

Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Salut tout le monde,Cette Instructables est divisé en deux phases, qui le rend approprié pour les débutants et les concepteurs de robot intermédiaire.La première phase couvre l'utilisation de l'arduino nano Conseil seulement comme contrôleur. Avec ce
Plate-forme robotique expérimentale

Plate-forme robotique expérimentale

Salut! Mon nom est Andrew, et je suis un étudiant en informatique.J'ai commencé à travailler sur ce robot pour les deux amusant et dans le cadre de ma thèse de licence.Tout a commencé quand j'ai acheté un kit de robot provenant d'un site appelé Conra