فهرست مطالب:

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

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

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

MPU-6000 یک سنسور ردیابی حرکت 6 محوره است که دارای شتاب سنج 3 محوره و ژیروسکوپ 3 محوره در آن تعبیه شده است. این سنسور قادر به ردیابی کارآمد موقعیت و موقعیت دقیق یک جسم در صفحه سه بعدی است. می توان از آن در سیستم هایی استفاده کرد که نیاز به تجزیه و تحلیل موقعیت با بالاترین دقت دارند.

در این آموزش ، رابط ماژول سنسور MPU-6000 با تمشک pi نشان داده شده است. برای خواندن مقادیر شتاب و زاویه چرخش ، ما از رز تمشک pi با یک آداپتور I2c استفاده کرده ایم. این آداپتور I2C اتصال به ماژول سنسور را آسان و قابل اطمینان تر می کند.

مرحله 1: سخت افزار مورد نیاز:

سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز

مواد مورد نیاز برای تحقق هدف ما شامل اجزای سخت افزاری زیر است:

1. MPU-6000

2. تمشک پای

3. کابل I2C

4. I2C Shield برای تمشک pi

5. کابل اترنت

مرحله 2: اتصال سخت افزاری:

اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری

بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و تمشک pi را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:

MPU-6000 از طریق I2C کار می کند. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.

خارج از جعبه ، برد برای یک رابط I2C پیکربندی شده است ، بنابراین توصیه می کنیم در غیر این صورت آگنوستیک از این اتصال استفاده کنید.

تنها چیزی که نیاز دارید چهار سیم است! فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.

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

مرحله 3: کد برای ردیابی حرکت:

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

مزیت استفاده از تمشک pi این است که انعطاف پذیری زبان برنامه نویسی را که می خواهید در آن برنامه نویسی کنید تا سنسور با آن ارتباط برقرار کند فراهم می کند. با استفاده از این مزیت این برد ، ما در اینجا برنامه نویسی آن را در پایتون نشان می دهیم. پایتون یکی از ساده ترین زبان های برنامه نویسی با ساده ترین نحو است. کد پایتون MPU-6000 را می توانید از انجمن GitHub که فروشگاه Dcube است بارگیری کنید

و همچنین برای سهولت کاربران ، ما در اینجا کد را نیز توضیح می دهیم:

به عنوان اولین مرحله کدگذاری ، باید کتابخانه SMBus را در مورد پایتون بارگیری کنید زیرا این کتابخانه از توابع مورد استفاده در کد پشتیبانی می کند. بنابراین ، برای بارگیری کتابخانه می توانید از لینک زیر دیدن کنید:

pypi.python.org/pypi/smbus-cffi/0.5.1

همچنین می توانید کد کار را از اینجا کپی کنید:

smbus وارد کنید

زمان واردات

# دریافت I2C busbus = smbus. SMBus (1)

آدرس # MPU-6000 ، 0x68 (104)

# ثبت پیکربندی ژیروسکوپ ، 0x1B (27) را انتخاب کنید

# 0x18 (24) محدوده مقیاس کامل = 2000 dps

bus.write_byte_data (0x68 ، 0x1B ، 0x18)

آدرس # MPU-6000 ، 0x68 (104)

# ثبت پیکربندی شتاب سنج ، 0x1C (28)

# 0x18 (24) محدوده مقیاس کامل = +/- 16 گرم

bus.write_byte_data (0x68 ، 0x1C ، 0x18)

آدرس # MPU-6000 ، 0x68 (104)

# ثبت قدرت مدیریت 1 ، 0x6B (107)

# 0x01 (01) PLL با مرجع xGyro

bus.write_byte_data (0x68 ، 0x6B ، 0x01)

زمان خواب (0.8)

آدرس # MPU-6000 ، 0x68 (104)

# داده ها را از 0x3B (59) ، 6 بایت برگردانید

# شتاب سنج X-Axis MSB ، X-Axis LSB ، Y-Axis MSB ، Y-Axis LSB ، Z-Axis MSB ، Z-Axis LSB

data = bus.read_i2c_block_data (0x68 ، 0x3B ، 6)

# تبدیل داده ها

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

اگر xAccl> 32767:

xAccl -= 65536

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

اگر yAccl> 32767:

yAccl -= 65536

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

اگر zAccl> 32767:

zAccl -= 65536

آدرس # MPU-6000 ، 0x68 (104)

# داده ها را از 0x43 (67) ، 6 بایت برگردانید

# ژیرومتر X-Axis MSB ، X-Axis LSB ، Y-Axis MSB ، Y-Axis LSB ، Z-Axis MSB ، Z-Axis LSB

data = bus.read_i2c_block_data (0x68 ، 0x43 ، 6)

# تبدیل داده ها

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

اگر xGyro> 32767:

xGyro -= 65536

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

اگر yGyro> 32767:

yGyro -= 65536

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

اگر zGyro> 32767:

zGyro -= 65536

# خروجی داده ها به صفحه

print "Acceleration in X-Axis:٪ d"٪ xAccl

print "Acceleration in Y-Axis:٪ d"٪ yAccl

print "Acceleration in Z-Axis:٪ d"٪ zAccl

چاپ "محور X چرخش:٪ d"٪ xGyro

"محور چرخش Y:٪ d"٪ yGyro را چاپ کنید

"Z-Axis of Rotation:٪ d"٪ zGyro را چاپ کنید

کد با استفاده از دستور زیر اجرا می شود:

$> python MPU-6000.py gt؛ python MPU-6000.py

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

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

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

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

توصیه شده: