Innehållsförteckning:

Hur man gör en smart robot med Arduino: 4 steg
Hur man gör en smart robot med Arduino: 4 steg

Video: Hur man gör en smart robot med Arduino: 4 steg

Video: Hur man gör en smart robot med Arduino: 4 steg
Video: Infrared Obstacle Avoidance module for Arduino with code 2024, November
Anonim
Image
Image

Hej,

Jag är arduino -tillverkare och i den här självstudien ska jag visa dig hur man gör en smart robot med hjälp av arduino

om du gillade min handledning, överväg att stödja min youtube -kanal som heter arduino maker

Tillbehör

Saker du behöver:

1) arduino uno

2) ultraljudssensor

3) Bo -motor

4) hjul

5) glasspinnar

6) 9v batteri

Steg 1: ANSLUTNINGAR

LIM ALLA KOMPONENTER PÅ PLATS
LIM ALLA KOMPONENTER PÅ PLATS

Efter att ha fått alla tillbehör nu bör du börja ansluta alla saker enligt kretsschemat ovan

Steg 2: LIMA ALLA KOMPONENTER PÅ PLATS

OK,

anslut nu alla saker på plats som visas i bilden ovan

Steg 3: PROGRAMMERING

Nu,

börja programmera tavlan med den angivna koden nedan

// ARDUINO OBSTACLE UNDVIKA BIL //// Innan du laddar upp koden måste du installera det nödvändiga biblioteket // // 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 // // För att installera biblioteken gå till skiss >> Inkludera Bibliotek >> Lägg till. ZIP -fil >> Välj de nedladdade ZIP -filerna från länkarna ovan //

#omfatta

#omfatta

#omfatta

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // ställer in hastigheten för likströmsmotorer

#define MAX_SPEED_OFFSET 20

NewPing -ekolod (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;

booleska goesForward = false;

int avstånd = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); fördröjning (1000); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); }

void loop () {

int avståndR = 0; int avstånd L = 0; fördröjning (40); if (avstånd <= 15) {moveStop (); fördröjning (100); flytta bakåt(); fördröjning (300); moveStop (); fördröjning (200); distanceR = lookRight (); fördröjning (300); distanceL = lookLeft (); fördröjning (300);

if (avstånd R> = avstånd L)

{ sväng höger(); moveStop (); } annat {turnLeft (); moveStop (); }} annat {moveForward (); } distans = readPing (); }

int lookRight ()

{myservo.write (50); fördröjning (650); int avstånd = readPing (); fördröjning (100); myservo.write (115); returavstånd; }

int lookLeft ()

{myservo.write (170); fördröjning (650); int avstånd = readPing (); fördröjning (100); myservo.write (115); returavstånd; fördröjning (100); }

int readPing () {

fördröjning (70); int cm = sonar.ping_cm (); om (cm == 0) {cm = 250; } retur cm; }

void moveStop () {

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

om (! går framåt)

{goesForward = true; motor1.körning (FRAMÅT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FRAMÅT); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // sakta öka hastigheten för att undvika att ladda ner batterierna för snabbt {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); fördröjning (5); }}}

void moveBackward () {

goesForward = false; motor1.körning (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.körning (BACKWARD); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // sakta öka hastigheten för att undvika att ladda ner batterierna för snabbt {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); fördröjning (5); }}

void turnRight () {

motor1.körning (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (FRAMÅT); fördröjning (350); motor1.körning (FRAMÅT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FRAMÅT); } void turnLeft () {motor1.run (FRAMÅT); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.körning (BACKWARD); fördröjning (350); motor1.körning (FRAMÅT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FRAMÅT); }

Rekommenderad: