فهرست مطالب:
- مرحله 1: سخت افزار مورد نیاز:
- مرحله 2: اتصال سخت افزاری:
- مرحله 3: کد برای ردیابی حرکت:
- مرحله 4: برنامه های کاربردی:
تصویری: ردیابی حرکت با استفاده از MPU-6000 و ذره فوتون: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
MPU-6000 یک سنسور ردیابی حرکت 6 محوره است که دارای شتاب سنج 3 محوره و ژیروسکوپ 3 محوره در آن تعبیه شده است. این سنسور قادر به ردیابی کارآمد موقعیت و موقعیت دقیق یک جسم در صفحه سه بعدی است. می توان از آن در سیستم هایی استفاده کرد که نیاز به تجزیه و تحلیل موقعیت با بالاترین دقت دارند.
در این آموزش ، رابط ماژول سنسور MPU-6000 با ذرات فوتون نشان داده شده است. برای خواندن مقادیر شتاب و زاویه چرخش ، از ذره با آداپتور I2c استفاده کرده ایم. این آداپتور I2C اتصال به ماژول سنسور را آسان و قابل اطمینان تر می کند.
مرحله 1: سخت افزار مورد نیاز:
مواد مورد نیاز برای انجام وظیفه ما شامل اجزای سخت افزاری زیر است:
1. MPU-6000
2. ذره فوتون
3. کابل I2C
4. I2C Shield برای ذرات فوتون
مرحله 2: اتصال سخت افزاری:
بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و فوتون ذره را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:
MPU-6000 از طریق I2C کار می کند. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.
خارج از جعبه ، برد برای یک رابط I2C پیکربندی شده است ، بنابراین توصیه می کنیم در غیر این صورت آگنوستیک از این اتصال استفاده کنید. تنها چیزی که نیاز دارید چهار سیم است!
فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.
این اتصالات در تصاویر بالا نشان داده شده است.
مرحله 3: کد برای ردیابی حرکت:
اجازه دهید اکنون با کد ذره شروع کنیم.
هنگام استفاده از ماژول سنسور با آردوینو ، کتابخانه 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) ؛ // راه اندازی ارتباط I2C به عنوان Master Wire.begin ()؛ // راه اندازی ارتباط سریال ، تنظیم نرخ baud = 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 = ((data [1] * 256) + data [0])؛ if (xAccl> 32767) {xAccl -= 65536 ؛ } yAccl = ((داده [3] * 256) + داده [2]) ؛ if (yAccl> 32767) {yAccl -= 65536 ؛ } zAccl = ((داده [5] * 256) + داده [4]) ؛ if (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]) ؛ if (xGyro> 32767) {xGyro -= 65536 ؛ } yGyro = ((داده [3] * 256) + داده [2]) ؛ if (yGyro> 32767) {yGyro -= 65536 ؛ } zGyro = ((داده [5] * 256) + داده [4]) ؛ if (zGyro> 32767) {zGyro -= 65536 ؛ } // خروجی داده ها به داشبورد Particle.publish ("شتاب در محور X:" ، رشته (xAccl)) ؛ تاخیر (1000) ؛ Particle.publish ("شتاب در محور Y:" ، رشته (yAccl)) ؛ تاخیر (1000) ؛ Particle.publish ("شتاب در محور Z:" ، رشته (zAccl)) ؛ تاخیر (1000) ؛ Particle.publish ("محور X چرخش:" ، رشته (xGyro)) ؛ تاخیر (1000) ؛ Particle.publish ("Y-Axis of Rotation:" ، String (yGyro)) ؛ تاخیر (1000) ؛ Particle.publish ("Z-Axis of Rotation:" ، String (zGyro)) ؛ تاخیر (1000) ؛ }
تابع Particle.variable () متغیرهایی را برای ذخیره خروجی سنسور ایجاد می کند و تابع Particle.publish () خروجی را در داشبورد سایت نمایش می دهد.
خروجی سنسور در تصویر بالا برای مرجع شما نشان داده شده است.
مرحله 4: برنامه های کاربردی:
MPU-6000 یک حسگر ردیابی حرکت است که کاربرد خود را در رابط حرکت تلفن های هوشمند و تبلت ها پیدا می کند. در تلفن های هوشمند این سنسورها می توانند در برنامه هایی مانند دستورات حرکتی برای برنامه ها و کنترل تلفن ، بازی های پیشرفته ، واقعیت افزوده ، عکسبرداری و مشاهده پانوراما و ناوبری عابران پیاده و وسایل نقلیه استفاده شوند. فناوری MotionTracking می تواند گوشی ها و تبلت ها را به دستگاه های هوشمند سه بعدی قدرتمند تبدیل کند که می توانند در برنامه های مختلف از جمله نظارت بر سلامت و تناسب اندام گرفته تا خدمات مبتنی بر مکان استفاده شوند.
توصیه شده:
اندازه گیری شتاب با استفاده از ADXL345 و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و ذره فوتون: ADXL345 یک شتاب سنج کوچک ، نازک ، فوق العاده کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2 C قابل دسترسی است. اندازه گیری
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: HMC5883 یک قطب نمای دیجیتالی است که برای سنجش مغناطیسی میدان کم طراحی شده است. این دستگاه دارای طیف وسیعی از میدان مغناطیسی +/- 8 Oe و نرخ خروجی 160 هرتز است. سنسور HMC5883 شامل درایورهای جداکننده اتوماتیک تسمه بند ، لغو افست و
ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله
دستگاه DIY Robot Smart Tracking Car Tracking Car Photosensitive: طراحی شده توسط SINONING ROBOT شما می توانید از ربات ردیابی ماشین خرید کنید بچرخید تا
اندازه گیری رطوبت با استفاده از HYT939 و ذره فوتون: 4 مرحله
اندازه گیری رطوبت با استفاده از HYT939 و ذره فوتون: HYT939 یک سنسور رطوبت دیجیتال است که بر روی پروتکل ارتباطی I2C کار می کند. رطوبت یک پارامتر مهم در مورد سیستم های پزشکی و آزمایشگاه ها است ، بنابراین به منظور دستیابی به این اهداف ما سعی کردیم HYT939 را با تمشک pi ارتباط دهیم. من
اندازه گیری شتاب با استفاده از H3LIS331DL و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از H3LIS331DL و ذره فوتون: H3LIS331DL ، یک شتاب سنج خطی کم توان با عملکرد بالا 3 محور متعلق به خانواده "نانو" ، با رابط سریال دیجیتال I²C است. H3LIS331DL دارای مقیاس های کامل قابل انتخاب 100 گرم//200 گرم/400 گرم user است و قادر به اندازه گیری شتاب های