Obsah:

Ako si vyrobiť vlastnoručne vyrobenú robotu Arduino, ktorá sa vyhýba robotu doma: 4 kroky
Ako si vyrobiť vlastnoručne vyrobenú robotu Arduino, ktorá sa vyhýba robotu doma: 4 kroky

Video: Ako si vyrobiť vlastnoručne vyrobenú robotu Arduino, ktorá sa vyhýba robotu doma: 4 kroky

Video: Ako si vyrobiť vlastnoručne vyrobenú robotu Arduino, ktorá sa vyhýba robotu doma: 4 kroky
Video: Minecraft Live 2022 2024, Júl
Anonim
Image
Image

Dobrý deň, chlapci, v tomto návode urobíte robota vyhýbajúceho sa prekážkam. Tento pokyn zahŕňa zostrojenie robota s ultrazvukovým senzorom, ktorý dokáže detekovať blízke objekty a meniť ich smer, aby sa týmto predmetom vyhýbal. Ultrazvukový senzor bude pripevnený k servomotoru, ktorý neustále skenuje vľavo a vpravo a hľadá predmety, ktoré mu stoja v ceste.

Takže bez ďalších okolkov začnime!

Krok 1: Čo potrebujete v tomto projekte:

Čo potrebujete v tomto projekte
Čo potrebujete v tomto projekte
Čo potrebujete v tomto projekte
Čo potrebujete v tomto projekte

Tu je zoznam dielov:

1) Arduino Uno

2) Štít vodiča motora

3) Prevodový motor, rám a sada kolies

4) Servomotor

5) Ultrazvukový senzor

6) Li-ion batéria (2x)

7) Držiak batérie

8) Mužský a ženský prepojovací kábel

9) Spájkovačka

10) Nabíjačka

Krok 2: Schéma zapojenia

Schéma zapojenia
Schéma zapojenia

Práca:

Pred prácou na projekte je dôležité pochopiť, ako funguje ultrazvukový senzor. Základný princíp fungovania ultrazvukového senzora je nasledujúci:

Použitím externého spúšťacieho signálu je spínací kolík na ultrazvukovom senzore logicky vysoký po dobu najmenej 10 µs. Z modulu vysielača sa odošle zvukový signál. Pozostáva z 8 impulzov s frekvenciou 40 kHz.

Signály sa vrátia späť po dopade na povrch a prijímač tento signál detekuje. Kolík Echo je vysoký od okamihu odoslania signálu a jeho príjmu. Tento čas je možné previesť na vzdialenosť pomocou vhodných výpočtov.

Cieľom tohto projektu je implementácia robota vyhýbajúceho sa prekážkam pomocou ultrazvukového senzora a Arduina. Všetky pripojenia sú vykonané podľa schémy zapojenia. Fungovanie projektu je vysvetlené nižšie.

Keď je robot zapnutý, oba motory robota bežia normálne a robot sa pohybuje dopredu. Počas tejto doby ultrazvukový senzor nepretržite vypočítava vzdialenosť medzi robotom a reflexným povrchom.

Tieto informácie spracováva Arduino. Ak je vzdialenosť medzi robotom a prekážkou menšia ako 15 cm, robot sa zastaví a pomocou servomotora a ultrazvukového senzora skenuje v ľavom a pravom smere novú vzdialenosť. Ak je vzdialenosť na ľavú stranu väčšia ako vzdialenosť na pravej strane, robot sa pripraví na ľavú zákrutu. Najprv však trochu zacúva a potom aktivuje motor ľavého kolesa v opačnom smere.

Podobne, ak je správna vzdialenosť väčšia ako vzdialenosť vľavo, robot pripraví pravé otočenie. Tento proces pokračuje navždy a robot sa pohybuje bez toho, aby narazil na prekážku.

Krok 3: Programovanie Arduino UNO

#zahrnúť

#zahrnúť

#zahrnúť

# define TRIG_PIN A1

# define ECHO_PIN A0

# define MAX_DISTANCE 200

# define MAX_SPEED 255 // nastavuje rýchlosť jednosmerných motorov

# define MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Motor motora3 (3, MOTOR34_1KHZ);

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

boolean goesForward = false;

int vzdialenosť = 100; int speedSet = 0;

neplatné nastavenie () {

myservo.attach (10);

myservo.write (115); oneskorenie (2000); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); vzdialenosť = readPing (); oneskorenie (100); }

prázdna slučka () {

int vzdialenosťR = 0; int vzdialenosťL = 0; oneskorenie (40);

if (vzdialenosť <= 15) {moveStop (); oneskorenie (100); moveBackward (); oneskorenie (300); moveStop (); oneskorenie (200); vzdialenosťR = lookRight (); oneskorenie (200); vzdialenosťL = lookLeft (); oneskorenie (200);

ak (vzdialenosťR> = vzdialenosťL) {

odbočte vpravo(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } vzdialenosť = readPing (); }

int lookRight () {

myservo.write (50); oneskorenie (500); int vzdialenosť = readPing (); oneskorenie (100); myservo.write (115); vzdialenosť návratu; }

int lookLeft () {

myservo.write (170); oneskorenie (500); int vzdialenosť = readPing (); oneskorenie (100); myservo.write (115); vzdialenosť návratu; oneskorenie (100); }

int readPing () {

oneskorenie (70); int cm = sonar.ping_cm (); ak (cm == 0) {cm = 250; } vrátiť cm; }

void moveStop () {

motor3.run (UVOĽNENIE);

motor4.run (UVOĽNENIE); }

void moveForward () {

if (! goesForward) {

goesForward = true;

motor3.run (Vpred);

motor4.run (Vpred); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomaly zvyšujte rýchlosť, aby ste sa vyhli príliš rýchlemu vybíjaniu batérií {

motor3.setSpeed (speedSet);

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

void moveBackward () {

goesForward = false;

motor3.run (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // pomaly zvyšujte rýchlosť, aby ste sa vyhli príliš rýchlemu vybíjaniu batérií {

motor3.setSpeed (speedSet);

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

neplatné turnRight () {

motor3.run (Vpred);

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

motor3.run (Vpred);

motor4.run (Vpred); }

neplatný turnLeft () {

motor3.run (BACKWARD);

motor4.run (Vpred); oneskorenie (500);

motor3.run (Vpred);

motor4.run (Vpred); }

1) Stiahnite si a nainštalujte IDE Arduino Desktop

  • okná -
  • Mac OS X -
  • Linux -

2) Stiahnite a prilepte súbor knižnice NewPing (knižnica funkcií ultrazvukových senzorov) do priečinka Knižnice Arduino.

  1. Stiahnite si NewPing.rar nižšie
  2. Extrahujte ho do cesty - C: / Arduino / libraries

3) Nahrajte kód na dosku Arduino pomocou kábla USB

Stiahnite si kód:

Krok 4: Skvelé

Teraz je váš robot pripravený vyhnúť sa akýmkoľvek prekážkam …

Rád zodpoviem všetky vaše otázky

E -mail na: [email protected]

Webová stránka:

Prihláste sa na odber môjho kanála YouTube:

Instagram:

Facebook:

Ďakujem:)

Odporúča: