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

Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց] ՝ 11 քայլ
Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց] ՝ 11 քայլ

Video: Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց] ՝ 11 քայլ

Video: Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց] ՝ 11 քայլ
Video: Մի քանի խորհուրդ` ինչպես պետք է սոդան օգտագործել մազերի համար 2024, Նոյեմբեր
Anonim
Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց]
Ինչպես օգտագործել GY511 մոդուլը Arduino- ով [Ստեղծեք թվային կողմնացույց]

Ակնարկ

Էլեկտրոնիկայի որոշ նախագծերում մենք պետք է ցանկացած պահի իմանանք աշխարհագրական դիրքը և համապատասխան գործողություններ կատարենք: Այս ձեռնարկում դուք կսովորեք, թե ինչպես օգտագործել LSM303DLHC GY-511 կողմնացույցի մոդուլը Arduino- ի հետ ՝ թվային կողմնացույց պատրաստելու համար: Նախ, դուք կսովորեք այս մոդուլի և դրա աշխատանքի մասին, այնուհետև կտեսնեք, թե ինչպես միացնել LSM303DLHC GY-511 մոդուլը Arduino- ի հետ:

Այն, ինչ դուք կսովորեք

  • Ի՞նչ է կողմնացույցի մոդուլը:
  • Կողմնացույցի մոդուլ և Arduino ինտերֆեյս:
  • Ստեղծեք թվային կողմնացույց GY-511 մոդուլով և Arduino- ով:

Քայլ 1: Ընդհանուր տեղեկություններ կողմնացույցի մոդուլի մասին

Ընդհանուր տեղեկություններ կողմնացույցի մոդուլի մասին
Ընդհանուր տեղեկություններ կողմնացույցի մոդուլի մասին

GY-511 մոդուլը ներառում է 3 առանցքի արագացուցիչ և 3 առանցքի մագնիսաչափ: Այս սենսորը կարող է չափել գծային արագացումը full 2 գ / ± 4 գ / ± 8 գ / ± 16 գ ամբողջական և մագնիսական դաշտերը ՝ ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / 6 5.6 / ± 8.1 Գաուս.

Երբ այս մոդուլը տեղադրվում է մագնիսական դաշտում, ըստ Լորենցի օրենքի, նրա մանրադիտակային կծիկում գրգռման հոսանք է առաջանում: Կողմնացույցի մոդուլը այս հոսանքը փոխակերպում է դիֆերենցիալ լարման յուրաքանչյուր կոորդինատային ուղղության: Օգտագործելով այս լարումները, կարող եք հաշվարկել մագնիսական դաշտը յուրաքանչյուր ուղղությամբ և ստանալ աշխարհագրական դիրքը:

Հուշում

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

Քայլ 2: Պահանջվող բաղադրիչներ

Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ

Սարքավորման բաղադրիչներ

Arduino UNO R3 *1

GY-511 3 առանցքի արագացուցիչ + մագնիսաչափ *1

TowerPro Servo Motor SG-90 *1

1602 LCD մոդուլ *1

Թռչկոտողներ *1

Softwareրագրային ապահովման ծրագրեր

Arduino IDE

Քայլ 3. GY-511 կողմնացույցի մոդուլի միացում Arduino- ի հետ

Arduino- ի հետ GY-511 կողմնացույցի մոդուլին միացում
Arduino- ի հետ GY-511 կողմնացույցի մոդուլին միացում
Arduino- ի հետ GY-511 կողմնացույցի մոդուլին միացում
Arduino- ի հետ GY-511 կողմնացույցի մոդուլին միացում

GY-511 կողմնացույցի մոդուլն ունի 8 կապում, սակայն Arduino- ի հետ ինտերֆեյսի համար անհրաժեշտ է դրանցից միայն 4-ը: Այս մոդուլը հաղորդակցվում է Arduino- ի հետ I2C արձանագրության միջոցով, ուստի միացրեք մոդուլի SDA (I2C ելք) և SCK (I2C ժամացույցի մուտքագրում) Arduino տախտակի I2C կապերին:

Ինչպես տեսնում եք, մենք այս նախագծում օգտագործել ենք GY-511 մոդուլը: Բայց դուք կարող եք օգտագործել այս հրահանգը LMS303 կողմնացույցի այլ մոդուլներ տեղադրելու համար:

Քայլ 4. GY-511 կողմնացույցի մոդուլի ստուգաչափում

Նավարկելու համար նախ պետք է չափաբերել մոդուլը, ինչը նշանակում է չափման տիրույթը սահմանել 0 -ից 360 աստիճան: Դա անելու համար միացրեք մոդուլը Arduino- ին, ինչպես ցույց է տրված ստորև և վերբեռնեք հետևյալ ծածկագիրը ձեր տախտակին: Կոդը կատարելուց հետո սերիական մոնիտորի պատուհանում կարող եք տեսնել X, Y և Z առանցքների չափման միջակայքի նվազագույն և առավելագույն արժեքները: Այս թվերը ձեզ հարկավոր կլինեն հաջորդ մասում, այնպես որ դրանք գրեք:

Քայլ 5: Շղթա

Շրջան
Շրջան

Քայլ 6: Կոդ

Այս ծածկագրում ձեզ անհրաժեշտ է Wire.h գրադարանը I2C հաղորդակցության համար, իսկ LMS303.h գրադարանը ՝ կողմնացույցի մոդուլի համար: Այս գրադարանները կարող եք ներբեռնել հետևյալ հղումներից:

LMS303.h գրադարան

Wire.h գրադարան

Նշում Եթե օգտագործում եք QMC5883, ձեզ հարկավոր կլինի հետևյալ գրադարանը.

MechaQMC5883L.h

Այստեղ մենք բացատրում ենք LMS303- ի ծածկագիրը, սակայն կարող եք ներբեռնել նաև QMC մոդուլի կոդերը:

Եկեք տեսնենք որոշ նոր գործառույթներ.

compass.enableDefault ();

Մոդուլի սկզբնականացում

կողմնացույց.կարդալ ();

Կողմնակի մոդուլի ելքային արժեքների ընթերցում

running_min.z = min (running_min.z, կողմնացույց. amz); running_max.x = max (վազող_ max. x, կողմնացույց. x);

Չափման միջակայքի նվազագույն և առավելագույն արժեքների որոշում `չափված արժեքների համեմատությամբ:

Քայլ 7: Թվային կողմնացույցի պատրաստում

Մոդուլի ճշգրտումից հետո մենք պատրաստվում ենք կառուցել կողմնացույց `միացնելով servo շարժիչը մոդուլին: Որպեսզի սերվոյի ցուցիչը մեզ միշտ ցույց տա հյուսիսային ուղղությունը, ինչպես կողմնացույցի կարմիր սլաքը: Դա անելու համար նախ կողմնացույցի մոդուլը հաշվարկում է աշխարհագրական ուղղությունը և ուղարկում այն Arduino, այնուհետև համապատասխան գործակից կիրառելով ՝ կհաշվարկեք այն պտույտի անկյունը, որը պետք է պտտվի սերվո շարժիչով, որպեսզի դրա ցուցիչը ցույց տա դեպի մագնիսական հյուսիս: Ի վերջո, մենք այդ անկյունը կիրառում ենք servo շարժիչի վրա:

Քայլ 8: Շղթա

Շրջան
Շրջան

Քայլ 9: Կոդ

Կոդ
Կոդ

Այս մասի համար անհրաժեշտ է նաև Servo.h գրադարանը, որը լռելյայն տեղադրված է ձեր Arduino ծրագրաշարի վրա:

Եկեք տեսնենք որոշ նոր գործառույթներ.

Servo Servo1;

Մոդուլի սկզբնականացում

կողմնացույց.կարդալ ();

Ներկայացնում ենք servo motor object- ը

Servo1.attach (servoPin); compass.init (); compass.enableDefault ();

Կողմնորոշիչի մոդուլի և սերվո շարժիչի նախաստորագրում

Servo1.attach () արգումենտը servo շարժիչին միացված քորոցի թիվն է:

կողմնացույց.m_min = (LSM303:: վեկտոր) { -32767, -32767, -32767}; կողմնացույց.m_max = (LSM303:: վեկտոր) { +32767, +32767, +32767};

Այս տողերի օգնությամբ դուք սահմանում եք նախորդ մասում ձեռք բերված միջակայքը չափելու նվազագույն և առավելագույն արժեքները:

float heading = compass.heading ((LSM303:: վեկտոր) {0, 0, 1});

Վերնագիր () գործառույթը վերադարձնում է անկյունը կոորդինատային առանցքի և ֆիքսված առանցքի միջև: Ֆունկցիայի արգումենտում կարող եք ֆիքսված առանցքը սահմանել վեկտորով: Օրինակ, այստեղ, սահմանելով (LSM303:: վեկտոր) {0, 0, 1}, Z առանցքը համարվում է հաստատուն առանցք:

Servo1.write (վերնագիր);

Servo1.write () գործառույթը կիրառում է կողմնացույցի մոդուլի ընթերցված արժեքը servo շարժիչի վրա:

Ուշադրություն դարձրեք, որ servo շարժիչը կարող է ունենալ մագնիսական դաշտ, ուստի ավելի լավ է servo շարժիչը տեղադրել կողմնացույցի մոդուլից համապատասխան հեռավորության վրա, որպեսզի այն չի առաջացնում կողմնացույցի մոդուլի շեղում:

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