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

Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և ազնվամորի Pi: 4 քայլ
Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և ազնվամորի Pi: 4 քայլ

Video: Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և ազնվամորի Pi: 4 քայլ

Video: Մագնիսական դաշտի չափում `օգտագործելով HMC5883 և ազնվամորի Pi: 4 քայլ
Video: Մագնիսական դաշտի ազդեցությունը հոսանքակիր հաղորդչի և հոսանքակիր շրջանակի վրա: Էլեկտրաշարժիչ 2024, Նոյեմբեր
Anonim
Image
Image

HMC5883- ը թվային կողմնացույց է, որը նախատեսված է ցածր դաշտի մագնիսական զգայարանների համար: Այս սարքն ունի մագնիսական դաշտի լայն շրջանակ ՝ +/- 8 Օէ և ելքային արագություն ՝ 160 Հց: HMC5883 սենսորը ներառում է ժապավենի ավտոմատ անջատիչ շարժիչներ, օֆսեթ չեղարկում և 12-բիթանոց ADC, որը հնարավորություն է տալիս 1 ° -ից մինչև 2 ° կողմնացույցի վերնագրի ճշգրտություն: Բոլոր I²C մինի մոդուլները նախագծված են 5VDC- ով աշխատելու համար:

Այս ձեռնարկում մենք պատրաստվում ենք բացատրել HMC5883- ի մանրամասն աշխատանքը Raspberry pi- ի հետ և դրա ծրագրավորումը `օգտագործելով java ծրագրավորման լեզուն:

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

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

Սարքավորումները, որոնք անհրաժեշտ են առաջադրանքը կատարելու համար, հետևյալն են.

1. HMC5883

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

3. I2C մալուխ

4. I2C Shield For Raspberry Pi

5. Ethernet մալուխ

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

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

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

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

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

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

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

Քայլ 3. Java կոդը ՝ մագնիսական դաշտի ինտենսիվությունը չափելու համար

Java կոդը ՝ մագնիսական դաշտի ինտենսիվությունը չափելու համար
Java կոդը ՝ մագնիսական դաշտի ինտենսիվությունը չափելու համար
Java կոդը ՝ մագնիսական դաշտի ինտենսիվությունը չափելու համար
Java կոդը ՝ մագնիսական դաշտի ինտենսիվությունը չափելու համար

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

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

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

pi4j.com/install.html

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

ներմուծել com.pi4j.io.i2c. I2CBus;

ներմուծել com.pi4j.io.i2c. I2CD սարք;

mport com.pi4j.io.i2c. I2CFactory;

ներմուծում java.io. IOException; հանրային դաս HMC5883

{

public static void main (String args ) նետում է Բացառություն

{

// Ստեղծել I2C ավտոբուս

I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);

// Ստացեք I2C սարք, HMC5883 I2C հասցեն ՝ 0x1E (30)

I2CDevice սարք = Bus.getDevice (0x1E);

// Ընտրեք կազմաձևման գրանցամատյան A

// Չափման նորմալ կազմաձևում, տվյալների արագություն o/p = 0.75 Հց

device.write (0x00, (բայթ) 0x60);

// Ընտրեք ռեժիմի գրանցամատյան

// Չափման շարունակական ռեժիմ

device.write (0x02, (բայթ) 0x00);

Thread.sleep (500);

// Կարդալ 6 բայթ տվյալներ 0x03 (3) -ից

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

բայթ տվյալներ = նոր բայթ [6];

device.read (0x03, տվյալներ, 0, 6);

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

int xMag = ((տվյալները [0] & 0xFF) * 256 + (տվյալները [1] & 0xFF));

եթե (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((տվյալները [2] & 0xFF) * 256 + (տվյալները [3] & 0xFF));

եթե (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((տվյալները [4] & 0xFF) * 256 + (տվյալները [5] & 0xFF));

եթե (yMag> 32767)

{

yMag -= 65536;

}

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

System.out.printf («Մագնիսական դաշտ X- առանցքում. %D %n», xMag);

System.out.printf («Մագնիսական դաշտը Y- առանցքում. %D %n», yMag);

System.out.printf («Մագնիսական դաշտ Z- առանցքում. %D %n», zMag);

}

}

Գրելու () և կարդալու () գործառույթները օգտագործվում են համապատասխանաբար հրամանները գրելու և սենսորի ելքը կարդալու համար: Հետևյալ մասը ցույց է տալիս մագնիսական դաշտի արժեքների ընթերցումը:

// Կարդալ 6 բայթ տվյալներ 0x03 (3) -ից

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

բայթ տվյալներ = նոր բայթ [6];

device.read (0x03, տվյալներ, 0, 6);

Արդյունքը ցուցադրվում է վերևի նկարում:

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

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

HMC5883- ը մակերևույթի վրա տեղադրվող, մի քանի չիպային մոդուլ է, որը նախատեսված է ցածր դաշտի մագնիսական զգայարանների համար `թվային ինտերֆեյսով, այնպիսի ծրագրերի համար, ինչպիսիք են ցածրարժեք կողմնացույցը և մագնիսաչափությունը: Դրա մեկից երկու աստիճանի բարձր մակարդակի ճշգրտությունն ու ճշգրտությունը հնարավորություն է տալիս հետիոտնային նավարկություն և LBS ծրագրեր:

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