Indholdsfortegnelse:

Sådan laver du en smart robot ved hjælp af Arduino: 4 trin
Sådan laver du en smart robot ved hjælp af Arduino: 4 trin

Video: Sådan laver du en smart robot ved hjælp af Arduino: 4 trin

Video: Sådan laver du en smart robot ved hjælp af Arduino: 4 trin
Video: Lesson 5: Greyscale Line Tracking with PICAR-X Raspberry Pi Smart Robot car by SunFounder 2024, November
Anonim
Image
Image

Hej,

Jeg er arduino maker og i denne tutorial vil jeg vise dig, hvordan man laver smart robot ved hjælp af arduino

hvis du kunne lide min tutorial, så overvej at støtte min youtube -kanal, der hedder arduino -maker

Forbrugsvarer

Ting, du får brug for:

1) arduino uno

2) ultralydssensor

3) Bo motor

4) hjul

5) ispinde

6) 9v batteri

Trin 1: TILSLUTNINGER

LIM ALLE KOMPONENTER I STED
LIM ALLE KOMPONENTER I STED

Efter at have fået alle forsyninger nu, skal du begynde at forbinde alle ting i henhold til kredsløbsdiagrammet ovenfor

Trin 2: LIM ALLE KOMPONENTER PÅ STED

OKAY,

tilslut nu alle tingene på plads som vist på billedet ovenfor

Trin 3: PROGRAMMERING

Nu,

start med at programmere tavlen med den givne kode herunder

// ARDUINO OBSTACLE UNDGÅ BIL //// Før du uploader koden, skal du installere det nødvendige bibliotek // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPing-bibliotek https://github.com/livetronic/Arduino-NewPing// // Servobibliotek https://github.com/arduino-libraries/Servo.git // // For at installere bibliotekerne skal du gå til skitse >> Inkluder Bibliotek >> Tilføj. ZIP -fil >> Vælg de downloadede ZIP -filer fra ovenstående links //

#omfatte

#omfatte

#omfatte

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // indstiller DC -motorers hastighed

#define MAX_SPEED_OFFSET 20

NewPing -ekkolod (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 myservo;

boolsk goesForward = false;

int afstand = 100; int speedSet = 0;

ugyldig opsætning () {

myservo.attach (10);

myservo.write (115); forsinkelse (1000); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); }

void loop () {

int distanceR = 0; int distanceL = 0; forsinkelse (40); hvis (afstand <= 15) {moveStop (); forsinkelse (100); moveBackward (); forsinkelse (300); moveStop (); forsinkelse (200); distanceR = lookRight (); forsinkelse (300); distanceL = lookLeft (); forsinkelse (300);

hvis (distanceR> = distanceL)

{ Drej til højre(); moveStop (); } ellers {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight ()

{myservo.write (50); forsinkelse (650); int distance = readPing (); forsinkelse (100); myservo.write (115); returafstand; }

int lookLeft ()

{myservo.write (170); forsinkelse (650); int distance = readPing (); forsinkelse (100); myservo.write (115); returafstand; forsinkelse (100); }

int readPing () {

forsinkelse (70); int cm = sonar.ping_cm (); hvis (cm == 0) {cm = 250; } cm tilbage; }

void moveStop () {

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

hvis (! går fremad)

{goesForward = true; motor1.run (FREM); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FREM); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // langsomt sænke hastigheden for at undgå at lade batterierne ned for hurtigt {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); forsinkelse (5); }}}

void moveBackward () {

goesForward = falsk; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // langsomt sænke hastigheden for at undgå at lade batterierne ned for hurtigt {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); forsinkelse (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (FREM); forsinkelse (350); motor1.run (FREM); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FREM); } void turnLeft () {motor1.run (FREM); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); forsinkelse (350); motor1.run (FREM); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FREM); }

Anbefalede: