Obsah:

Ako vyrobiť inteligentného robota pomocou Arduina: 4 kroky
Ako vyrobiť inteligentného robota pomocou Arduina: 4 kroky

Video: Ako vyrobiť inteligentného robota pomocou Arduina: 4 kroky

Video: Ako vyrobiť inteligentného robota pomocou Arduina: 4 kroky
Video: Konštrukcia robota 1 - motorčeky 2024, Júl
Anonim
Image
Image

Ahoj,

Som arduino maker a v tomto návode vám ukážem, ako urobiť inteligentného robota pomocou arduino

Ak sa vám môj návod páčil, zvážte podporu môjho kanála YouTube s názvom arduino maker

Zásoby

VECI, KTORÉ BUDETE POTREBOVAŤ:

1) arduino uno

2) ultrazvukový senzor

3) Bo motor

4) kolesá

5) zmrzlinové tyčinky

6) 9v batéria

Krok 1: PRIPOJENIA

Nalepte všetky komponenty na miesto
Nalepte všetky komponenty na miesto

Potom, čo teraz získate všetky zásoby, by ste mali začať spájať všetky veci podľa schémy zapojenia uvedenej vyššie

Krok 2: Nalepte všetky komponenty na miesto

Dobre,

teraz spojte všetky veci na svojom mieste, ako je to znázornené na obrázku vyššie

Krok 3: PROGRAMOVANIE

Teraz,

začnite programovať dosku s daným kódom nižšie

// AUTOMATICKÉ PREKÁŽKE VYHÝBAJÚCE SA AUTU //// Pred nahraním kódu si musíte nainštalovať potrebnú knižnicu // // Knižnica AFMotor https://learn.adafruit.com/adafruit-motor-shield/library-install // // Knižnica NewPing https://github.com/livetronic/Arduino-NewPing// // Servo knižnica https://github.com/arduino-libraries/Servo.git // // Ak chcete nainštalovať knižnice, prejdite na náčrt >> Zahrnúť Knižnica >> Pridať súbor. ZIP >> Vyberte stiahnuté súbory ZIP z odkazov vyššie //

#zahrnúť

#zahrnúť

#zahrnúť

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // nastavuje rýchlosť jednosmerných motorov

#define MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Motor motora1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DC Motor motora4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int vzdialenosť = 100; int speedSet = 0;

neplatné nastavenie () {

myservo.attach (10);

myservo.write (115); oneskorenie (1000); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); }

prázdna slučka () {

int vzdialenosťR = 0; int vzdialenosťL = 0; oneskorenie (40); if (vzdialenosť <= 15) {moveStop (); oneskorenie (100); moveBackward (); oneskorenie (300); moveStop (); oneskorenie (200); vzdialenosťR = lookRight (); oneskorenie (300); vzdialenosťL = lookLeft (); oneskorenie (300);

ak (vzdialenosťR> = vzdialenosťL)

{ odbočte vpravo(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } vzdialenosť = readPing (); }

int lookRight ()

{myservo.write (50); oneskorenie (650); int vzdialenosť = readPing (); oneskorenie (100); myservo.write (115); vzdialenosť návratu; }

int lookLeft ()

{myservo.write (170); oneskorenie (650); int vzdialenosť = readPing (); oneskorenie (100); myservo.write (115); vzdialenosť návratu; oneskorenie (100); }

int readPing () {

oneskorenie (70); int cm = sonar.ping_cm (); ak (cm == 0) {cm = 250; } vrátiť cm; }

void moveStop () {

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

ak (! goesForward)

{goesForward = true; motor1.run (Vpred); //motor2.run(WWWARD); //motor3.run(DOPREDU); motor4.run (Vpred); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomaly zvyšujte rýchlosť, aby ste sa vyhli príliš rýchlemu vybíjaniu batérií {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); oneskorenie (5); }}}

void moveBackward () {

goesForward = false; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomaly zvyšujte rýchlosť, aby ste sa vyhli príliš rýchlemu vybíjaniu batérií {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); oneskorenie (5); }}

neplatné turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(DOPREDU); motor4.run (Vpred); oneskorenie (350); motor1.run (Vpred); //motor2.run(WWWARD); //motor3.run(DOPREDU); motor4.run (Vpred); } void turnLeft () {motor1.run (Vpred); //motor2.run(WWWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); oneskorenie (350); motor1.run (Vpred); //motor2.run(WWWARD); //motor3.run(DOPREDU); motor4.run (Vpred); }

Odporúča: