COMMANDE manuelle / autonome ROBOT (à l’aide de la TECHNIQUE de FUSION de capteur) (8 / 12 étapes)

Étape 8: Le CODE: - pour le capteur de HC-SR04

 const int serialPeriod = 250; // a period of 250ms = a frequency of 4 Hz unsigned long timeSerialDelay = 0;const int UltraloopPeriod = 20; // a period of 20ms = a frequency of 50 Hz unsigned UltraLoopDelay = 0; const int sensor_1_in = 10; // input/output from the sensor_1 const int sensor_1_out = 13; const int sensor_2 = 11; const int sensor_3 = 12; int motorL1 = 6; // output for motor driver pin 2 int motorL2 = 7; // output for motor driver pin 7 int motorR1 = 8; // output for motor driver pin 15 int motorR2 = 9; // output for motor driver pin 10 int d0 = 2; // input from DTMF pin D0 int d1 = 3; // input from DTMF pin D1 int d2 = 4; // input from DTMF pin D2 int d3 = 5; // input from DTMF pin D3 int ultrasonicTime; // variable to store time int ultrasonicDistance; // variable to store distance calculated void setup() { Serial.begin(9600); // setting serial communication speed pinMode(motorL1, OUTPUT); pinMode(motorL2, OUTPUT); pinMode(motorR1, OUTPUT); pinMode(motorR2, OUTPUT); pinMode(d0, INPUT); pinMode(d1, INPUT); pinMode(d2, INPUT); pinMode(d3, INPUT); }void loop() { int z = digitalRead(d0); int y = digitalRead(d1); int x = digitalRead(d2); int w = digitalRead(d3); /*----------------------------------------- M A N U A L M O D E ---------------------------------------*/ if(w == LOW) { if((w == LOW)&&(x == LOW)&&(y == HIGH)&&(z == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((w == LOW)&&(x == HIGH)&&(y == LOW)&&(z == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((w == LOW)&&(x == HIGH)&&(y == LOW)&&(z == LOW)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((w == LOW)&&(x == HIGH)&&(y == HIGH)&&(z == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((w == LOW)&&(x == HIGH)&&(y == HIGH)&&(z == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, LOW); } } /*----------------------------------- A U T O N O M O U S M O D E -----------------------------------*/ if(w == HIGH) { viewDistance(); if((millis() - UltraLoopDelay) >= UltraloopPeriod) { readUltrasonicsensor_1(); motorStart(); UltraLoopDelay = millis(); } } } void readUltrasonicsensor_1() // CHANGED { digitalWrite(sensor_1_out, LOW); delay(2); digitalWrite(sensor_1_out, HIGH); delay(10); digitalWrite(sensor_1_out, LOW); ultrasonicTime = pulseIn(sensor_1_in, HIGH); ultrasonicDistance = (ultrasonicTime/2)/29; //calculation to measure the distance of obstacle from ultrasonic sensor }void motorStart() //function to drive the motor according to sensed distance { int irsL = digitalRead(sensor_2); //IR left sensor int irsR = digitalRead(sensor_3); //IR right sensor if(ultrasonicDistance > 10) //this part code works to prevent side collisions even { //when there is no obstacle in front of the robot if((irsL == LOW)&&(irsR== LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } } if(ultrasonicDistance < 10) //this part of code works when there is some { //obstacle is infront of the robot and also if((irsL == HIGH)&&(irsR == LOW)) //to prevent side collision { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } } }/*---------------------------CHECKING THE ULTRSONIC SENSOR-------------------------*/void viewDistance() //function to view distance on serial monitor { //to check if the ultra sonic sensor code working properly if((millis() - timeSerialDelay) >= serialPeriod) { Serial.print("Distance"); Serial.print(ultrasonicDistance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); } } 

Articles Liés

Commander votre Robot à l’aide de téléphone portable

Commander votre Robot à l’aide de téléphone portable

CE tutoriel complet est également disponible sur mon site WebBonjour monde dans ce post je vais vous montrer comment faire pour contrôler le robot à l'aide de téléphone portable. Contrôler un robot à l'aide de téléphone portable n'est pas si compliqu
Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Il s'agit d'un obstacle sans fil contrôlé, autonome détection robot !Un temps, j'avais fait ce Instructable et voulait faire quelques mises à jour majeures depuis.Voici les caractéristiques du robot:-1.HE de contrôle sans fil en utilisant des 433 mod
Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Objectif et description du présent guideCette instructable est une main pour un projet d'école que nous avons fait. Le but de ce projet était de créer un contrôle de bras de robot à l'aide des Sticks. Nous avons dû utiliser un Arduino Uno pour le con
Conduire une voiture avec commandes manuelles Menox

Conduire une voiture avec commandes manuelles Menox

Objets nécessaires :Voiture équipée de commandes manuelles de Menox (2014 Mini Cooper Paceman)Transmission automatiqueBouton de fileur (facultatif)Boutons de fonction optionnelle (facultatif)Frein de blocage (facultatif)Introduction :Commandes manuel
Simple, sécurisé, Internet interrupteur d’alimentation (110V/240V) avec commande manuelle

Simple, sécurisé, Internet interrupteur d’alimentation (110V/240V) avec commande manuelle

Interrupteur de ligne câble Extension Ito, Android contrôlée par pfodApp. En option avec chronométré Désactivation/activation.Sans programmation AndroidCeci un Android simple, peu coûteux et personnalisable contrôlé interrupteur d'alimentation (110V
Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

J'ai récemment pris sa retraite et une des choses que je me suis promis était que lorsque j'ai prenaient leur retraite j'allais terminer tous les projets que j'ai dû courir dans ma tête depuis que je suis un adolescent. C'est une cinquantaine d'année
Réduction des effectifs un tour Emco Compact 5 PC cassé à commande manuelle.

Réduction des effectifs un tour Emco Compact 5 PC cassé à commande manuelle.

I bought a Emco Compact 5 CNC lathe about 18 months ago. il avait été dans une école ou quelque chose et avait été complètement saccagé par le petit sh... Je veux dire enfants maniérées malades et avait été utilisée par le gars que je l'ai eu de tout
Autonome Mobile Robot à l’aide de ROS clumsybot

Autonome Mobile Robot à l’aide de ROS clumsybot

notre robot mobile autonome à l'intérieur à l'aide de ROS, Rtabmap, raspberry pi 2, kinect, ubuntu14.04 ltsNotre projet de diplômenotre robot mobile autonome à l'intérieur à l'aide de kinect, raspberry pi 2, Rtabmap, ROS, ubuntu14.04 lts nous install
Commander votre Robot à l’aide d’un Wii Nunchuck (et un Arduino)

Commander votre Robot à l’aide d’un Wii Nunchuck (et un Arduino)

après les avoir portés moi-même en jouant à Wii boxe je suis arrivé à penser ne serait-il pas merveilleux si je pourrais l'utiliser pour contrôler mon robot, (à la recherche de ma main gauche).En regardant autour de l'internet j'ai trouvé une foule d
Swarmscapers : Impression 3D Mobile autonome Robots

Swarmscapers : Impression 3D Mobile autonome Robots

Swarmscapers y a un mois 2 longue recherche réalisé dans le studio Creative Architecture Machines , enseigné par Jason Kelly Johnson et Michael Shiloh au California College of the Arts en Labo numérique de Craft. C'est une collaboration entre Clayton
Comment faire un joueur de basket-ball autonome robot utilisant un iRobot Create comme base de lecture

Comment faire un joueur de basket-ball autonome robot utilisant un iRobot Create comme base de lecture

ceci est mon entrée pour l'iRobot Create défi. La partie la plus difficile de tout ce processus pour moi se prononçait sur ce que le robot allait faire. J'ai voulu démontrer les fonctionnalités intéressantes de la créer, tout en ajoutant dans certain
Labyrinthe du solveur Robot, à l’aide de l’Intelligence artificielle avec Arduino

Labyrinthe du solveur Robot, à l’aide de l’Intelligence artificielle avec Arduino

(Si vous aimez ce Instructable, n'oubliez pas de voter à ce sujet (ci-dessus : drapeau de coin à droite). Rex, le Robot est en concurrence sur la robotique et des concours de capteurs. Merci beaucoup! ;-)Cet Instructable a été développé lors de mon d
Ajouter Internet-contrôle Pi framboise du robot à l’aide de Runmyrobot.com

Ajouter Internet-contrôle Pi framboise du robot à l’aide de Runmyrobot.com

Comment partager votre Robot avec le monde et laisser les autres gens à jouer avec lui à l'aide de runmyrobot.com. Ce site est beta test, mais cela devrait fonctionner. Si vous avez des questions, faites-nous savoir en les affichant sur la page du si
Commander une carte Arduino à l’aide d’une télécommande infrarouge

Commander une carte Arduino à l’aide d’une télécommande infrarouge

I-IntroductionBonjour à tous, mon nom est Noreddine Kessa, je suis un passionné de l'électronique.  Je me suis amusé ce week-end à jouer avec mon nouveau jouet, Kit Arduino ATmega328 bricolage que j'ai eu sur eBay, et je serais ravi de partager la jo