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

Շարժման հետևում MPU-6000- ի և Arduino Nano- ի միջոցով. 4 քայլ
Շարժման հետևում MPU-6000- ի և Arduino Nano- ի միջոցով. 4 քայլ

Video: Շարժման հետևում MPU-6000- ի և Arduino Nano- ի միջոցով. 4 քայլ

Video: Շարժման հետևում MPU-6000- ի և Arduino Nano- ի միջոցով. 4 քայլ
Video: Actուալ. Հայաստանում նացիստական, ռասիստական, ֆաշիստական ցանկացած շարժման հետևում կանգնած է Կրեմլը 2024, Հուլիսի
Anonim
Image
Image

MPU-6000- ը 6 առանցքի շարժման հետևման տվիչ է, որն ունի 3 առանցքի արագացուցիչ և 3 առանցքի գիրոսկոպ: Այս սենսորն ունակ է արդյունավետ կերպով հետևել օբյեկտի ճշգրիտ դիրքին և գտնվելու վայրը եռաչափ հարթությունում: Այն կարող է օգտագործվել այն համակարգերում, որոնք պահանջում են դիրքի վերլուծություն ամենաբարձր ճշգրտությամբ:

Այս ձեռնարկում պատկերված է MPU-6000 սենսորային մոդուլի ինտերֆեյսը arduino nano- ի հետ: Արագացման և պտտման անկյունի արժեքները կարդալու համար մենք օգտագործել ենք arduino nano- ն I2c ադապտերով: Այս I2C ադապտերը դյուրին և հուսալի է դարձնում սենսորային մոդուլի հետ կապը:

Քայլ 1: Պահանջվում է սարքավորում

Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում

Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.

1. MPU-6000

2. Արդուինո Նանո

3. I2C մալուխ

4. I2C Shield arduino nano- ի համար

Քայլ 2: Սարքավորման միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և arduino nano- ի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.

MPU-6000- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:

Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք:

Ձեզ անհրաժեշտ է չորս լար: Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:

Այս կապերը ցուցադրվում են վերը նշված նկարներում:

Քայլ 3: Շարժման հետևման կոդ

Շարժման հետևման կոդ
Շարժման հետևման կոդ

Եկեք հիմա սկսենք arduino կոդով:

Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք Wire.h գրադարանը: «Լար» գրադարանը պարունակում է գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և arduino տախտակի միջև:

Օգտվողի հարմարության համար ստորև տրված է arduino- ի ամբողջ ծածկագիրը.

#ներառում

// MPU-6000 I2C հասցեն ՝ 0x68 (104)

#սահմանեք Addr 0x68

դատարկ կարգավորում ()

{

// Սկզբնականացնել I2C հաղորդակցությունը որպես վարպետ

Wire.begin ();

// Նախնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600

Serial.begin (9600);

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք գիրոսկոպի կազմաձևման գրանցամատյան

Wire.write (0x1B);

// Ամբողջ մասշտաբի տիրույթ = 2000 դպ/ վ

Wire.write (0x18);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք արագացուցիչի կազմաձևման գրանցամատյան

Wire.write (0x1C);

// Ամբողջ մասշտաբի միջակայք = +/- 16 գ

Wire.write (0x18);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք էներգիայի կառավարման գրանցամատյան

Wire.write (0x6B);

// PLL xGyro հղումով

Wire.write (0x01);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

ուշացում (300);

}

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

{

անստորագիր int տվյալներ [6];

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք տվյալների գրանցամատյան

Wire.write (0x3B);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Պահանջել 6 բայթ տվյալներ

Հաղորդալար. Խնդրում ենք (Addr, 6);

// Կարդացեք տվյալների 6 բայթ

եթե (Wire.available () == 6)

{

տվյալներ [0] = Wire.read ();

տվյալներ [1] = Wire.read ();

տվյալներ [2] = Wire.read ();

տվյալներ [3] = Wire.read ();

տվյալներ [4] = Wire.read ();

տվյալներ [5] = Wire.read ();

}

// Փոխարկել տվյալները

int xAccl = տվյալներ [0] * 256 + տվյալներ [1];

int yAccl = տվյալներ [2] * 256 + տվյալներ [3];

int zAccl = տվյալներ [4] * 256 + տվյալներ [5];

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք տվյալների գրանցամատյան

Wire.write (0x43);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Պահանջել 6 բայթ տվյալներ

Հաղորդալար. Խնդրում ենք (Addr, 6);

// Կարդացեք 6 բայթ տվյալներ

եթե (Wire.available () == 6)

{

տվյալներ [0] = Wire.read ();

տվյալներ [1] = Wire.read ();

տվյալներ [2] = Wire.read ();

տվյալներ [3] = Wire.read ();

տվյալներ [4] = Wire.read ();

տվյալներ [5] = Wire.read ();

}

// Փոխարկել տվյալները

int xGyro = տվյալներ [0] * 256 + տվյալներ [1];

int yGyro = տվյալներ [2] * 256 + տվյալներ [3];

int zGyro = տվյալներ [4] * 256 + տվյալներ [5];

// Ելքային տվյալները սերիական մոնիտորին

Serial.print («Արագացում X- առանցքում.»);

Serial.println (xAccl);

Serial.print («Արագացում Y- առանցքում.»);

Serial.println (yAccl);

Serial.print («Արագացում Z- առանցքում.»);

Serial.println (zAccl);

Serial.print ("Պտտման առանցք.");

Serial.println (xGyro);

Serial.print ("Պտտման առանցք.");

Serial.println (yGyro);

Serial.print ("Պտտման առանցք.");

Serial.println (zGyro);

ուշացում (500);

}

Լարային գրադարանում Wire.write () և Wire.read () օգտագործվում են հրամանները գրելու և սենսորի ելքը կարդալու համար:

Serial.print () և Serial.println () օգտագործվում են սենսորի ելքը Arduino IDE- ի սերիական մոնիտորի վրա ցուցադրելու համար:

Սենսորի ելքը ցուցադրվում է վերևի նկարում:

Քայլ 4: Դիմումներ

Դիմումներ
Դիմումներ

MPU-6000- ը շարժման հետևման տվիչ է, որն իր կիրառությունը գտնում է սմարթֆոնների և պլանշետների շարժման ինտերֆեյսում: Սմարթֆոններում այս սենսորները կարող են օգտագործվել այնպիսի ծրագրերում, ինչպիսիք են ՝ ծրագրերի և հեռախոսի կառավարման ժեստերի հրամանները, ուժեղացված խաղերը, ընդլայնված իրականությունը, համայնապատկերի լուսանկարահանումն ու դիտումը, ինչպես նաև հետիոտնային և տրանսպորտային միջոցների նավարկությունը: MotionTracking տեխնոլոգիան կարող է հեռախոսներն ու պլանշետները վերածել հզոր 3D խելացի սարքերի, որոնք կարող են օգտագործվել ծրագրերում ՝ առողջության և ֆիթնեսի մոնիտորինգից մինչև տեղադրության վրա հիմնված ծառայություններ:

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