Sadržaj:

Kako napraviti robota za izbjegavanje prepreka od Arduina kod kuće: 4 koraka
Kako napraviti robota za izbjegavanje prepreka od Arduina kod kuće: 4 koraka

Video: Kako napraviti robota za izbjegavanje prepreka od Arduina kod kuće: 4 koraka

Video: Kako napraviti robota za izbjegavanje prepreka od Arduina kod kuće: 4 koraka
Video: Мощная ультразвуковая ванна своими руками. DIY ultrasonic bath. 2024, Novembar
Anonim
Image
Image

Zdravo momci, u ovom Instructableu ćete napraviti prepreku izbjegavajući robota. Ovaj Instructable uključuje izgradnju robota s ultrazvučnim senzorom koji može otkriti obližnje objekte i promijeniti njihov smjer kako bi izbjegao te objekte. Ultrazvučni senzor bit će pričvršćen na servo motor koji stalno skenira lijevo i desno tražeći predmete na svom putu.

Dakle, bez daljnjih zalogaja, počnimo!

Korak 1: Šta vam je potrebno u ovom projektu:

Šta vam treba u ovom projektu
Šta vam treba u ovom projektu
Šta vam treba u ovom projektu
Šta vam treba u ovom projektu

Evo liste dijelova:

1) Arduino Uno

2) Štit vozača motora

3) Motor zupčanika, okvir i kotači

4) Servo motor

5) Ultrazvučni senzor

6) Li-ion baterija (2x)

7) Držač baterije

8) Muška i ženska kratkospojna žica

9) Lemilica

10) Punjač

Korak 2: Dijagram kola

Dijagram kola
Dijagram kola

Rad:

Prije nego što počnete raditi na projektu, važno je razumjeti kako funkcionira ultrazvučni senzor. Osnovni princip rada ultrazvučnog senzora je sljedeći:

Koristeći vanjski signal okidača, okidač na ultrazvučnom senzoru postaje logički visok najmanje 10µs. Šalje se zvučni signal iz odašiljačkog modula. Sastoji se od 8 impulsa od 40KHz.

Signali se vraćaju natrag nakon udarca u površinu i prijemnik detektira ovaj signal. Echo pin je visok od trenutka slanja signala i prijema. Ovo vrijeme se može pretvoriti u udaljenost pomoću odgovarajućih proračuna.

Cilj ovog projekta je implementirati robota koji izbjegava prepreke pomoću ultrazvučnog senzora i Arduina. Svi priključci su izvedeni prema shemi kola. U nastavku se objašnjava rad projekta.

Kada je robot uključen, oba motora robota će raditi normalno i robot će se kretati naprijed. Za to vrijeme ultrazvučni senzor kontinuirano izračunava udaljenost između robota i reflektirajuće površine.

Ove podatke obrađuje Arduino. Ako je udaljenost između robota i prepreke manja od 15 cm, Robot se zaustavlja i skenira u lijevom i desnom smjeru za novu udaljenost pomoću Servo motora i ultrazvučnog senzora. Ako je udaljenost prema lijevoj strani veća od udaljenosti desne strane, robot će se pripremiti za skretanje ulijevo. Ali prvo se malo sigurnosno kopira, a zatim aktivira motor lijevog kotača u obrnutom smjeru.

Slično, ako je desna udaljenost veća od udaljenosti lijeve udaljenosti, Robot priprema rotaciju udesno. Ovaj proces se nastavlja zauvijek, a robot se nastavlja kretati bez udarca u bilo koju prepreku.

Korak 3: Programiranje Arduino UNO -a

#include

#include

#include

# definirajte TRIG_PIN A1

# definirajte ECHO_PIN A0

# definirajte MAX_DISTANCE 200

# define MAX_SPEED 255 // postavlja brzinu istosmjernih motora

# define MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motora3 (3, MOTOR34_1KHZ);

AF_DCMotorni motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int udaljenost = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); kašnjenje (2000); distance = readPing (); kašnjenje (100); distance = readPing (); kašnjenje (100); distance = readPing (); kašnjenje (100); distance = readPing (); kašnjenje (100); }

void loop () {{100} {101}

int udaljenostR = 0; int udaljenostL = 0; kašnjenje (40);

if (udaljenost <= 15) {moveStop (); kašnjenje (100); moveBackward (); kašnjenje (300); moveStop (); kašnjenje (200); distanceR = lookRight (); kašnjenje (200); distanceL = lookLeft (); kašnjenje (200);

if (distanceR> = distanceL) {

turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {

myservo.write (50); kašnjenje (500); int udaljenost = readPing (); kašnjenje (100); myservo.write (115); povratna udaljenost; }

int lookLeft () {

myservo.write (170); kašnjenje (500); int udaljenost = readPing (); kašnjenje (100); myservo.write (115); povratna udaljenost; kašnjenje (100); }

int readPing () {

kašnjenje (70); int cm = sonar.ping_cm (); ako (cm == 0) {cm = 250; } return cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

if (! ide naprijed) {

goesForward = true;

motor3.run (NAPRIJED);

motor4.run (NAPRIJED); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // polako povećavajte brzinu kako biste izbjegli prebrzo punjenje baterija {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); kašnjenje (5); }}}

void moveBackward () {

goesForward = false;

motor3.run (NAZAD);

motor4.run (NAZAD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // polako povećavajte brzinu kako biste izbjegli prebrzo punjenje baterija {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); kašnjenje (5); }}

void turnRight () {

motor3.run (NAPRIJED);

motor4.run (NAZAD); kašnjenje (500);

motor3.run (NAPRIJED);

motor4.run (NAPRIJED); }

void turnLeft () {

motor3.run (NAZAD);

motor4.run (NAPRIJED); kašnjenje (500);

motor3.run (NAPRIJED);

motor4.run (NAPRIJED); }

1) Preuzmite i instalirajte Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Preuzmite i zalijepite datoteku biblioteke NewPing (biblioteka funkcija ultrazvučnog senzora) u mapu Arduino biblioteke.

  1. Preuzmite NewPing.rar ispod
  2. Raspakujte ga na putanju - C: / Arduino / libraries

3) Prenesite kôd na Arduino ploču putem USB kabela

Preuzmite kôd:

Korak 4: Odlično

Sada je vaš robot spreman da izbjegne svaku prepreku …

Rado ću odgovoriti na svako vaše pitanje

Emailme: [email protected]

Web stranica:

Pretplatite se na moj YouTube kanal:

Instagram:

Facebook:

Hvala ti:)

Preporučuje se: