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

LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ. 20 քայլ (նկարներով)
LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ. 20 քայլ (նկարներով)

Video: LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ. 20 քայլ (նկարներով)

Video: LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ. 20 քայլ (նկարներով)
Video: Платы ультразвукового сонара серии LV-MAXSONAR-EZ 2024, Նոյեմբեր
Anonim
LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ
LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ
LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ
LV-MaxSonar-EZ և HC-SR04 Sonar Range Finders- ի համեմատություն Arduino- ի հետ

Ես գտնում եմ, որ շատ նախագծեր (հատկապես ռոբոտները) պահանջում են կամ կարող են օգուտ քաղել իրական ժամանակում օբյեկտից տարածության չափումից: Sonar տիրույթի որոնիչները համեմատաբար էժան են և հեշտությամբ կարելի է միացնել միկրոկարգավորիչին, ինչպիսին է Arduino- ն:

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

Ես ուզում էի համեմատել չափազանց հայտնի HC-SR04 (սխալի աչք) սարքը ՝ ավելի քիչ տարածված LV-MaxSonar-EZ սարքի հետ, որպեսզի տեսնեմ, թե երբ ես գուցե ցանկանամ օգտագործել ոչ թե մյուսը: Ես ուզում էի կիսվել իմ գտածոներով և կազմաձևով, այնպես որ դուք կարող եք փորձարկել երկուսը և որոշել, թե որն է օգտագործել ձեր հաջորդ նախագծում:

Ինչու՞ այս երկուսը…

Ինչու՞ է HC-SR04- ը: «Bug-Eye» HC-SR04- ը չափազանց տարածված է `մի քանի պատճառներով.

  • Այն էժան է `2 դոլար կամ ավելի քիչ, եթե գնում է սորուն
  • Համեմատաբար հեշտ է ինտերֆեյսը
  • Շատ ու շատ նախագծեր են օգտագործում այն, ուստի այն քաջ հայտնի է և հասկանալի

Ինչու՞ LV-MaxSonar-EZ:

  • Շատ հեշտ է ինտերֆեյսի մեջ մտնել
  • Այն ունի լավ/հեշտ ձև-գործոն `նախագծում ներառելու համար
  • Այն ունի 5 տարբերակ, որոնք վերաբերում են չափման տարբեր պահանջներին (տես տվյալների թերթիկ)
  • Այն (սովորաբար) շատ ավելի ճշգրիտ և հուսալի է, քան HC-SR04- ը
  • Այն մատչելի է `$ 15 -ից $ 20

Բացի այդ, ես հույս ունեմ, որ Arduino- ի իմ գրած համեմատության համար կտորներ և կտորներ կգտնեք օգտակար ձեր նախագծերում, նույնիսկ հեռահար որոնիչ ծրագրերից դուրս:

Ենթադրություններ

  • Դուք ծանոթ եք Arduino- ին և Arduino IDE- ին
  • Arduino IDE- ն տեղադրված է և աշխատում է ձեր նախընտրած զարգացման մեքենայի վրա (PC/Mac/Linux)
  • Դուք կապ ունեք Arduino IDE- ից ձեր Arduino- ին ՝ ծրագրեր վերբեռնելու և գործարկելու և հաղորդակցվելու համար

Կան Ուղեցույցներ և այլ ռեսուրսներ, որոնք ձեզ կօգնեն դա անհրաժեշտության դեպքում:

Պարագաներ

  • HC-SR04 'Bug-Eye' Range Finder
  • LV-MaxSonar-EZ (0, 1, 2, 3, 4-ես օգտագործում եմ «1», բայց բոլոր տարբերակները նույնն են)
  • Arduino UNO
  • Առանց զոդման Breadboard
  • Պին գլխագիր - 7 փին 90 ° (MaxSonar սարքի համար ՝ 180 ° օգտագործման համար տե՛ս * ստորև)
  • Ibապավենային մալուխի jumper - 5 մետաղալար, արու -տղամարդ
  • Cableապավենային մալուխի jumper - 2 մետաղալար, արու -տղամարդ
  • Թռիչքաձող - արու -արական
  • Կապի մետաղալար ՝ կարմիր և սև (Արդուինոյից մինչև հացաթխիչ և հացաթխիչ սարքերին աշխատելու համար)
  • Arduino IDE և USB մալուխ ունեցող համակարգիչ Arduino UNO- ին միանալու համար

* MaxSonar- ը չի գալիս վերնագրով, այնպես որ կարող եք օգտագործել ձեր նախագծին առավել համապատասխան վերնագիրը: Այս Instructable- ի համար ես օգտագործեցի 90 ° վերնագիր, որպեսզի այն հեշտությամբ միացնեմ տախտակին: Որոշ նախագծերում 180 ° (ուղիղ) վերնագիր կարող է ավելի լավ լինել: Ես ներառում եմ մի լուսանկար, որը ցույց կտա, թե ինչպես կարելի է այն միացնել, որպեսզի դրանք փոխելու կարիք չունենաք: Եթե նախընտրում եք օգտագործել 180 ° վերնագիր, ձեզ հարկավոր կլինի լրացուցիչ 7 մետաղալար տղամարդու և կանանց ժապավենով մալուխային ցատկիչ `միանալու համար, ինչպես ցույց է տալիս իմ լուսանկարը:

Git Hub շտեմարան. Նախագծի ֆայլեր

Քայլ 1: Հետապնդում…

Հետապնդումը…
Հետապնդումը…

Նախքան մանրամասներին անդրադառնալը, թե ինչպես կարելի է ամեն ինչ կապել, որպեսզի կարողանաք ինքներդ փորձարկել այս երկու ֆանտաստիկ սարքերը, ես ուզում էի նկարագրել մի քանի բան, որոնցով ես հուսով եմ, որ այս Instructable- ը կօգնի ձեզ:

Քանի որ MaxSonar սարքը HC-SR04 սարքի համեմատ ավելի քիչ է օգտագործվում և քիչ հասկանալի, ես ուզում էի ցույց տալ.

  • Ինչպես միացնել MaxSonar սարքը միկրոհսկիչին (այս դեպքում ՝ Arduino)
  • Ինչպես չափումներ կատարել MaxSonar սարքի տարբեր ելքերից
  • Համեմատեք MaxSonar սարքի միացումը HC-SR04 սարքի հետ
  • Ստուգեք տարբեր մակերեսներով առարկաների հեռավորությունը չափելու ունակությունը
  • Ինչու՞ կարող եք ընտրել մեկ սարքը մյուսի փոխարեն (կամ երկուսն էլ օգտագործել զուգահեռաբար)

Հուսով եմ, որ այս Instructable- ը կօգնի ձեզ այս հետապնդման մեջ…

Քայլ 2. Սկիզբ - Arduino -Breadboard Setup

Սկսելու համար - Arduino -Breadboard Setup
Սկսելու համար - Arduino -Breadboard Setup

Եթե դուք նախատիպեր եք պատրաստել Arduino- ի հետ, հավանաբար արդեն ունեք Arduino-Breadboard կարգավորում, որը ձեզ հարմար է: Եթե այո, ես վստահ եմ, որ դուք կարող եք օգտագործել այն այս Instructable- ի համար: Եթե ոչ, ես այսպես եմ ստեղծել իմը. Ազատ զգալ պատճենեք այն այս և ապագա նախագծերի համար:

  1. Ես ամրացնում եմ Arduino UNO- ն և անլար փոքրիկ տախտակը 3-3/8 "x 4-3/4" (8.6 x 12.0 սմ) պլաստիկի կտորին, որի ռետինե ոտքերը ներքևում են:
  2. Ես օգտագործում եմ կարմիր և սև 22-AWG միակցիչ մետաղալար ՝ Arduino- ից +5V և GND միացնելու համար հացահատիկի հոսանքի բաշխիչ ժապավենին
  3. Էլեկտրաէներգիայի հողաբաշխիչ ժապավենի վրա ես ներառում եմ 10 μF տանտալ կոնդենսատոր, որն օգնում է նվազեցնել էներգիայի աղմուկը (բայց այս նախագիծը դա չի պահանջում)

Սա ապահովում է գեղեցիկ հարթակ, որի հետ նախատիպը պատրաստելը հեշտ է:

Քայլ 3. Լարացրեք LV-MaxSonar-EZ- ը

Լարացրեք LV-MaxSonar-EZ- ը
Լարացրեք LV-MaxSonar-EZ- ը
Լարացրեք LV-MaxSonar-EZ- ը
Լարացրեք LV-MaxSonar-EZ- ը
Լարացրեք LV-MaxSonar-EZ- ը
Լարացրեք LV-MaxSonar-EZ- ը

MaxSonar սարքի վրա զարդարված 90 ° վերնագրով հեշտ է միացնել այն տախտակին: 5 փին ժապավենի մալուխը այնուհետ միացնում է MaxSonar- ը Arduino- ին, ինչպես երևում է գծապատկերում: Ի լրումն ժապավենային մալուխի, ես օգտագործում եմ կարմիր և սև կցորդիչ մետաղալարերի կարճ կտորներ էներգիայի բաշխիչ երկաթուղուց `սարքին էներգիա ապահովելու համար:

