فهرست مطالب:

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

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

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

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

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

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

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 Shield برای آردوینو نانو

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

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

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

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

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

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

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

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

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

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

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

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

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

#تعریف Addr 0x68

void setup ()

{

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

Wire.begin ()؛

// برقراری ارتباط اولیه ، تنظیم نرخ باود = 9600

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

// Gyrometer data register را انتخاب کنید

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

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

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

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

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

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

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

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

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

Serial.println (zGyro) ؛

تأخیر (500) ؛

}

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

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

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

توصیه شده: