Բովանդակություն:
- Քայլ 1: Պահանջվում է սարքավորում
- Քայլ 2: Սարքավորման միացում
- Քայլ 3: Շարժման հետևման կոդ
- Քայլ 4: Դիմումներ
Video: Շարժման հետևում MPU-6000- ի և Raspberry Pi- ի միջոցով. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
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 խելացի սարքերի, որոնք կարող են օգտագործվել ծրագրերում ՝ առողջության և ֆիթնեսի մոնիտորինգից մինչև տեղադրության վրա հիմնված ծառայություններ:
Խորհուրդ ենք տալիս:
Մարդու աչքի շարժման հետևում. 6 քայլ
Մարդու աչքի շարժման հետևում. Այս նախագիծը նպատակ ունի գրավել մարդու աչքի շարժումը և ցուցադրում է նրա շարժումը մի շարք LED լույսերի վրա, որոնք տեղադրված են աչքի տեսքով: Այս տիպի նախագիծը կարող է պոտենցիալ շատ կիրառություններ ունենալ ռոբոտաշինության և հատկապես հումայի ոլորտում
QeMotion - Շարժման հետևում յուրաքանչյուր ականջակալի համար: 5 քայլ (նկարներով)
QeMotion - Շարժման հետևում յուրաքանչյուր ականջակալի համար. Այն աշխատում է ՝ հետևելով ձեր գլխի շարժմանը (կամ դրա համար ականջակալ) և որոշակի շարժումների համար ստեղնաշարի սեղմումներ հրահրելով: Այսպիսով, ձեր կոմպ
Raspberry Pi- ի և MMA7455- ի միջոցով արագացման տատանումների հետևում Python- ի միջոցով. 6 քայլ
Raspberry Pi- ի և MMA7455- ի միջոցով արագացման տատանումներին հետևելը ՝ օգտագործելով Python- ը. Այն դեռ աշխատում է… Արագացնող տիեզերանավի ներկայացուցչությունը պարզաբանեց, որ մաքոքային ամենաբարձր կետում գտնվող ժամացույցը ավելի արագ կընտրի, քան բազայում `գրավիտացիոն ժամանակի ընդլայնման պատճառով: Մի քանի
Աչքի շարժման հետևում ինֆրակարմիր տվիչի միջոցով `5 քայլ
Աչքի շարժման հետևում ինֆրակարմիր սենսորով. Ես օգտագործել եմ ինֆրակարմիր սենսոր ՝ աչքերի շարժումները զգալու և LED- ն վերահսկելու համար: Ես ակնագնդեր եմ պատրաստել LED Կասետային NeoPixel- ով
Շարժման վերահսկվող վարդակից - շարժման զգայուն լույսից `6 քայլ
Շարժման վերահսկվող վարդակից - Շարժման զգայուն լույսից. Պատկերացրեք, որ դուք հնարամիտ եք, ով գնում է բլոկի ամենասարսափելի տունը: Բոլոր գայլերի, ուրվականների և գերեզմանների կողքով անցնելուց հետո դուք վերջապես հասնում եք վերջին ճանապարհին: Դուք կարող եք տեսնել կոնֆետը ձեր առջևի ամանի մեջ: Բայց հետո հանկարծ մի ղո