فهرست مطالب:

رابط سنسور ژیروسکوپ 3 محوره BMG160 با ذره: 5 مرحله
رابط سنسور ژیروسکوپ 3 محوره BMG160 با ذره: 5 مرحله

تصویری: رابط سنسور ژیروسکوپ 3 محوره BMG160 با ذره: 5 مرحله

تصویری: رابط سنسور ژیروسکوپ 3 محوره BMG160 با ذره: 5 مرحله
تصویری: ژیروسکوپ ، معرفی ماژول MPU6050 ماژول ژیروسکوپ 2024, نوامبر
Anonim
Image
Image

در دنیای امروز ، بیش از نیمی از جوانان و کودکان عاشق بازی هستند و همه کسانی که به آن علاقه دارند ، شیفته جنبه های فنی بازی هستند ، اهمیت حس حرکت را در این حوزه می دانند. ما نیز از همان چیزی شگفت زده شدیم و فقط برای آوردن آن روی تخته ، ما فکر کردیم که روی یک سنسور ژیروسکوپ کار می کنیم که می تواند میزان زاویه هر جسم را اندازه گیری کند. بنابراین ، سنسوری که ما برای مقابله با آن استفاده کردیم BMG160 است. BMG160 یک حسگر ژیروسکوپی 16 بیتی ، دیجیتال ، سه محوری است که می تواند میزان زاویه را در سه بعد اتاق عمود بر اندازه گیری کند.

در این آموزش ، ما قصد داریم کار BMG160 را با Particle Photon نشان دهیم.

سخت افزاری که برای این منظور نیاز دارید به شرح زیر است:

1. BMG160

2. فوتون ذرات

3. کابل I2C

4. I2C Shield برای ذرات فوتون

مرحله 1: نمای کلی BMG160:

آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!

اول از همه ما می خواهیم شما را با ویژگی های اصلی ماژول سنسور BMG160 و پروتکل ارتباطی که بر روی آن کار می کند آشنا کنیم.

BMG160 در اصل یک سنسور ژیروسکوپی 16 بیتی ، دیجیتال ، سه محوری است که می تواند نرخ زاویه را اندازه گیری کند. این دستگاه قادر است نرخ زاویه ای را در سه بعد اتاق عمود بر محور x- ، y- و z محاسبه کرده و سیگنال های خروجی مربوطه را ارائه دهد. با استفاده از پروتکل ارتباطی I2C می تواند با برد تمشک pi ارتباط برقرار کند. این ماژول خاص برای برآوردن الزامات کاربردهای مصرف کننده و همچنین اهداف صنعتی طراحی شده است.

پروتکل ارتباطی که سنسور روی آن کار می کند I2C است. I2C مخفف مدار بین یکپارچه است. این یک پروتکل ارتباطی است که در آن ارتباط از طریق خطوط SDA (داده های سریال) و SCL (ساعت سریال) انجام می شود. این امکان اتصال همزمان چندین دستگاه را فراهم می کند. این یکی از ساده ترین و کارآمدترین پروتکل های ارتباطی است.

مرحله 2: آنچه شما نیاز دارید..

آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!

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

1. BMG160

2. ذره فوتون

3. کابل I2C

4. سپر I2C برای فوتون ذرات

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

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

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

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

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

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

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

مرحله 4: کد ذرات اندازه گیری ژیروسکوپ 3 محوره:

کد ذرات اندازه گیری ژیروسکوپ 3 محور
کد ذرات اندازه گیری ژیروسکوپ 3 محور
کد ذرات اندازه گیری ژیروسکوپ 3 محور
کد ذرات اندازه گیری ژیروسکوپ 3 محور

اجازه دهید اکنون با کد ذره شروع کنیم.

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

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

#عبارتند از

#عبارتند از

// آدرس BMG160 I2C 0x68 (104) است

#تعریف Addr 0x68

int xGyro = 0 ، yGyro = 0 ، zGyro = 0 ؛

void setup ()

{

// تنظیم متغیر

Particle.variable ("i2cdevice" ، "BMG160") ؛

Particle.variable ("xGyro" ، xGyro) ؛

Particle.variable ("yGyro" ، yGyro) ؛

Particle.variable ("zGyro" ، zGyro) ؛

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

Wire.begin ()؛

// برقراری ارتباط سریالی

Serial.begin (9600)؛

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

Wire.beginTransmission (Addr)؛

// Range register را انتخاب کنید

Wire.write (0x0F) ؛

// پیکربندی مقیاس کامل 2000 dps

Wire.write (0x80) ؛

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

Wire.endTransmission ()؛

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

Wire.beginTransmission (Addr)؛

// Bandwidth register را انتخاب کنید

Wire.write (0x10) ؛

// تنظیم پهنای باند = 200 هرتز

Wire.write (0x04) ؛

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

Wire.endTransmission ()؛

تأخیر (300) ؛

}

حلقه خالی ()

{

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

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

Wire.beginTransmission (Addr)؛

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

Wire.write (0x02) ؛

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

Wire.endTransmission ()؛

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

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

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

// xGyro lsb ، xGyro msb ، yGyro lsb ، yGyro msb ، zGyro lsb ، zGyro msb

if (Wire.available () == 6)

{

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

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

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

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

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

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

}

تأخیر (300) ؛

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

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 چرخش:" ، رشته (xGyro)) ؛

Particle.publish ("Y-Axis of Rotation:" ، String (yGyro)) ؛

Particle.publish ("Z-Axis of Rotation:" ، String (zGyro)) ؛

تاخیر (1000) ؛

}

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

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

BMG160 دارای کاربردهای متنوعی در دستگاه هایی مانند تلفن های همراه ، دستگاه های رابط ماشین انسان است. این ماژول حسگر برای برآوردن الزامات کاربردهای مصرف کننده مانند تثبیت کننده تصویر (DSC و دوربین تلفن) ، دستگاه های بازی و اشاره طراحی شده است. همچنین در سیستم هایی که نیاز به تشخیص حرکت دارند و سیستم های مورد استفاده در ناوبری داخلی استفاده می شود.

توصیه شده: