فهرست مطالب:

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

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

تصویری: ردیابی حرکت با استفاده از MPU-6000 و Arduino Nano: 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: کد برای ردیابی حرکت:

کد ردیابی حرکت
کد ردیابی حرکت

بیایید اکنون با کد arduino شروع کنیم.

هنگام استفاده از ماژول سنسور با آردوینو ، ما کتابخانه Wire.h را شامل می شود. کتابخانه "Wire" شامل عملکردهایی است که ارتباط i2c بین سنسور و برد آردوینو را تسهیل می کند.

برای راحتی کاربر ، کل کد آردوینو در زیر آورده شده است:

#عبارتند از

// آدرس MPU-6000 I2C 0x68 (104) است

#تعریف Addr 0x68

void setup ()

{

// راه اندازی ارتباط I2C به عنوان استاد

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) ؛

// محدوده مقیاس کامل = +/- 16 گرم

Wire.write (0x18) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// قدرت مدیریت ثبت را انتخاب کنید

Wire.write (0x6B) ؛

// PLL با مرجع xGyro

Wire.write (0x01) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

تأخیر (300) ؛

}

حلقه خالی ()

{

اطلاعات int بدون علامت [6]؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// ثبت داده را انتخاب کنید

Wire.write (0x3B) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// درخواست 6 بایت داده

سیم. درخواست از (Addr، 6)؛

// 6 بایت داده را بخوانید

if (Wire.available () == 6)

{

داده [0] = Wire.read ()؛

داده [1] = Wire.read ()؛

داده [2] = Wire.read ()؛

داده [3] = Wire.read ()؛

داده [4] = Wire.read ()؛

داده [5] = Wire.read ()؛

}

// تبدیل داده ها

int xAccl = داده [0] * 256 + داده [1] ؛

int yAccl = داده [2] * 256 + داده [3]؛

int zAccl = داده [4] * 256 + داده [5]؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// ثبت داده را انتخاب کنید

Wire.write (0x43) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// درخواست 6 بایت داده

سیم. درخواست از (Addr، 6)؛

// 6 بایت داده را بخوانید

if (Wire.available () == 6)

{

داده [0] = Wire.read ()؛

داده [1] = Wire.read ()؛

داده [2] = Wire.read ()؛

داده [3] = Wire.read ()؛

داده [4] = Wire.read ()؛

داده [5] = Wire.read ()؛

}

// تبدیل داده ها

int xGyro = داده [0] * 256 + داده [1] ؛

int yGyro = داده [2] * 256 + داده [3] ؛

int zGyro = داده [4] * 256 + داده [5]؛

// خروجی داده ها به مانیتور سریال

Serial.print ("شتاب در محور X:") ؛

Serial.println (xAccl) ؛

Serial.print ("شتاب در محور Y:") ؛

Serial.println (yAccl) ؛

Serial.print ("شتاب در محور Z:") ؛

Serial.println (zAccl) ؛

Serial.print ("محور چرخش X:") ؛

Serial.println (xGyro) ؛

Serial.print ("Y-Axis of Rotation:") ؛

Serial.println (yGyro) ؛

Serial.print ("محور محور چرخش:") ؛

Serial.println (zGyro) ؛

تأخیر (500) ؛

}

در کتابخانه سیم Wire.write () و Wire.read () برای نوشتن دستورات و خواندن خروجی سنسور استفاده می شود.

Serial.print () و Serial.println () برای نمایش خروجی سنسور در مانیتور سریال Arduino IDE استفاده می شود.

خروجی سنسور در تصویر بالا نشان داده شده است.

مرحله 4: برنامه های کاربردی:

برنامه های کاربردی
برنامه های کاربردی

MPU-6000 یک حسگر ردیابی حرکت است که کاربرد خود را در رابط حرکت تلفن های هوشمند و تبلت ها پیدا می کند. در تلفن های هوشمند این سنسورها می توانند در برنامه هایی مانند دستورات حرکتی برای برنامه ها و کنترل تلفن ، بازی های پیشرفته ، واقعیت افزوده ، عکسبرداری و مشاهده پانوراما و ناوبری عابران پیاده و وسایل نقلیه استفاده شوند. فناوری MotionTracking می تواند گوشی ها و تبلت ها را به دستگاه های هوشمند سه بعدی قدرتمند تبدیل کند که می توانند در برنامه های مختلف از جمله نظارت بر سلامت و تناسب اندام گرفته تا خدمات مبتنی بر مکان استفاده شوند.

توصیه شده: