Obsah:

Jak vyrobit inteligentního robota pomocí Arduina: 4 kroky
Jak vyrobit inteligentního robota pomocí Arduina: 4 kroky

Video: Jak vyrobit inteligentního robota pomocí Arduina: 4 kroky

Video: Jak vyrobit inteligentního robota pomocí Arduina: 4 kroky
Video: Control Arduino with Python using Firmata / PyFirmata 2024, Listopad
Anonim
Image
Image

Ahoj,

Jsem arduino maker a v tomto tutoriálu vám ukážu, jak vytvořit inteligentního robota pomocí arduino

Pokud se vám můj návod líbil, zvažte podporu mého youtube kanálu s názvem arduino maker

Zásoby

VĚCI, KTERÉ BUDETE POTŘEBOVAT:

1) arduino uno

2) ultrazvukový senzor

3) Bo motor

4) kola

5) tyčinky zmrzliny

6) 9v baterie

Krok 1: PŘIPOJENÍ

PŘIPOJTE VŠECHNY KOMPONENTY NA MÍSTO
PŘIPOJTE VŠECHNY KOMPONENTY NA MÍSTO

Poté, co nyní získáte všechny zásoby, měli byste začít připojovat všechny věci podle schématu zapojení uvedeného výše

Krok 2: PŘIPOJTE VŠECHNY KOMPONENTY NA MÍSTO

OK,

nyní připojte všechny věci na místo, jak je znázorněno na výše uvedeném obrázku

Krok 3: PROGRAMOVÁNÍ

Nyní,

začněte programovat desku s daným kódem níže

// AUTOMATICKÉ PŘEKÁŽCE SE VYHNUTÍ AUTU //// Před nahráním kódu musíte nainstalovat potřebnou knihovnu // // Knihovna AFMotor https://learn.adafruit.com/adafruit-motor-shield/library-install // // Knihovna NewPing https://github.com/livetronic/Arduino-NewPing// // Servo knihovna https://github.com/arduino-libraries/Servo.git // // Chcete-li nainstalovat knihovny, přejděte na náčrtek >> Zahrnout Knihovna >> Přidat soubor. ZIP >> Vyberte stažené soubory ZIP z výše uvedených odkazů //

#zahrnout

#zahrnout

#zahrnout

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // nastavuje rychlost stejnosměrných motorů

#define MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Motor motoru1 (1, MOTOR12_1KHZ);

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

boolean goesForward = false;

int vzdálenost = 100; int speedSet = 0;

neplatné nastavení () {

myservo.attach (10);

myservo.write (115); zpoždění (1000); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); }

prázdná smyčka () {

int vzdálenostR = 0; int vzdálenostL = 0; zpoždění (40); if (vzdálenost <= 15) {moveStop (); zpoždění (100); jít zpět(); zpoždění (300); moveStop (); zpoždění (200); distanceR = lookRight (); zpoždění (300); vzdálenostL = lookLeft (); zpoždění (300);

pokud (vzdálenostR> = vzdálenostL)

{ odbočit vpravo(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } vzdálenost = readPing (); }

int lookRight ()

{myservo.write (50); zpoždění (650); int vzdálenost = readPing (); zpoždění (100); myservo.write (115); návratová vzdálenost; }

int lookLeft ()

{myservo.write (170); zpoždění (650); int vzdálenost = readPing (); zpoždění (100); myservo.write (115); návratová vzdálenost; zpoždění (100); }

int readPing () {

zpoždění (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } vrátit cm; }

void moveStop () {

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

if (! goesForward)

{goesForward = true; motor1.run (VPŘED); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (VPŘED); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomalu zvyšte rychlost, abyste se vyhnuli příliš rychlému vybíjení baterií {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); zpoždění (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) // pomalu zvyšte rychlost, abyste se vyhnuli příliš rychlému vybíjení baterií {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); zpoždění (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (VPŘED); zpoždění (350); motor1.run (VPŘED); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (VPŘED); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); zpoždění (350); motor1.run (VPŘED); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (VPŘED); }

Doporučuje: