Përmbajtje:

Ndjekja e Lëvizjes duke Përdorur MPU-6000 dhe Foton Particle: 4 Hapa
Ndjekja e Lëvizjes duke Përdorur MPU-6000 dhe Foton Particle: 4 Hapa

Video: Ndjekja e Lëvizjes duke Përdorur MPU-6000 dhe Foton Particle: 4 Hapa

Video: Ndjekja e Lëvizjes duke Përdorur MPU-6000 dhe Foton Particle: 4 Hapa
Video: Enkeleida Sherifi Fuqia dhe Rendimenti Fizike 10 2024, Nëntor
Anonim
Image
Image

MPU-6000 është një Sensor i Ndjekjes së Lëvizjes me 6 Aks, i cili ka një akselerometër 3-Bosht dhe një xhiroskop 3-Bosht të ngulitur në të. Ky sensor është i aftë të gjurmojë në mënyrë efikase pozicionin dhe vendndodhjen e saktë të një objekti në rrafshin 3-dimensional. Mund të përdoret në sistemet që kërkojnë analiza të pozicionit me saktësinë më të lartë.

Në këtë tutorial është ilustruar ndërfaqja e modulit të sensorit MPU-6000 me fotonin e grimcave. Për të lexuar vlerat e nxitimit dhe këndit të rrotullimit, ne kemi përdorur grimcë me një përshtatës I2c. Ky përshtatës I2C e bën lidhjen me modulin e sensorit të lehtë dhe më të besueshëm.

Hapi 1: Kërkohet harduer:

Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer

Materialet e kërkuara për të kryer detyrën tonë përfshijnë përbërësit e mëposhtëm të harduerit:

1. MPU-6000

2. Fotoni i grimcave

3. Kabllo I2C

4. Mburoja I2C për fotonin e grimcave

Hapi 2: Bashkimi i harduerit:

Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit

Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe fotonit të grimcave. 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ë:

MPU-6000 do të punojë 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 3: Kodi për Ndjekjen e Lëvizjes:

Kodi për Ndjekjen e Lëvizjes
Kodi për Ndjekjen e Lëvizjes

Le të fillojmë me kodin e grimcave tani.

Ndërsa përdorim modulin e sensorit me arduino, ne përfshijmë bibliotekën application.h dhe spark_wiring_i2c.h. Biblioteka "application.h" dhe spark_wiring_i2c.h përmban funksione të cilat lehtësojnë komunikimin i2c midis sensorit dhe grimcës.

I gjithë kodi i grimcave është dhënë më poshtë për lehtësinë e përdoruesit:

#përfshijnë #përfshijnë // MPU-6000 Adresa I2C është 0x68 (104) #përcakto Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Cakto ndryshoren Particle.variable ("i2cdevice", "MPU-6000"); Grimca. E ndryshueshme ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Grimca. E ndryshueshme ("xGyro", xGyro); Grimca. E ndryshueshme ("yGyro", yGyro); Grimca. E ndryshueshme ("zGyro", zGyro); // Filloni komunikimin I2C si Master Wire.filloni (); // Filloni komunikimin serik, vendosni normën e baud = 9600 Serial.filloni (9600); // Filloni transmetimin I2C Wire.beginTransmission (Addr); // Zgjidh regjistrin e konfigurimit të xhiroskopit Wire.write (0x1B); // Gama e shkallës së plotë = 2000 dps Wire.write (0x18); // Ndaloni transmetimin I2C Wire.endTransmission (); // Filloni transmetimin I2C Wire.beginTransmission (Addr); // Zgjidh regjistrin e konfigurimit të përshpejtuesit Wire.write (0x1C); // Gama e shkallës së plotë = +/- 16g Wire.write (0x18); // Ndaloni transmetimin I2C Wire.endTransmission (); // Filloni transmetimin I2C Wire.beginTransmission (Addr); // Zgjidh regjistrin e menaxhimit të energjisë Wire.write (0x6B); // PLL me referencë xGyro Wire.write (0x01); // Ndaloni transmetimin I2C Wire.endTransmission (); vonesë (300); } void loop () {të dhëna int pa shenjë [6]; // Filloni transmetimin I2C Wire.beginTransmission (Addr); // Zgjidh regjistrin e të dhënave Wire.write (0x3B); // Ndaloni transmetimin I2C Wire.endTransmission (); // Kërkoni 6 bajt të dhëna Wire.requestFrom (Addr, 6); // Lexoni 6 bajt të dhëna nëse (Wire.available () == 6) {data [0] = Wire.read (); të dhëna [1] = Wire.read (); të dhëna [2] = Wire.read (); të dhëna [3] = Wire.read (); të dhëna [4] = Wire.read (); të dhëna [5] = Wire.read (); } vonesë (800); // Shndërroni të dhënat xAccl = ((të dhënat [1] * 256) + të dhënat [0]); nëse (xAccl> 32767) {xAccl -= 65536; } yAccl = ((të dhënat [3] * 256) + të dhënat [2]); nëse (yAccl> 32767) {yAccl -= 65536; } zAccl = ((të dhënat [5] * 256) + të dhënat [4]); nëse (zAccl> 32767) {zAccl -= 65536; } vonesë (800); // Filloni transmetimin I2C Wire.beginTransmission (Addr); // Zgjidh regjistrin e të dhënave Wire.write (0x43); // Ndalo transmetimin I2C Wire.endTransmission (); // Kërkoni 6 bajt të dhëna Wire.requestFrom (Addr, 6); // Lexoni 6 bajt të dhëna nëse (Wire.available () == 6) {data [0] = Wire.read (); të dhëna [1] = Wire.read (); të dhëna [2] = Wire.read (); të dhëna [3] = Wire.read (); të dhëna [4] = Wire.read (); të dhëna [5] = Wire.read (); } // Shndërroni të dhënat xGyro = ((të dhënat [1] * 256) + të dhënat [0]); nëse (xGyro> 32767) {xGyro -= 65536; } yGyro = ((të dhënat [3] * 256) + të dhënat [2]); nëse (yGyro> 32767) {yGyro -= 65536; } zGyro = ((të dhënat [5] * 256) + të dhënat [4]); nëse (zGyro> 32767) {zGyro -= 65536; } // Dalja e të dhënave në pult Particle.publish ("Përshpejtimi në boshtin X:", String (xAccl)); vonesa (1000); Particle.publish ("Përshpejtimi në Boshtin Y:", String (yAccl)); vonesa (1000); Particle.publish ("Përshpejtimi në Boshtin Z:", String (zAccl)); vonesa (1000); Particle.publish ("Boshti X i rrotullimit:", String (xGyro)); vonesa (1000); Particle.publish ("Y-Axis of Rotation:", String (yGyro)); vonesa (1000); Particle.publish ("Z-Boshti i Rrotullimit:", String (zGyro)); vonesa (1000); }

Funksioni Particle.variable () krijon variablat për të ruajtur daljen e sensorit dhe funksioni Particle.publish () shfaq daljen në pultin e faqes.

Dalja e sensorit tregohet në figurën e mësipërme për referencën tuaj.

Hapi 4: Aplikimet:

Aplikimet
Aplikimet

MPU-6000 është një sensor i përcjelljes së lëvizjes, i cili gjen aplikimin e tij në ndërfaqen e lëvizjes së telefonave inteligjentë dhe tabletave. Në telefonat inteligjentë, këta sensorë mund të përdoren në aplikacione të tilla si komandat e gjesteve për aplikacionet dhe kontrollin e telefonit, lojërat e zgjeruara, realiteti i shtuar, kapja dhe shikimi panoramik i fotografive dhe navigimi i këmbësorëve dhe automjeteve. Teknologjia MotionTracking mund të shndërrojë celularët dhe tabletët në pajisje të fuqishme inteligjente 3D që mund të përdoren në aplikacione duke filluar nga monitorimi i shëndetit dhe fitnesit deri tek shërbimet e bazuara në vendndodhje.

Recommended: