3 առանցքի արագացուցիչ, ADXL345 Raspberry Pi- ով Python- ի միջոցով. 6 քայլ
3 առանցքի արագացուցիչ, ADXL345 Raspberry Pi- ով Python- ի միջոցով. 6 քայլ
Anonim
3-առանցքի արագացուցիչ, ADXL345 ՝ Raspberry Pi- ի միջոցով, օգտագործելով Python- ը
3-առանցքի արագացուցիչ, ADXL345 ՝ Raspberry Pi- ի միջոցով, օգտագործելով Python- ը

Մտածեք մի գործիքի մասին, որը կարող է ստուգել այն կետը, որտեղ ձեր Offroader- ը թեքված է դեպի ձգձգված: Արդյո՞ք դա հաճելի չէր լինի այն դեպքում, երբ ինչ -որ մեկը հարմարվում է, երբ հնարավոր է շուռ տալ: Ակնհայտ է, որ այո: Դա իսկապես օգտակար կլինի այն մարդկանց համար, ովքեր սիրում են լեռներ գնալ և ձեռնարկատիրական ճանապարհորդություններ կատարել:

Անկասկած, առաջադեմ գնահատման իրական փայլուն ժամանակաշրջան, IoT- ն մեզ մոտ է: Որպես գործիքի և ծրագրավորման սիրահարներ, մենք կարծում ենք, որ Raspberry Pi- ն ՝ միկրո Linux համակարգիչը, վերաբերվել է մարդկանց ստեղծագործական կարողություններին ընդհանրապես ՝ իր հետ բերելով նորարարական մեթոդաբանության պայթյուն: Այսպիսով, որո՞նք են հնարավոր արդյունքները, որ այն, ինչ կարող ենք անել, եթե մոտակայքում ունենանք Raspberry Pi և 3 առանցքի արագացուցիչ: Մենք պետք է բացահայտենք! Այս առաջադրանքում մենք կզգանք արագացումը 3 առանցքների վրա ՝ X, Y և Z, օգտագործելով Raspberry Pi և ADXL345 ՝ 3 առանցքի արագացուցիչ: Այսպիսով, այս էքսկուրսիայի ժամանակ մենք պետք է դիտարկենք ՝ եռաչափ արագացումը դեպի վեր կամ G- ուժը չափելու շրջանակ պատրաստելու համար:

Քայլ 1: Մենք պահանջում ենք հիմնական սարքավորում

Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք
Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք
Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք
Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք
Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք
Հիմնական սարքավորումներ, որոնք մենք պահանջում ենք

Խնդիրները մեզ համար ավելի քիչ էին, քանի որ մենք ունենք մի տոննա իրեր, որոնցից աշխատելու տեղ կա: Այնուամենայնիվ, մենք գիտենք, թե որքան դժվար է ուրիշների համար կատարյալ ժամանակում ճիշտ հատվածը հարմար վայրից հավաքելը, և դա արդարացված է ՝ անկախ յուրաքանչյուր կոպեկից: Այսպիսով, մենք կօգնենք ձեզ բոլոր մարզերում: Կարդացեք հետևյալը ՝ մասերի ամբողջական ցուցակ ստանալու համար:

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

Նախնական քայլը Raspberry Pi տախտակի ձեռքբերումն էր: Այս փոքր, ցածր էներգիայի համակարգիչը ապահովում է էժան և ընդհանրապես պարզ հիմք էլեկտրոնային ձեռնարկությունների, Իրերի ինտերնետի (IoT), Խելացի քաղաքների, դպրոցական կրթության համար:

2. I2C Shield ազնվամորու Pi- ի համար

Հիմնական բանը, որ Raspberry Pi- ն իսկապես բացակայում է, I²C նավահանգիստն է: Դրա համար TOUTPI2 I²C միակցիչը հնարավորություն է տալիս Rasp Pi- ն օգտագործել MULTIPLE I²C սարքերով: Այն հասանելի է DCUBE Store- ում

3. 3 առանցքի արագացուցիչ, ADXL345

Արտադրված է Analog Devices- ի կողմից ՝ ADXL345- ը ցածր էներգիայի 3 առանցքի արագացուցիչ է ՝ բարձր լուծաչափով 13 բիթ չափմամբ մինչև g 16 գ: Այս սենսորը ձեռք ենք բերել DCUBE Store- ից

4. Միացման մալուխ

Մենք ունեինք I2C միացնող մալուխ, որը հասանելի էր DCUBE Store- ում

5. Միկրո USB մալուխ

Ամենափոքր շփոթված, բայց ամենաուժեղը, որքան ուժի կարիք ունի, Raspberry Pi- ն է: Raspberry Pi- ն սնուցելու ամենադյուրին մոտեցումը Micro USB մալուխի միջոցով է:

6. Վեբ հասանելիությունը անհրաժեշտություն է

Վեբ հասանելիությունը կարող է հզորացվել տեղական ցանցի և վեբի հետ կապված Ethernet (LAN) մալուխի միջոցով: Մյուս կողմից, դուք կարող եք կապվել անլար ցանցի հետ `օգտագործելով USB անլար dongle, որը կպահանջի կազմաձևում:

7. HDMI մալուխ/հեռավոր մուտք

HDMI մալուխի միջոցով կարող եք այն միացնել թվային հեռուստատեսությանը կամ մոնիտորին: Պետք է կանխիկ գումար խնայել: Raspberry Pi- ն կարող է հեռակա կարգով կիրառվել տարբերվող ռազմավարությունների նման, ինչպիսիք են ՝ SSH- ը և Մուտքը համացանցում: Կարող եք օգտագործել PuTTYopen աղբյուրի ծրագրակազմը:

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

Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում
Սարքաշարի միացում

Կատարեք սխեման ըստ սխեմատիկ հայտնվածի: Կազմեք ուրվագիծ և միտումնավոր վերցրեք կազմաձևից հետո:

Raspberry Pi- ի և I2C Shield- ի միացում

Ամեն ինչից վեր վերցրեք Raspberry Pi- ն և դրա վրա նշեք I2C Shield- ը: Սեղմեք Shield- ը Pi- ի GPIO կապում, և մենք կավարտենք այս առաջընթացով, ինչպես կարկանդակի պես պարզ (տես լուսանկարը):

Սենսորային և ազնվամորու Pi- ի միացում

Վերցրեք տվիչը և դրա հետ միացրեք I2C մալուխը: Այս մալուխի համապատասխան շահագործման համար խնդրում ենք հիշել I2C ելքը ՄԻՇՏ կապված I2C մուտքի հետ: Նույնը պետք է արվի Raspberry Pi- ի դեպքում, երբ դրա վրա տեղադրված է I2C վահանը GPIO կապում:

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

Նշում. Շագանակագույն մետաղալարը պետք է հուսալիորեն հետևի Ground (GND) կապին մեկ սարքի ելքի և մեկ այլ սարքի մուտքի միջև:

Վեբ ցանցը բանալին է

Մեր ձեռնարկությունը հաղթական դարձնելու համար մենք պահանջում ենք վեբ կապ մեր Raspberry Pi- ի համար: Դրա համար դուք ունեք այլընտրանքներ, ինչպիսիք են Ethernet (LAN) մալուխը տնային համակարգին միացնելը: Բացի այդ, որպես տարբերակ, սակայն, օգտակար երթուղին WiFi միակցիչի օգտագործումն է: Որոշ ժամանակ դրա համար վարորդից պահանջում եք, որպեսզի այն աշխատի: Այսպիսով, թեքվեք դեպի պատկերը Linux- ով:

Էներգամատակարարում

Միացրեք Micro USB մալուխը Raspberry Pi- ի սնուցման վարդակին: Լուսավորեք այն, և մենք լավ ենք գնում:

Միացում էկրանին

Մենք կարող ենք ունենալ HDMI մալուխ ՝ կապված այլ էկրանի հետ: Որոշ դեպքերում, դուք պետք է հասնեք Raspberry Pi- ին ՝ առանց այն էկրանին միացնելու, կամ գուցե անհրաժեշտ լինի ինչ -որ այլ տեղ դիտել դրա տվյալները: Ceիշտ է, կան նորարարական և ֆինանսապես խելամիտ մոտեցումներ `որպես այդպիսին վարվելու: Նրանցից մեկն օգտագործում է `SSH (հեռավոր հրամանատարական տողի մուտք): Դուք նաև կարող եք դրա համար օգտագործել PuTTY ծրագրակազմը:

Քայլ 3. Python ծածկագրումը Raspberry Pi- ի համար

Python կոդավորումը Raspberry Pi- ի համար
Python կոդավորումը Raspberry Pi- ի համար

Raspberry Pi- ի և ADXL345 ցուցիչի Python ծածկագիրը հասանելի է մեր Github շտեմարանում:

Նախքան ծածկագրին անցնելը, համոզվեք, որ կարդում եք Readme փաստաթղթում տրված ուղեցույցները և կարգավորեք ձեր Raspberry Pi- ն ըստ դրա: Ուղղակի մեկ րոպե դադար կտա ՝ որպես այդպիսին կատարելու:

Արագացուցիչը սարք է, որը չափում է պատշաճ արագացումը. պատշաճ արագացումը նույնը չէ, ինչ կոորդինատային արագացումը (արագության փոփոխման արագությունը): Արագացուցիչի մեկ և մի քանի առանցքներով մոդելները մատչելի են ՝ որոշելու համար արագացման մեծությունն ու ուղղությունը ՝ որպես վեկտորային մեծություն, և կարող են օգտագործվել կողմնորոշման զգացման, արագացման, տատանումների, հարվածների և դիմադրողական միջավայրում ընկնելու համար:

Ձեր առջև դրված ծածկագիրը պարզ է և այն ամենապարզ կառուցվածքում է, որը դուք կարող եք պատկերացնել, և դուք չպետք է խնդիրներ ունենաք:

# Տարածված է ազատ կամքի լիցենզիայի միջոցով: # ADXL345 # Այս կոդը նախատեսված է ADXL345_I2CS I2C մինի մոդուլի հետ աշխատելու համար, որը հասանելի է dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -մոդուլ/

ներմուծել smbus

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

# Ձեռք բերեք I2C ավտոբուս

ավտոբուս = smbus. SMBus (1)

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

# Ընտրեք թողունակության արագության գրանցամատյան, 0x2C (44) # 0x0A (10) Նորմալ ռեժիմ, ելքային տվյալների արագություն = 100 Հց ավտոբուս: գրեք_բայթ_տվյալներ (0x53, 0x2C, 0x0A) # ADXL345 հասցե, 0x53 (83) # Ընտրեք էներգիայի կառավարման գրանցամատյան, 0x2D (45) # 0x08 (08) Ավտոմատ քուն անջատել ավտոբուսը: գրել_բայթ_տվյալներ (0x53, 0x2D, 0x08) # ADXL345 հասցե, 0x53 (83) # Ընտրել տվյալների ձևաչափի գրանցամատյան, 0x31 (49) # 0x08 (08) Ինքնաթեստը անջատված է, 4-լար ինտերֆեյս # Ամբողջական լուծում, Range = +/- 2g 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) data1 = 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) data1 = bus.read_byte_data (0x53, 0x35)

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

yAccl = ((տվյալներ 1 և 0x03) * 256) + տվյալներ 0, եթե yAccl> 511: yAccl -= 1024

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

# Կարդացեք տվյալները 0x36 (54), 2 բայթ # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data (0x53, 0x36) data1 = 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

Քայլ 4. Օրենսգրքի գործնականությունը

Օրենսգրքի գործնականությունը
Օրենսգրքի գործնականությունը

Ներբեռնեք (կամ git pull) ծածկագիրը Github- ից և բացեք այն Raspberry Pi- ում:

Գործարկեք տերմինալում Կոդ կազմելու և վերբեռնելու հրամանները և տեսեք արտադրանքը Մոնիտորի վրա: Մի քանի պահից հետո այն կցուցադրի պարամետրերից յուրաքանչյուրը: Հետո ապահովելով, որ ամեն ինչ հեշտությամբ աշխատի, դուք կարող եք այս ձեռնարկումը վերցնել ավելի մեծ առաջադրանքի:

Քայլ 5: Applicրագրեր և առանձնահատկություններ

ADXL345- ը փոքր, բարակ, ծայրահեղ ցածր, 3 առանցքի արագացուցիչ է ՝ բարձր լուծաչափով (13 բիթ) չափմամբ մինչև ± 16 գ: ADXL345- ը տեղին է բջջային հեռախոսի ծրագրերի համար: Այն քանակականացնում է թեքության հայտնաբերման ծրագրերում ծանրության ստատիկ արագացումը, և, ի հավելումն, շարժման կամ ցնցման պատճառով առաջիկա դինամիկ արագացման: Այլ ծրագրեր ներառում են ՝ Հեռախոսներ, Բժշկական սարքավորումներ, Խաղային և ուղղորդող սարքեր, Արդյունաբերական գործիքներ, Անձնական նավարկության սարքեր և Կոշտ սկավառակի (HDD) պաշտպանություն:

Քայլ 6: Եզրակացություն

Հուսով եմ, որ այս առաջադրանքը խթանում է հետագա փորձարկումները: Այս I2C սենսորը չափազանց ճկուն է, էժան և մատչելի: Քանի որ դա մեծ չափով մշտական համակարգ է, կան հետաքրքիր եղանակներ, որոնցով դուք կարող եք ընդլայնել այս խնդիրը և նույնիսկ կատարելագործել այն:

Օրինակ, կարող եք սկսել Inclinometer- ի գաղափարով ՝ օգտագործելով ADXL345 և Raspberry Pi: Վերոնշյալ նախագծում մենք օգտագործել ենք հիմնական հաշվարկները: Դուք կարող եք իմպրովիզացնել G- արժեքների, թեքության (կամ թեքության) անկյունների, ծանրության նկատմամբ օբյեկտի բարձրության կամ ընկճվածության համար: Այնուհետև կարող եք ստուգել առաջընթացի տարբերակները, ինչպիսիք են պտտման անկյունները գլանափաթեթի համար (առջևի հետևի առանցք, X), սկիպիդար (կողքի կողմի առանցք, Y) և շեղում (ուղղահայաց առանցք, Z): Այս արագացուցիչը ցուցադրում է եռաչափ G- ուժեր: Այսպիսով, դուք կարող եք օգտագործել այս սենսորը տարբեր եղանակներով, որոնք կարող եք հաշվի առնել:

Ձեր հարմարավետության համար մենք ունենք հետաքրքրաշարժ տեսաուսուցողական վարժություն YouTube- ում, որը կարող է օգնել ձեր հետազոտությանը: Վստահեք, որ այս ձեռնարկությունը մոտիվացնում է հետագա հետազոտություններին: Շարունակեք խորհել: Հիշեք, որ փնտրեք, քանի որ անընդհատ ավելին է գալիս:

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