Հաղորդալարեր

ՄաքսՍոնար Արդուինո Գույն
1 (BW) Power-GND Դեղին
2 (PW) Թվային -5 Կանաչ
3 (AN) Անալոգային -0 Կապույտ
4 (RX) Թվային -3 Մանուշակագույն
5 (TX) Թվային -2 Մոխրագույն
6 (+5) +5 BB-PWR երկաթուղի Կարմիր
7 (GND) GND BB-PWR երկաթուղի Սեվ

Նշում:

Թույլ մի տվեք, որ սույն Հրահանգում օգտագործվող միացումների քանակը թույլ չտա ձեզ հաշվի առնել MaxSonar- ը ձեր նախագծի համար: Այս Instructable- ն օգտագործում է MaxSonar ինտերֆեյսի բոլոր տարբերակները ՝ պատկերացնելու, թե ինչպես են դրանք աշխատում և դրանք համեմատելու միմյանց և HC-SR04 սարքի հետ: Տվյալ օգտագործման համար (օգտագործելով ինտերֆեյսի տարբերակներից մեկը) նախագիծը, ընդհանուր առմամբ, կօգտագործի ինտերֆեյսի մեկ կամ երկու կապ (գումարած ուժ և հող):

Քայլ 4. Լարացրեք HC-SR04- ը

HC-SR04- ը սովորաբար գալիս է արդեն ամրացված 90 ° վերնագրով, ուստի այն հեշտ է միացնել հացատախտակին: 2 փին ժապավենի մալուխը այնուհետև միացնում է HC-SR04- ը Arduino- ին, ինչպես երևում է գծապատկերում: Ի լրումն ժապավենային մալուխի, ես օգտագործում եմ կարմիր և սև կապի կարճ կտորներ էներգիայի բաշխիչ երկաթուղուց `սարքին էներգիա ապահովելու համար:

HC-SR04 Արդուինո Գույն
1 (VCC) +5 BB-PWR երկաթուղի Կարմիր
2 (TRIG) Թվային -6 Դեղին
3 (ECHO) Թվային -7 Նարնջագույն
4 (GND) GND BB-PWR երկաթուղի Սեվ

Քայլ 5. Միացրեք «HC-SR04» տարբերակի ընտրիչը

Երբ ես սկսեցի այս նախագիծը, իմ նպատակը պարզապես փորձարկել էր MaxSonar սարքի ինտերֆեյսի տարբեր տարբերակները: Գործարկվելուց հետո ես որոշեցի, որ լավ կլիներ այն համեմատել ամենուր առկա HC-SR04 (bugeye) սարքի հետ: Այնուամենայնիվ, ես ուզում էի, որ կարողանայի գործարկել/փորձարկել առանց դրա ներառված, ուստի կոդում ավելացրեցի տարբերակ/թեստ:

Կոդը ստուգում է մուտքագրման քորոցը `տեսնելու, թե արդյոք HC-SR04 սարքը պետք է ներառվի չափման ընթերցման և ելքի մեջ:

Դիագրամում սա ցուցադրվում է որպես անջատիչ, բայց տախտակի վրա ես պարզապես օգտագործում եմ jumper մետաղալար (ինչպես երեւում է լուսանկարներում): Եթե մետաղալարը միացված է GND- ին, HC-SR04- ը ներառվելու է չափումների մեջ: Arduino- ում կոդը «քաշվում է» (մուտքը դարձնում է բարձր/ճշմարիտ), այնպես որ, եթե այն ցածր չքաշվի (միացված է GND- ին), HC-SR04- ը չի չափվի:

Թեև այս հրահանգը վերածվեց երկու սարքերի համեմատության, ես որոշեցի դա թողնել տեղում ՝ ցույց տալու համար, թե ինչպես կարող եք ձեր նախագծում ներառել/բացառել տարբեր սարքեր/տարբերակներ:

Breadboard Արդուինո Գույն
GND BB-PWR երկաթուղի Թվային -12 Սպիտակ

Քայլ 6: Ամեն ինչ աշխատեցնելը…

Ամեն ինչ աշխատում է…
Ամեն ինչ աշխատում է…
Ամեն ինչ աշխատում է…
Ամեն ինչ աշխատում է…
Ամեն ինչ աշխատում է…
Ամեն ինչ աշխատում է…

Այժմ, երբ ամեն ինչ խճճվել է, ժամանակն է գործերը գործի դնել:

Ինչպես նշվեց «Ենթադրություններ» -ում, ես չեմ պատրաստվում բացատրել, թե ինչպես է աշխատում Arduino IDE- ն կամ ինչպես ծրագրավորել Arduino- ն (մանրամասն):

Հետևյալ բաժինները քանդում են այս նախագծում ներառված Arduino ծածկագիրը:

Խնդրում ենք ամբողջական արխիվը բացել այն վայրում, որն օգտագործում եք ձեր Arduino- ի զարգացման համար: Տեղադրեք `MaxSonar-outputs.ino` կոդը ձեր Arduino IDE- ում և եկեք սկսենք:

Քայլ 7: Նախագծի դասավորություն

Նախագիծը պարունակում է տեղեկատվություն LV-MaxSonar-EZ սարքի, սխեմայի, README- ի և Arduino ծածկագրի մասին: Շղթայի սխեման Fritzing ձևաչափով է, ինչպես նաև-p.webp

Քայլ 8: Կոդի ներմուծում…

Այս Instructable- ում ես չեմ կարող անցնել ծածկագրի յուրաքանչյուր կողմը: Ես լուսաբանում եմ բարձր մակարդակի որոշ մանրամասներ: Ես խրախուսում եմ ձեզ կարդալ ծածկագրում առկա ամենաբարձր մակարդակի մեկնաբանությունը և փորփրել մեթոդները:

Մեկնաբանությունները տալիս են բազմաթիվ տեղեկություններ, որոնք ես այստեղ չեմ կրկնի:

Կան մի քանի բաներ, որոնք ես ուզում եմ նշել «տեղադրման» ծածկագրում…

  • «_DEBUG_OUTPUT» - փոփոխական և #սահմանել հայտարարությունները
  • Arduino- ի «կապում» սահմանումները, որոնք օգտագործվում են ինտերֆեյսի համար
  • Հաշվարկներում օգտագործվող փոխակերպման գործոնների սահմանումները

Վրիպազերծումն օգտագործվում է ամբողջ ծածկագրում, և ես ցույց կտամ, թե ինչպես կարելի է այն դինամիկ միացնել/անջատել:

«Սահմանումներն» օգտագործվում են Arduino- ի կապումների և փոխակերպումների համար, որպեսզի ավելի հեշտ դարձնեն այս ծածկագիրը օգտագործել այլ նախագծերում:

Վրիպազերծում…

«Վրիպազերծում» բաժինը սահմանում է փոփոխական և որոշ մակրոներ, որոնք հեշտացնում են վրիպազերծման տեղեկատվության պահանջարկի սերիական թողարկում ներառելը:

«_DEBUG_OUTPUT» բուլյան փոփոխականը ծածկագրում սահմանվում է false (կարող է սահմանվել true) և օգտագործվում է որպես թեստ «DB_PRINT …» մակրոներում: Այն կարող է դինամիկ կերպով փոխվել կոդի մեջ (ինչպես երևում է `setDebugOutputMode` մեթոդով):

Գլոբալ…

Սահմանումներից հետո կոդը ստեղծում և նախաստորագրում է մի քանի գլոբալ փոփոխականներ և օբյեկտներ:

  • SoftwareSerial (տես հաջորդ բաժինը)
  • _loopCount - Օգտագործվում է յուրաքանչյուր «n» տողում վերնագիր թողարկելու համար
  • _inputBuffer - Օգտագործվում է ընտրանքներ մշակելու համար սերիալ/տերմինալ մուտքագրում (կարգաբերում միացում/անջատում)

Քայլ 9: Arduino Software-Serial…

MaxSonar ինտերֆեյսի տարբերակներից մեկը սերիական տվյալների հոսքն է: Այնուամենայնիվ, Arduino UNO- ն ապահովում է միայն մեկ սերիական տվյալների միացում, և այն օգտագործվում է/կիսվում է USB պորտի հետ ՝ Arduino IDE- ի (ընդունիչ համակարգիչ) հետ հաղորդակցվելու համար:

Բարեբախտաբար, կա գրադարանային բաղադրիչ, որը ներառված է Arduino IDE- ի հետ, որն օգտագործում է զույգ Arduino թվային-մուտքի/ելքային կապեր ՝ սերիական i/o ինտերֆեյսի իրականացման համար: Քանի որ MaxSonar- ի սերիական ինտերֆեյսը օգտագործում է 9600 BAUD, այս «ծրագրային» ինտերֆեյսը հիանալի ունակ է վարել հաղորդակցությունը:

Նրանց համար, ովքեր օգտագործում են Arduino-Mega (կամ այլ սարք, որն ունի բազմաթիվ HW սերիական նավահանգիստներ), խնդրում ենք ազատ զգալ հարմարեցնել ծածկագիրը ֆիզիկական սերիական նավահանգստից օգտվելու համար և վերացնել SW-Serial- ի կարիքը:

«Ստեղծման» մեթոդը նախաստորագրում է «SoftwareSerial» ինտերֆեյսը, որը պետք է օգտագործվի MaxSonar սարքի հետ: Անհրաժեշտ է միայն ստանալ (RX): Ինտերֆեյսը «հակադարձ» է, որպեսզի համապատասխանի MaxSonar- ի արտադրանքին:

Քայլ 10: Կոդ - կարգավորում

Ինչպես նկարագրված է վերևում, «setup» մեթոդը նախաստորագրում է «SoftwareSerial» ինտերֆեյսը, ինչպես նաև ֆիզիկական սերիական ինտերֆեյսը: Այն կարգավորում է Arduino I/O կապում և ուղարկում վերնագիր:

Քայլ 11: Կոդ - հանգույց

«Օղակ» ծածկագիրը գործում է հետևյալ կերպ.

  • Մուտքագրեք վերնագիր (օգտագործվում է վրիպազերծման և գծագրիչի համար)
  • Գործարկեք MaxSonar- ը ՝ չափումներ կատարելու համար
  • Կարդացեք MaxSonar Pulse-Width արժեքը
  • Կարդացեք MaxSonar սերիական տվյալների արժեքը
  • Կարդացեք MaxSonar անալոգային արժեքը
  • Ստուգեք «HC-SR04» տարբերակը և, եթե այն միացված է,

    Միացրեք և կարդացեք HC-SR04 սարքը

  • Տվյալները մուտքագրեք ներդիրով սահմանափակված ձևաչափով, որը կարող է օգտագործվել սերիական գծագրողի կողմից
  • Սպասեք, մինչև բավական ժամանակ անցնի, որպեսզի այլ չափումներ կատարվեն

Քայլ 12. Կոդ. Գործարկեք MaxSonar- ը: Կարդացեք PW արժեքը

MaxSonar- ն ունի երկու ռեժիմ ՝ «գործարկված» և «շարունակական»

Այս հրահանգը օգտագործում է «գործարկված» ռեժիմը, սակայն շատ նախագծեր կարող են օգուտ քաղել «շարունակական» ռեժիմից (տե՛ս տվյալների թերթիկը):

«Գործարկված» ռեժիմն օգտագործելիս առաջին վավեր ելքը Pulse-Width (PW) ելքից է: Դրանից հետո մնացած ելքերը վավեր են:

«TiggerAndReadDistanceFromPulse»-ը զարկերակում է MaxSonar սարքի ձգանման քորոցը և կարդում ստացված զարկերակի լայնության հեռավորության արժեքը

Նկատի ունեցեք, որ ի տարբերություն շատ այլ սոնար սարքերի, MaxSonar- ը կարգավորում է երկկողմանի փոխակերպումը, ուստի ընթերցված հեռավորությունը թիրախի հեռավորությունն է:

Այս մեթոդը նույնպես բավական երկար է ձգձգում, որպեսզի սարքի մյուս ելքերը վավեր լինեն (սերիական, անալոգային):

Քայլ 13: Կոդ - Կարդացեք MaxSonar սերիական արժեքը

MaxSonar- ի գործարկումից հետո (կամ «շարունակական» ռեժիմում), եթե սերիական ելքի տարբերակը միացված է («BW - Pin -1» հսկողության միջոցով) ուղարկվում է «R nnn» տեսքով սերիական տվյալների հոսք, որին հետևում է ՓՈԽՈԹՅՈՆ-ՎԵՐԱԴԱՐՁ '\ r' կողմից: «Nnn» - ը օբյեկտի համար մատնաչափերի արժեքն է:

«ReadDistanceFromSerial» մեթոդը կարդում է սերիական տվյալները (Softwareրագրաշարի սերիական նավահանգստից) և «nnn» արժեքը վերածում է տասնորդականի: Այն ներառում է ձախողման դեպքում անվտանգ ընդմիջում ՝ սերիական արժեք չստանալու դեպքում:

Քայլ 14. Կոդ - Կարդացեք MaxSonar անալոգային արժեքը

MaxSonar անալոգային նավահանգիստը շարունակաբար ապահովում է ելքային լարում `համաչափ վերջին չափված հեռավորությանը: Այս արժեքը կարելի է կարդալ ցանկացած ժամանակ, երբ սարքը գործարկվում է: Արժեքը թարմացվում է վերջին հեռավորության ընթերցումից 50 մՍ -ի սահմաններում (գործարկվող կամ շարունակական ռեժիմ):

Արժեքը (Vcc/512) մեկ դյույմի համար: Այսպիսով, Arduino- ի 5 վոլտ հզորությամբ Vcc- ի դեպքում արժեքը կլինի 8 9.8mV/դյույմ: «ReadDistanceFromAnalog» մեթոդը կարդում է Arduino- ի անալոգային մուտքի արժեքը և փոխակերպում այն «դյույմ» արժեքի:

Քայլ 15. Կոդ. Գործարկեք և կարդացեք HC -SR04- ը

Չնայած կան գրադարաններ, որոնք կարող են կարդալ HC-SR04- ը, ես գտա, որ դրանցից ոմանք անվստահելի են տարբեր սարքերով, որոնց հետ ես փորձարկել եմ: Ես գտել եմ `sr04ReadDistance` մեթոդի մեջ ընդգրկված կոդը պարզ և ավելի հուսալի (որքան էլ էժան HC-SR04 սարքը կարող է լինել):

Այս մեթոդը սահմանում և միացնում է HC-SR04 սարքը, այնուհետև սպասում է չափելու վերադարձի զարկերակի լայնությունը: Pulարկերակի լայնությունը չափելը ներառում է HC-SR04 հարցի լուծման ժամանակամիջոց, որը շատ երկար է տևում, երբ այն չի կարող թիրախ գտնել: ~ 10 ոտնաչափ թիրախային հեռավորությունից ավելի երկար իմպուլսի լայնությունը ենթադրվում է, որ ոչ մի առարկա կամ անճանաչելի օբյեկտ է: Եթե ժամանակը սպառվում է, ապա «0» արժեքը վերադարձվում է որպես հեռավորություն: Այս «հեռավորությունը» (զարկերակի լայնությունը) կարող է ճշգրտվել ՝ օգտագործելով #սահմանվող արժեքները:

Իմպուլսի լայնությունը փոխակերպվում է շրջադարձի հեռավորության ՝ նախքան օբյեկտի հեռավորությունը վերադառնալը:

Քայլ 16. Կոդ - Arduino IDE սերիական գծագրիչի աջակցություն

Կոդ - Arduino IDE Serial Plotter Support
Կոդ - Arduino IDE Serial Plotter Support

Հիմա ելքի համար:

«Օղակ» մեթոդը խթանում է երկու սարքերից հեռավորության չափման հավաքումը, բայց ինչ ենք անում դրա հետ:

Դե, իհարկե, մենք կուղարկենք այն, որպեսզի այն դիտվի վահանակի վրա, բայց մենք ավելին ենք ուզում:

Arduino IDE- ն ապահովում է նաև Serial Plotter ինտերֆեյսը: Մենք դա կօգտագործենք ՝ մեր օբյեկտներից մինչև մեր սարքերի ելքերից հեռավորության իրական ժամանակի գրաֆիկը տրամադրելու համար:

Serial Plotter- ն ընդունում է վերնագիր, որը պարունակում է արժեքների պիտակներ և այնուհետև սահմանագծված արժեքների բազմաթիվ տողեր, որոնք պետք է գծված լինեն որպես գրաֆիկ: Եթե արժեքները կանոնավոր կերպով դուրս են բերվում («այսքան վայրկյան» մեկ անգամ) գրաֆիկը ցույց է տալիս օբյեկտից տարածության հեռավորությունը ժամանակի ընթացքում:

«Օղակ» մեթոդը դուրս է բերում MaxSonar- ի երեք արժեքը և HC-SR04- ի արժեքը `ներդիրով առանձնացված ձևաչափով, որը կարող է օգտագործվել Serial Plotter- ի հետ: Յուրաքանչյուր 20 տողից մեկ անգամ այն թողարկում է վերնագիրը (միայն այն դեպքում, եթե Serial Plotter- ը միացված է հոսքի միջին հատվածին):

Սա թույլ է տալիս այնպես պատկերացնել հեռավորությունը խոչընդոտին, ինչպես նաև տեսնել երկու սարքերի վերադարձած արժեքների տարբերությունը:

Քայլ 17: Կոդ - կարգաբերում…

Կոդ - կարգաբերում…
Կոդ - կարգաբերում…
Կոդ - կարգաբերում…
Կոդ - կարգաբերում…

Սխալների շտկումն անհրաժեշտություն է: Ինչպե՞ս կարող եք հետևել խնդրին, երբ ինչ -որ բան այնպես չի աշխատում, ինչպես սպասվում էր:

Հասկանալու առաջին գիծը հաճախ որոշ «պարզ» տեքստային ելքեր են, որոնք կարող են ցույց տալ, թե ինչ է կատարվում: Դրանք կարող են ավելացվել ծածկագրին, երբ և որտեղ անհրաժեշտ է խնդիրը գտնելու համար, իսկ հետո հեռացնել խնդիրը լուծվելուց հետո: Այնուամենայնիվ, ծածկագրի ավելացումն ու հեռացումը ժամանակատար է և, ինքնին, կարող է հանգեցնել այլ խնդիրների: Երբեմն ավելի լավ է կարողանալ դինամիկ կերպով միացնել և անջատել այն ՝ միայնակ թողնելով աղբյուրի կոդը:

