- Необхідні компоненти:
- Гіроскопічний датчик MPU6050:
- Опис:
- Електрична схема та пояснення:
- Пояснення програмування
Датчик MPU6050 має багато функцій над одним чіпом. Він складається з акселерометра MEMS, гіроскопа MEMS та датчика температури. Цей модуль є дуже точним при перетворенні аналогових значень у цифрові, оскільки він має 16-бітове аналогово-цифрове обладнання перетворювача для кожного каналу. Цей модуль здатний одночасно захоплювати канали x, y та z. Він має інтерфейс I2C для зв'язку з контролером хосту. Цей модуль MPU6050 - це компактний чіп, що має як акселерометр, так і гіроскоп. Це дуже корисний пристрій для багатьох додатків, таких як безпілотники, роботи, датчики руху. Його також називають гіроскопом або потрійним осі акселерометром.
Сьогодні в цій статті ми збираємось поєднати цей гіроскоп MPU6050 з Arduino та показати значення на РК-дисплеї 16x2.
Необхідні компоненти:
- Arduino Uno
- MPU-6050
- 10K POT
- Дріт перемички
- Макет
- USB-кабель
- Блок живлення
Гіроскопічний датчик MPU6050:
MPU-6050 - це 8-контактний 6-осьовий гіроскоп та акселерометр в одному чіпі. Цей модуль за замовчуванням працює на послідовному зв'язку I2C, але його можна налаштувати для інтерфейсу SPI, налаштувавши його реєстрацію. Для I2C це має лінії SDA та SCL. Майже всі висновки є багатофункціональними, але тут ми працюємо лише з висновками режиму I2C.
Конфігурація контактів:
Vcc: - цей штифт використовується для живлення модуля MPU6050 щодо землі
GND: - це штифт заземлення
SDA: - Штифт SDA використовується для передачі даних між контролером та модулем mpu6050
SCL: - Штифт SCL використовується для введення годинника
XDA: - Це лінія даних I2C SDA для налаштування та зчитування з зовнішніх датчиків ((необов’язково), що не використовується в нашому випадку)
XCL: - Це лінійка годинника I2C SCL для налаштування та зчитування з зовнішніх датчиків ((необов’язково), що не використовується в нашому випадку)
ADO: - I2C Slave Address LSB (не застосовується в нашому випадку)
INT: - Штифт переривання для індикації готових даних.
Опис:
У цій статті ми показуємо показники температури, гіроскопа та акселерометра на РК-дисплеї за допомогою MPU6050 з Arduino. Цей модуль дає нам значення рядків і нормовані значення у вихідних даних, але значення рядків не є стабільними, тому тут ми маємо показ нормалізованих значень на РК-дисплеї. Якщо вам просто потрібне значення акселерометра, ви також можете використовувати акселерометр ADXL335 з Arduino.
У цьому проекті ми спочатку показали значення температури на РК-дисплеї, а через 10 секунд показуємо значення гіроскопа, а через 10 секунд маємо показання акселерометра, як показано на малюнках нижче:
Електрична схема та пояснення:
Принципова схема для взаємодії MPU6050 з Arduino дуже проста, тут ми використовували РК-дисплей та MPU6050. І тут ми використали блок живлення USB для ноутбука. Для управління яскравістю РК-дисплея використовується 10-канальний горщик. У зв'язку з MPU6050 ми виконали 5 з'єднань, в яких підключили джерело живлення 3,3 в і землю MPU6050 до 3,3 в і землю Arduino. Виводи SCL та SDA MPU6050 підключені до штифтів Arduino A4 та A5. А роз'єм INT MPU6050 підключений до переривання 0 Arduino (D2). РС, RW та EN РК-екрана безпосередньо підключені до 8, gnd та 9 Arduino. Контактні дані безпосередньо підключені до цифрових контактних номерів 10, 11, 12 і 13.
Пояснення програмування
Частина програмування також проста для цього проекту. Тут ми використали цю бібліотеку MPU6050 для взаємодії з Arduino. Отже, перш за все, нам потрібно завантажити бібліотеку MPU6050 з GitHub і встановити її в IDE Arduino.
Після нього ми можемо знайти приклади кодів у цьому прикладі. Користувач може протестувати цей код, безпосередньо завантаживши їх на Arduino, і може бачити значення через послідовний монітор. Або користувач може використовувати наш код, наведений в кінці статті, щоб також відображати значення на РК-дисплеї та послідовному моніторі.
У кодування ми включили деякі необхідні бібліотеки, такі як MPU6050 та LCD.
#включати
У функції налаштування ми ініціалізуємо обидва пристрої та пишемо привітальне повідомлення на РК-дисплеї
void setup () {lcd.begin (16,2); lcd.createChar (0, градус); Serial.begin (9600); Serial.println ("Ініціалізувати MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Пристрій не знайдено"); Serial.println ("Не вдалося знайти дійсний датчик MPU6050, перевірте проводку!"); затримка (500); } кол = 0; mpu.calibrateGyro (); mpu.setThreshold (3); У петлевий функції, ми назвали три функції в кожному 10 секунд для відображення температури, гіроскоп і акселерометр читання на ЖК - дисплеї. Ці три функції - tempShow, gyroShow та accelShow , ви можете перевірити ці функції в повному коді Arduino, наведеному в кінці цієї статті:
цикл void () {lcd.clear (); lcd.print ("Температура"); довгий st = міліс (); Serial.println ("Температура"); в той час як (міліс ()
Гіроскоп MPU6050 та акселерометр використовуються для виявлення положення та орієнтації будь-якого пристрою. Гіроскоп використовує земне тяжіння для визначення положень осей x, y та z, а акселерометр виявляє на основі швидкості зміни руху. Ми вже використовували акселерометр з Arduino у багатьох наших проектах, таких як:
- Робот, керований жестами на основі акселерометра
- Система оповіщення про аварії на базі Arduino
- Сигналізація сповіщувача землетрусу за допомогою Arduino