Innholdsfortegnelse:
- Trinn 1: Oversikt over BMG160:
- Trinn 2: Hva du trenger..
- Trinn 3: Maskinvaretilkobling:
- Trinn 4: 3-akse gyroskopmåling partikkelkode:
- Trinn 5: Søknader:
Video: Grensesnitt mellom 3-akse gyroskopsensor BMG160 med partikkel: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
I dagens verden er mer enn halvparten av ungdommen og barna glad i spill, og alle som er glad i det, fascinert av de tekniske aspektene ved spill, vet viktigheten av bevegelsesføling i dette domenet. Vi ble også overrasket over det samme, og bare for å bringe det på tavlene tenkte vi på å jobbe med en gyroskopsensor som kan måle vinkelfrekvensen til ethvert objekt. Så, sensoren vi tok for å håndtere oppgaven er BMG160. BMG160 er en 16-bits, digital, triaksial, gyroskopsensor som kan måle vinkelfrekvensen i tre vinkelrette romdimensjoner.
I denne opplæringen skal vi demonstrere hvordan BMG160 fungerer med Particle Photon.
Maskinvaren du trenger for dette formålet er som følger:
1. BMG160
2. Partikkelfoton
3. I2C -kabel
4. I2C -skjold for partikkelfoton
Trinn 1: Oversikt over BMG160:
Først og fremst vil vi gjøre deg kjent med de grunnleggende funksjonene i sensormodulen som er BMG160 og kommunikasjonsprotokollen som den fungerer på.
BMG160 er i utgangspunktet en 16-biters, digital, triaksial, gyroskopsensor som kan måle vinkelhastigheter. Den er i stand til å beregne vinkelhastigheter i tre vinkelrette romdimensjoner, x-, y- og z-aksen, og gi de tilsvarende utgangssignalene. Den kan kommunisere med bringebær -pi -kortet ved hjelp av I2C -kommunikasjonsprotokollen. Denne modulen er designet for å oppfylle kravene til forbrukerapplikasjoner så vel som industrielle formål.
Kommunikasjonsprotokollen som sensoren fungerer på er I2C. I2C står for den interintegrerte kretsen. Det er en kommunikasjonsprotokoll der kommunikasjonen foregår gjennom SDA (seriell data) og SCL (seriell klokke) linjer. Det tillater tilkobling av flere enheter samtidig. Det er en av de enkleste og mest effektive kommunikasjonsprotokoller.
Trinn 2: Hva du trenger..
Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:
1. BMG160
2. Partikkelfoton
3. I2C -kabel
4. I2C -skjerm for partikkelfoton
Trinn 3: Maskinvaretilkobling:
Maskinvarekoblingsdelen forklarer i utgangspunktet kablingstilkoblingene som kreves mellom sensoren og partikkelen. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:
BMG160 vil fungere over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.
Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.
Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.
Disse sammenhengene er vist på bildene ovenfor.
Trinn 4: 3-akse gyroskopmåling partikkelkode:
La oss begynne med partikkelkoden nå.
Mens vi bruker sensormodulen med arduino, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.
Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:
#inkludere
#inkludere
// BMG160 I2C -adressen er 0x68 (104)
#define Addr 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
ugyldig oppsett ()
{
// Angi variabel
Partikkel.variabel ("i2cdevice", "BMG160");
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Partikkel.variabel ("zGyro", zGyro);
// Initialiser I2C -kommunikasjon som MASTER
Wire.begin ();
// Initialiser seriekommunikasjon
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg Avstandsregister
Wire.write (0x0F);
// Konfigurer full skala 2000 dps
Wire.write (0x80);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg båndbredderegister
Wire.write (0x10);
// Angi båndbredde = 200 Hz
Wire.write (0x04);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [6];
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg dataregister
Wire.write (0x02);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 6 byte med data
Wire.requestFrom (Addr, 6);
// Les 6 byte med data
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
hvis (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
forsinkelse (300);
// Konverter dataene
xGyro = ((data [1] * 256) + data [0]);
hvis (xGyro> 32767)
{
xGyro -= 65536;
}
yGyro = ((data [3] * 256) + data [2]);
hvis (yGyro> 32767)
{
yGyro -= 65536;
}
zGyro = ((data [5] * 256) + data [4]);
hvis (zGyro> 32767)
{
zGyro -= 65536;
}
// Utdata til dashbordet
Particle.publish ("X-Axis of Rotation:", String (xGyro));
Particle.publish ("Y-Axis of Rotation:", String (yGyro));
Particle.publish ("Z-Axis of Rotation:", String (zGyro));
forsinkelse (1000);
}
Trinn 5: Søknader:
BMG160 har et variert antall applikasjoner på enheter som mobiltelefoner, grensesnittenheter for mennesker. Denne sensormodulen er designet for å oppfylle kravene til forbrukerapplikasjoner som bildestabilisering (DSC og kameratelefon), spill og pekeenheter. Det brukes også i systemer som krever gjenkjenning av bevegelser og systemene som brukes i innendørs navigasjon.
Anbefalt:
Forskjellen mellom (alternativ strøm og likestrøm): 13 trinn
Forskjellen mellom (alternativ strøm og likestrøm): Alle vet at elektrisitet stort sett er likestrøm, men hva med en annen type elektrisitet? Kjenner du Ac? Hva står AC for? Er det brukbart da DC? I denne studien vil vi vite forskjellen mellom elektrisitetstyper, kilder, anvendelser
RS485 Mellom Arduino og Raspberry Pi: 7 trinn
RS485 Mellom Arduino og Raspberry Pi: For skolen må jeg lage et prosjekt. Jeg velger å lage en smart drivhuskontroller fullstendig kontrollert av en bringebærpi. Sensorene vil bli drevet av en arduino uno. I løpet av månedene som følger vil jeg legge ut fremstillingen av dette prosjektet trinn ved
Kontrollere servo ved bruk av MPU6050 mellom Arduino og ESP8266 med HC-12: 6 trinn
Kontrollere servo ved bruk av MPU6050 mellom Arduino og ESP8266 Med HC-12: I dette prosjektet kontrollerer vi posisjonen til en servomotor ved hjelp av mpu6050 og HC-12 for kommunikasjon mellom Arduino UNO og ESP8266 NodeMCU
Hei Blynk! Grensesnitt mellom SPEEEduino og Blynk -appen: 5 trinn
Hei Blynk! Grensesnitt mellom SPEEEduino og Blynk-appen: Hva er SPEEEduino? SPEEEduino er et Wi-Fi-aktivert mikrokontrollerkort basert rundt Arduino-økosystemet, bygget for lærere. SPEEEduino kombinerer formfaktoren og mikrokontrolleren til Arduino med ESP8266 Wi-Fi SoC, noe som gjør
Grensesnitt mellom en CMUCam2 og en OOPIC: 5 trinn
Grensesnitt mellom en CMUCam2 og en OOPIC: Oversikt over hvordan du kobler en CMUCam2 til og OOPIC