- Požadované komponenty:
- Gyroskopický senzor MPU6050:
- Popis:
- Schéma zapojení a vysvětlení:
- Vysvětlení programování
Snímač MPU6050 má na jednom čipu mnoho funkcí. Skládá se z MEMS akcelerometru, MEMS gyroskopu a teplotního senzoru. Tento modul je velmi přesný při převodu analogových hodnot na digitální, protože má 16bitový hardware analogového na digitální převodník pro každý kanál. Tento modul je schopen zachytit kanály x, yaz současně. Má rozhraní I2C pro komunikaci s hostitelským řadičem. Tento modul MPU6050 je kompaktní čip s akcelerometrem i gyroskopem. Jedná se o velmi užitečné zařízení pro mnoho aplikací, jako jsou drony, roboty, snímače pohybu. Nazývá se také gyroskop nebo tříosý akcelerometr.
Dnes v tomto článku budeme propojovat tento gyroskop MPU6050 s Arduinem a zobrazovat hodnoty na 16x2 LCD.
Požadované komponenty:
- Arduino Uno
- MPU-6050
- 10K POT
- Propojovací drát
- Nepájivá deska
- USB kabel
- Zdroj napájení
Gyroskopický senzor MPU6050:
MPU-6050 je 8kolíkový 6osý gyroskop a akcelerometr v jednom čipu. Tento modul standardně pracuje na sériové komunikaci I2C, ale lze jej nakonfigurovat pro rozhraní SPI konfigurací jeho registru. Pro I2C to má linky SDA a SCL. Téměř všechny piny jsou multifunkční, ale zde postupujeme pouze s piny v režimu I2C.
Konfigurace kolíku:
Vcc: - tento kolík se používá k napájení modulu MPU6050 vzhledem k zemi
GND: - toto je zemnící kolík
SDA: - Pin SDA se používá pro data mezi řadičem a modulem mpu6050
SCL: - SCL pin se používá pro vstup hodin
XDA: - Toto je datová linka snímače I2C SDA pro konfiguraci a čtení z externích snímačů (v našem případě se nepoužívá)
XCL: - Toto je hodinová linka snímače I2C SCL pro konfiguraci a čtení z externích snímačů (v našem případě se nepoužívá)
ADO: - I2C Slave Address LSB (v našem případě neplatí)
INT: - Přerušovací kolík pro indikaci připravenosti dat.
Popis:
V tomto článku ukazujeme teplotu, gyroskop a akcelerometr na LCD pomocí MPU6050 s Arduino. Tento modul nám dává na výstupu řádkové hodnoty a normalizované hodnoty, ale řádkové hodnoty nejsou stabilní, takže zde zobrazujeme normalizované hodnoty přes LCD. Pokud chcete pouze hodnotu akcelerometru, můžete také použít akcelerometr ADXL335 s Arduinem.
V tomto projektu jsme nejprve zobrazili hodnotu teploty na LCD a po 10 sekundách zobrazujeme hodnoty gyroskopu a po 10 sekundách máme hodnoty akcelerometru, jak je znázorněno na obrázcích níže:
Schéma zapojení a vysvětlení:
Schéma zapojení pro propojení MPU6050 s Arduinem je zde velmi jednoduché, použili jsme LCD a MPU6050. A tady jsme použili USB napájecí zdroj notebooku. K ovládání jasu LCD se používá hrnec 10k. V souvislosti s MPU6050 jsme provedli 5 připojení, ve kterých jsme připojili napájení 3,3 V a uzemnění MPU6050 k 3,3 V a zemi Arduino. Piny SCL a SDA MPU6050 jsou propojeny s piny Arduino A4 a A5. Pin INT MPU6050 je připojen k přerušení 0 Arduina (D2). LCD, RS, RW a EN jsou přímo připojeny k 8, GND a 9 Arduina. Datový kolík je přímo připojen k digitálnímu kolíku číslo 10, 11, 12 a 13.
Vysvětlení programování
Programová část je pro tento projekt také snadná. Zde jsme tuto knihovnu MPU6050 použili k propojení s Arduinem. Nejdříve si tedy musíme stáhnout knihovnu MPU6050 z GitHubu a nainstalovat ji do Arduino IDE.
Poté můžeme v příkladu najít ukázkové kódy. Uživatel může tento kód otestovat přímým nahráním do Arduina a může vidět hodnoty přes sériový monitor. Nebo může uživatel použít náš kód uvedený na konci článku k zobrazení hodnot také na LCD a sériovém monitoru.
Při kódování jsme zahrnuli některé požadované knihovny, jako je MPU6050 a LCD.
#zahrnout
Ve funkci nastavení inicializujeme obě zařízení a píšeme uvítací zprávu přes LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, stupeň); Serial.begin (9600); Serial.println ("Inicializovat MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Zařízení nebylo nalezeno"); Serial.println ("Nelze najít platný snímač MPU6050, zkontrolujte zapojení!"); zpoždění (500); } pocet = 0; mpu.calibrateGyro (); mpu.setThreshold (3); Ve smyčkové funkci jsme zavolali tři funkce každých 10 sekund pro zobrazení teploty, gyroskopu a akcelerometru na LCD. Tyto tři funkce jsou tempShow, gyroShow a accelShow , tyto funkce můžete zkontrolovat v úplném kódu Arduino uvedeném na konci tohoto článku:
void loop () {lcd.clear (); lcd.print ("Teplota"); long st = millis (); Serial.println ("Teplota"); while (millis ()
Gyroskop MPU6050 a akcelerometr se používají k detekci polohy a orientace jakéhokoli zařízení. Gyro využívá zemskou gravitaci k určení poloh osy x, y a z a detekuje akcelerometr na základě rychlosti změny pohybu. Akcelerometr s Arduinem jsme již použili v mnoha našich projektech, jako jsou:
- Robot ovládaný gesty pomocí akcelerometru
- Arduino systém varování před nehodami vozidel
- Alarm detektoru zemětřesení pomocí Arduina