INHOUDSOPGAWE:

Hoe om 'n DIY Arduino -hindernis te maak om robot tuis te vermy: 4 stappe
Hoe om 'n DIY Arduino -hindernis te maak om robot tuis te vermy: 4 stappe

Video: Hoe om 'n DIY Arduino -hindernis te maak om robot tuis te vermy: 4 stappe

Video: Hoe om 'n DIY Arduino -hindernis te maak om robot tuis te vermy: 4 stappe
Video: Шпатлевка стен и потолка. З способа. Какой самый быстрый? 2024, November
Anonim
Image
Image

Hallo ouens, in hierdie instruksies sal u 'n hindernis maak om robot te vermy. Hierdie instruksie behels die bou van 'n robot met 'n ultrasoniese sensor wat voorwerpe in die omgewing kan opspoor en hul rigting kan verander om hierdie voorwerpe te vermy. Die ultrasoniese sensor word aan 'n servomotor gekoppel wat voortdurend na links en regs soek en op soek is na voorwerpe.

Dus, sonder meer, laat ons begin!

Stap 1: Wat u benodig in hierdie projek:

Wat u benodig in hierdie projek
Wat u benodig in hierdie projek
Wat u benodig in hierdie projek
Wat u benodig in hierdie projek

Hier is die onderdele lys:

1) Arduino Uno

2) Motorbestuurder se skild

3) ratmotor, raam en wiele stel

4) Servomotor

5) Ultrasoniese sensor

6) Li-ion battery (2x)

7) Batteryhouer

8) Manlike en vroulike jumperdraad

9) Soldeerbout

10) Laaier

Stap 2: Kringdiagram

Stroombaandiagram
Stroombaandiagram

Werk:

Voordat u aan die projek gaan, is dit belangrik om te verstaan hoe die ultrasoniese sensor werk. Die basiese beginsel agter die werking van die ultrasoniese sensor is soos volg:

Deur 'n eksterne snellersignaal te gebruik, word die Trig -pen op die ultrasoniese sensor vir ten minste 10µs logies gemaak. 'N Soniese uitbarsting van die sendermodule word gestuur. Dit bestaan uit 8 pulse van 40KHz.

Die seine keer terug nadat hulle 'n oppervlak getref het en die ontvanger bespeur hierdie sein. Die Echo -pen is hoog vanaf die tyd dat die sein gestuur en ontvang is. Hierdie tyd kan met behulp van toepaslike berekeninge omgeskakel word na afstand.

Die doel van hierdie projek is om 'n hindernis te implementeer om robot te vermy met behulp van ultrasoniese sensor en Arduino. Alle verbindings word gemaak volgens die stroomdiagram. Die werking van die projek word hieronder verduidelik.

As die robot aangeskakel word, werk beide die motors van die robot normaal en die robot beweeg vorentoe. Gedurende hierdie tyd bereken die ultrasoniese sensor voortdurend die afstand tussen die robot en die weerkaatsende oppervlak.

Hierdie inligting word deur die Arduino verwerk. As die afstand tussen die robot en die struikelblok minder as 15 cm is, stop die robot en soek na links en regs na nuwe afstand met behulp van servomotor en ultrasoniese sensor. As die afstand na die linkerkant groter is as dié van die regterkant, berei die robot voor vir 'n draai na links. Maar eers ondersteun dit 'n bietjie en aktiveer dan die linkerwielmotor in omgekeerde rigting.

Net so, as die regte afstand meer is as die van die linkerafstand, berei die robot die regte draai voor. Hierdie proses duur vir ewig voort en die robot bly aan die beweeg sonder om enige hindernis te raak.

Stap 3: Programmering van Arduino UNO

#insluit

#insluit

#insluit

# definieer TRIG_PIN A1

# definieer ECHO_PIN A0

# definieer MAX_DISTANCE 200

# definieer MAX_SPEED 255 // stel die snelheid van GS -motors in

# definieer MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int afstand = 100; int speedSet = 0;

ongeldige opstelling () {

myservo.attach (10);

myservo.write (115); vertraging (2000); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); }

leemte -lus () {

int afstandR = 0; int afstand L = 0; vertraging (40);

if (afstand <= 15) {moveStop (); vertraging (100); moveBackward (); vertraging (300); moveStop (); vertraging (200); distanceR = lookRight (); vertraging (200); distanceL = lookLeft (); vertraging (200);

as (afstandR> = afstandL) {

draai regs(); moveStop (); } anders {turnLeft (); moveStop (); }} anders {moveForward (); } afstand = readPing (); }

int lookRight () {

myservo.write (50); vertraging (500); int afstand = readPing (); vertraging (100); myservo.write (115); terugkeer afstand; }

int lookLeft () {

myservo.write (170); vertraging (500); int afstand = readPing (); vertraging (100); myservo.write (115); terugkeer afstand; vertraging (100); }

int readPing () {

vertraging (70); int cm = sonar.ping_cm (); as (cm == 0) {cm = 250; } cm terug; }

leegte moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

nietig moveForward () {

as (! gaan vorentoe) {

goesForward = waar;

motor3.run (VOORUIT);

motor4.run (VOORUIT); vir (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // verhoog die spoed stadig om te voorkom dat die batterye te vinnig laai {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); vertraging (5); }}}

nietig moveBackward () {

goesForward = vals;

motor3.run (TERUG);

motor4.run (TERUG); vir (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // verhoog die spoed stadig om te voorkom dat die batterye te vinnig laai {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); vertraging (5); }}

nietige turnRight () {

motor3.run (VOORUIT);

motor4.run (TERUG); vertraging (500);

motor3.run (VOORUIT);

motor4.run (VOORUIT); }

leegte turnLeft () {

motor3.loop (TERUG);

motor4.run (VOORUIT); vertraging (500);

motor3.run (VOORUIT);

motor4.run (VOORUIT); }

1) Laai die Arduino Desktop IDE af en installeer dit

  • vensters -
  • Mac OS X -
  • Linux -

2) Laai die NewPing -biblioteek (Ultrasonic sensor function library) lêer af en plak dit in die gids Arduino biblioteke.

  1. Laai die NewPing.rar hieronder af
  2. Pak dit uit na die pad - C: / Arduino / biblioteke

3) Laai die kode op 'n Arduino -bord op via 'n USB -kabel

Aflaai kode:

Stap 4: Fantasties

Nou is u robot gereed om hindernisse te vermy …

Ek beantwoord graag u vrae

E -pos my: [email protected]

Webwerf:

Teken in op my YouTube-kanaal:

Instagram:

Facebook:

Dankie:)

Aanbeveel: