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

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

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

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

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

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

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

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

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

1. MPU-6000

2. Ազնվամորի Պի

3. I2C մալուխ

4. I2C Shield ազնվամորու pi- ի համար

5. Ethernet մալուխ

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

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

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

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

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

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

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

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

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

Ազնվամորու pi- ի օգտագործման առավելությունն այն է, որ ապահովում է այն ծրագրավորման լեզվի ճկունությունը, որով ցանկանում եք ծրագրավորել տախտակը `սենսորը դրա հետ միացնելու համար: Օգտվելով այս տախտակի այս առավելությունից ՝ մենք այստեղ ցուցադրում ենք դրա ծրագրավորումը պիթոնում: Python- ը ամենահեշտ շարահյուսությամբ ծրագրավորման ամենահեշտ լեզուներից մեկն է: MPU-6000- ի Python կոդը կարելի է ներբեռնել մեր GitHub համայնքից, որը Dcube Store- ն է:

Ինչպես նաև օգտվողների հեշտության համար, մենք այստեղ բացատրում ենք ծածկագիրը.

Որպես կոդավորման առաջին քայլ, դուք պետք է ներբեռնեք SMBus գրադարանը պիթոնի դեպքում, քանի որ այս գրադարանը աջակցում է կոդի մեջ օգտագործվող գործառույթներին: Այսպիսով, գրադարանը ներբեռնելու համար կարող եք այցելել հետևյալ հղումը.

pypi.python.org/pypi/smbus-cffi/0.5.1

Աշխատանքային ծածկագիրը կարող եք պատճենել նաև այստեղից.

ներմուծել smbus

ներմուծման ժամանակը

# Ստացեք I2C ավտոբուս = smbus. SMBus (1)

# MPU-6000 հասցե, 0x68 (104)

# Ընտրեք գիրոսկոպի կազմաձևման գրանցամատյան, 0x1B (27)

# 0x18 (24) Ամբողջական սանդղակ = 2000 դպ / վ

bus.write_byte_data (0x68, 0x1B, 0x18)

# MPU-6000 հասցե, 0x68 (104)

# Ընտրեք արագացուցիչի կազմաձևման գրանցամատյան, 0x1C (28)

# 0x18 (24) Ամբողջ սանդղակ = +/- 16 գ

bus.write_byte_data (0x68, 0x1C, 0x18)

# MPU-6000 հասցե, 0x68 (104)

# Ընտրեք էներգիայի կառավարման գրանցամատյան 1, 0x6B (107)

# 0x01 (01) PLL xGyro հղումով

bus.write_byte_data (0x68, 0x6B, 0x01)

ժամանակ. քուն (0.8)

# MPU-6000 հասցե, 0x68 (104)

# Կարդացեք տվյալները 0x3B- ից (59), 6 բայթ

# Accelerometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

տվյալներ = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Փոխակերպեք տվյալները

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

եթե xAccl> 32767:

xAccl -= 65536

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

եթե yAccl> 32767:

yAccl -= 65536

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

եթե zAccl> 32767:

zAccl -= 65536

# MPU-6000 հասցե, 0x68 (104)

# Կարդացեք տվյալները 0x43- ից (67), 6 բայթ

# Gyrometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

տվյալներ = bus.read_i2c_block_data (0x68, 0x43, 6)

# Փոխակերպեք տվյալները

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

եթե xGyro> 32767:

xGyro -= 65536

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

եթե yGyro> 32767:

yGyro -= 65536

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

եթե zGyro> 32767:

zGyro -= 65536

# Ելքի տվյալները էկրանին

տպել «Արագացում X- առանցքում. %d» %xAccl

տպել «Արագացում Y- առանցքում. %d» %yAccl

տպել «Արագացում Z- առանցքում. %d» %zAccl

տպել «Պտտման առանցք. %d» %xGyro

տպել «Պտտման առանցք. %d» %yGyro

տպել «Պտտման առանցք. %d» %zGyro

Կոդը կատարվում է հետևյալ հրամանի միջոցով.

$> python MPU-6000.py gt; python MPU-6000.py

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

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

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

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

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