Robot Arduino en 5 mn (10 / 10 étapes)

Étape 10 : code

Télécharger ce to.arduino et votre bien sur goooooo

#include
#include

Voici les constantes symboliques. Au lieu d’avoir à taper dans un non-sens NIP chaque fois que nous voulons faire quelque chose, nous pouvons écrire un facile de comprendre le nom, qui représente l’axe, le compilateur remplacera alors les noms avec les nombres
#define LeftMotorForward 8
#define LeftMotorBackward 9
#define RightMotorForward 10
#define RightMotorBackward 11
#define USTrigger 3
#define USEcho 2
#define MaxDistance 100
#define LED 13

Ici, nous avons créé deux « objets », un pour le servo et l’autre pour le capteur à ultrasons
Servo servo ;
NewPing sonar (USTrigger, USEcho, MaxDistance) ;

Ci-dessous nous créons des variables entières non signées que nous utiliserons plus tard dans le code. Ils sont pas signés car ils ont seulement des valeurs postive
unsigned int durée ;
unsigned int distance ;
unsigned int FrontDistance ;
unsigned int LeftDistance ;
unsigned int RightDistance ;
unsigned int temps ;
unsigned int CollisionCounter ;

void setup() //This bloc arrive une fois au démarrage
{
Serial.Begin(9600) ;                              J’ai inclus la série initialize mais commenté, si vous souhaitez déboguer et imprimer les informations sur le moniteur série simplement décommenter

Ici, nous mettons les modes de broche. Comme nous allons envoyer des signaux des pins nous définir comme sorties
pinMode (LeftMotorForward, sortie) ;
pinMode (LeftMotorBackward, sortie) ;
pinMode (RightMotorForward, sortie) ;
pinMode (RightMotorBackward, sortie) ;
pinMode (LED, sortie) ;
servo.Attach(6) ;                                    Le servo est attaché à la borne 4
}

void loop() //This bloc se répète alors que l’Arduino est allumé
{
servo.Write(90) ;                                    Faire pivoter le servo pour faire face à l’avant
Scan() ;                                             Accéder à la fonction scan
FrontDistance = distance ;                           Affectez à la variable FrontDistance la valeur de la distance, retournée par la fonction scan
Serial.println ("Front distance =") ;
Serial.Print(distance) ;
Si (FrontDistance > 60 || FrontDistance == 0) //If il n’y a rien en face du robot au sein de 15 cm ou de la valeur de la distance est de 0 (ce qui, pour la bibliothèque de newping, signifie pas de ping a été retourné) puis...
{
moveForward() ;                                     Accéder à la fonction moveForward
}
//Else autre (s’il y a quelque chose en face du robot moins de 40cm) puis...
{
CollisionCounter = CollisionCounter + 1 ;
moveStop() ;                                       Accéder à la fonction moveStop
Navigate() ;
}
}

Sub moveForward() //This fonction indique au robot pour aller de l’avant
{
Serial.println("") ;
Serial.println ("aller de l’avant") ;
digitalWrite (LeftMotorBackward, basse) ;
digitalWrite (LeftMotorForward, élevé) ;
digitalWrite (RightMotorBackward, basse) ;
digitalWrite (RightMotorForward, élevé) ;
}

Sub moveBackward() //This fonction indique au robot de se déplacer vers l’arrière
{
Serial.println("") ;
Serial.println ("déplacement vers l’arrière") ;
digitalWrite (LeftMotorForward, basse) ;
digitalWrite (LeftMotorBackward, élevé) ;
digitalWrite (RightMotorForward, basse) ;
digitalWrite (RightMotorBackward, élevé) ;
}

Sub moveLeft() //This fonction indique au robot de tourner à gauche
{
Serial.println("") ;
Serial.println ("déplacement gauche") ;
digitalWrite (LeftMotorForward, basse) ;
digitalWrite (LeftMotorBackward, élevé) ;
digitalWrite (RightMotorBackward, basse) ;
digitalWrite (RightMotorForward, élevé) ;

}

Sub moveRight() //This fonction indique au robot de tourner à droite
{
Serial.println("") ;
Serial.println ("Moving droite") ;
digitalWrite (LeftMotorBackward, basse) ;
digitalWrite (LeftMotorForward, élevé) ;
digitalWrite (RightMotorForward, basse) ;
digitalWrite (RightMotorBackward, élevé) ;
}

Sub moveStop() //This fonction indique au robot pour arrêter de bouger
{
Serial.println("") ;
Serial.println("Stopping") ;
digitalWrite (LeftMotorBackward, basse) ;
digitalWrite (LeftMotorForward, basse) ;
digitalWrite (RightMotorForward, basse) ;
digitalWrite (RightMotorBackward, basse) ;
}
scan() Sub //This fonction détermine que les distance les choses sont loin du détecteur à ultrasons
{
Serial.println("") ;
Serial.println("Scanning") ;
Temps = sonar.ping() ;
distance = temps / US_ROUNDTRIP_CM ;
Delay(500) ;
}
Sub navigate()
{
Serial.println ("il existe un obstacle!") ;
servo.Write(167) ;                                 Déplacer le servo vers la gauche (mon petit servos n’aiment pas va à 180, alors j’ai joué un peu avec la valeur jusqu'à ce que cela a fonctionné très bien)
Delay(1000) ;                                       Attendre une demi-seconde pour le servo pour y arriver
Scan() ;                                           Accéder à la fonction scan
LeftDistance = distance ;                          Affectez à la variable LeftDistance la distance sur la gauche
Serial.println ("distance à gauche =") ;
Serial.Print(distance) ;
servo.Write(0) ;                                   Déplacer le servo vers la droite
Delay(1000) ;                                       Attendre une demi-seconde pour le servo pour y arriver
Scan() ;                                           Accéder à la fonction scan
RightDistance = distance ;                         Affectez à la variable RightDistance la distance sur la droite
Serial.println ("distance à droite =") ;
Serial.Print(distance) ;
Si (abs (RightDistance - LeftDistance) < 5)
{
moveBackward() ;                                  Accéder à la fonction moveBackward
Delay(200) ;                                      Mettre en pause le programme pendant 200 millisecondes laisser le robot inverser
moveRight() ;                                     Accéder à la fonction moveRight
Delay(100) ;                                      Mettre en pause le programme pendant 200 millisecondes laisser le robot tourner à droite
}
d’autre if(RightDistance < LeftDistance) //If la distance sur la droite est inférieure à celle sur la gauche puis...
{
moveLeft() ;                                      Accéder à la fonction moveLeft
Delay(100) ;                                      Mettre en pause le programme pendant une demi-seconde laisser le robot tourner
}
d’autre if(LeftDistance < RightDistance) //Else si la distance sur la gauche est inférieure à celle de droite puis...
{
moveRight() ;                                     Accéder à la fonction moveRight
Delay(100) ;                                      Mettre en pause le programme pendant une demi-seconde laisser le robot tourner
}

Articles Liés

Le Robot Arduino d’Uno

Le Robot Arduino d’Uno

Age : 13Répondre à Uno le robot Arduino alimenté.  Certaines fonctions incluent un nez clignote, antennes, tête tournante, capteur de distance infrarouge double engrenage du moteur boîte de rotation des compteurs et de déplacement.  Uno est réalisé a
RC voiture autonome robot Arduino

RC voiture autonome robot Arduino

Avez vous jamais désiré construire un simple robot autonome de Arduino ? Je me suis inspiré pour construire un robot Arduino base afin d'aider ma compréhension de l'Arduino, l'IDE Arduino et le fonctionnement des capteurs à ultrasons et les chauffeur
Bras de Robot Arduino

Bras de Robot Arduino

je l'avais promis dans un précédent post pour partager avec vous un robot arduino arm projet à une date ultérieure. Eh bien, cette date est aujourd'hui ! Cependant, au lieu d'utiliser un joystick pour contrôler le bras du robot arduino, I ' m Gonna p
DIY 4WD carrosserie pour les projets de robotique arduino et voitures RC

DIY 4WD carrosserie pour les projets de robotique arduino et voitures RC

Salut salutations geeks instructables d'Egypte:):),dans ce instructable je vais vous montrer comment concevoir et fabriquer une voiture 4 roues pour robotique, arduino, voitures RC... etc. d'une manière facile il suffit de me suivre;): D >>>Etape
Bras de robot arduino Bluetooth contrôlée

Bras de robot arduino Bluetooth contrôlée

J'ai enfin ajouté capacité bluetooth à mon bras de robot arduino. Je l'ai fait en utilisant le module bluetooth de HC-06.Étape 1: exigencesBras de robot Arduino - 6-dof-arduino uno ou régulièreBouclier de servo - SSC-32Module bluetooth - HC-06Je ne v
Camion RC robot Arduino w / capteurs multiples

Camion RC robot Arduino w / capteurs multiples

cette instructable couvre la conversion d'un camion RC en un robot Arduino contrôlée. Mon intention quand commence ce projet devait A) en savoir plus sur Arduino et programmation B) construire une plate-forme fiable et faible coût d'étoffer C) dépens
Débutants guident de construction de robots Arduino avec Bluetooth et Android

Débutants guident de construction de robots Arduino avec Bluetooth et Android

dans ce tutoriel, nous allons aller au cours de la construction d'un robot Arduino qui peut être contrôlé via bluetooth avec une téléphone/tablette Android. Il s'agit d'un guide de débutants qui va franchir brièvement le processus de câblage et de pr
Le Robot Arduino - arbre de vie

Le Robot Arduino - arbre de vie

Robot Arduino - arbre de vieListe du matériel :1) Duemilanovue Arduino2) tôle aluminium3) fils d'équerre4) 5 x 3 mm bleu LED5) oeillets en laiton6) unique fils7) vitrine àVisitez http://retardokiddo.blogspot.com/ pour les détails et commentaires !(Ve
Plateforme de robotique Arduino simple de Carduino - A avec sa propre bibliothèque

Plateforme de robotique Arduino simple de Carduino - A avec sa propre bibliothèque

il s'agit, comme le titre l'indique, une plate-forme robotique Arduino, avec sa propre bibliothèque. Le modèle « standard » est livré avec deux moteurs arrière, deux omni-roues à l'avant, et un capteur de distance montés à l'avant. Il a également l'e
Super simple et pas cher robot Arduino pare-chocs à l’aide de steppers 28BYJ-48

Super simple et pas cher robot Arduino pare-chocs à l’aide de steppers 28BYJ-48

Dans cette vidéo, je vais vous montrer comment construire votre premier robot arduino ou tout autre dans l'ordre ofcourse, mais si vous n'avez pas fait un robot avant puis ce robot est un excellent endroit pour commencer, c'est vraiment simple à comp
Construire un Robot Arduino Simple

Construire un Robot Arduino Simple

Il s'agit de mon premier Instructable.. !Ce guide vous montre comment créer rapidement et facilement un robot Arduino-basé. La robotique est un passe-temps passionnant et amusant qui est devenu très abordable ces dernières années. Ce qui aurait néces
Robot Arduino physique Etoys Lego Technic 9390

Robot Arduino physique Etoys Lego Technic 9390

http://www.youtube.com/watch?v=fjEgFETZJDs&feature=player_detailpage&list=PL_OV7t1UYttjlaLJniWTt3DXYMK7F67z7Robot Arduino physique Etoys Lego Technic 9390Un pequeño este Robot le dotamos de dos fotorresistencias LDR para poder hacer tres programas
Robot Arduino 4x2 Scratch S4A Map

Robot Arduino 4x2 Scratch S4A Map

 -Totalmente compatible con el Robot Arduino Minibloq.Un este pequeño robot le vamos a hacer diferentes programas de forma fácil e intuitiva utilizando el programa gráfico S4A basado en la plataforma Scratch.Lo podremos dirigir desde el teclado del o
Robot Arduino modulaire

Robot Arduino modulaire

J'ai créé cette instructable pour montrer mon développement d'un projet de robot arduino modulaire pour le MAKEcourse à l'Université de Floride du Sud (makecourse.com).Cette utilisation de robot 3d imprimés affaire SolidWorks conçu en utilisant des b
Contrôle robot Arduino avec iOS, iPhone, iPad ou Android

Contrôle robot Arduino avec iOS, iPhone, iPad ou Android

LOFI CONTROL vous permet de contrôler un robot Arduino avec un appareil iOS (iPhone ou iPad) sur LE Bluetooth (Bluetooth 4.0) module comme HM-10 ou HM-11.L'application a été conçue pour fonctionner avec contrôleur de cerveau LOFI et est compatible av