GebraBit

بررسی اجمالی ماژول موشن ترکینگ GebraBit ICM20948

متن سربرگ خود را وارد کنید

BLOG

بررسی اجمالی ماژول موشن ترکینگ GebraBit ICM20948

  1. خانه
  2. »
  3. blog
  4. »
  5. بررسی اجمالی ماژول موشن ترکینگ GebraBit ICM20948

Motion Tracking شامل ردیابی حرکت اجسام و انتقال داده های اندازه گیری شده توسط سنسور به برنامه برای پردازش بیشتر می باشد. Motion Tracking به منظور حرکت یک جسم در مسیر الگوی ذخیره شده استفاده می شود. Motion Tracking دارای طیف گسترده ای از کاربردها از قبیل نظامی، سرگرمی، ورزشی، برنامه های کاربردی پزشکی، اعتبارسنجی بینایی کامپیوتر و رباتیک است. علاوه بر این در ساخت فیلم و بازی های ویدیویی نیز مورد استفاده قرار می‌گیرد.

Motion tracking sensors

ژیروسکوپ سرعت زاویه ای را با استفاده از اثر کوریولیس (Coriolis Effect) اندازه گیری می کند. هنگامی که یک جرم در یک جهت خاص با سرعت خاصی حرکت می کند و  یک نرخ زاویه ای خارجی مطابق با فلش سبز رنگ زیر اعمال  شود، نیرویی مانند فلش قرمز آبی نشان داده شده ، باعث جابجایی عمودی جرم می شود. بنابراین مشابه شتاب سنج، این جابجایی باعث تغییر در ظرفیت خازنی که مرتبط با نرخ زاویه ای خاصی هست، می شود.

Gyroscope

ساختار میکرو ژیروسکوپ چیزی شبیه به این است. جرمی که دائماً در حال حرکت یا نوسان است و هنگامی که نرخ زاویه ای خارجی اعمال می شود، بخش انعطاف پذیری از جرم حرکت کرده و جابجایی عمودی انجام می شود.

شتاب سنج وسیله ای است که ارتعاش یا شتاب حرکت سازه را اندازه گیری می کند. نیروی ناشی از ارتعاش یا تغییر در حرکت (شتاب) باعث می شود که جرم ماده پیزوالکتریک را “فشرده” کند که بار الکتریکی متناسب با نیروی وارد شده بر آن تولید می کند. از آنجایی که بار با نیرو متناسب است و جرم آن ثابت است، پس بار نیز با شتاب متناسب است. این حسگرها به روش‌های مختلفی از ایستگاه‌های فضایی گرفته تا دستگاه‌های دستی مورد استفاده قرار می‌گیرند، و این احتمال وجود دارد که شما قبلاً دستگاهی با شتاب‌سنج در آن داشته باشید. به عنوان مثال، تقریباً همه تلفن های هوشمند امروزی دارای شتاب سنج هستند. آنها به تلفن کمک می کنند تا بداند آیا در هر جهتی تحت شتاب قرار می گیرد یا خیر، و دلیل روشن شدن صفحه نمایش تلفن شما با چرخاندن آن است. در یک محیط صنعتی، شتاب‌سنج‌ها به مهندسان کمک می‌کنند تا پایداری دستگاه‌ها را درک کنند و آنها را قادر می‌سازند تا هرگونه نیرو/ارتعاش ناخواسته را نظارت کنند.

یک شتاب سنج با استفاده از یک حسگر الکترومکانیکی کار می کند که برای اندازه گیری شتاب استاتیک یا دینامیکی طراحی شده است. شتاب ایستا نیروی ثابتی است که بر جسم وارد می شود، مانند گرانش یا اصطکاک. این نیروها تا حد زیادی قابل پیش بینی و یکنواخت هستند. به عنوان مثال، شتاب ناشی از گرانش در 9.8 متر بر ثانیه ثابت است و نیروی گرانش تقریباً در هر نقطه از زمین یکسان است.

اصل کلی شتاب سنج ها این است که آنها می توانند شتاب را تشخیص داده و آن را به مقادیر قابل اندازه گیری مانند سیگنال های الکتریکی تبدیل کنند.

 

مروری بر ICM20948

سنسور ICM20789

ICM20948 یک ماژول چند تراشه ای (MCM) است که از دو قسمت ادغام شده در یک تراشه با پکیج QFN تشکیل شده است. یکی از بخش ها دارای یک ژیروسکوپ 3 محوره، یک شتاب سنج 3 محوره و یک پردازنده دیجیتال حرکتی (DMP) است. قسمت دیگر نیز، یک مغناطیس سنج 3 محوره AK09916 محصول شرکت Asahi Kasei Microdevices را در خود جای داده است. ICM20948 یک Motion Tracking  9 محوره است که در پکیج کوچک QFN  با ابعاد 3*3*1mm  عرضه شده است. ژیروسکوپ ICM20789  دارای full-scale range  قابل برنامه ریزی با مقادیر ±250dps  ،  ±500dps ، ±1000dps   و ±2000dps   است. شتاب سنج از چهار رنج قابل تنظیم ±2g ، ±4g ، ±8g و ±16g پشتیبانی می کند. از سایر ویژگی های پیشرو در این سنسور می توان به 16 بیت ADC داخلی، فیلترهای دیجیتال قابل برنامه ریزی،سنسور دمای داخلی، وقفه‌های قابل برنامه ریزی، پروتکل های ارتباطی دیجیتال I2C و SPI  اشاره کرد.  

مشخصات فنی سنسور

کاربردها

  • Number of Axis: 9-Axis
  • Output type: Digital-I2C or SPI
  • Accelerometer FSR: ±2, ±4, ±8, ±16(g)
  • Accelerometer Sensitivity SF: 16384, 2048 (LSB/g), 4096, 8192
  • Accelerometer ADC:16-Bit

  • Gyroscope FSR: ±250, ±500, ±1000, ±2000(dps)

  • Gyroscope Sensitivity SF : 131, 16.4 (LSB/dps), 32.8, 65.5

  • Gyroscope ADC: 16-Bit

  • Magnetometer FSR: ±4900 µT

  • Magnetometer Resolution: 16 Bit

For more specifications, please refer to the Datasheet

  • Smartphones and Tablets
  • Wearable Sensors
  • IOT Applications

ویژگی‌های ماژولGebraBit ICM20948

  • User-selectable interface protocol (I2C or SPI)
  • User-selectable I2C address (AD0)
  • Auxiliary I2C interface
  • Access to all data pins of the sensor
  • 1V8 Voltage Regulator
  • 1V8 Output Voltage
  • On Board, ON/OFF LED indicator
  • Pin Compatible with GEBRABUS
  • It can be used as a daughter board of GebraBit MCU Modules
  • Featuring Castellated pad (Assembled as SMD Part)
  • Separatable screw parts to reduce the size of the board
  • Package: GebraBit small (36.29mm x 32.72mm)
  • Schematic (.pdf)

ماژول GebraBit ICM20948

GebraBit ICM20948

بعد از توضیحات ذکر شده در بالا متوجه شده اید که سنسور  ICM20948 با توجه به پکیج QFN و عدم دستسرسی به پین های سنسور،کاربر برای توسعه سخت افزاری و البته توسعه نرم افزاری سنسور،نیاز به یک مدار راه انداز و درایور دارد. ICM20948 GebraBit برای راحتی کاربران این امر را با پیاده سازی مدار سنسور ارایه دسترسی به پین های سیگنال های ارتباطی و تغذیه ، با قابلیت انتخاب پروتکل ارتباطی I2C یا SPI و ولتاژ کاری و سطح لاجیک پروتکل های ارتباطی ، محقق ساخته است.

 

GebraBit ICM20948

 کافیست ماژول GebraBit ICM20948را در BreadBoard قرار داده سپس با اعمال ولتاژ مورد نیاز و انتخاب پروتکل ارتباطی I2C یا SPI ، ماژول  GebraBit ICM20948را با هریک از برد های اردوینو، رزبری پای ، دیسکاوری و مخصوصا ماژول GebraBit STM32F303 یا GebraBit ATMEGA32  که پیشنهاد ما استفاده از ماژول های توسعه میکروکنترلری GebraBit هست،راه اندازی و دیتا را دریافت کنید.

معرفی بخش های ماژول

سنسور ICM20948

ای سی اصلی این ماژول بوده که در مرکز ماژول قرار گرفته و مدار ان طراحی شده است.

جامپرهای انتخاب پروتکل ارتباطی

در صورتی که مقاومتهای 0R تمام Jumper Selector ها به سمت چپ باشد،پروتکل I2C اتنخاب شده است.

در صورتی که مقاومتهای 0R تمام Jumper Selector ها به سمت راست باشد،پروتکل SPI اتنخاب شده است.

به صورت پیش فرض نیز پروتکل I2C انتخاب شده است.

جامپرAD0 SEL

در صورت انتخاب پروتکل I2C  ،وضعیت جامپر AD0 SEL آدرس I2C سنسور                              ( 0x68 0 => یا  0x69 1 =>) را مشخص می کند.

به صورت پیش فرض مقاومت 0R روی 0 قرار داشته و  آدرس  0x68  انتخاب شده است.

رگولاتور 1V8 XC6206P182MR-G

رگولاتور به کار رفته روی ماژول ولتاژ 5V را به 1.8V تبدیل کرده که بر روی پین 1V8  در دسترس است.

تغذیه LED

با توجه به وضعیت جامپر VDD SEL و اعمال ولتاژ به ماژول توسط پین مربوطه، LED ماژول روشن می شود.

پین های ماژول

پین های تغذیه

  • 5V : این پین تغذیه اصلی ماژول بوده که به عنوان ورودی رگولاتور تعبیه شده روی برد مورد استفاده قرار می گیرد.
  • 1V8 : در صورت مونتاژ بودن رگولاتور بر روی ماژول این پین خروجی 1.8 ولت رگولاتور می باشد. در غیر این صورت با اعمال ولتاژ خارجی 1.8 ولت به عنوان ورودی ماژول برای راه اندازی ماژول مورد استفاده قرار می گیرد( سطح منطق(Logic Level) ارتباط دیجیتال(I2C یا SPI) سنسور را نیز تامین کند.)
  • GND : این پین زمین مشترک برای تغذیه و سطح منطق(Logic Level) سنسور می باشد.

پین های I2C

با استفاده از Jumper Selector های تعبیه شده روی برد می توان نوع ارتباط با ماژول را انتخاب کرد.در صورتی که مقاومتهای 0R تمام Jumper Selector ها به سمت چپ باشد،پروتکل I2C اتنخاب شده است.وضعیت جامپر AD0 SEL آدرس I2C سنسور ( 0x68 یا 0x69 ) را مشخص می کند.

  • SDA : این پین، پین دیتای ارتباط I2C می باشد، که به پین دیتای متناظر در میکروکنترلر(پردازنده) ، متصل می شود. این پین با یک مقاومت 10K پول آپ (Pull Up) شده است.
  • SCL : این پین، پین کلاک ارتباط I2C می باشد، که به پین کلاک متناظر در میکروکنترلر(پردازنده) ، متصل می شود.این پین با یک مقاومت 10K پول آپ (Pull Up) شده است.
  • SDA AUX: این پین، پین دیتای ارتباط I2C AUX می باشد، که به پین دیتای متناظر در میکروکنترلر(پردازنده) ، متصل می شود. این پین با یک مقاومت 10K پول آپ (Pull Up) شده است.
  • SCL AUX: این پین، پین کلاک ارتباط I2C AUX می باشد، که به پین کلاک متناظر در میکروکنترلر(پردازنده) ، متصل می شود.این پین با یک مقاومت 10K پول آپ (Pull Up) شده است.

توجه: از آنجا که سطح منطق GebraBit ICM20948  مقدار 1.8V و سطح منطق بردهای توسعه  مقدار  5V می باشد، نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد.

پین های SPI

با استفاده از Jumper Selector های تعبیه شده روی برد می توان نوع ارتباط با ماژول را انتخاب کرد.در صورتی که مقاومتهای 0R تمام Jumper Selector ها به سمت راست باشد،پروتکل SPI اتنخاب شده است.وضعیت جامپر AD0 SEL در این حالت بی تاثیر است.

  • SDI(MOSI) : از این پین، برای ارسال دیتا از میکروکنترلر(پردازنده) به ماژول(سنسور) استفاده میشود.نام اختصاری این پین برگرفته از عبارت لاتین Serial Data In / Microcontroller Out Sensor In می باشد.
  • SDO(MISO) : از این پین، برای ارسال دیتا از ماژول(سنسور) به میکروکنترلر(پردازنده) استفاده میشود.نام اختصاری این پین برگرفته از عبارت لاتین Serial Data Out / Microcontroller In Sensor Out می باشد.
  • SCK : این پین، پین کلاک برای ارتباط SPI بوده که از نوع ورودی (Input) برای سنسور محسوب و به پین کلاک متناظر در میکروکنترلر(پردازنده) ، متصل می شود.
  • CS : این پین، پین Chip Select برای ارتباط SPI با ماژول(سنسور) می باشد، که با اعمال ولتاژ LOW (0V) ،ماژول(سنسور) برای ارتباط SPI انتخاب می شود.این پین از نوع ورودی (Input) برای سنسور محسوب می شود.
  • توجه: از آنجا که سطح منطق GebraBit ICM20948 مقدار 8V و سطح منطق بردهای توسعه  مقدار  5V می باشد، نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد.

در صورتی که می خواهید از چندین ماژول GebraBit ICM20948 به صورت همزمان استفاده کنید، کافیست پین های SDO , SDI , SCK همه انها و میکرکنترلر(پردازنده) را به هم متصل کرده و به CS هر کدام، یک پین منحصر به فرد اختصاص دهید.

دیگر پین ها

  • INT : پین Interrupt (وقفه) سنسور ICM20984بوده که با توجه به دیتاشیت سنسور، کاربر می تواند شرایط وقوع وقفه،حالات و روش های وقوع وقفه و … را تنظیم کند.
  • FSY(FSYNC) : برای همگام سازی (Synchronization) سنسور با یک منبع خارجی ، از این پین استفاده میشود.برای اطلاعات بیشتر دیتاشیت سنسور مطالعه شود.به صورت پیش فرض این پین با مقاومت R3 به زمین متصل شده است.جهت استفاده از پین، مقاومت R3 باید از ماژول ، جدا (دمونتاژ) گردد.
  •  

اتصال به پردازنده

اتصال I2C با GebraBit STM32F303

ابتدا اطمینان حاصل کنید که پروتکل I2C با استفاده از جامپر های روی برد انتخاب شده است، از آنجا که سطح منطق GebraBit ICM20948  مقدار 1.8V و سطح منطق GebraBit STM32F303  3.3V می باشد نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد. سپس برای اتصال I2C ماژول GebraBit ICM20948  ماژول میکروکنترلرGebraBit STM32F303 بعد از تعریف کردن SDA و SCL رو پین های PB9 و PB8 (برای راحتی کار در STMCUBEMX)مراحل زیر را دنبال کنید:

  • با توجه به توضیحات بالا پین 1V8 ماژول ICM20948به واسطه Logic Level Convertor به پین 3V3 خروجی ماژول میکروکنترلر متصل کنید.(سیم زرد و سبز)
  • پین‌های GND ماژول ICM20948و میکروکنترلر را مطابق تصویر زیر متصل کنید.(سیم‌های سیاه)
  • پین SCL و SDA ماژول ICM20948 را به واسطه ماژول Logic Level Convertor به ترتیب به پین‌های PB8(SCL) و PB9(SDA) ماژول میکروکنترلر متصل کنید.(سیم های آبی)

نحوه اتصال موارد ذکر شده در بالا،در این تصویر مشاهده می شود:

اتصال SPI با GebraBit STM32F303

ابتدا اطمینان حاصل کنید که پروتکل SPI با استفاده از جامپر های روی برد انتخاب شده است.از آنجا که سطح منطق GebraBit ICM20948  مقدار 1.8V و سطح منطق GebraBit STM32F303 مقدار3.3V می باشد نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد.سپس برای اتصال SPI ماژول GebraBit ICM20948  ماژول میکروکنترلرGebraBit STM32F303 بعد از تعریف کردن SDI و SDO و SCK و CS روی پین های PB5 و PB4 و PB3 و PC13 (برای راحتی کار در STMCUBEMX) اتصالات را طبق تصویر زیر برقرار کنید:

اتصال I2C با GebraBit ATMEGA32A

