Cuprins:

Cum să faci un robot inteligent folosind Arduino: 4 pași
Cum să faci un robot inteligent folosind Arduino: 4 pași
Anonim
Image
Image

Buna ziua,

Sunt arduino maker și în acest tutorial îți voi arăta cum să faci un robot inteligent folosind arduino

dacă ți-a plăcut tutorialul meu, atunci ia în considerare sprijinirea canalului meu pe YouTube numit arduino maker

Provizii

LUCRURI DE CARE VREI NEVOIE:

1) arduino uno

2) senzor cu ultrasunete

3) Motor Bo

4) roți

5) bețe de înghețată

6) baterie de 9v

Pasul 1: CONEXIUNI

CLEAȚI TOATE COMPONENTELE LA LOC
CLEAȚI TOATE COMPONENTELE LA LOC

După ce obțineți toate consumabilele acum, ar trebui să începeți să conectați toate lucrurile conform schemei de circuite date mai sus

Pasul 2: CLEAȚI TOATE COMPONENTELE LA LOC

BINE,

conectați acum toate lucrurile la loc așa cum se arată în imaginea de mai sus

Pasul 3: PROGRAMARE

Acum,

începe programarea plăcii cu codul dat mai jos

// ARDUINO OBSTACLE EVITING CAR //// Înainte de a încărca codul, trebuie să instalați biblioteca necesară // // Biblioteca AFMotor https://learn.adafruit.com/adafruit-motor-shield/library-install // // Biblioteca NewPing https://github.com/livetronic/Arduino-NewPing// // Biblioteca Servo https://github.com/arduino-libraries/Servo.git // // Pentru a instala bibliotecile accesați schița >> Includeți Biblioteca >> Adăugați fișier. ZIP >> Selectați fișierele ZIP descărcate Din linkurile de mai sus //

#include

#include

#include

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // setează viteza motoarelor de curent continuu

#define MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo miservo;

boolean mergeForward = false;

int distanta = 100; int speedSet = 0;

configurare nulă () {

myservo.attach (10);

myservo.write (115); întârziere (1000); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); }

bucla nulă () {

distanța intR = 0; int distanțaL = 0; întârziere (40); if (distanță <= 15) {moveStop (); întârziere (100); mergi inapoi(); întârziere (300); moveStop (); întârziere (200); distanțăR = lookRight (); întârziere (300); distanțăL = lookLeft (); întârziere (300);

if (distanceR> = distanceL)

{ Obligatoriu Dreapta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distanță = readPing (); }

int lookRight ()

{myservo.write (50); întârziere (650); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; }

int lookLeft ()

{myservo.write (170); întârziere (650); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; întârziere (100); }

int readPing () {

întârziere (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } returnează cm; }

void moveStop () {

motor1.run (ELIBERARE); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (ELIBERARE); } void moveForward () {

if (! mergeForward)

{mergeForward = adevărat; motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); întârziere (5); }}}

void moveBackward () {

merge înainte = fals; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); întârziere (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (FORWARD); întârziere (350); motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); întârziere (350); motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); }

Recomandat: