Indholdsfortegnelse:

Sådan laver du en DIY Arduino -hindring for at undgå robot derhjemme: 4 trin
Sådan laver du en DIY Arduino -hindring for at undgå robot derhjemme: 4 trin

Video: Sådan laver du en DIY Arduino -hindring for at undgå robot derhjemme: 4 trin

Video: Sådan laver du en DIY Arduino -hindring for at undgå robot derhjemme: 4 trin
Video: Дочка СТРАШНОГО КЛОУНА ФАНАТКА Сиреноголового! Сиреноголовый ИЩЕТ ДЕВУШКУ! Реалити Шоу! 2024, November
Anonim
Image
Image

Hej Guys, I denne Instructable, vil du lave en forhindring for at undgå robot. Denne instruks involverer at bygge en robot med en ultralydssensor, der kan registrere objekter i nærheden og ændre deres retning for at undgå disse objekter. Ultralydssensoren vil blive fastgjort til en servomotor, der konstant scanner til venstre og højre og leder efter objekter i vejen.

Så uden videre, lad os komme i gang!

Trin 1: Hvad du har brug for i dette projekt:

Hvad du har brug for i dette projekt
Hvad du har brug for i dette projekt
Hvad du har brug for i dette projekt
Hvad du har brug for i dette projekt

Her er reservedelslisten:

1) Arduino Uno

2) Motor Driver Shield

3) Gearmotor, stel og hjul sæt

4) Servomotor

5) Ultralydssensor

6) Li-ion batteri (2x)

7) Batteriholder

8) Han- og hunjumperstrøm

9) Loddejern

10) Oplader

Trin 2: Kredsløbsdiagram

Kredsløbsdiagram
Kredsløbsdiagram

Arbejder:

Inden vi går i gang med projektet, er det vigtigt at forstå, hvordan ultralydssensoren fungerer. Det grundlæggende princip bag ultralydssensorens funktion er som følger:

Ved hjælp af et eksternt trigger -signal gøres Trig -pin på ultralydssensoren logisk høj i mindst 10µs. Et lydsignal fra sendermodulet sendes. Denne består af 8 pulser på 40KHz.

Signalerne vender tilbage efter at have ramt en overflade, og modtageren registrerer dette signal. Echo -stiften er høj fra tidspunktet for afsendelse af signalet og modtagelse af det. Denne tid kan konverteres til afstand ved hjælp af passende beregninger.

Formålet med dette projekt er at implementere en hindring for at undgå robot ved hjælp af ultralydssensor og Arduino. Alle forbindelser foretages i henhold til kredsløbsdiagrammet. Projektets arbejde forklares nedenfor.

Når robotten tændes, kører begge robotens motorer normalt, og robotten bevæger sig fremad. I løbet af denne tid beregner ultralydssensoren kontinuerligt afstanden mellem robotten og den reflekterende overflade.

Disse oplysninger behandles af Arduino. Hvis afstanden mellem robotten og forhindringen er mindre end 15 cm, stopper robotten og scanner i venstre og højre retning efter ny afstand ved hjælp af servomotor og ultralydssensor. Hvis afstanden mod venstre side er mere end den i højre side, forbereder robotten sig til en venstresving. Men først bakker den lidt op og derefter aktiverer venstre hjulmotor i omvendt retning.

På samme måde, hvis den rigtige afstand er mere end den for den venstre afstand, forbereder robotten højre rotation. Denne proces fortsætter for evigt, og robotten bliver ved med at bevæge sig uden at ramme nogen forhindring.

Trin 3: Programmering af Arduino UNO

#omfatte

#omfatte

#omfatte

# definer TRIG_PIN A1

# definer ECHO_PIN A0

# definer MAX_DISTANCE 200

# definere MAX_SPEED 255 // indstiller DC -motorers hastighed

# definere MAX_SPEED_OFFSET 20

NewPing -ekkolod (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolsk goesForward = false;

int afstand = 100; int speedSet = 0;

ugyldig opsætning () {

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 distanceR = 0; int distanceL = 0; forsinkelse (40);

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

hvis (distanceR> = distanceL) {

Drej til højre(); moveStop (); } ellers {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {

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

int lookLeft () {

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

int readPing () {

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

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) // langsomt sænke hastigheden for at undgå at nedlade batterierne for hurtigt {

motor3.setSpeed (speedSet);

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

void moveBackward () {

goesForward = falsk;

motor3.run (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // langsomt sænke hastigheden for at undgå at nedlade batterierne for hurtigt {

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.run (BACKWARD);

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

motor3.run (FREM);

motor4.run (FREM); }

1) Download og installer Arduino Desktop IDE

  • vinduer -
  • Mac OS X -
  • Linux -

2) Download og indsæt filen NewPing -bibliotek (Ultrasonic sensor function library) i mappen Arduino biblioteker.

  1. Download NewPing.rar herunder
  2. Udpak den til stien - C: / Arduino / libraries

3) Upload koden til Arduino -kortet via et USB -kabel

Downloadkode:

Trin 4: Fantastisk

Nu er din robot klar til at undgå enhver forhindring …

Jeg vil med glæde besvare eventuelle spørgsmål, du har

E -mail mig: [email protected]

Websted:

Abonner på min YouTube-kanal:

Instagram:

Facebook:

Tak skal du have:)

Anbefalede: