Tartalomjegyzék:

Hogyan készítsünk barkácsoló Arduino akadályt a robot elkerülésére otthon: 4 lépés
Hogyan készítsünk barkácsoló Arduino akadályt a robot elkerülésére otthon: 4 lépés

Videó: Hogyan készítsünk barkácsoló Arduino akadályt a robot elkerülésére otthon: 4 lépés

Videó: Hogyan készítsünk barkácsoló Arduino akadályt a robot elkerülésére otthon: 4 lépés
Videó: Как сделать простое двунаправленное управление двигателем постоянного тока —БЕЗ ИС / БЕЗ транзистора 2024, November
Anonim
Image
Image

Helló srácok! Ebben az utasításban akadályokat fog elkövetni, elkerülve a robotot. Ez az utasítás az ultrahangos érzékelővel rendelkező robot építését foglalja magában, amely képes észlelni a közeli tárgyakat és megváltoztatni azok irányát, hogy elkerülje ezeket. Az ultrahangos érzékelőt egy szervomotorhoz rögzítik, amely folyamatosan balra és jobbra pásztáz, és keresi az útjában lévő tárgyakat.

Tehát minden további nélkül, kezdjük el!

1. lépés: Amire szüksége van ebben a projektben:

Amire szüksége van ebben a projektben
Amire szüksége van ebben a projektben
Amire szüksége van ebben a projektben
Amire szüksége van ebben a projektben

Íme az alkatrészlista:

1) Arduino Uno

2) Motorvezérlő pajzs

3) Fogaskerék motor, keret és kerekek

4) Szervo motor

5) Ultrahangos érzékelő

6) Li-ion akkumulátor (2x)

7) Akkumulátor tartó

8) Férfi és női jumper vezeték

9) Forrasztópáka

10) Töltő

2. lépés: Áramköri diagram

Kördiagramm
Kördiagramm

Dolgozó:

Mielőtt elkezdené a projektet, fontos megérteni az ultrahangos érzékelő működését. Az ultrahangos érzékelő működésének alapelve a következő:

Külső triggerjel használatával az ultrahangos érzékelő Trig csapja logikailag magas, legalább 10 µs -ig. Hangjelzés érkezik az adómodulból. Ez 8 db 40KHz -es impulzusból áll.

A jelek visszatérnek, miután egy felületre ütköznek, és a vevő észleli ezt a jelet. Az Echo pin magas a jel elküldésétől és fogadásától. Ez az idő megfelelő számításokkal megtéríthető távolságra.

Ennek a projektnek az a célja, hogy egy akadályt valósítson meg a robot elkerülése érdekében ultrahangos érzékelő és Arduino segítségével. Minden csatlakozás a kapcsolási rajz szerint történik. A projekt működését az alábbiakban ismertetjük.

Amikor a robot be van kapcsolva, a robot mindkét motorja normálisan fog működni, és a robot előrehalad. Ez idő alatt az ultrahangos érzékelő folyamatosan kiszámítja a robot és a fényvisszaverő felület közötti távolságot.

Ezt az információt az Arduino dolgozza fel. Ha a robot és az akadály közötti távolság kisebb, mint 15 cm, akkor a robot megáll, és a szervo motor és az ultrahangos érzékelő segítségével balra és jobbra keresi az új távolságot. Ha a bal oldali távolság nagyobb, mint a jobb oldal, akkor a robot balra fordulásra készül. Előbb azonban egy kicsit biztonsági mentést végez, majd a bal oldali kerékmotort fordított irányba aktiválja.

Hasonlóképpen, ha a jobb távolság nagyobb, mint a bal távolság, a Robot előkészíti a jobb oldali forgást. Ez a folyamat örökké tart, és a robot tovább halad, anélkül, hogy bármilyen akadályt ütne.

3. lépés: Az Arduino UNO programozása

#befoglalni

#befoglalni

#befoglalni

# define TRIG_PIN A1

# define ECHO_PIN A0

# definiálja a MAX_DISTANCE 200 értéket

# define MAX_SPEED 255 // beállítja az egyenáramú motorok sebességét

# define MAX_SPEED_OFFSET 20

NewPing szonár (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Szervo myservo;

logikai megyForward = false;

int távolság = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); késleltetés (2000); távolság = readPing (); késleltetés (100); távolság = readPing (); késleltetés (100); távolság = readPing (); késleltetés (100); távolság = readPing (); késleltetés (100); }

void loop () {

int távolságR = 0; int távolságL = 0; késleltetés (40);

if (távolság <= 15) {moveStop (); késleltetés (100); hátrafelé mozogni(); késleltetés (300); moveStop (); késleltetés (200); távolságR = lookRight (); késleltetés (200); távolságL = lookLeft (); késleltetés (200);

if (távolságR> = távolságL) {

jobbra(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } távolság = readPing (); }

int lookRight () {

myservo.write (50); késleltetés (500); int távolság = readPing (); késleltetés (100); myservo.write (115); visszatérési távolság; }

int lookLeft () {

myservo.write (170); késleltetés (500); int távolság = readPing (); késleltetés (100); myservo.write (115); visszatérési távolság; késleltetés (100); }

int readPing () {

késleltetés (70); int cm = szonár.ping_cm (); ha (cm == 0) {cm = 250; } visszatérés cm; }

void moveStop () {

motor3.run (KIADÁS);

motor4.run (KIADÁS); }

void moveForward () {

ha (! megy előre) {

megy előre = igaz;

motor3.run (ELŐRE);

motor4.run (ELŐRE); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // lassan növelje a sebességet, nehogy túl gyorsan töltse le az elemeket {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); késleltetés (5); }}}

void moveBackward () {

goForward = hamis;

motor3.run (VISSZA);

motor4.run (VISSZA); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // lassan növelje a sebességet, nehogy túl gyorsan töltse le az elemeket {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); késleltetés (5); }}

void turnRight () {

motor3.run (ELŐRE);

motor4.run (VISSZA); késleltetés (500);

motor3.run (ELŐRE);

motor4.run (ELŐRE); }

void turnLeft () {

motor3.run (VISSZA);

motor4.run (ELŐRE); késleltetés (500);

motor3.run (ELŐRE);

motor4.run (ELŐRE); }

1) Töltse le és telepítse az Arduino Desktop IDE -t

  • ablakok -
  • Mac OS X -
  • Linux -

2) Töltse le és illessze be a NewPing library (Ultrasonic sensor function library) fájlt az Arduino libraries mappába.

  1. Töltse le az alábbi NewPing.rar -t
  2. Bontsa ki az elérési útba - C: / Arduino / könyvtárak

3) Töltse fel a kódot az Arduino kártyára USB -kábelen keresztül

Letöltési kód:

4. lépés: Nagyszerű

A robot készen áll arra, hogy elkerülje az akadályokat…

Bármilyen kérdésedre szívesen válaszolok

Email: [email protected]

Weboldal:

Iratkozz fel YouTube csatornámra:

Instagram:

Facebook:

Köszönöm:)

Ajánlott: