Мазмұны:
- 1 -қадам: Қажетті жабдық:
- 2 -қадам: Жабдықты қосу:
- 3 -қадам: Қозғалысты бақылау коды:
- 4 -қадам: Өтініштер:
Бейне: MPU-6000 мен бөлшек фотонының көмегімен қозғалысты бақылау: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
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 байланысын жеңілдететін функцияларды қамтиды.
Пайдаланушыға ыңғайлы болу үшін бөлшектердің толық коды төменде берілген:
#қосу #қосу // 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); Бөлшек.өзгермелі («zGyro», zGyro); // I2C байланысын Master Wire.begin () ретінде іске қосыңыз; // Сериялық байланысты орнатыңыз, жіберу жылдамдығын орнатыңыз = 9600 Serial.begin (9600); // W2.beginTransmission I2C берілуін бастау (Addr); // Wire.write (0x1B) гироскоп конфигурациясының регистрін таңдаңыз; // Толық масштаб диапазоны = 2000 dps Wire.write (0x18); // I2C берілуін тоқтату Wire.endTransmission (); // Wire.beginTransmission I2C берілуін бастау (Addr); // Wire.write акселерометрінің конфигурация регистрін таңдаңыз (0x1C); // Толық масштаб диапазоны = +/- 16g Wire.write (0x18); // I2C берілуін тоқтату Wire.endTransmission (); // W2.beginTransmission I2C берілуін бастау (Addr); // Wire.write қуатын басқару регистрін таңдаңыз (0x6B); // PLG xGyro сілтемесі бар Wire.write (0x01); // I2C берілуін тоқтату Wire.endTransmission (); кешіктіру (300); } void loop () {unsigned int data [6]; // Wire.beginTransmission I2C берілуін бастау (Addr); // Wire.write деректер регистрін таңдаңыз (0x3B); // I2C берілуін тоқтату Wire.endTransmission (); // Wire.requestFrom -дан 6 байт деректерді сұрау (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); // W2.beginTransmission I2C берілуін бастау (Addr); // Wire.write деректер регистрін таңдаңыз (0x43); // I2C берілуін тоқтату Wire.endTransmission (); // Wire.requestFrom -дан 6 байт деректерді сұрау (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]); егер (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 («Айналудың осі:», String (xGyro)); кешіктіру (1000); Particle.publish («Айлану осі:», Жол (yGyro)); кешіктіру (1000); Particle.publish («Z-айналу осі:», String (zGyro)); кешіктіру (1000); }
Particle.variable () функциясы сенсордың шығысын сақтау үшін айнымалылар жасайды және Particle.publish () функциясы сайттың бақылау тақтасында шығуды көрсетеді.
Сенсор шығысы жоғарыдағы суретте көрсетілген.
4 -қадам: Өтініштер:
MPU-6000-бұл қозғалысты бақылау сенсоры, ол смартфондар мен планшеттердің қозғалыс интерфейсінде қолданылады. Смартфондарда бұл сенсорларды қосымшаларға және телефонды басқаруға арналған қимыл командалары, жақсартылған ойын, кеңейтілген шындық, панорамалық фото түсіру мен қарау, жаяу жүргіншілер мен көліктерде навигация сияқты қосымшаларда қолдануға болады. MotionTracking технологиясы телефондар мен планшеттерді денсаулық пен фитнес мониторингісінен орналасуға негізделген қызметтерге дейінгі қосымшаларда қолдануға болатын қуатты 3D интеллектуалды құрылғыларға айналдыра алады.
Ұсынылған:
HYT939 мен бөлшек фотонының көмегімен ылғалдылықты өлшеу: 4 қадам
HYT939 мен бөлшек фотонының көмегімен ылғалдылықты өлшеу: HYT939 - бұл I2C байланыс протоколында жұмыс істейтін цифрлық ылғалдылық сенсоры. Ылғалдылық медициналық жүйелер мен зертханаларға қатысты маңызды параметр болып табылады, сондықтан осы мақсаттарға жету үшін біз HYT939 -ді таңқурай пи -мен байланыстыруға тырыстық. Мен
H3LIS331DL мен бөлшек фотонының көмегімен үдеуді өлшеу: 4 қадам
H3LIS331DL мен Бөлшек Фотонды қолдана отырып үдеуді өлшеу: H3LIS331DL-цифрлық I²C сериялық интерфейсі бар «нано» тобына жататын төмен қуатты жоғары өнімді 3 осьті желілік акселерометр. H3LIS331DL -де ± 100g/± 200g/± 400g пайдаланушы таңдауға болатын толық таразы бар және ол жылдамдықты өлшеуге қабілетті
BMA250 мен бөлшек фотонының көмегімен үдеуді өлшеу: 4 қадам
BMA250 мен бөлшектер фотонының көмегімен үдеуді өлшеу: BMA250-ұсақ, жұқа, ультра қуатты, ± осі өлшегіші 3-ось, ± 16 г дейін. Сандық шығыс деректері 16 биттік қосалқы ретінде форматталған және I2C сандық интерфейсі арқылы қол жетімді. Ол статикалық өлшейді
MCP9808 мен бөлшек фотонының көмегімен температураны бақылау: 4 қадам
MCP9808 мен Particle Photon көмегімен температураны бақылау: MCP9808 - жоғары дәлдіктегі сандық температура сенсоры ± 0,5 ° C I2C шағын модулі. Олар температураны сезуді қолдануды жеңілдететін пайдаланушы бағдарламалайтын регистрлермен біріктірілген. MCP9808 жоғары дәлдіктегі температура сенсоры өнеркәсіпке айналды
HDC1000 мен бөлшек фотонының көмегімен температура мен ылғалдылықты өлшеу: 4 қадам
HDC1000 мен Particle Photon көмегімен температура мен ылғалдылықты өлшеу: HDC1000 - бұл температураның сенсоры бар цифрлық ылғалдылық датчигі, ол өте төмен қуатта өлшеудің дәлдігін қамтамасыз етеді. Құрылғы жаңа сыйымдылық сенсорының негізінде ылғалдылықты өлшейді. Ылғалдылық пен температура сенсорлары