Obsah:

Jak si vyrobit DIY Arduino překážku vyhýbající se robotu doma: 4 kroky
Jak si vyrobit DIY Arduino překážku vyhýbající se robotu doma: 4 kroky

Video: Jak si vyrobit DIY Arduino překážku vyhýbající se robotu doma: 4 kroky

Video: Jak si vyrobit DIY Arduino překážku vyhýbající se robotu doma: 4 kroky
Video: Roboti (2) AnaBot sleduje čáru 2024, Červenec
Anonim
Image
Image

Ahoj kluci, v tomto Instructable budete dělat robota vyhýbajícího se překážkám. Tento Instructable zahrnuje stavbu robota s ultrazvukovým senzorem, který dokáže detekovat blízké objekty a měnit jejich směr, aby se těmto objektům vyhnul. Ultrazvukový senzor bude připojen k servomotoru, který neustále skenuje doleva a doprava a hledá objekty v cestě.

Takže bez dalších okolků pojďme začít!

Krok 1: Co potřebujete v tomto projektu:

Co potřebujete v tomto projektu
Co potřebujete v tomto projektu
Co potřebujete v tomto projektu
Co potřebujete v tomto projektu

Zde je seznam dílů:

1) Arduino Uno

2) Štít ovladače motoru

3) Převodový motor, rám a sada kol

4) Servomotor

5) Ultrazvukový senzor

6) Li-ion baterie (2x)

7) Držák baterie

8) Propojovací kabel pro muže a ženy

9) Páječka

10) Nabíječka

Krok 2: Schéma zapojení

Kruhový diagram
Kruhový diagram

Pracovní:

Než se pustíte do práce na projektu, je důležité pochopit, jak funguje ultrazvukový senzor. Základní princip fungování ultrazvukového senzoru je následující:

Pomocí externího spouštěcího signálu je spouštěcí kolík na ultrazvukovém senzoru logicky vysoký po dobu alespoň 10 µs. Z modulu vysílače je odeslán zvukový signál. Skládá se z 8 pulzů 40KHz.

Signály se po dopadu na povrch vrátí zpět a přijímač tento signál detekuje. Echo pin je vysoký od okamžiku odeslání signálu a jeho přijetí. Tento čas lze převést na vzdálenost pomocí příslušných výpočtů.

Cílem tohoto projektu je implementace robota vyhýbajícího se překážkám pomocí ultrazvukového senzoru a Arduina. Všechna připojení jsou provedena podle schématu zapojení. Fungování projektu je vysvětleno níže.

Když je robot zapnutý, oba motory robota poběží normálně a robot se pohybuje vpřed. Během této doby ultrazvukový senzor nepřetržitě vypočítává vzdálenost mezi robotem a odraznou plochou.

Tyto informace zpracovává Arduino. Pokud je vzdálenost mezi robotem a překážkou menší než 15 cm, robot se zastaví a pomocí servomotoru a ultrazvukového senzoru vyhledá novou vzdálenost vlevo a vpravo. Pokud je vzdálenost k levé straně větší než k pravé straně, robot se připraví na levou zatáčku. Nejprve však trochu zacouvá a poté aktivuje motor levého kola v opačném směru.

Podobně, pokud je správná vzdálenost větší než vzdálenost vlevo, robot připraví pravé otočení. Tento proces pokračuje navždy a robot pokračuje v pohybu, aniž by narazil na jakoukoli překážku.

Krok 3: Programování Arduino UNO

#zahrnout

#zahrnout

#zahrnout

# definujte TRIG_PIN A1

# definujte ECHO_PIN A0

# definujte MAX_DISTANCE 200

# define MAX_SPEED 255 // nastavuje rychlost stejnosměrných motorů

# define MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Motor motoru3 (3, MOTOR34_1KHZ);

AF_DC Motor motoru4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int vzdálenost = 100; int speedSet = 0;

neplatné nastavení () {

myservo.attach (10);

myservo.write (115); zpoždění (2000); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); }

prázdná smyčka () {

int vzdálenostR = 0; int vzdálenostL = 0; zpoždění (40);

if (vzdálenost <= 15) {moveStop (); zpoždění (100); jít zpět(); zpoždění (300); moveStop (); zpoždění (200); distanceR = lookRight (); zpoždění (200); vzdálenostL = lookLeft (); zpoždění (200);

if (distanceR> = distanceL) {

odbočit vpravo(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } vzdálenost = readPing (); }

int lookRight () {

myservo.write (50); zpoždění (500); int vzdálenost = readPing (); zpoždění (100); myservo.write (115); návratová vzdálenost; }

int lookLeft () {

myservo.write (170); zpoždění (500); int vzdálenost = readPing (); zpoždění (100); myservo.write (115); návratová vzdálenost; zpoždění (100); }

int readPing () {

zpoždění (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } vrátit cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

if (! goesForward) {

goesForward = true;

motor3.run (VPŘED);

motor4.run (VPŘED); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomalu zvyšte rychlost, abyste se vyhnuli příliš rychlému vybíjení baterií {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); zpoždění (5); }}}

void moveBackward () {

goesForward = false;

motor3.run (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomalu zvyšte rychlost, abyste se vyhnuli příliš rychlému vybíjení baterií {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); zpoždění (5); }}

void turnRight () {

motor3.run (VPŘED);

motor4.run (BACKWARD); zpoždění (500);

motor3.run (VPŘED);

motor4.run (VPŘED); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (VPŘED); zpoždění (500);

motor3.run (VPŘED);

motor4.run (VPŘED); }

1) Stáhněte a nainstalujte Arduino Desktop IDE

  • okna -
  • Mac OS X -
  • Linux -

2) Stáhněte a vložte soubor knihovny NewPing (knihovna funkcí ultrazvukových senzorů) do složky knihoven Arduino.

  1. Stáhněte si NewPing.rar níže
  2. Extrahujte jej do cesty - C: / Arduino / libraries

3) Nahrajte kód na desku Arduino pomocí kabelu USB

Stáhnout kód:

Krok 4: Skvělé

Nyní je váš robot připraven vyhnout se jakékoli překážce…

Rád zodpovím všechny vaše dotazy

Pošlete mi e -mail: [email protected]

Webové stránky:

Přihlaste se k odběru mého kanálu YouTube:

Instagram:

Facebook:

Děkuji:)

Doporučuje: