SNÍMAČ S ČIPEM MPU6050
Vágner Vlastimil
Kolega modelář elektronik měl v úmyslu stavět kvadrokoptéru nakonec od tohoto úmyslu upustil a zakoupil hotový model, a při své návštěvě mi na několik dní pro odzkoušení načítání dat z registrů teploty, akcelerometru a gyroskopu počítačem zapůjčil hotový modul s čipem MPU6050 který chtěl původně použít v řídící jednotce. Přípravek tedy pouze převodník I2C se připojuje na sériový port počítače nebo může být použita redukce USB/COM. Převodník muže být použit pro inspiraci při vlastním návrhu převodníku na I2C. Stejně tak i ten kdo programuje si určitě napíše svůj vlastní program dle svých potřeb přímo pod Windows k tomuto převodníku pokud ho bude chtít používat.
Popis přípravku
Přípravek pro komunikaci I2C jehož zapojení je na obrázku č.01 je napájen zdrojem napětí 5V schéma zapojení zdroje napájecího napětí je na obrázku č.02, jako zdroj napětí 5V je použit stabilizátor 78L05 vstupní napětí je možné v rozsahu 8 – 12VDC. Uvedené zapojení převodníku I2C používám pro všechny moduly které využívají komunikační sběrnici I2C, pro použití uvedeného modulu s čipem MPU6050 byl vyroben převodník s napětím 3.3V na straně I2C pro linky SDA a SCL. Napětí z výstupních linek DTR, RTS počítače stabilizují použité ZENEROVY DIODY 3V3 na napětí 3.3V z důvodu že čip MPU6050 na modulu používá napájecí napětí 3.3V. Počítač pro převodník I2C využívá výstupní signály RTS – (SCL), DTR – (SDA) a pro načítání hodnot z linky I2C využívá vstupní linku CTS. Logické úrovně při vysílání modulu MPU6050 na lince I2C SDA ovládají bázi tranzistoru a tento pak na vstupní linku CTS přivádí logické úrovně napětí „H“, „L“, které jsou již zpracovávány v počítači programem.
Modul s čipem
MPU6050 na I2C
Použitý hotový modul s čipem MPU6050 je napájen napětím 5V které je poté na hotovém modulu sníženo na hodnotu 3.3V toto napětí již napájí vlastní čip MPU6050 současně je přivedeno i na komunikační linky SCL, SDA přes zdvihací rezistory 4K7, stejná hodnota rezistoru 4K7 je použita i pro připojení záporného napájecího napětí na vstup označený AD0 přímo na desce hotového modulu. (Vstup AD0 čipu MPU6050 je současně vyveden na pin osazené svorkovnice na DPS). Tím je nastavena základní adresa čipu MPU6050 na hodnotu 104, pokud by pin svorkovnice na hotovém modulu MPU6050 označený AD0 byl připojený na kladné napájecí +3.3V byla by základní adresa čipu MPU6050 nastavena na hodnotu 105. Adresa pro zápis do čipu MPU6050 při adrese AD0 připojené na záporné napájecí napětí je 208, adresa pro čtení z čipu MPU6050 při adrese AD0 připojené na záporné napájecí napětí je 209. V případě že by vstup AD0 byl připojen na kladné napájecí napětí +3.3V byla by adresa pro zápis do čipu MPU6050 210 a adresa pro čtení z čipu MPU6050 211. Vlastní komunikace s čipem MPU6050 začíná po inicializaci čipu kde se v inicializaci zadávají hodnoty do registrů, volba je dle požadované činnosti čipu. Pro odzkoušení načítání hodnot v registrech AKCELEROMETRU, GYROSKOPU a TEPLOTY uvedeným programem v počítači (popis dále) jsou nastaveny v inicializaci čipu MPU6050 registry SMPLRT_DIV(7), CONFIG(6), GYRO_CONFIG(0), ACCEL_CONFIG(1), PWR_MGT_1(0), hodnoty u uvedených registrů v závorkách jsou použité při mém načítání hodnot popsaných registrů. Volba a hodnoty v registrech budou čistě individuální věc. Podrobný popis čipu MPU6050 a čipu MPU6000 (tento čip komunikuje po sběrnici SPI) je uvedený v DATASHEETU „PS-MPU-6000A“, podrobný popis a význam registrů čipu MPU6050 a čipu MPU6000 je uvedený v DATASHEETU „RM-MPU-6000A“. Oba DATASHEETY jsou dostupné na stránkách výrobce čipu nebo na internetu.
SCHÉMA ZAPOJENÍ PŘEVODNÍKU COM - I2C
SCHÉMA ZAPOJENÍ NAPÁJECÍHO ZDROJE
POPIS PROGRAMU
Program je napsán v TURBOPASCALU uložený je v adresáři PROGRAM a má název testmpu.exe, v uvedeném adresáři je i zdrojový program testmpu.pas. program jde spustit na počítačích s OS DOS, WINDOWS5/98, na počítačích s OS WINDOWS 2000, WINDOWS NT, WINDOWS XP, WINDOWS 7 jde spustit POUZE Z PŘÍKAZOVÉ ŘÁDKY POKUD JSOU UVEDENÉ OS ŘÁDNĚ NAINSTALOVÁNY VE 32-BITOVÉ VERZI. Na počítačích s OS NAINSTALOVANÝM V 64-BITOVÉ VERZI SE PROGRAM NESPUSTÍ.
Popis programu TESTMPU.EXE jde o program který načítá hodnoty registrů AKCELEROMETRU, GYROSKOPU které zobrazuje na monitoru v neupravené hodnotě „nevypočítává hodnoty pro AKCELEROMETR, GYROSKOP“ pouze zobrazuje sečtenou hodnotu obou registrů např. ACEL_XOUT_H + ACEL_XOUT_L, součet je prováděn takto : proměnná: = ((ax shl 8) or bx). Registry teploty TEMP_OUT_H + TEMP-OUT_L se sčítají stejně a z výsledku se vypočítá teplota : proměnná := (((temph shl 8) or templ)/340+36.53). Zobrazená teplota na monitoru je teplota čipu při přiložení palce na čip „OPATRNĚ“ se na monitoru začne zobrazovat teplota která se zvyšuje při teplotě 33°C ukončíme ohřev čipu palcem!. Ti kdož chtějí mohou si dopsat do programu vzorečky tak že čip MPU6050 bude na monitoru zobrazovat hodnoty z AKCELEROMETRU a GYROSKOPU ve stupních a náklonu, nebo si napíší svůj vlastní program v jiném programovacím jazyce.
Po spuštění programu TESTMPU.EXE zvolíme port kde je připojený převodník I2C s MPU6050 volbu provádíme stiskem klávesy s číslicí 1 až 4 stiskem klávesy s číslicí 1 volíme port COM1 stejně se volí jiný sériový port COM, nebo sériový port pomocí redukce USB/COM. Po volbě portu se na monitoru zobrazí ZADEJ ADRESU MPU zde zadáváme adresu podle toho jak je připojený vstup čipu AD0 pokud je připojený na záporný napájecí pól pomocí osazeného rezistoru 4K7 zadáme hodnotu 104 a stiskneme klávesu ENTER. Po této volbě se již zobrazí zde chceme načítat hodnotu AKCELEROMETRU NEBO GYROSKOPU volbu AKCELEROMETRU VOLÍME STISKEM KLÁVESY „A“ PO VOLBĚ SE JIŽ ZOBRAZUJÍ HODNOTY REGISTRŮ OS „X, Y, Z“ pokud je modul položený na rovné desce a nepohybujeme s ním jsou hodnoty ustálené, pokud chceme ukončit měření AKCELEROMETRU a chceme měřit hodnoty GYROSKOPU stiskneme klávesu „MEZERNÍK“ A ZVOLÍME SI GROSKOP STISKEM KLÁVESY „G“. PROGRAM UKONČÍME STISKEM KLÁVESY „ESC“. Znovu zdůrazňuji že jde pouze o ukázkový program načítání hodnot z čipu MPU6050 počítačem, je mnoho jiných programů k tomuto načítání hodnot z čipu MPU6050 pomocí počítače.
Hodně zábavy při programování a pokusech!
použité prameny :
DATASHEET K POPISU ČIPU : „PS-MPU-6000A“ a jeho Český překlad
DATASHEET K POPISU REGISTRŮ : „RM-MPU-6000A“ a jeho Český překlad
Vágner Vlastimil
Požitý čip s MPU6050
Hotový převodník I2C
test MPU6050 s PC se sériovým portem OS WINDOWS XP
MPU6050 při odečtu
Načtené hodnoty os „X, Y, Z „z akcelerometru OS WINDOWS XP
Otočený MPU6050 při měření
Načtené hodnoty z OS „X, Y, Z“ otočeným MPU6050 na stole OS WINDOWS XP
Testování MPU6050 s PC připojení pomocí USB/COM OS WINDOWS 7 STARTÉR
Zadání adresy pro čip MPU6050 adresa 104 použité PC USB/COM WINDOWS 7
Načítání hodnot OS „X, Y, Z“ GYROSKOPU
Zobrazení načtených hodnot GYROSKOPU použité PC USB/COM WINDOWS 7
Vágner Vlastimil