Съдържание:
- Стъпка 1: Изисква се хардуер:
- Стъпка 2: Свързване на хардуера:
- Стъпка 3: Код за проследяване на движение:
- Стъпка 4: Приложения:
Видео: Проследяване на движение с използване на MPU-6000 и частичен фотон: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
MPU-6000 е 6-осен сензор за проследяване на движение, който има 3-осен акселерометър и 3-осен жироскоп, вграден в него. Този сензор е в състояние ефективно да проследява точното положение и местоположението на обект в триизмерната равнина. Може да се използва в системи, които изискват анализ на позицията с най -висока точност.
В този урок е илюстрирано взаимодействието на сензорния модул MPU-6000 с фотон на частици. За да прочетете стойностите на ускорението и ъгъла на въртене, използвахме частици с адаптер I2c. Този адаптер I2C прави връзката с сензорния модул лесна и по -надеждна.
Стъпка 1: Изисква се хардуер:
Материалите, необходими за изпълнение на нашата задача, включват по -долу споменатите хардуерни компоненти:
1. MPU-6000
2. Фотон от частици
3. I2C кабел
4. I2C щит за частичен фотон
Стъпка 2: Свързване на хардуера:
Разделът за свързване на хардуера основно обяснява необходимите кабелни връзки между сензора и фотона на частиците. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:
MPU-6000 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.
Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!
Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.
Тези връзки са показани на снимките по -горе.
Стъпка 3: Код за проследяване на движение:
Нека започнем с кода на частиците сега.
Докато използваме сензорния модул с arduino, ние включваме библиотеката application.h и spark_wiring_i2c.h. Библиотеката "application.h" и spark_wiring_i2c.h съдържа функциите, които улесняват i2c комуникацията между сензора и частицата.
Целият код на частиците е даден по -долу за удобство на потребителя:
#include #include // MPU-6000 I2C адресът е 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Задаване на променлива 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); // Инициализира I2C комуникацията като Master Wire.begin (); // Инициализира серийна комуникация, задава скорост на предаване = 9600 Serial.begin (9600); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изберете регистър за конфигурация на жироскоп Wire.write (0x1B); // Пълен мащаб = 2000 dps Wire.write (0x18); // Спиране на I2C предаването Wire.endTransmission (); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изберете регистър за конфигурация на акселерометър Wire.write (0x1C); // Пълен мащаб = +/- 16g Wire.write (0x18); // Спиране на I2C предаването Wire.endTransmission (); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изберете регистър за управление на захранването Wire.write (0x6B); // PLL с xGyro справочник Wire.write (0x01); // Спиране на I2C предаване Wire.endTransmission (); забавяне (300); } void loop () {unsigned int data [6]; // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изберете регистър на данни Wire.write (0x3B); // Спиране на I2C предаването Wire.endTransmission (); // Заявка за 6 байта данни Wire.requestFrom (Addr, 6); // Прочетете 6 байта данни, ако (Wire.available () == 6) {data [0] = Wire.read (); данни [1] = Wire.read (); данни [2] = Wire.read (); данни [3] = Wire.read (); данни [4] = Wire.read (); данни [5] = Wire.read (); } забавяне (800); // Конвертираме данните xAccl = ((данни [1] * 256) + данни [0]); ако (xAccl> 32767) {xAccl -= 65536; } yAccl = ((данни [3] * 256) + данни [2]); ако (yAccl> 32767) {yAccl -= 65536; } zAccl = ((данни [5] * 256) + данни [4]); ако (zAccl> 32767) {zAccl -= 65536; } забавяне (800); // Стартиране на I2C предаване Wire.beginTransmission (Addr); // Изберете регистър на данни Wire.write (0x43); // Спиране на I2C предаването Wire.endTransmission (); // Заявка за 6 байта данни Wire.requestFrom (Addr, 6); // Прочетете 6 байта данни, ако (Wire.available () == 6) {data [0] = Wire.read (); данни [1] = Wire.read (); данни [2] = Wire.read (); данни [3] = Wire.read (); данни [4] = Wire.read (); данни [5] = Wire.read (); } // Конвертиране на данните xGyro = ((данни [1] * 256) + данни [0]); ако (xGyro> 32767) {xGyro -= 65536; } yGyro = ((данни [3] * 256) + данни [2]); if (yGyro> 32767) {yGyro -= 65536; } zGyro = ((данни [5] * 256) + данни [4]); ако (zGyro> 32767) {zGyro -= 65536; } // Извеждане на данни към таблото за управление Particle.publish ("Ускорение по ос X:", String (xAccl)); забавяне (1000); Particle.publish ("Ускорение в оста Y:", String (yAccl)); забавяне (1000); Particle.publish ("Ускорение по Z-ос:", String (zAccl)); забавяне (1000); Particle.publish ("X-ос на въртене:", String (xGyro)); забавяне (1000); Particle.publish ("Y-ос на въртене:", String (yGyro)); забавяне (1000); Particle.publish ("Z-ос на въртене:", String (zGyro)); забавяне (1000); }
Функцията Particle.variable () създава променливите за съхраняване на изхода на сензора, а функцията Particle.publish () показва изхода на таблото за управление на сайта.
Изходът на сензора е показан на снимката по -горе за ваша справка.
Стъпка 4: Приложения:
MPU-6000 е сензор за проследяване на движение, който намира своето приложение в интерфейса за движение на смартфони и таблети. В смартфоните тези сензори могат да се използват в приложения като команди за жестове за приложения и управление на телефона, подобрени игри, разширена реалност, панорамно заснемане и гледане на снимки и навигация на пешеходци и превозни средства. Технологията MotionTracking може да преобразува телефони и таблети в мощни 3D интелигентни устройства, които могат да се използват в приложения, вариращи от мониторинг на здравето и годността до услуги, базирани на местоположението.
Препоръчано:
Измерване на ускорението с помощта на ADXL345 и частичен фотон: 4 стъпки
Измерване на ускорението с помощта на ADXL345 и частичен фотон: ADXL345 е малък, тънък, 3-осен акселерометър с ултра ниска мощност с измерване с висока разделителна способност (13 бита) до ± 16 g. Цифровите изходни данни са форматирани като 16-битови двойки, допълващи се и са достъпни чрез I2 C цифров интерфейс. Измерва
Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
Измерване на магнитно поле с помощта на HMC5883 и частичен фотон: HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Измерване на влажност с помощта на HYT939 и частичен фотон: 4 стъпки
Измерване на влажност с помощта на HYT939 и частичен фотон: HYT939 е цифров сензор за влажност, който работи по I2C комуникационен протокол. Влажността е основен параметър, когато става въпрос за медицински системи и лаборатории, така че за да постигнем тези цели, се опитахме да свържем HYT939 с малиново пи. Аз
Частичен фотон - TCN75A Температурен сензор Урок: 4 стъпки
Частичен фотон-TCN75A Температурен сензор Урок: TCN75A е двупроводен сериен температурен сензор, включен с преобразувател температура в цифров. Той е интегриран с програмируеми от потребителя регистри, които осигуряват гъвкавост за приложения с чувствителност към температура. Настройките на регистъра позволяват на потребителите
Сензор за влага, използващ частичен фотон: 6 стъпки
Сензор за влага, използващ частичен фотон: Въведение В този урок ще изградим сензор за влага, използващ частичен фотон и неговата в легло или/и външна WiFi антена. Силата на WiFi зависи от количеството влага във въздуха, а също и в земята. Ние използваме този принцип