ابتدا اطمینان حاصل کنید که پروتکل SPI با استفاده از جامپر های روی برد انتخاب شده است.از آنجا که سطح منطق GebraBit ICM20948  مقدار 1.8V و سطح منطق GebraBit STM32F303 مقدار3.3V می باشد نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد.سپس برای اتصال SPI ماژول GebraBit ICM20948  ماژول میکروکنترلرGebraBit STM32F303 بعد از تعریف کردن SDI و SDO و SCK و CS روی پین های PB5 و PB4 و PB3 و PC13 (برای راحتی کار در STMCUBEMX) اتصالات را طبق تصویر زیر برقرار کنید:

اتصال SPI با GebraBit ATMEGA32A

ابتدا اطمینان حاصل کنید که پروتکل SPI با استفاده از جامپر های روی برد انتخاب شده است، از آنجا که سطح منطق GebraBit ICM20948  مقدار 1.8V و سطح منطق GebraBit ATMEGA32A مقدار 3.3V می باشد نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد. سپس برای اتصال SPI ماژول  GebraBit ICM20948به ماژول میکروکنترلرGebraBit ATMEGA32A بعد از تعریف کردن SDI و SDO و SCK و CS روی پین های PB5 و PB4 و PB3 و PC13 طبق تصویر زیر اتصالات را برقرار نمایید:

اتصال I2C با ARDUINO UNO

از آنجا که سطح منطق GebraBit ICM20984  مقدار 1.8V و سطح منطق برد ARDUINO UNO مقدار  5V می باشد، نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد.ابتدا اطمینان حاصل کنید که پروتکل I2C با استفاده از جامپر های روی برد انتخاب شده است، سپس برای اتصال I2C ماژول GebraBit ICM20948 به ARDUINO UNO مراحل زیر را دنبال کنید:

  • پین 1V8 ماژول ICM20948 را به پین 5V خروجی برد ARDUINO UNO طبق توضیحات بالا متصل کنید.(سیم قرمز)
  • پین GND ماژول ICM20948را به پین GND برد ARDUINO UNO متصل کنید.(سیم سیاه)
  • پین SCL ماژول ICM20948را به پین A5 برد ARDUINO UNO( (SCLمتصل کنید.(سیم آبی)
  • پین SDA ماژول ICM20948را به پین A4 برد ARDUINO UNO( (SDAمتصل کنید.(سیم آبی)

نحوه اتصال موارد ذکر شده در بالا،در این تصویر مشاهده می شود:

اتصال SPI با ARDUINO UNO

 ابتدا اطمینان حاصل کنید که پروتکل SPI با استفاده از جامپر های روی برد انتخاب شده است. از آنجا که سطح منطق GebraBit ICM20984  مقدار 1.8V و سطح منطق برد ARDUINO UNO مقدار  5V می باشد، نیاز است تا از طریق ماژول Logic Level Convertor دو سطح منطق را به یکدیگر تبدیل کرد. سپس برای اتصال SPI ماژول GebraBit ICM20984 به برد ARDUINO UNO مراحل زیر را دنبال کنید:

  • پین 1V8 ماژول ICM20984را به پین 5V خروجی برد ARDUINO UNO طبق توضیحات بالا متصل کنید.(سیم قرمز)
  • پین GND ماژول ICM20948را به پین GND برد ARDUINO UNO متصل کنید.(سیم سیاه)
  • پین SDI ماژول ICM20948را به پین D11 برد ARDUINO UNO( (SDIمتصل کنید.(سیم آبی)
  • پین SDO ماژول ICM20948را به پین D12 برد ARDUINO UNO( (SDOمتصل کنید.(سیم آبی)
  • پین SCK ماژول ICM20948را به پین D13 برد ARDUINO UNO( (SCKمتصل کنید.(سیم آبی)
  • پین CS ماژول ICM20948را به پین D10 برد ARDUINO UNO( (SSمتصل کنید.(سیم آبی)

 

نحوه اتصال موارد ذکر شده در بالا،در این تصویر مشاهده می شود:

این مقاله را با دوستانتان به اشتراک بگذارید!

Be the first to write a review

لطفا با ارسال دیدگاه و امتیاز دهی تیم جبرا را در بهبود کیفیت همیاری کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Shopping cart
Start typing to see posts you are looking for.

Sign in

No account yet?