Turinys:

3 ašių giroskopo jutiklio BMG160 sujungimas su dalele: 5 žingsniai
3 ašių giroskopo jutiklio BMG160 sujungimas su dalele: 5 žingsniai

Video: 3 ašių giroskopo jutiklio BMG160 sujungimas su dalele: 5 žingsniai

Video: 3 ašių giroskopo jutiklio BMG160 sujungimas su dalele: 5 žingsniai
Video: 😤 Kuo naujesnis, tuo blogesnis. Tai taip pat taikoma 3,5 litro V6, skirtiems „Honda“ ir „Acura“. 2024, Lapkritis
Anonim
Image
Image

Šiandieniniame pasaulyje daugiau nei pusė jaunimo ir vaikų mėgsta žaidimus, o visi, kuriems tai patinka, susižavėję techniniais žaidimų aspektais, žino judesio jutimo svarbą šioje srityje. Mes taip pat buvome nustebinti to paties dalyko ir tiesiog norėdami jį parodyti ant lentų, sumanėme dirbti su giroskopo jutikliu, galinčiu išmatuoti bet kurio objekto kampinį greitį. Taigi, jutiklis, kurio ėmėmės užduočiai spręsti, yra BMG160. BMG160 yra 16 bitų skaitmeninis triašis giroskopo jutiklis, galintis išmatuoti kampinį greitį trimis statmenais kambario matmenimis.

Šioje pamokoje mes parodysime BMG160 darbą su dalelių fotonu.

Aparatūra, kurios jums reikės šiam tikslui, yra tokia:

1. BMG160

2. Dalelių fotonas

3. I2C kabelis

4. I2C skydas dalelių fotonui

1 žingsnis: BMG160 apžvalga:

Ko tau reikia..!!
Ko tau reikia..!!

Pirmiausia norime jus supažindinti su pagrindinėmis jutiklio modulio, kuris yra BMG160, ypatybėmis ir ryšio protokolu, kuriuo jis veikia.

BMG160 iš esmės yra 16 bitų skaitmeninis triašis giroskopo jutiklis, galintis išmatuoti kampinį greitį. Jis gali apskaičiuoti kampinius rodiklius trimis statmenais kambario matmenimis, x, y ir z ašimis, ir pateikti atitinkamus išėjimo signalus. Jis gali bendrauti su aviečių pi plokšte, naudodamas I2C ryšio protokolą. Šis konkretus modulis sukurtas taip, kad atitiktų vartotojų reikmėms ir pramonės reikmėms keliamus reikalavimus.

Ryšio protokolas, kuriame veikia jutiklis, yra I2C. I2C reiškia integruotą grandinę. Tai ryšio protokolas, kuriame ryšys vyksta per SDA (nuoseklius duomenis) ir SCL (nuoseklaus laikrodžio) linijas. Tai leidžia prijungti kelis įrenginius vienu metu. Tai vienas iš paprasčiausių ir efektyviausių ryšio protokolų.

2 žingsnis: ko jums reikia..

Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!
Ko tau reikia..!!

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. BMG160

2. Dalelių fotonas

3. I2C kabelis

4. I2C skydas dalelių fotonui

3 žingsnis: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir dalelės. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

BMG160 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.

Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

4 žingsnis: 3 ašių giroskopo matavimo dalelių kodas:

3 ašių giroskopo matavimo dalelių kodas
3 ašių giroskopo matavimo dalelių kodas
3 ašių giroskopo matavimo dalelių kodas
3 ašių giroskopo matavimo dalelių kodas

Pradėkime nuo dalelių kodo dabar.

Naudodami jutiklio modulį su „arduino“, įtraukiame „application.h“ir „spark_wiring_i2c.h“biblioteką. Bibliotekoje „application.h“ir spark_wiring_i2c.h yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir dalelės.

Visas dalelių kodas pateikiamas žemiau, kad būtų patogiau vartotojui:

#įtraukti

#įtraukti

// BMG160 I2C adresas yra 0x68 (104)

#define Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

negaliojanti sąranka ()

{

// Nustatyti kintamąjį

Dalelių kintamasis ("i2cdevice", "BMG160");

Dalelių.kintamasis ("xGyro", xGyro);

Dalelių.kintamasis ("yGyro", yGyro);

Dalelių.kintamasis ("zGyro", zGyro);

// Inicijuoti I2C komunikaciją kaip MASTER

Wire.begin ();

// Inicijuoti serijinį bendravimą

Serial.begin (9600);

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite diapazono registrą

Wire.write (0x0F);

// Konfigūruoti visą skalę 2000 dps

Wire.write (0x80);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite pralaidumo registrą

Wire.write (0x10);

// Nustatyti pralaidumą = 200 Hz

Wire.write (0x04);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

vėlavimas (300);

}

tuštumos kilpa ()

{

nepasirašyti int duomenys [6];

// Pradėti I2C perdavimą

Wire.beginTransmission (Addr);

// Pasirinkite duomenų registrą

Wire.write (0x02);

// Sustabdyti I2C perdavimą

Wire.endTransmission ();

// Prašyti 6 baitų duomenų

Wire.requestFrom (Addr, 6);

// Perskaitykite 6 baitus duomenų

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

jei (Wire.available () == 6)

{

duomenys [0] = Wire.read ();

duomenys [1] = Wire.read ();

duomenys [2] = Wire.read ();

duomenys [3] = Wire.read ();

duomenys [4] = Wire.read ();

duomenys [5] = Wire.read ();

}

vėlavimas (300);

// Konvertuoti duomenis

xGyro = ((duomenys [1] * 256) + duomenys [0]);

jei (xGyro> 32767)

{

xGyro -= 65536;

}

yGyro = ((duomenys [3] * 256) + duomenys [2]);

jei (yGyro> 32767)

{

yGyro -= 65536;

}

zGyro = ((duomenys [5] * 256) + duomenys [4]);

jei (zGyro> 32767)

{

zGyro -= 65536;

}

// Išvesti duomenis į prietaisų skydelį

Particle.publish ("X sukimosi ašis:", eilutė (xGyro));

Particle.publish ("Y sukimosi ašis:", eilutė (yGyro));

Particle.publish ("Z sukimosi ašis:", eilutė (zGyro));

vėlavimas (1000);

}

5 žingsnis: programos:

Programos
Programos

BMG160 turi daugybę programų tokiuose įrenginiuose kaip mobilieji telefonai, žmogaus ir mašinos sąsajos įrenginiai. Šis jutiklio modulis buvo sukurtas taip, kad atitiktų vartotojų poreikiams pritaikytus reikalavimus, tokius kaip vaizdo stabilizavimas (DSC ir fotoaparatas-telefonas), žaidimų ir nukreipimo įrenginiai. Jis taip pat naudojamas sistemose, kuriose reikalingas gestų atpažinimas, ir sistemose, naudojamose navigacijai patalpose.

Rekomenduojamas: