Мазмуну:
- 1 -кадам: Аппараттык камсыздоо талап кылынат:
- 2 -кадам: Аппараттык туташуу:
- 3 -кадам: Кыймылды көзөмөлдөө коду:
- 4 -кадам: Тиркемелер:
Video: MPU-6000 жана Бөлүк Фотонун Колдонуусун Көздөө: 4 Кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
MPU-6000-бул 3-октук акселерометр жана 3-октук гироскоп бар 6-октук кыймылга көз салуу сенсору. Бул сенсор 3 өлчөмдүү тегиздикте объекттин так ордун жана жайгашуусун эффективдүү көзөмөлдөөгө жөндөмдүү. Бул позицияны анализдөөнү талап кылган системаларда колдонулушу мүмкүн.
Бул окуу куралында MPU-6000 сенсор модулунун бөлүкчө фотону менен интерфейси сүрөттөлгөн. Ылдамдануу жана айлануу бурчунун баалуулуктарын окуу үчүн I2c adapter. This 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 байланышын жеңилдетүүчү функцияларды камтыйт.
Колдонуучунун ыңгайлуулугу үчүн бүт бөлүкчө коду төмөндө келтирилген:
#камтыйт #камтыйт // MPU-6000 I2C дареги 0x68 (104) #аныктоо 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); // Master Wire.begin катары I2C байланышын баштоо (); // Сериялык байланышты баштоо, байдын ылдамдыгын коюу = 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) башкаруу башкаруу реестрин тандоо; // PLG xGyro шилтемеси менен Wire.write (0x01); // I2C берүүнү токтотуу Wire.endTransmission (); кечигүү (300); } void loop () {unsigned int data [6]; // I2C берүүнү баштоо Wire.beginTransmission (Addr); // Wire.write маалымат регистрин тандоо (0x3B); // I2C берүүнү токтотуу Wire.endTransmission (); // Wire.requestFrom маалыматынын 6 байтын сурануу (Addr, 6); // Окугула 6 байт маалымат, эгерде (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); маалымат [3] = Wire.read (); data [4] = Wire.read (); маалымат [5] = Wire.read (); } кечигүү (800); // Маалыматтарды Convert 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 (); // Wire.requestFrom маалыматынын 6 байтын сурануу (Addr, 6); // Окугула 6 байт маалымат, эгерде (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); маалымат [3] = Wire.read (); data [4] = Wire.read (); маалымат [5] = Wire.read (); } // Маалыматтарды xGyro = ((маалымат [1] * 256) + маалымат [0]) айландыруу; эгер (xGyro> 32767) {xGyro -= 65536; } yGyro = ((маалыматтар [3] * 256) + маалыматтар [2]); эгер (yGyro> 32767) {yGyro -= 65536; } zGyro = ((маалымат [5] * 256) + маалымат [4]); эгер (zGyro> 32767) {zGyro -= 65536; } // Маалыматтарды башкаруу панелине чыгаруу Particle.publish ("X-Axis менен ылдамдануу:", String (xAccl)); кечигүү (1000); Particle.publish ("Y огунда ылдамдануу:", String (yAccl)); кечигүү (1000); Particle.publish ("Z-огунда ылдамдануу:", String (zAccl)); кечигүү (1000); Particle.publish ("Айлануунун X огу:", String (xGyro)); кечигүү (1000); Particle.publish ("Y-Axis Rotation:", String (yGyro)); кечигүү (1000); Particle.publish ("Z-айлануу огу:", String (zGyro)); кечигүү (1000); }
Particle.
Сенсор чыгаруу үчүн жогорудагы сүрөттө көрсөтүлгөн.
4 -кадам: Тиркемелер:
MPU-6000-бул смартфондордун жана планшеттердин кыймыл интерфейсинде колдонмосун тапкан кыймылга көз салуу сенсору. Смартфондордо бул сенсорлор тиркемелерди жана телефонду көзөмөлдөө, жакшыртылган оюн, кеңейтилген реалдуулук, панорамалык фото тартуу жана көрүү, жөө жана транспорт навигациясы сыяктуу тиркемелерде колдонулушу мүмкүн. MotionTracking технологиясы телефондорду жана планшеттерди ден-соолукка жана фитнеске мониторингден баштап жайгашкан кызматтарга чейинки колдонмолордо колдонула турган күчтүү 3D акылдуу түзмөктөргө айландыра алат.
Сунушталууда:
ADXL345 жана Бөлүкчө Фотонун колдонуу менен ылдамданууну өлчөө: 4 кадам
ADXL345 жана Бөлүкчө Фотонун колдонуу менен ылдамдатууну өлчөө: ADXL345-кичинекей, ичке, ультра кубаттуу, 3 октук акселерометр, жогорку чечим (13-бит) ± 16 г чейин. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Ал өлчөйт
HMC5883 жана бөлүкчө фотонун колдонуу менен магниттик талааны өлчөө: 4 кадам
HMC5883 жана Бөлүк Фотонун колдонуу менен магниттик талааны өлчөө: HMC5883-бул аз талаадагы магниттик сезүү үчүн иштелип чыккан санариптик компас. Бул аппараттын магнит талаасынын кенен диапазону +/- 8 Oe жана чыгаруу ылдамдыгы 160 Гц. HMC5883 сенсоруна автоматтык түрдө ажыратуучу боонун драйверлери, ордун жокко чыгаруу жана
HYT939 жана бөлүкчө фотонун колдонуу менен нымдуулукту өлчөө: 4 кадам
HYT939 жана Particle Photon аркылуу нымдуулукту өлчөө: HYT939 - бул I2C байланыш протоколу боюнча иштеген санариптик нымдуулук сенсору. Нымдуулук медициналык системаларга жана лабораторияларга келгенде негизги параметр болуп саналат, ошондуктан бул максаттарга жетүү үчүн биз HYT939ду малина pi менен интерфейске келтирүүгө аракет кылдык. Мен
HIH6130 жана бөлүкчө фотонун колдонуу менен нымдуулукту жана температураны өлчөө: 4 кадам
HIH6130 жана Particle Photon аркылуу нымдуулукту жана температураны өлчөө: HIH6130 - бул санариптик чыгышы бар нымдуулук жана температура сенсору. Бул сенсорлор ± 4% RH тактыгын камсыз кылат. Өнөр жайдын алдыңкы узак мөөнөттүү туруктуулугу, чыныгы температуранын ордун толтуруучу санариптик I2C, индустриянын алдыңкы ишенимдүүлүгү, энергияны үнөмдөө
HTS221 жана бөлүкчө фотонун колдонуу менен нымдуулукту жана температураны өлчөө: 4 кадам
HTS221 жана Particle Photon аркылуу нымдуулукту жана температураны өлчөө: HTS221 - салыштырмалуу нымдуулук жана температура үчүн өтө компакт сыйымдуу санарип сенсор. Бул санариптик серия аркылуу өлчөө маалыматын берүү үчүн сезгич элементти жана аралаш сигналдын атайын интегралдык схемасын (ASIC) камтыйт