Jump to content

  • Log In with Google      Sign In   
  • Create Account

Photo

Arduino Nano


  • Please log in to reply
86 replies to this topic

#76 OFFLINE   rlodina

rlodina

    Membru

  • Membru activ
  • PipPip
  • 204 posts
  • Locatie:Baia Mare

Posted 23 October 2017 - 11:51 PM

@pauly:

 

   De ce nu pot incarca sketch-ul cu  Bluetooth conectat (adica cu legaturile facute)? Pin 1 (TX) si 2 (RX) sunt folositi de implementarea USB pt. a incarca sketch-ul.

 

   Cum pot instala si senzorul ultrasonic?  Este simplu relativ simplu : se alimentează senzorul, pinul trigger se pune un timp scurt pe High -> emite un ultrasunet, se citește durata (in microsec) cu functia pulseIn pe pinul echo :

//am luat 2 pini digitali la întâmplare
const int trigger_Pin = 7;  
const int echo_Pin = 8;
 
void setup(){

    pinMode(trigger_Pin, OUTPUT);
    pinMode(echo_Pin, INPUT);           //Atenție INPIUT pin
  
    Serial.begin(9600);                 //cfg. comunicare cu calculatorul
}
 
void loop(){
    digitalWrite(trigger_Pin, LOW);
    digitalWrite(trigger_Pin, HIGH);    //emitem un ultrasunet
    delayMicroseconds(10);              //un delay mai minuțios    
    digitalWrite(trigger_Pin, LOW);     //stop emitere semnal
    
    long durata = pulseIn(echo_Pin, HIGH);    //măsuram durata (în microsec) 

    long dist = 0.017 * durata;          //calc. distanta 
    
    Serial.print("distanta: ");         //trimitem val. distantei la calculator
    Serial.print(dist);
    Serial.println(" cm");
    
    delay(100);
}

- detalii pe net sau aici (sectiunea: HC-SR04 - măsurarea distanței până la un obstacol)

 

Succes.



Cu_reclama

Cu_reclama
  • Membri
    ********

#77 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 24 October 2017 - 01:40 PM

Deci, pe pinul 1 si firul de la Bluetooth, ar fi necesar un intrerupator, ca atunci cand incarc sketch-ul sa pot intrerupe legatura, dupa care sa-l pot conecta pentru a putea functiona Bluetooth-ul.  In rest, o fi usor pentru cei ce au un pic de cunostiinte. Pentru mine insa este de neinteles.  Sa ajung o data sa-l vad mergand, dupa aceea nu mamai priveste.  Va mutumesc pentru bunavointa de care dati dovada si pentru intelegere.



#78 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 25 October 2017 - 03:38 PM

Oameni buni, va rog frumos sa-mi spuneti si mie daca este normal ca dupa ce incarci sketch-ul, ii faci proba testand fiecare comanda, placa fiind alimentata cu 6 V de la baterii, in momentul in care scot cablul USB, nu mai functioneaza. Ce am gresit, ce sa fac pentru a scoate cablul USB si a putea functiona robotul prin Bluetooth.  Atata timp cat cablul USB este conectat, toate comenzile date de pe telefon prin aplicatia cu Bluetooth, functioneaza. 



#79 OFFLINE   mani

mani

    Nou venit

  • Membru activ
  • Pip
  • 13 posts

Posted 25 October 2017 - 03:52 PM

Alimenteaza placa Arduino la minim 7 v, regulatorul de tensiune nu merge sub aceasta limita ,

 

 



#80 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 26 October 2017 - 08:46 PM

OK. Multumesc mult. O aveam alimentata cu 6V si cum scoteam cablul, se deconecta. Multumesc inca o data ,,mani". Cat de bine este sa-ti dea cineva o mana de ajutor. 



#81 OFFLINE   lorik199

lorik199

    Membru evoluat

  • Membru activ
  • PipPipPipPipPip
  • 2,770 posts
  • Locatie:Tg.neamt/Suceava

Posted 27 October 2017 - 09:51 AM

Foloseste functia software serial pentru bluetooth, asignand pinul 2 si 3, sau oricare alti pini digitali, cu conditia ca pinul de tx de pe arduino sa fie capabil de generat PWM.

Astfel poti folosi bluetooth-ul si sa incarci codul in acelasi timp



#82 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 27 October 2017 - 02:01 PM

Multumesc mult pentru sfat, dar in tot programul nu am gasit decat aici ceva legat de Bluetooth

//Constants and variable
char dataIn = 'S';
char determinant;
char det;
int vel = 100; //Bluetooth Stuff
int vel_stop = 0;

Unde si cum ar trebui sa schimb pinii?

 

Unde si cum pot adauga si senzorul ultrasonic?

Cu programul de mai sus adaugat de   rlodina, am incercat si functioneaza in sensul ca face masuratori. Imi masoara distanta intre 2 cm si 3600 cm adica 3m si 60cm. Asta este distanta care am masurato eu.

 

Bluetoothul functioneaza perfect asa cum este legat acum, dar nu pot incarca programul daca nu scot firul de pe pinul 1.  De mutat il mut degeaba daca nu fac si modificarile in program. Am incercat si nu merge.

 

Asa am facut legaturile

 

FHG4K4XIQ0TU3BY.MEDIUM.jpg?auto=compress


Edited by nico_2010, 13 November 2017 - 08:38 AM.


#83 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 07 November 2017 - 11:07 AM

Chiar nu imi poate spune si mie cineva cum, unde sa mut legaturile Bluetoothus de pe pinii 1 si 2? Am incercat pe 2 si 3 dar probabil trebuie cev modificari si in program, Nu stiu unde trebuie sa fac modificarea.  Programul (schetchiul este cel de la pag 5.

 Cine ma poate ajuta sa implementez in program si senzorul ultrasonic cu servomor?

Nu ma pricep (asta este) . Am cautat, incercat, dar fara nici un rezultat.

Toate acestea, sunt treburi care se invata in ani de zile, nu intr-o luna, doua.  Eu la anii acestia de invatat. , nu mai are nici rost si nici timp



#84 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 09 November 2017 - 05:13 PM

 AJUTOR !   Am găsit undeva un  sketch     https://forum.arduin...topic=509450.15    căruia iam adus câteva modificări la numărul de motoare si am eliminat doi senzori ultrasonici, (atât cât m-am priceput)  Am verificat si incărcat skettch-ul care pune in miscare toate 4 motoare într-un singur sens (înainte). Sezorul functionează intr-un fel, dar nu face nici un fel de modificare a distantei, nu opreste unul din motoare.  Sunt convins că lipseste ceva din datele sketckului, dar nu stiu ce, unde si cu ce trebuie înlocuit sau complectat. 

Am inlocuit distanta dar ??????????

 

Unde să pot cere ajutor , dacă nu pe FORUM?    Vă multumesc!

Attached Files



#85 OFFLINE   elmar

elmar

    Membru evoluat

  • Membru activ
  • PipPipPipPipPip
  • 5,413 posts

Posted 09 November 2017 - 06:15 PM

Păi ca să te ajute cineva ...pune tot sketch-ul aici folosind semnul <>(code)... ”copy” în IDE la tot ce e scris acolo apeși pe semnul ăla(<>)  unde scrii mesajul pe forum si dai ”paste” ...și așa o să ai mai multe șanse de ajutor!

Ar mai fi de ajutor să faci și o schemă cu tot ce folosești în momentul ăsta(sau măcar o poză în care să se deșlușească cât decât ce legături ai făcut) ...că nimeni nu poate sa ghicească ce anume modificări ai făcut...chiar dacă ne scrii...fără schemă, e în zadar.


Edited by elmar, 09 November 2017 - 06:34 PM.


#86 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 09 November 2017 - 08:34 PM

OK. M-am grabit si am uitat sa pun sketch-ul.  Acesta este cel modificat de mine. Am adaugat inca doua motoare. Acum merg toate patru.

 
 
#include <AFMotor.h> //import your motor shield library 
uint8_t trigPin[] = {8}; 
uint8_t echoPin[] = {9}; 

AF_DCMotor motor1(1, MOTOR12_64KHZ); // set up motors. 
AF_DCMotor motor2(2, MOTOR12_64KHZ); 
AF_DCMotor motor3(3, MOTOR12_64KHZ);
AF_DCMotor motor4(4, MOTOR12_64KHZ);


void setup() { 
Serial.begin(9600); // begin serial communitication 
Serial.println("Motor test!"); 
for (uint8_t i = 0; i < 3; i++) { 
pinMode(trigPin[i], OUTPUT);// set the trig pin to output (Send sound waves) 
pinMode(echoPin[i], INPUT);// set the echo pin to input (recieve sound waves) 
} 
motor1.setSpeed (50); //set the speed of the motors, between 0-255 
motor2.setSpeed (50); 
motor3.setSpeed (50);
motor4.setSpeed (50);
} 

void loop() { 

float distance = readSensor(0); 
if (distance < 35) { /*if there's an obstacle <35 centimers, ahead, do the following: */ 
makeTurn(distance, 0); 
} 
else { 
moveForward(); 
} 
} 

float readSensor(uint8_t sensor) { 
digitalWrite(trigPin[sensor], LOW); 
delayMicroseconds(2); // delays are required for a succesful sensor operation. 
digitalWrite(trigPin[sensor], HIGH); 
delayMicroseconds(10); //this delay is required as well! 
digitalWrite(trigPin[sensor], LOW); 
int duration = pulseIn(echoPin[sensor], HIGH, 30000); 
return ((float)duration / 2) / 29.1; // convert the distance to centimeters. 
} 

void makeTurn(float distance, uint8_t sensor) { 
Serial.print("Close Obstacle detected by sensor "); 
Serial.print(sensor); 
Serial.println("!" ); 
Serial.println("Obstacle Details:"); 
Serial.print("Distance From Robot is " ); 
Serial.print(distance); 
Serial.print(" 30");// print out the distance in centimeters. 
Serial.println(" The obstacle is declared a threat due to close distance. "); 
Serial.println(" Turning !"); 

motor1.run(FORWARD); // Turn as long as there's an obstacle ahead. 
motor2.run(FORWARD); 
motor3.run(FORWARD);
motor4.run(FORWARD);
} 

void moveForward() { 
Serial.println ("No obstacle detected. going forward"); 
delay (15); 
motor1.run(BACKWARD); //if there's no obstacle ahead, Go Forward! 
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD); 
}

 

Originalul este acesta;

#include <AFMotor.h> //import your motor shield library

uint8_t trigPin[] = {12, 8, 10};
uint8_t echoPin[] = {13, 9, 11};
AF_DCMotor motor1(1, MOTOR12_64KHZ); // set up motors.
AF_DCMotor motor2(2, MOTOR12_8KHZ);

void setup() {
  Serial.begin(9600); // begin serial communitication
  Serial.println("Motor test!");
  for (uint8_t i = 0; i < 3; i++) {
    pinMode(trigPin[i], OUTPUT);// set the trig pin to output (Send sound waves)
    pinMode(echoPin[i], INPUT);// set the echo pin to input (recieve sound waves)
  }
  motor1.setSpeed(150); //set the speed of the motors, between 0-255
  motor2.setSpeed (250);
}

void loop() {

  float distance = readSensor(0);
  if (distance < 35) { /*if there's an obstacle <35 centimers, ahead, do the following: */
    makeTurn(distance, 0);
  }
  else {
    moveForward();
  }

  distance = readSensor(2);
  if (distance < 30) { /*if there's an obstacle <30 centimers, ahead, do the following: */
    makeTurn(distance, 2);
  }
  else {
    moveForward();
  }

  distance = readSensor(1);
  if (distance < 30) { /*if there's an obstacle <30 centimers, ahead, do the following: */
    makeTurn(distance, 1);
  }
  else {
    moveForward();
  }
}

float readSensor(uint8_t sensor) {
  digitalWrite(trigPin[sensor], LOW);
  delayMicroseconds(2); // delays are required for a succesful sensor operation.
  digitalWrite(trigPin[sensor], HIGH);
  delayMicroseconds(10); //this delay is required as well!
  digitalWrite(trigPin[sensor], LOW);
  int duration = pulseIn(echoPin[sensor], HIGH, 30000);
  return ((float)duration / 2) / 29.1; // convert the distance to centimeters.
}

void makeTurn(float distance, uint8_t sensor) {
  Serial.print("Close Obstacle detected by sensor ");
  Serial.print(sensor);
  Serial.println("!" );
  Serial.println("Obstacle Details:");
  Serial.print("Distance From Robot is " );
  Serial.print(distance);
  Serial.print(" CM!");// print out the distance in centimeters.
  Serial.println(" The obstacle is declared a threat due to close distance. ");
  Serial.println(" Turning !");
  motor1.run(FORWARD); // Turn as long as there's an obstacle ahead.
  motor2.run(BACKWARD);
}

void moveForward() {
  Serial.println ("No obstacle detected. going forward");
  delay (15);
  motor1.run(BACKWARD); //if there's no obstacle ahead, Go Forward!
  motor2.run(BACKWARD);
}

Sau acesta este  sketch-ul care functioneaza foarte bine, toate cele 4 motoare cu toate comenzile respective si functioneaza cu Bluetooth-ul.  Daca este posibil ca in acest sketch sa se poata introduce senzorul ultrasonic si un servomotor, ar fi cel mai bine

 

 

#include <NewPing.h>

//Libraries
#include <AFMotor.h>


//Objects
AF_DCMotor motorRight(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motorLeft(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
AF_DCMotor motorBackRight(3, MOTOR12_64KHZ); // create motor #3, 64KHz pwm
AF_DCMotor motorBackLeft(4, MOTOR12_64KHZ); // create motor #4, 64KHz pwm

//Constants and variable
char dataIn = 'S';
char determinant;
char det;
int vel = 250; //Bluetooth Stuff
int vel_stop = 0;

void setup() {

Serial.begin(9600); // set up Serial library at 9600 bps

//Initalization messages
Serial.println("ArduinoBymyself - ROVERBot");
Serial.println(" AF Motor test!");

//turn off motors
motorRight.setSpeed(0);
motorLeft.setSpeed(0);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
motorBackRight.setSpeed(0);
motorBackLeft.setSpeed(0);
motorBackRight.run(RELEASE);
motorBackLeft.run(RELEASE);


}

void loop(){
 det = check(); //call check() subrotine to get the serial code

    
//serial code analysis
switch (det){
case 'F': // F, move forward   //<-- Litera F trebuie transmisa si la fel cu celelalte, pe rand
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
motorBackRight.setSpeed(vel);
motorBackLeft.setSpeed(vel);
motorBackRight.run(FORWARD);
motorBackLeft.run(FORWARD);
//det = check();
break;



case 'B': // B, move back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
motorBackRight.setSpeed(vel);
motorBackLeft.setSpeed(vel);
motorBackRight.run(BACKWARD);
motorBackLeft.run(BACKWARD);
//det = check();
break;


case 'L':// L, move wheels left
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/4);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
motorBackRight.setSpeed(vel);
motorBackLeft.setSpeed(vel/4);
motorBackRight.run(FORWARD);
motorBackLeft.run(FORWARD);
//det = check();
break;

case 'R': // R, move wheels right
motorRight.setSpeed(vel/4);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
motorBackRight.setSpeed(vel/4);
motorBackLeft.setSpeed(vel);
motorBackRight.run(FORWARD);
motorBackLeft.run(FORWARD);
//det = check();
break;

case 'I': // I, turn right forward

motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
motorBackRight.setSpeed(vel/2);
motorBackLeft.setSpeed(vel);
motorBackRight.run(FORWARD);
motorBackLeft.run(FORWARD);
//det = check();
break;

case 'J': // J, turn right back
motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
motorBackRight.setSpeed(vel/2);
motorBackLeft.setSpeed(vel);
motorBackRight.run(BACKWARD);
motorBackLeft.run(BACKWARD);
//det = check();
break;

case 'G': // G, turn left forward
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
motorBackRight.setSpeed(vel);
motorBackLeft.setSpeed(vel/2);
motorBackRight.run(FORWARD);
motorBackLeft.run(FORWARD);
//det = check();
break;

case 'H': // H, turn left back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
motorBackRight.setSpeed(vel);
motorBackLeft.setSpeed(vel/2);
motorBackRight.run(BACKWARD);
motorBackLeft.run(BACKWARD);
//det = check();
break;

case 'S': // S, stop
motorRight.setSpeed(vel_stop);
motorLeft.setSpeed(vel_stop);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
motorBackRight.setSpeed(vel_stop);
motorBackLeft.setSpeed(vel_stop);
motorBackRight.run(RELEASE);
motorBackLeft.run(RELEASE);
//det = check();
break;



}
}

int check(){
if (Serial.available() > 0){// if there is valid data in the serial port
dataIn = Serial.read();// stores data into a variable

//check the code
if (dataIn == 'F'){//Inainte
determinant = 'F';
}
else if (dataIn == 'B'){//Inapoi
determinant = 'B';
}
else if (dataIn == 'C'){//turn right back
determinant = 'C';
}
else if (dataIn == 'L'){//Stanga
determinant = 'L';
}
else if (dataIn == 'R'){//Dreapta
determinant = 'R';
}
else if (dataIn == 'I'){//Inainte si la dreapta
determinant = 'I';
}
else if (dataIn == 'J'){//Inapoi si la dreapta
determinant = 'J';
}
else if (dataIn == 'G'){//Inainte si la stanga
determinant = 'G';
}
else if (dataIn == 'H'){//Inapoi si la stNGA
determinant = 'H';
}
else if (dataIn == 'S'){//Stop
determinant = 'S';
}
else if (dataIn == '0'){//VITEZA = 0
vel = 0;
}
else if (dataIn == '1'){//VITEZA = 25
vel = 25;
}
else if (dataIn == '2'){//VITEZA = 50
vel = 50;
}
else if (dataIn == '3'){//VITEZA = 75
vel = 75;
}
else if (dataIn == '4'){//VITEZA = 100
vel = 100;
}
else if (dataIn == '5'){//VITEZA = 125
vel = 125;
}
else if (dataIn == '6'){//VITEZA = 150
vel = 150;
}
else if (dataIn == '7'){//VITEZA = 175
vel = 175;
}
else if (dataIn == '8'){//VITEZA = 200
vel = 200;
}
else if (dataIn == '9'){//VITEZA = 225
vel = 225;
}
else if (dataIn == 'q'){//VITEZA = 255
vel = 255;
}
else if (dataIn == 'U'){//Lumini spate pornite
determinant = 'U';
}
else if (dataIn == 'u'){//Lumini spate stinse
determinant = 'u';
}
else if (dataIn == 'W'){//Lumini fata pornite
determinant = 'W';
}
else if (dataIn == 'w'){//Lumini fata oprite
determinant = 'w';
}
else if (dataIn == 'V'){//Claxon pornit
determinant = 'V';
}
else if (dataIn == 'v'){//Claxon oprit
determinant = 'v';
}
else if (dataIn == 'X'){//Extra On
determinant = 'X';
}
else if (dataIn == 'x'){//Extra Off
determinant = 'x';
}
}
return determinant;
}

Edited by nico_2010, 13 November 2017 - 08:39 AM.


Cu_reclama

Cu_reclama
  • Membri
    ********

#87 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 182 posts
  • Locatie:Ploiesti

Posted 12 November 2017 - 04:45 PM

 -Vreau sa-i multumesc domnului ,,nico_2010", pentru tot sprijinul ce mi la oferit in vederea functionarii robotului, la inceput cu doua motoare, dupa care cu toate patru si Bluetoothul.  Stiu ca a facut tot posibilul sa ma faca sa inteleg cate ceva (cu toate ca eu nu am reusit sa pricep mare lucru). -Deasemeni, domnului ,,rlodina" care a pirdut destul timp, cu multa rabdare si bunavointa. -Au fost utile si celelalte sfaturi primite de la ceilalti membrii care au binevoit sa se opreasca asupra subiectului si sa-mi dea un sfat. Stiu ca am ocupat un spatiu destul de mare si poate am plictisit prin insistenta mea, dar in mare, am ajuns sa-mi bucur cat de cat nepotelul. Mai am inca multe probleme de rezolvat, dar poate se va indura cineva sa-mi mai dea cate un sfat.  As dori sa-l pot face cu senzorul ultrasonic si cu servomotor  60 grade (acesta il am).  Atasez codul pe care lam gasit si care, în parte functioneaza.      Adica, functioneaza toate patru motoare , dar senzorul imi arata 30 cm dupa ce am setat in  Serial.print ("Distance From Robot is 3" ); Stiu ca nu ma pricep, am incercat, dar tot degeaba, ceva este incomplect, lipseste ceva pentru a functiona.  Am mai descarcat inca un cod pe care lam atsat ,,Obstacle_Avoidance.zip. Nu lam deschis inca.  Iata si codul care functioneaza deocamdata pe jumatate.  Astept sugestii, pareri si mai ales indicatii, ce si cum sa fac modificarile.    Va multumesc!

 
 
#include <AFMotor.h> //import your motor shield library
#define trigPin 2 // define the pins of your sensor
#define echoPin 13 
AF_DCMotor motor1(1,MOTOR12_64KHZ); // set up motors.
AF_DCMotor motor2(2, MOTOR12_64KHZ);
AF_DCMotor motor3(3,MOTOR12_1KHZ); // set up motors.
AF_DCMotor motor4(4, MOTOR12_1KHZ);


void setup() {
  Serial.begin(9600); // begin serial communitication  
  Serial.println("Motor test!");
   pinMode(trigPin, OUTPUT);// set the trig pin to output (Send sound waves)
  pinMode(echoPin, INPUT);// set the echo pin to input (recieve sound waves)
  motor1.setSpeed(75); //set the speed of the motors, between 0-255
motor2.setSpeed (75);
motor3.setSpeed (75);
motor4.setSpeed (75);
}

void loop() {

   long duration, distance; // start the scan
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(3); // delays are required for a succesful sensor operation.
  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10); //this delay is required as well!
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;// convert the distance to centimeters.
  if (distance < 20)/*if there's an obstacle 5 centimers, ahead, do the following: */ {   
   Serial.println ("Close Obstacle detected!" );
Serial.println ("Obstacle Details:");
Serial.print ("Distance From Robot is 3" );
Serial.print ( distance);
Serial.print ( " CM!");// print out the distance in centimeters.

Serial.println (" The obstacle is declared a threat due to close distance. ");
Serial.println (" TURNING !");
   motor1.run(BACKWARD);  // Turn as long as there's an obstacle ahead.
    motor2.run (BACKWARD);
    motor3.run(FORWARD);  // Turn as long as there's an obstacle ahead.
    motor4.run (FORWARD);

}
  else {
   Serial.println ("No obstacle detected. going forward");
   delay (15);
   motor1.run(FORWARD); //if there's no obstacle ahead, Go Forward! 
    motor2.run(FORWARD);
  motor3.run(FORWARD); //if there's no obstacle ahead, Go Forward! 
    motor4.run(FORWARD);  
  }  
  
}



Attached Files


Edited by nico_2010, 13 November 2017 - 08:40 AM.





2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users