Այս Ուղեցույցում ես ներառել եմ Arduino IDE սերիական մոնիտորից կարդացած մուտքագրումից դինամիկ կերպով միացնելու և անջատելու մեխանիզմ, որը թույլ է տալիս կարգաբերել տպման (սերիական ելքի) հայտարարությունները (առաջիկա թողարկումում ակնկալվում է, որ Serial Plotter- ը նույնպես կտրամադրի այս մուտքը):

«_DEBUG_OUTPUT» բուլյան օգտագործվում է տպագրության մի շարք #մեթոդներում, որոնք կարող են օգտագործվել կոդի ներսում: _DEBUG_OUTPUT փոփոխականի արժեքը օգտագործվում է տպագրությունը (ելք ուղարկելը) թույլ չտալու համար: Արժեքը կարող է դինամիկ կերպով փոխվել կոդի ներսում, ինչպես դա անում է `setDebugOutputMode` մեթոդը:

«SetDebugOutputMode» մեթոդը կոչվում է «հանգույցից» ՝ սերիական մուտքից ստացված մուտքի հիման վրա: Մուտքը վերլուծված է ՝ տեսնելու, թե արդյոք այն համընկնում է «debug on/off | true/false» ՝ կարգաբերման ռեժիմը միացնելու/անջատելու համար:

Քայլ 18: Եզրակացություն

Հուսով եմ, որ ապարատային այս պարզ կարգավորումը և օրինակի կոդը կարող են օգնել ձեզ հասկանալ HC-SR04 և LV-MaxSonar-EZ սարքերի տարբերությունները: Երկուսն էլ շատ հեշտ են օգտագործել, և ես կարծում եմ, որ յուրաքանչյուրն ունի իր առավելությունները: Իմանալը, թե երբ օգտագործել մեկը, քան մյուսը, կարող է էական նշանակություն ունենալ հաջողված ծրագրի համար:

BTW-Ես ակնարկեցի շատ հեշտ օգտագործման եղանակի ՝ LV-MaxSonar-EZ- ի միջոցով օբյեկտի հեռավորությունը ճշգրիտ չափելու համար … Դուք կարող եք օգտագործել անալոգային ելքը (մեկ մետաղալար) և շարունակական չափման ռեժիմը ՝ անհրաժեշտության դեպքում, պարզության միջոցով: կոդը `readDistanceFromAnalog`- ում` անմիջապես Arduino անալոգային մուտքից: Մեկ լար և (խտացված) կոդի մեկ տող:

Քայլ 19. Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° Վերնագիր)

Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)
Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)
Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)
Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)
Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)
Այլընտրանքային MaxSonar միացում (օգտագործելով 180 ° վերնագիր)

Ինչպես նշեցի, MaxSonar- ը չի գալիս միացված վերնագրով: Այսպիսով, դուք կարող եք օգտագործել ցանկացած կապ, որն առավել հարմար է ձեր նախագծի համար: Որոշ դեպքերում 180 ° (ուղիղ) վերնագիրը կարող է ավելի տեղին լինել: Եթե դա այդպես է, ես ուզում էի արագ ցույց տալ, թե ինչպես կարող եք դա օգտագործել այս Instructable- ով: Այս նկարազարդումը ցույց է տալիս MaxSonar- ը ուղիղ վերնագրով, որը միացված է հացատախտակին արական և իգական ժապավենի մալուխով, այնուհետև միացված է Arduino- ին, ինչպես նկարագրված է հոդվածի մնացած մասում:

Քայլ 20: Arduino կոդ

Arduino ծածկագիրը նախագծի «MaxSonar-outputs» թղթապանակում է ՝ Sonar Range-Finder Comparison- ում

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