فهرست مطالب:

ردیابی حرکت با استفاده از MPU-6000 و ذره فوتون: 4 مرحله
ردیابی حرکت با استفاده از MPU-6000 و ذره فوتون: 4 مرحله

تصویری: ردیابی حرکت با استفاده از MPU-6000 و ذره فوتون: 4 مرحله

تصویری: ردیابی حرکت با استفاده از MPU-6000 و ذره فوتون: 4 مرحله
تصویری: ردیاب جیوه ای / آموزش کار با ردیاب و تکنیک های کاربری برای تشخیص فلزات باارزش و سازه های زیرزمینی.. 2024, نوامبر
Anonim
Image
Image

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 می تواند گوشی ها و تبلت ها را به دستگاه های هوشمند سه بعدی قدرتمند تبدیل کند که می توانند در برنامه های مختلف از جمله نظارت بر سلامت و تناسب اندام گرفته تا خدمات مبتنی بر مکان استفاده شوند.

توصیه شده: