Innholdsfortegnelse:

Hvordan lage en DIY Arduino -hindring for å unngå robot hjemme: 4 trinn
Hvordan lage en DIY Arduino -hindring for å unngå robot hjemme: 4 trinn

Video: Hvordan lage en DIY Arduino -hindring for å unngå robot hjemme: 4 trinn

Video: Hvordan lage en DIY Arduino -hindring for å unngå robot hjemme: 4 trinn
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, November
Anonim
Image
Image

Hei Gutter, I denne instruksen vil du gjøre en hindring for å unngå robot. Denne instruksen innebærer å bygge en robot med en ultralydsensor som kan oppdage objekter i nærheten og endre retning for å unngå disse objektene. Ultralydsensoren vil bli festet til en servomotor som konstant skanner til venstre og høyre og leter etter objekter i veien.

Så, uten videre, la oss komme i gang!

Trinn 1: Hva du trenger i dette prosjektet:

Hva du trenger i dette prosjektet
Hva du trenger i dette prosjektet
Hva du trenger i dette prosjektet
Hva du trenger i dette prosjektet

Her er delelisten:

1) Arduino Uno

2) Motorførerskjold

3) Girmotor, ramme og hjul sett

4) Servomotor

5) Ultralydsensor

6) Li-ion batteri (2x)

7) Batteriholder

8) Mann og kvinne Jumper wire

9) Loddejern

10) Lader

Trinn 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Jobber:

Før du går i gang med prosjektet, er det viktig å forstå hvordan ultralydssensoren fungerer. Det grunnleggende prinsippet bak bruk av ultralydsensoren er som følger:

Ved hjelp av et eksternt utløsersignal blir Trig -pinnen på ultralydssensoren logisk høy i minst 10µs. Et lydsignal fra sendermodulen sendes. Denne består av 8 pulser på 40KHz.

Signalene kommer tilbake etter å ha truffet en overflate, og mottakeren oppdager dette signalet. Echo -pinnen er høy fra det tidspunktet signalet ble sendt og mottatt. Denne tiden kan konverteres til avstand ved hjelp av passende beregninger.

Målet med dette prosjektet er å implementere en hindring for å unngå robot som bruker ultralydssensor og Arduino. Alle tilkoblinger er utført i henhold til kretsdiagrammet. Arbeidet med prosjektet er forklart nedenfor.

Når roboten slås på, vil begge motorene til roboten gå normalt og roboten beveger seg fremover. I løpet av denne tiden beregner ultralydsensoren kontinuerlig avstanden mellom roboten og den reflekterende overflaten.

Denne informasjonen behandles av Arduino. Hvis avstanden mellom roboten og hindringen er mindre enn 15 cm, stopper roboten og skanner i venstre og høyre retning for ny avstand ved hjelp av servomotor og ultralydsensor. Hvis avstanden mot venstre side er mer enn den på høyre side, forbereder roboten seg på en sving til venstre. Men først sikkerhetskopierer den litt og aktiverer deretter venstre hjulmotor i revers i retning.

På samme måte, hvis høyre avstand er mer enn venstre distanse, forbereder roboten høyre rotasjon. Denne prosessen fortsetter for alltid, og roboten fortsetter å bevege seg uten å treffe noen hindring.

Trinn 3: Programmering av Arduino UNO

#inkludere

#inkludere

#inkludere

# definere TRIG_PIN A1

# definere ECHO_PIN A0

# definere MAX_DISTANCE 200

# definere MAX_SPEED 255 // angir hastigheten til likestrømsmotorer

# definere MAX_SPEED_OFFSET 20

NewPing -ekkolodd (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolsk goesForward = false;

int avstand = 100; int speedSet = 0;

ugyldig oppsett () {

myservo.attach (10);

myservo.write (115); forsinkelse (2000); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); }

void loop () {

int distanseR = 0; int distanse L = 0; forsinkelse (40);

if (avstand <= 15) {moveStop (); forsinkelse (100); Flytt tilbake(); forsinkelse (300); moveStop (); forsinkelse (200); distanceR = lookRight (); forsinkelse (200); distanceL = lookLeft (); forsinkelse (200);

hvis (distanseR> = avstandL) {

ta til høyre(); moveStop (); } annet {turnLeft (); moveStop (); }} annet {moveForward (); } distanse = readPing (); }

int lookRight () {

myservo.write (50); forsinkelse (500); int distance = readPing (); forsinkelse (100); myservo.write (115); returavstand; }

int lookLeft () {

myservo.write (170); forsinkelse (500); int distance = readPing (); forsinkelse (100); myservo.write (115); returavstand; forsinkelse (100); }

int readPing () {

forsinkelse (70); int cm = sonar.ping_cm (); hvis (cm == 0) {cm = 250; } retur cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

hvis (! goesForward) {

goesForward = true;

motor3.run (FREM);

motor4.run (FREM); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // øk sakte hastigheten for å unngå å lade batteriene for raskt {

motor3.setSpeed (speedSet);

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

void moveBackward () {

goesForward = false;

motor3.kjøring (TILBAKE);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // øk sakte hastigheten for å unngå å lade batteriene for raskt {

motor3.setSpeed (speedSet);

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

void turnRight () {

motor3.run (FREM);

motor4.run (BACKWARD); forsinkelse (500);

motor3.run (FREM);

motor4.run (FREM); }

void turnLeft () {

motor3.kjøring (TILBAKE);

motor4.run (FREM); forsinkelse (500);

motor3.run (FREM);

motor4.run (FREM); }

1) Last ned og installer Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Last ned og lim inn NewPing -biblioteket (Ultrasonic sensor function library) -filen i Arduino biblioteker -mappen.

  1. Last ned NewPing.rar nedenfor
  2. Pakk den ut til banen - C: / Arduino / libraries

3) Last opp koden til Arduino -kortet via en USB -kabel

Last ned kode:

Trinn 4: Flott

Nå er roboten klar til å unngå hindringer …

Jeg vil gjerne svare på eventuelle spørsmål du har

E -postadresse: [email protected]

Nettsted:

Abonner på YouTube-kanalen min:

Instagram:

Facebook:

Takk skal du ha:)

Anbefalt: