Բովանդակություն:

Ինչպես կատարել DIY Arduino- ի խոչընդոտ ՝ տանը խուսափելով ռոբոտից. 4 քայլ
Ինչպես կատարել DIY Arduino- ի խոչընդոտ ՝ տանը խուսափելով ռոբոտից. 4 քայլ

Video: Ինչպես կատարել DIY Arduino- ի խոչընդոտ ՝ տանը խուսափելով ռոբոտից. 4 քայլ

Video: Ինչպես կատարել DIY Arduino- ի խոչընդոտ ՝ տանը խուսափելով ռոբոտից. 4 քայլ
Video: Ինչպես կատարել 4-ալիք ESP8266 ESP01 Wi-Fi ռելեներ | ESP01 Տնային ավտոմատացում | Remotexy | Խաբել 2024, Հուլիսի
Anonim
Image
Image

Բարև տղերք, այս հրահանգում դուք ռոբոտից խուսափելու խոչընդոտ եք ստեղծում: Այս հրահանգը ներառում է ուլտրաձայնային տվիչով ռոբոտի կառուցում, որը կարող է հայտնաբերել մոտակա օբյեկտները և փոխել դրանց ուղղությունը ՝ այդ օբյեկտներից խուսափելու համար: Ուլտրաձայնային տվիչը կցված կլինի servo շարժիչին, որն անընդհատ սկանավորում է ձախ և աջ ՝ իր ճանապարհին օբյեկտներ փնտրելով:

Այսպիսով, առանց ավելորդ խոսակցությունների, եկեք սկսենք:

Քայլ 1: Այն, ինչ ձեզ հարկավոր է այս նախագծում

Այն, ինչ ձեզ հարկավոր է այս նախագծում
Այն, ինչ ձեզ հարկավոր է այս նախագծում
Այն, ինչ ձեզ հարկավոր է այս նախագծում
Այն, ինչ ձեզ հարկավոր է այս նախագծում

Ահա մասերի ցուցակը.

1) Arduino Uno

2) Motor Driver Shield

3) շարժակների շարժիչ, շրջանակ և անիվներ

4) Servo Motor

5) Ուլտրաձայնային տվիչ

6) Li-ion մարտկոց (2x)

7) Մարտկոցի կրիչ

8) Արական և իգական ցատկող մետաղալար

9) Sոդման երկաթ

10) լիցքավորիչ

Քայլ 2: Շղթայի դիագրամ

Շղթայի դիագրամ
Շղթայի դիագրամ

Աշխատանքային:

Նախքան նախագծի վրա աշխատելը, կարևոր է հասկանալ, թե ինչպես է աշխատում ուլտրաձայնային տվիչը: Ուլտրաձայնային տվիչի աշխատանքի հիմնական սկզբունքը հետևյալն է.

Օգտագործելով արտաքին ազդանշանային ազդանշան, ուլտրաձայնային տվիչի Trig կապը տրամաբանական բարձր է առնվազն 10μs- ի համար: Հաղորդիչի մոդուլից հնչյունային պայթյուն է ուղարկվում: Այն բաղկացած է 40 ԿՀց -ի 8 իմպուլսներից:

Ազդանշանները վերադառնում են մակերեսին հարվածելուց հետո, և ստացողը հայտնաբերում է այս ազդանշանը: Echo քորոցը բարձր է ազդանշանը ուղարկելու և այն ստանալու պահից: Այս ժամանակը կարող է փոխակերպվել հեռավորության `օգտագործելով համապատասխան հաշվարկներ:

Այս նախագծի նպատակն է իրականացնել ուլտրաձայնային տվիչի և Arduino- ի միջոցով ռոբոտից խուսափելու խոչընդոտը: Բոլոր կապերը կատարվում են սխեմայի համաձայն: Նախագծի աշխատանքը բացատրվում է ստորև:

Երբ ռոբոտը միացված է, և՛ ռոբոտի շարժիչները կաշխատեն նորմալ, և՛ ռոբոտը կշարժվի առաջ: Այս ընթացքում ուլտրաձայնային տվիչը անընդհատ հաշվարկում է ռոբոտի և ռեֆլեկտիվ մակերևույթի միջև հեռավորությունը:

Այս տեղեկատվությունը մշակվում է Arduino- ի կողմից: Եթե ռոբոտի և խոչընդոտի միջև հեռավորությունը 15 սմ -ից պակաս է, ապա Ռոբոտը կանգ է առնում և սկանավորում ձախ և աջ ուղղություններով `նոր հեռավորության համար` օգտագործելով Servo Motor և ուլտրաձայնային տվիչ: Եթե ձախ կողմի հեռավորությունն ավելի մեծ է, քան աջ կողմը, ռոբոտը կպատրաստվի ձախ շրջադարձի: Բայց սկզբում այն մի փոքր հետ է պահվում, այնուհետև ակտիվացնում է Ձախ անիվի շարժիչը հակառակ ուղղությամբ:

Նմանապես, եթե աջ հեռավորությունը ավելի է, քան ձախ հեռավորությունը, Ռոբոտը պատրաստում է աջ պտույտը: Այս գործընթացը շարունակվում է ընդմիշտ, և ռոբոտը շարունակում է շարժվել առանց որևէ խոչընդոտի հարվածելու:

Քայլ 3. Arduino UNO ծրագրավորում

#ներառում

#ներառում

#ներառում

# սահմանել TRIG_PIN A1

# սահմանել ECHO_PIN A0

# սահմանել MAX_DISTANCE 200

# սահմանել MAX_SPEED 255 // սահմանում է DC շարժիչների արագություն

# սահմանել MAX_SPEED_OFFSET 20

NewPing սոնար (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Շարժիչ 3 (3, MOTOR34_1KHZ);

AF_DC Շարժիչ 4 (4, MOTOR34_1KHZ); Servo myservo;

բուլյան գնում էԱռաջ = կեղծ;

int հեռավորությունը = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); ուշացում (2000); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); }

դատարկ շրջան () {

int հեռավորությունը R = 0; int հեռավորություն L = 0; ուշացում (40);

if (հեռավորություն <= 15) {moveStop (); ուշացում (100); moveBackward (); ուշացում (300); moveStop (); ուշացում (200); distanceR = lookRight (); ուշացում (200); distanceL = lookLeft (); ուշացում (200);

if (distanceR> = distanceL) {

turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } հեռավորություն = կարդալ Ping (); }

int lookRight () {

myservo.write (50); ուշացում (500); int հեռավորություն = readPing (); ուշացում (100); myservo.write (115); վերադարձի հեռավորություն; }

int lookLeft () {

myservo.write (170); ուշացում (500); int հեռավորություն = readPing (); ուշացում (100); myservo.write (115); վերադարձի հեռավորություն; ուշացում (100); }

int readPing () {

ուշացում (70); int cm = sonar.ping_cm (); եթե (սմ == 0) {սմ = 250; } վերադարձ սմ; }

void moveStop () {

motor3.run (ԹՈLEԱՐԿՈՄ);

motor4.run (ԹՈLEԱՐԿՈՄ); }

void moveForward () {

եթե (! գնում է առաջ) {

գնում է առաջ = ճշմարիտ;

motor3.run (ԱՌԱARD);

motor4.run (ԱՌԱARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // դանդաղ բարձրացրեք արագությունը, որպեսզի մարտկոցները շատ արագ չբեռնելուց {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); ուշացում (5); }}}

void moveBackward () {

գնում է առաջ = կեղծ;

motor3.run (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // դանդաղ բարձրացրեք արագությունը, որպեսզի մարտկոցները շատ արագ չբեռնելուց {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); ուշացում (5); }}

void turnRight () {

motor3.run (ԱՌԱARD);

motor4.run (BACKWARD); ուշացում (500);

motor3.run (ԱՌԱARD);

motor4.run (ԱՌԱARD); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (ԱՌԱARD); ուշացում (500);

motor3.run (ԱՌԱARD);

motor4.run (ԱՌԱARD); }

1) Ներբեռնեք և տեղադրեք Arduino Desktop IDE- ն

  • պատուհաններ -
  • Mac OS X -
  • Linux -

2) Ներբեռնեք և տեղադրեք NewPing գրադարանը (Ուլտրաձայնային տվիչների գործառույթի գրադարան) ֆայլը Arduino գրադարանների պանակում:

  1. Ներբեռնեք NewPing.rar- ը ստորև
  2. Քաշեք այն դեպի ճանապարհ ՝ C: / Arduino / գրադարաններ

3) Վերբեռնեք կոդը Arduino տախտակին USB մալուխի միջոցով

Ներբեռնման կոդը ՝

Քայլ 4: Հիանալի

Այժմ ձեր ռոբոտը պատրաստ է խուսափել ցանկացած խոչընդոտից…

Ուրախ կլինեմ պատասխանել ձեր բոլոր հարցերին

Էլ. Փոստ ՝ [email protected]

Կայք:

Բաժանորդագրվեք իմ YouTube ալիքին ՝

Instagram ՝

Ֆեյսբուք ՝

Շնորհակալություն:)

Խորհուրդ ենք տալիս: