Përmbajtje:
- Hapi 1: Vështrim BMG160:
- Hapi 2: Ajo që ju nevojitet.. !
- Hapi 3: Bashkimi i harduerit:
- Hapi 4: Matja e xhiroskopit me 3 boshte duke përdorur kodin Java:
- Hapi 5: Aplikimet:
Video: Ndërfaqja e sensorit të xhiroskopit me 3 boshte BMG160 me mjedër Pi: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Në botën e sotme, më shumë se gjysma e të rinjve dhe fëmijëve janë të dhënë pas lojrave dhe të gjithë ata që e duan atë, të magjepsur nga aspektet teknike të lojrave e dinë rëndësinë e ndjeshmërisë së lëvizjes në këtë fushë. Ne gjithashtu u mahnitëm nga e njëjta gjë dhe vetëm për ta sjellë atë në dërrasa, ne menduam të punojmë në një sensor xhiroskopi i cili mund të masë shkallën këndore të çdo objekti. Pra, sensori që morëm për t'u marrë me detyrën është BMG160. BMG160 është një sensor xhiroskop 16-bit, dixhital, treaksial, i cili mund të masë shkallën këndore në tre dimensione të dhomës pingul.
Në këtë tutorial, ne do të demonstrojmë punën e BMG160 me Raspberry pi, duke përdorur Java si gjuhë programimi.
Pajisjet kompjuterike që do t'ju nevojiten për këtë qëllim janë si më poshtë:
1. BMG160
2. Raspberry Pi
3. Kabllo I2C
4. Mburoja I2C për Raspberry Pi
5. Kabllo Ethernet
Hapi 1: Vështrim BMG160:
Para së gjithash, ne dëshirojmë t'ju njohim me veçoritë themelore të modulit të sensorit që është BMG160 dhe protokollin e komunikimit në të cilin funksionon.
BMG160 është në thelb një sensor xhiroskop 16-bit, dixhital, treaksial, i cili mund të masë normat këndore. Shtë i aftë të llogarisë ritmet këndore në tre dimensione të dhomës pingul, boshtin x-, y- dhe z, dhe të sigurojë sinjalet përkatëse të daljes. Mund të komunikojë me bordin e mjedrës pi duke përdorur protokollin e komunikimit I2C. Ky modul i veçantë është krijuar për të përmbushur kërkesat për aplikimet e konsumatorit, si dhe qëllimet industriale.
Protokolli i komunikimit në të cilin punon sensori është I2C. I2C qëndron për qarkun e integruar. Shtë një protokoll komunikimi në të cilin komunikimi zhvillohet përmes linjave SDA (të dhëna serike) dhe SCL (ora seriale). Mundëson lidhjen e shumë pajisjeve në të njëjtën kohë. Shtë një nga protokollet më të thjeshtë dhe më efikas të komunikimit.
Hapi 2: Ajo që ju nevojitet.. !
Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:
1. BMG160
2. Raspberry Pi
3. Kabllo I2C
4. Mburoja I2C Për Raspberry Pi
5. Kabllo Ethernet
Hapi 3: Bashkimi i harduerit:
Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe mjedrës pi. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:
BMG160 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.
Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik. Gjithçka që ju nevojitet janë katër tela!
Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.
Këto lidhje demonstrohen në fotot e mësipërme.
Hapi 4: Matja e xhiroskopit me 3 boshte duke përdorur kodin Java:
Avantazhi i përdorimit të mjedrës pi është, që ju siguron fleksibilitetin e gjuhës programuese në të cilën dëshironi të programoni bordin në mënyrë që të ndërlidhni sensorin me të. Duke shfrytëzuar këtë avantazh të këtij bordi, ne po demonstrojmë këtu programimin e tij në Java. Kodi Java për BMG160 mund të shkarkohet nga komuniteti ynë github që është Dcube Store Community.
Si dhe për lehtësinë e përdoruesve, ne po e shpjegojmë kodin edhe këtu: Si hapi i parë i kodimit ju duhet të shkarkoni bibliotekën pi4j në rast java, sepse kjo bibliotekë mbështet funksionet e përdorura në kod. Pra, për të shkarkuar bibliotekën mund të vizitoni lidhjen e mëposhtme:
pi4j.com/install.html
Ju gjithashtu mund të kopjoni kodin java të punës për këtë sensor nga këtu:
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
klasa publike BMG160
{
public static void main (String args ) hedh Exception
{
// Krijo autobus I2C
Autobusi I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Merrni pajisjen I2C, adresa BMG160 I2C është 0x68 (104)
Pajisja I2CDevice = bus.getDevice (0x68);
// Zgjidhni regjistrin e diapazonit
// Konfiguro gamën e plotë të shkallës, 2000 dps
pajisje.shkruaj (0x0F, (bajt) 0x80);
// Zgjidh regjistrin e gjerësisë së brezit
// Gjerësia e brezit 200 Hz
pajisje.shkruaj (0x10, (bajt) 0x04);
Thread.sleep (500);
// Lexoni 6 bajt të dhëna
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
bajt të dhëna = bajt i ri [6];
pajisje.lex (0x02, të dhëna, 0, 6);
// Shndërroni të dhënat
int xGyro = ((të dhënat [1] & 0xFF) * 256 + (të dhënat [0] & 0xFF));
nëse (xGyro> 32767)
{
xGyro -= 65536;
}
int yGyro = ((të dhënat [3] & 0xFF) * 256 + (të dhënat [2] & 0xFF));
nëse (yGyro> 32767)
{
yGyro -= 65536;
}
int zGyro = ((të dhënat [5] & 0xFF) * 256 + (të dhënat [4] & 0xFF));
nëse (zGyro> 32767)
{
zGyro -= 65536;
}
// Dalja e të dhënave në ekran
System.out.printf ("Boshti X i rrotullimit: %d %n", xGyro);
System.out.printf ("Y-boshti i rrotullimit: %d %n", yGyro);
System.out.printf ("Z-boshti i rrotullimit: %d %n", zGyro);
}
}
Biblioteka që lehtëson komunikimin i2c midis sensorit dhe bordit është pi4j, paketat e saj të ndryshme I2CBus, I2CDevice dhe I2CFactory ndihmojnë për të vendosur lidhjen.
import com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
Kjo pjesë e kodit bën që sensori të masë shkallën këndore duke shkruar komandat përkatëse duke përdorur funksionin write () dhe më pas të dhënat lexohen duke përdorur funksionin read ().
// Zgjidh regjistrin e diapazonit // Konfiguro gamën e plotë të shkallës, pajisjen 2000 dps. Shkruaj (0x0F, (bajt) 0x80); // Përzgjedh regjistrin e gjerësisë së brezit // Pajisja me gjerësi brezi 200 Hz.shkruaj (0x10, (bajt) 0x04); Thread.sleep (500);
// Lexoni 6 bajt të dhëna
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb byte të dhëna = bajt i ri [6]; pajisje.lex (0x02, të dhëna, 0, 6);
Të dhënat e marra nga sensori shndërrohen në formatin e duhur duke përdorur sa vijon:
int xGyro = ((të dhënat [1] & 0xFF) * 256 + (të dhënat [0] & 0xFF)); nëse (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((të dhënat [3] & 0xFF) * 256 + (të dhënat [2] & 0xFF)); nëse (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((të dhënat [5] & 0xFF) * 256 + (të dhënat [4] & 0xFF)); nëse (zGyro> 32767) {zGyro -= 65536; }
Dalja shtypet duke përdorur funksionin System.out.println (), në formatin e mëposhtëm.
System.out.println ("Boshti X i Rrotullimit: %d %n", xGyro); System.out.println ("Boshti Y i Rrotullimit: %d %n", yGyro); System.out.println ("boshti Z i rrotullimit: %d %n", zGyro);
Dalja e sensorit tregohet në figurën e mësipërme.
Hapi 5: Aplikimet:
BMG160 ka një numër të larmishëm aplikimesh në pajisje si celularët, pajisjet e ndërfaqes së makinerisë njerëzore. Ky modul sensor është projektuar për të përmbushur kërkesat për aplikimet e konsumatorëve, të tilla si stabilizimi i imazhit (DSC dhe aparati-telefon), lojërat dhe pajisjet e drejtimit. Gjithashtu përdoret në sistemet që kërkojnë njohjen e gjesteve dhe sistemet e përdorura në navigimin e brendshëm.
Recommended:
Ndërfaqja e sensorit kapacitiv të gjurmëve të gishtërinjve me Arduino UNO: 7 hapa
Ndërfaqja e sensorit kapacitiv të gjurmëve të gishtërinjve me Arduino UNO: Hej, çfarë ka, djema! Akarsh këtu nga CETech. Sot ne do të shtojmë një shtresë mbrojtëse në projektet tona. Mos u shqetësoni ne nuk do të caktojmë asnjë truprojë për të njëjtën gjë. Do të jetë një sensor gjurmë gishtash pak i bukur dhe i bukur nga DFRobot. Pra
Ndërfaqja e modulit GPS me mjedër Pi: 10 hapa
Ndërfaqja e modulit GPS me Raspberry Pi: Hej djema !! A dëshironi të ndërlidhni një modul GPS me Raspberry Pi? Por përballeni me disa vështirësi për ta bërë atë? "Mos u shqetëso, unë jam këtu për të të ndihmuar! Mund të filloni duke përdorur pjesët e mëposhtme:
Leximi dhe grafikimi i të dhënave të sensorit të dritës dhe temperaturës me mjedër Pi: 5 hapa
Leximi dhe grafikimi i të dhënave të sensorit të dritës dhe temperaturës me Raspberry Pi: Në këtë Udhëzues do të mësoni se si të lexoni një sensor të dritës dhe temperaturës me mjedër pi dhe konvertues analog në digjital ADS1115 dhe ta grafikoni atë duke përdorur matplotlib. Le të fillojmë me materialet e nevojshme
Ndërfaqja e sensorit të xhiroskopit me 3 boshte BMG160 me Arduino Nano: 5 hapa
Ndërfaqja e Sensorit të Xhiroskopit 3-Bosht BMG160 Me Arduino Nano: Në botën e sotme, më shumë se gjysma e të rinjve dhe fëmijëve janë të dhënë pas lojrave dhe të gjithë ata që janë të dhënë pas saj, të magjepsur nga aspektet teknike të lojrave e dinë rëndësinë e ndijimit të lëvizjes në këtë fushë. Ne gjithashtu u mahnitëm nga e njëjta gjë dhe
Ndërfaqja e sensorit të xhiroskopit me 3 boshte BMG160 me grimcë: 5 hapa
Ndërfaqja e sensorit të xhiroskopit me 3 boshte BMG160 me grimcë: Në botën e sotme, më shumë se gjysma e të rinjve dhe fëmijëve janë të dhënë pas lojrave dhe të gjithë ata që janë të dhënë pas saj, të magjepsur nga aspektet teknike të lojrave e dinë rëndësinë e ndijimit të lëvizjes në këtë domen. Ne gjithashtu u mahnitëm nga e njëjta gjë dhe