Obsah:
- Krok 1: Požadovaný hardware:
- Krok 2: Připojení hardwaru:
- Krok 3: Kód pro sledování pohybu:
- Krok 4: Aplikace:
Video: Sledování pohybu pomocí MPU-6000 a fotonu částic: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
MPU-6000 je 6osý snímač sledování pohybu, který má zabudovaný 3osý akcelerometr a 3osý gyroskop. Tento senzor je schopen efektivně sledovat přesnou polohu a umístění objektu v trojrozměrné rovině. Může být použit v systémech, které vyžadují analýzu polohy s nejvyšší přesností.
V tomto tutoriálu bylo ukázáno propojení senzorového modulu MPU-6000 s fotonem částic. Ke čtení hodnot zrychlení a úhlu rotace jsme použili částice s adaptérem I2c. Tento adaptér I2C umožňuje snadné a spolehlivější připojení k modulu senzoru.
Krok 1: Požadovaný hardware:
Mezi materiály potřebné k splnění našeho úkolu patří níže uvedené hardwarové komponenty:
1. MPU-6000
2. Foton částic
3. Kabel I2C
4. I2C štít pro částicový foton
Krok 2: Připojení hardwaru:
Sekce zapojení hardwaru v zásadě vysvětluje zapojení potřebná pro připojení mezi snímačem a fotonem částic. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:
MPU-6000 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.
Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik. Vše, co potřebujete, jsou čtyři dráty!
Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.
Tato spojení jsou ukázána na obrázcích výše.
Krok 3: Kód pro sledování pohybu:
Začněme nyní kódem částic.
Při použití senzorového modulu s arduino zahrnujeme knihovnu application.h a spark_wiring_i2c.h. Knihovna „application.h“a spark_wiring_i2c.h obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a částicem.
Celý kód částic je pro pohodlí uživatele uveden níže:
#include #include // MPU-6000 I2C address is 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Nastavit proměnnou Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // Inicializujte komunikaci I2C jako Master Wire.begin (); // Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600 Serial.begin (9600); // Spustit přenos I2C Wire.beginTransmission (Addr); // Vyberte registr konfigurace gyroskopu Wire.write (0x1B); // Plný rozsah měřítka = 2000 dps Wire.write (0x18); // Zastavení přenosu I2C Wire.endTransmission (); // Spustit přenos I2C Wire.beginTransmission (Addr); // Vyberte registr konfigurace akcelerometru Wire.write (0x1C); // Plný rozsah měřítka = +/- 16g Wire.write (0x18); // Zastavení přenosu I2C Wire.endTransmission (); // Spustit přenos I2C Wire.beginTransmission (Addr); // Vyberte registr správy napájení Wire.write (0x6B); // PLL s xGyro referencí Wire.write (0x01); // Zastavení přenosu I2C Wire.endTransmission (); zpoždění (300); } void loop () {data bez znaménka [6]; // Spustit přenos I2C Wire.beginTransmission (Addr); // Vyberte datový registr Wire.write (0x3B); // Zastavení přenosu I2C Wire.endTransmission (); // Žádost o 6 bajtů dat Wire.requestFrom (Addr, 6); // Přečíst 6 bajtů dat if (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 (); } zpoždění (800); // Převod dat xAccl = ((data [1] * 256) + data [0]); if (xAccl> 32767) {xAccl -= 65536; } yAccl = ((data [3] * 256) + data [2]); if (yAccl> 32767) {yAccl -= 65536; } zAccl = ((data [5] * 256) + data [4]); if (zAccl> 32767) {zAccl -= 65536; } zpoždění (800); // Spustit přenos I2C Wire.beginTransmission (Addr); // Vyberte datový registr Wire.write (0x43); // Zastavení přenosu I2C Wire.endTransmission (); // Žádost o 6 bajtů dat Wire.requestFrom (Addr, 6); // Přečíst 6 bajtů dat if (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 (); } // Převést data xGyro = ((data [1] * 256) + data [0]); if (xGyro> 32767) {xGyro -= 65536; } yGyro = ((data [3] * 256) + data [2]); if (yGyro> 32767) {yGyro -= 65536; } zGyro = ((data [5] * 256) + data [4]); if (zGyro> 32767) {zGyro -= 65536; } // Výstup dat na řídicí panel Particle.publish ("Zrychlení v ose X:", String (xAccl)); zpoždění (1000); Particle.publish ("Zrychlení v ose Y:", řetězec (yAccl)); zpoždění (1000); Particle.publish ("Zrychlení v ose Z:", řetězec (zAccl)); zpoždění (1000); Particle.publish ("Osa rotace X:", řetězec (xGyro)); zpoždění (1000); Particle.publish ("Osa rotace Y:", řetězec (yGyro)); zpoždění (1000); Particle.publish ("Osa Z rotace:", String (zGyro)); zpoždění (1000); }
Funkce Particle.variable () vytváří proměnné pro uložení výstupu senzoru a funkce Particle.publish () zobrazuje výstup na palubní desce webu.
Výstup snímače je uveden na obrázku výše pro vaši referenci.
Krok 4: Aplikace:
MPU-6000 je senzor pro sledování pohybu, který nachází své uplatnění v pohybovém rozhraní chytrých telefonů a tabletů. V chytrých telefonech lze tyto senzory použít v aplikacích, jako jsou příkazy gest pro aplikace a ovládání telefonu, vylepšené hraní her, rozšířená realita, panoramatické snímání a prohlížení fotografií a navigace chodců a vozidel. Technologie MotionTracking dokáže převést sluchátka a tablety na výkonná 3D inteligentní zařízení, která lze použít v aplikacích od monitorování zdraví a kondice až po služby založené na poloze.
Doporučuje:
Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky
Měření zrychlení pomocí ADXL345 a částicového fotonu: ADXL345 je malý, tenký, ultra nízký výkon, 3osý akcelerometr s měřením s vysokým rozlišením (13bitové) až ± 16 g. Data digitálního výstupu jsou formátována jako 16bitová dvojčata a jsou přístupná prostřednictvím digitálního rozhraní I2 C. Měří
Měření magnetického pole pomocí HMC5883 a fotonu částic: 4 kroky
Měření magnetického pole pomocí HMC5883 a fotonu částic: HMC5883 je digitální kompas určený pro magnetické snímání v nízkém poli. Toto zařízení má široký rozsah magnetického pole +/- 8 Oe a výstupní rychlost 160 Hz. Senzor HMC5883 obsahuje ovladače odmagnetovacích popruhů, zrušení offsetu a
Měření vlhkosti pomocí HYT939 a fotonu částic: 4 kroky
Měření vlhkosti pomocí fotonů HYT939 a Particle: HYT939 je digitální senzor vlhkosti, který pracuje na komunikačním protokolu I2C. Vlhkost je klíčovým parametrem, pokud jde o lékařské systémy a laboratoře, takže abychom dosáhli těchto cílů, pokusili jsme se propojit HYT939 s malinovým pi. Já
Měření zrychlení pomocí H3LIS331DL a fotonu částic: 4 kroky
Měření zrychlení pomocí H3LIS331DL a částicového fotonu: H3LIS331DL, je vysoce výkonný 3osý lineární akcelerometr patřící do rodiny „nano“, s digitálním sériovým rozhraním I²C. H3LIS331DL má uživatelem volitelné plné stupnice ± 100 g/± 200 g/± 400 g a je schopen měřit zrychlení
Měření teploty pomocí MCP9803 a fotonu částic: 4 kroky
Měření teploty pomocí MCP9803 a částicového fotonu: MCP9803 je 2vodičový vysoce přesný teplotní senzor. Jsou provedeny s uživatelsky programovatelnými registry, které usnadňují aplikace snímání teploty. Tento senzor je vhodný pro vysoce sofistikovaný vícezónový systém monitorování teploty. V