Innehållsförteckning:

Hur man gör ett DIY Arduino -hinder för att undvika robot hemma: 4 steg
Hur man gör ett DIY Arduino -hinder för att undvika robot hemma: 4 steg

Video: Hur man gör ett DIY Arduino -hinder för att undvika robot hemma: 4 steg

Video: Hur man gör ett DIY Arduino -hinder för att undvika robot hemma: 4 steg
Video: The PHENOMENON BRUNO GROENING – documentary film – PART 1 2024, Juli
Anonim
Image
Image

Hej killar, I denna instruerbara, kommer du att göra ett hinder för att undvika robot. Detta instruerbara innebär att bygga en robot med en ultraljudssensor som kan upptäcka föremål i närheten och ändra deras riktning för att undvika dessa föremål. Ultraljudssensorn kommer att anslutas till en servomotor som ständigt skannar åt vänster och höger och letar efter föremål i dess väg.

Så, utan vidare, låt oss komma igång!

Steg 1: Vad du behöver i detta projekt:

Vad du behöver i detta projekt
Vad du behöver i detta projekt
Vad du behöver i detta projekt
Vad du behöver i detta projekt

Här är reservdelslistan:

1) Arduino Uno

2) Motorförarsköld

3) Växelmotor, ram och hjuluppsättning

4) Servomotor

5) Ultraljudssensor

6) Li-ion batteri (2x)

7) Batterihållare

8) Manlig och kvinnlig bygelkabel

9) Lödkolv

10) Laddare

Steg 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Arbetssätt:

Innan du börjar arbeta med projektet är det viktigt att förstå hur ultraljudssensorn fungerar. Grundprincipen bakom ultraljudssensorns funktion är följande:

Med hjälp av en extern triggersignal görs Trig -stiftet på ultraljudssensorn logiskt högt i minst 10 µs. En ljudsekvens från sändarmodulen skickas. Detta består av 8 pulser på 40KHz.

Signalerna återvänder efter att ha träffat en yta och mottagaren upptäcker denna signal. Echo -stiftet är högt från det att signalen skickades och mottogs. Denna tid kan omvandlas till avstånd med lämpliga beräkningar.

Syftet med detta projekt är att implementera ett hinder för att undvika robot som använder ultraljudssensor och Arduino. Alla anslutningar görs enligt kretsschemat. Projektets funktion förklaras nedan.

När roboten slås på kommer båda robotarna att fungera normalt och roboten går framåt. Under denna tid beräknar ultraljudssensorn kontinuerligt avståndet mellan roboten och den reflekterande ytan.

Denna information behandlas av Arduino. Om avståndet mellan roboten och hindret är mindre än 15 cm, stannar roboten och skannar i vänster och höger riktning efter nytt avstånd med servomotor och ultraljudssensor. Om avståndet mot vänster sida är mer än det på höger sida, förbereder roboten för en vänster sväng. Men först backar den lite och aktiverar sedan vänster hjulmotor i omvänd riktning.

På samma sätt, om det rätta avståndet är mer än det för det vänstra avståndet, förbereder roboten höger rotation. Denna process fortsätter för alltid och roboten fortsätter att röra sig utan att träffa något hinder.

Steg 3: Programmering av Arduino UNO

#omfatta

#omfatta

#omfatta

# definiera TRIG_PIN A1

# definiera ECHO_PIN A0

# definiera MAX_DISTANCE 200

# definiera MAX_SPEED 255 // ställer in hastigheten för likströmsmotorer

# definiera MAX_SPEED_OFFSET 20

NewPing -ekolod (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

booleska goesForward = false;

int avstånd = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); fördröjning (2000); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); }

void loop () {

int avståndR = 0; int avstånd L = 0; fördröjning (40);

if (avstånd <= 15) {moveStop (); fördröjning (100); flytta bakåt(); fördröjning (300); moveStop (); fördröjning (200); distanceR = lookRight (); fördröjning (200); distanceL = lookLeft (); fördröjning (200);

if (distansR> = avståndL) {

sväng höger(); moveStop (); } annat {turnLeft (); moveStop (); }} annat {moveForward (); } distans = readPing (); }

int lookRight () {

myservo.write (50); fördröjning (500); int avstånd = readPing (); fördröjning (100); myservo.write (115); returavstånd; }

int lookLeft () {

myservo.write (170); fördröjning (500); int avstånd = readPing (); fördröjning (100); myservo.write (115); returavstånd; fördröjning (100); }

int readPing () {

fördröjning (70); int cm = sonar.ping_cm (); om (cm == 0) {cm = 250; } retur cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

om (! goesForward) {

goesForward = true;

motor3.körning (FRAMÅT);

motor4.run (FRAMÅT); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // sakta öka hastigheten för att undvika att ladda ner batterierna för snabbt {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); fördröjning (5); }}}

void moveBackward () {

goesForward = false;

motor3.körning (BACKWARD);

motor4.körning (BACKWARD); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // sakta öka hastigheten för att undvika att ladda ner batterierna för snabbt {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); fördröjning (5); }}

void turnRight () {

motor3.körning (FRAMÅT);

motor4.körning (BACKWARD); fördröjning (500);

motor3.körning (FRAMÅT);

motor4.run (FRAMÅT); }

void turnLeft () {

motor3.körning (BACKWARD);

motor4.run (FRAMÅT); fördröjning (500);

motor3.körning (FRAMÅT);

motor4.run (FRAMÅT); }

1) Ladda ner och installera Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Ladda ner och klistra in NewPing -biblioteket (Ultrasonic sensor function library) -filen i mappen Arduino libraries.

  1. Ladda ner NewPing.rar nedan
  2. Extrahera den till sökvägen - C: / Arduino / libraries

3) Ladda upp koden till Arduino -kortet via en USB -kabel

Nedladdningskod:

Steg 4: Bra

Nu är din robot redo att undvika hinder …

Jag svarar gärna på alla frågor du har

Mejla mig: [email protected]

Webbplats:

Prenumerera på min YouTube-kanal:

Instagram:

Facebook:

Tack:)

Rekommenderad: