This is an old revision of the document!


Robot 4WD care evita obstacolele

Autor: Cojocaru Mihai-Vladimir

Grupa: 1220FA

Introducere

Proiectul consta intr-o masina cu 4 motoare care este capabila sa identifice obstacolele din fata sa si sa le ocoleasca, pentru a evita contactul cu acestea.

Descriere generală

Schema bloc

Hardware Design

Lista de componente:
 -Place de dezvoltare Arduino Uno R3
 -Sasiu robot 4WD
 -4 Roti
 -4 Motoare 5V
 -Modul Driver Motoare L289N
 -Senzor Cu Ultrasunete HC-SR04
 -13 Cabluri De Conectare (10 mama-tata, 3 tata-tata)
 -Suport De 4 Baterii AA

Software Design

* #include <NewPing.h> → pentru senzorul cu ultrasunete

Rezultatul final

Download

Jurnal

Etape:
-21/04/2022: Incarcarea primului Milestone
-27/04/2022: Asamblarea proiectului
-28/04/2022: Crearea codului
-26/05/2022: Finalizare proiect: filmat, fotografiat, documentatie.

Cod

#include <NewPing.h>

const int LF = 6; const int LB = 7; const int RF = 5; const int RB = 4;

#define trig 12 #define echo 13

#define max_dist 200 boolean check = false; int dist = 100;

NewPing sonar(trig, echo, max_dist);

void setup(){

pinMode(RF, OUTPUT);
pinMode(LF, OUTPUT);
pinMode(LB, OUTPUT);
pinMode(RB, OUTPUT);

dist = readPing();
delay(100);

}

void loop(){

moveForward();

if (dist <= 35){
  moveStop();
  delay(300);
  moveBackward();
  delay(700);
  moveStop();
  delay(300);
  int distance = look();
  if (dist >= distance){
    turnRight();
    moveStop();
  }
else{
  moveForward(); 
}

}

dist = readPing();

}

int look(){

int distance = readPing();
delay(100);
return distance;
delay(100);

}

int readPing(){

delay(70);
int cm = sonar.ping_cm();
if (cm==0){
  cm=250;
}
return cm;

}

void moveStop(){

digitalWrite(RF, LOW);
digitalWrite(LF, LOW);
digitalWrite(RB, LOW);
digitalWrite(LB, LOW);

}

void moveForward(){

if(!check){
  check=true;
  
  digitalWrite(LF, HIGH);
  digitalWrite(RF, HIGH);
  digitalWrite(RB, LOW);
  digitalWrite(LB, LOW); 
}

}

void moveBackward(){

check=false;
  digitalWrite(LF, LOW);
  digitalWrite(RF, LOW);
  digitalWrite(RB, HIGH);
  digitalWrite(LB, HIGH); 

}

void turnRight(){

digitalWrite(LF, HIGH);
digitalWrite(RB, HIGH);

digitalWrite(LB, LOW);
digitalWrite(RF, LOW);

delay(500);

digitalWrite(LF, HIGH);
digitalWrite(RF, HIGH);

digitalWrite(LB, LOW);
digitalWrite(RB, LOW);

}

void turnLeft(){

digitalWrite(LB, HIGH);
digitalWrite(RF, HIGH);

digitalWrite(LF, LOW);
digitalWrite(RB, LOW);
delay(500);

digitalWrite(LF, HIGH);
digitalWrite(RF, HIGH);

digitalWrite(LB, LOW);
digitalWrite(RB, LOW);

}

Concluzii

Bibliografie/Resurse

pm/prj2022/avaduva/robot4wd.1653682580.txt.gz · Last modified: 2022/05/27 23:16 by mihai.cojocaru2510
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0