Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08
V današnjem svetu več kot polovica mladih in otrok obožuje igre na srečo, vsi tisti, ki jih imajo radi, navdušeni nad tehničnimi vidiki iger, pa se zavedajo pomena zaznavanja gibanja na tem področju. Tudi nas je presenetila ista stvar in samo zato, da bi jo prinesli na deske, smo pomislili, da bi delali na žiroskopskem senzorju, ki lahko meri kotno hitrost katerega koli predmeta. Torej, senzor, ki smo ga vzeli za reševanje naloge, je BMG160. BMG160 je 16-bitno, digitalno, triosno, žiroskopsko tipalo, ki lahko meri kotno hitrost v treh pravokotnih dimenzijah prostora.
V tej vadnici bomo prikazali delovanje BMG160 z Raspberry pi z uporabo Jave kot programskega jezika.
Strojna oprema, ki jo boste potrebovali v ta namen, je naslednja:
1. BMG160
2. Malina Pi
3. Kabel I2C
4. I2C ščit za Raspberry Pi
5. Ethernetni kabel
1. korak: Pregled BMG160:
Najprej bi vas radi seznanili z osnovnimi funkcijami senzorskega modula BMG160 in komunikacijskim protokolom, na katerem deluje.
BMG160 je v bistvu 16-bitno, digitalno, triosno, žiroskopsko tipalo, ki lahko meri kotne hitrosti. Sposoben je izračunati kotne stopnje v treh pravokotnih dimenzijah prostora, osi x-, y- in z, ter zagotoviti ustrezne izhodne signale. Lahko komunicira z malinovo pi ploščo z uporabo komunikacijskega protokola I2C. Ta poseben modul je zasnovan tako, da izpolnjuje zahteve za potrošniške aplikacije in industrijske namene.
Komunikacijski protokol, na katerem deluje senzor, je I2C. I2C pomeni vmesno vezje. To je komunikacijski protokol, v katerem komunikacija poteka prek linij SDA (serijski podatki) in SCL (serijska ura). Omogoča povezovanje več naprav hkrati. Je eden najpreprostejših in najučinkovitejših komunikacijskih protokolov.
Korak: Kaj potrebujete.. !
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. BMG160
2. Malina Pi
3. Kabel I2C
4. I2C ščit za Raspberry Pi
5. Ethernetni kabel
3. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in malinovim pi. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
BMG160 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!
Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
Korak 4: Merjenje 3-osnega žiroskopa z uporabo kode Java:
Prednost uporabe maline pi je, da vam omogoča prilagodljivost programskega jezika, v katerem želite programirati ploščo, da povežete senzor z njo. Če izkoristimo to prednost te plošče, tukaj dokazujemo njeno programiranje v Javi. Kodo Java za BMG160 lahko prenesete iz naše skupnosti github, ki je Dcube Store Community.
Poleg lažjega uporabnika kodo razlagamo tudi tukaj: Kot prvi korak kodiranja morate v primeru jave prenesti knjižnico pi4j, ker ta knjižnica podpira funkcije, ki se uporabljajo v kodi. Če želite prenesti knjižnico, obiščite naslednjo povezavo:
pi4j.com/install.html
Delovno kodo java za ta senzor lahko kopirate tudi tukaj:
uvoz com.pi4j.io.i2c. I2CBus;
uvoz com.pi4j.io.i2c. I2CDevice;
uvoz com.pi4j.io.i2c. I2CFactory;
uvoz java.io. IOException;
javni razred BMG160
{
public static void main (String args ) vrže Exception
{
// Ustvari vodilo I2C
Vodilo I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Pridobite napravo I2C, naslov IGC BMG160 je 0x68 (104)
Naprava I2CDevice = bus.getDevice (0x68);
// Izberite register dosega
// Konfigurirajte obseg obsega, 2000 dps
device.write (0x0F, (bajt) 0x80);
// Izberite register pasovne širine
// Pasovna širina 200 Hz
device.write (0x10, (bajt) 0x04);
Thread.sleep (500);
// Preberite 6 bajtov podatkov
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
bajt podatki = novi bajt [6];
device.read (0x02, podatki, 0, 6);
// Pretvarjanje podatkov
int xGyro = ((podatki [1] & 0xFF) * 256 + (podatki [0] & 0xFF));
če (xGyro> 32767)
{
xžiroskop = 65536;
}
int yGyro = ((podatki [3] & 0xFF) * 256 + (podatki [2] & 0xFF));
če (yGyro> 32767)
{
yGiro -= 65536;
}
int zGyro = ((podatki [5] & 0xFF) * 256 + (podatki [4] & 0xFF));
če (zGyro> 32767)
{
zGiro -= 65536;
}
// Izhod podatkov na zaslon
System.out.printf ("X-os vrtenja: %d %n", xGiroskop);
System.out.printf ("Y-os vrtenja: %d %n", yGiro);
System.out.printf ("Z-os vrtenja: %d %n", zGiro);
}
}
Knjižnica, ki olajša komunikacijo i2c med senzorjem in ploščo, je pi4j, njeni različni paketi I2CBus, I2CDevice in I2CFactory pa pomagajo vzpostaviti povezavo.
uvoz com.pi4j.io.i2c. I2CBus; uvoz com.pi4j.io.i2c. I2CDevice; uvoz com.pi4j.io.i2c. I2CFactory; uvoz java.io. IOException;
Ta del kode omogoča, da senzor izmeri kotno hitrost s pisanjem ustreznih ukazov s funkcijo write (), nato pa se podatki odčitajo s funkcijo read ().
// Izberite register obsega // Konfigurirajte celoten obseg obsega, 2000 dps device.write (0x0F, (bajt) 0x80); // Izberite register pasovne širine // Pasovna širina 200 Hz device.write (0x10, (bajt) 0x04); Thread.sleep (500);
// Preberite 6 bajtov podatkov
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb bajt podatki = novi bajt [6]; device.read (0x02, podatki, 0, 6);
Podatki, prejeti s senzorja, se pretvorijo v ustrezno obliko z uporabo naslednjega:
int xGyro = ((podatki [1] & 0xFF) * 256 + (podatki [0] & 0xFF)); če (xGiro> 32767) {xGyro -= 65536; } int yGyro = ((podatki [3] & 0xFF) * 256 + (podatki [2] & 0xFF)); če (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((podatki [5] & 0xFF) * 256 + (podatki [4] & 0xFF)); če (zGyro> 32767) {zGyro -= 65536; }
Izhod je natisnjen s funkcijo System.out.println () v naslednji obliki.
System.out.println ("X-rotacijska os: %d %n", xGiroskop); System.out.println ("os Y vrtenja: %d %n", yGiroskop); System.out.println ("os Z vrtenja: %d %n", zGiro);
Izhod senzorja je prikazan na zgornji sliki.
5. korak: Aplikacije:
BMG160 ima raznoliko število aplikacij v napravah, kot so mobilni telefoni, naprave za vmesnik človeških strojev. Ta senzorski modul je bil zasnovan tako, da izpolnjuje zahteve za potrošniške aplikacije, kot so stabilizacija slike (DSC in telefon s kamero), igralne in kazalne naprave. Uporablja se tudi v sistemih, ki zahtevajo prepoznavanje kretenj, in v sistemih, ki se uporabljajo pri navigaciji v zaprtih prostorih.
Priporočena:
Kako začeti z vmesnikom senzorja I2C ?? - Vmesnik vašega MMA8451 z uporabo ESP32: 8 korakov
Kako začeti z vmesnikom senzorja I2C ?? - Vmesnik vašega MMA8451 z uporabo ESP32: V tej vadnici boste izvedeli vse o tem, kako zagnati, povezati in dobiti napravo I2C (merilnik pospeška), ki deluje s krmilnikom (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Gasilni aparat senzorja temperature in vlažnosti senzorja (Arduino UNO): 11 korakov
Samodejni gasilni aparat s senzorjem temperature in vlažnosti (Arduino UNO): Ta projekt je bil namenjen vsem v domovih ali podjetjih kot senzor temperature in vlažnosti, prikazan na LCD -prikazovalniku, ter senzor plamena, povezan z zvočnikom in vodno črpalko za gašenje. požar v nujnih primerih
Vmesnik senzorja PIR s mikrokrmilnikom Pic: 5 korakov
Vmesnik senzorja PIR s mikrokrmilnikom Pic: vmesnik senzorja PIR s sliko mikrokrmilnika pic in navodila po korakih
Kdo je pri mojih vratih? Projekt PIR senzorja gibanja/senzorja dosega: 5 korakov
Kdo je pri mojih vratih? Projekt senzorja gibanja PIR/senzorja dosega: Naš projekt je namenjen zaznavanju gibanja prek PIR in senzorjev razdalje. Koda Arduino bo oddajala vizualni in zvočni signal, ki bo uporabniku povedal, da je nekdo v bližini. Koda MATLAB bo poslala e -poštni signal, ki bo uporabnika opozoril, da je nekdo v bližini. Ta naprava
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: 4 koraki
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: V tem projektu vam bom pokazal, kako z dvema metodama ustvarite poceni detektor vode: 1. Ultrazvočni senzor (HC-SR04) .2. Senzor vode Funduino