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

ADXL345- ի և Raspberry Pi- ի միջոցով արագացման չափում. 4 քայլ
ADXL345- ի և Raspberry Pi- ի միջոցով արագացման չափում. 4 քայլ

Video: ADXL345- ի և Raspberry Pi- ի միջոցով արագացման չափում. 4 քայլ

Video: ADXL345- ի և Raspberry Pi- ի միջոցով արագացման չափում. 4 քայլ
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Նոյեմբեր
Anonim
Image
Image

ADXL345- ը փոքր, բարակ, ծայրահեղ ցածր, 3 առանցքի արագացուցիչ է ՝ բարձր լուծաչափով (13 բիթ) չափմամբ մինչև ± 16 գ: Թվային ելքային տվյալները ձևաչափվում են որպես 16-բիթ երկակի լրացում և հասանելի են I2 C թվային ինտերֆեյսի միջոցով: Չափում է թեքության զգայարանների ծանրության ստատիկ արագացումը, ինչպես նաև շարժման կամ հարվածի հետևանքով առաջացած դինամիկ արագացումը: Դրա բարձր լուծաչափը (3.9 մգ/LSB) թույլ է տալիս չափել թեքության փոփոխությունները 1.0 ° -ից պակաս:

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

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

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

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

1. ADXL345

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

3. I2C մալուխ

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

5. Ethernet մալուխ

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

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

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

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

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

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

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

Քայլ 3. Արագացման չափման ծածկագիր

Արագացման չափման կոդ
Արագացման չափման կոդ

Ազնվամորու pi- ի օգտագործման առավելությունն այն է, որ ձեզ տալիս է ծրագրավորման այն լեզվի ճկունությունը, որով ցանկանում եք ծրագրավորել տախտակը `սենսորը դրա հետ միացնելու համար: Օգտվելով այս տախտակի այս առավելությունից ՝ մենք այստեղ ցուցադրում ենք դրա ծրագրավորումը պիթոնում: ADXL345- ի Python կոդը կարելի է ներբեռնել մեր github համայնքից, որը Control Everything համայնքն է:

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

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

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

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

ներմուծել smbus

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

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

# ADXL345 հասցե, 0x53 (83)

# Ընտրեք թողունակության մակարդակի գրանցամատյան, 0x2C (44)

# 0x0A (10) Նորմալ ռեժիմ, ելքային տվյալների արագություն = 100 Հց

bus.write_byte_data (0x53, 0x2C, 0x0A)

# ADXL345 հասցե, 0x53 (83)

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

# 0x08 (08) Ավտոմատ քունն անջատված է

bus.write_byte_data (0x53, 0x2D, 0x08)

# ADXL345 հասցե, 0x53 (83)

# Ընտրեք տվյալների ձևաչափի գրանցամատյան, 0x31 (49)

# 0x08 (08) Ինքնաթեստը անջատված է, 4-լարային ինտերֆեյս

# Լիարժեք լուծում, միջակայք = +/- 2 գ

bus.write_byte_data (0x53, 0x31, 0x08)

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

# ADXL345 հասցե, 0x53 (83)

# Կարդացեք տվյալները 0x32- ից (50), 2 բայթ

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

տվյալներ 1 = bus.read_byte_data (0x53, 0x33)

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

xAccl = ((data1 & 0x03) * 256) + data0

եթե xAccl> 511:

xAccl -= 1024

# ADXL345 հասցե, 0x53 (83)

# Կարդացեք տվյալները 0x34- ից (52), 2 բայթ

# Y-Axis LSB, Y-Axis MSB

data0 = bus.read_byte_data (0x53, 0x34)

տվյալներ 1 = bus.read_byte_data (0x53, 0x35)

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

yAccl = ((data1 & 0x03) * 256) + data0

եթե yAccl> 511:

yAccl -= 1024

# ADXL345 հասցե, 0x53 (83)

# Կարդացեք տվյալները 0x36- ից (54), 2 բայթ

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x53, 0x36)

տվյալներ 1 = bus.read_byte_data (0x53, 0x37)

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

zAccl = ((data1 & 0x03) * 256) + data0

եթե zAccl> 511:

zAccl -= 1024

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

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

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

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

Ստորև նշված կոդի մասը ներառում է գրադարանները, որոնք անհրաժեշտ են պիթոնի ծածկագրերի ճիշտ կատարման համար:

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

Կոդը կարող է կատարվել `հրամանի տողում մուտքագրելով ստորև նշված հրամանը:

$> պիթոն ADXL345.py

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

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

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

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

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