فهرست مطالب:

اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله

تصویری: اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله

تصویری: اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله
تصویری: ف۳-۱۰: مثال درمورد اندازه‌گیری شتاب گرانشی با استفاده از حرکت پرتابه 2024, جولای
Anonim
Image
Image

BMA250 یک شتاب سنج کوچک ، نازک ، فوق العاده کم ، 3 محور با اندازه گیری وضوح بالا (13 بیت) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2C قابل دسترسی است. شتاب ثابتی گرانش را در برنامه های حسگر شیب و همچنین شتاب پویا ناشی از حرکت یا ضربه اندازه گیری می کند. وضوح بالا (3.9 میلی گرم/LSB) اندازه گیری تغییرات شیب کمتر از 1.0 درجه را امکان پذیر می کند.

در این آموزش ما قصد داریم شتاب را در هر سه محور عمود بر با استفاده از BMA250 و ذرات فوتون اندازه گیری کنیم.

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

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

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

1. BMA250

2. ذره فوتون

3. کابل I2C

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

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

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

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

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

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

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

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

مرحله 3: کد برای اندازه گیری شتاب:

کد اندازه گیری شتاب
کد اندازه گیری شتاب

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

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

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

#عبارتند از

#عبارتند از

// آدرس BMA250 I2C 0x18 است (24)

#تعریف Addr 0x18

int xAccl = 0 ، yAccl = 0 ، zAccl = 0 ؛

void setup ()

{

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

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

Particle.variable ("xAccl" ، xAccl) ؛

Particle.variable ("yAccl" ، yAccl) ؛

Particle.variable ("zAccl"، zAccl)؛

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

Wire.begin ()؛

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

Serial.begin (9600)؛

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

Wire.beginTransmission (Addr)؛

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

Wire.write (0x0F) ؛

// محدوده تنظیم +/- 2g

Wire.write (0x03) ؛

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

Wire.endTransmission ()؛

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

Wire.beginTransmission (Addr)؛

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

Wire.write (0x10) ؛

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

Wire.write (0x08) ؛

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

Wire.endTransmission ()؛

تأخیر (300) ؛}

حلقه خالی ()

{

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

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

Wire.beginTransmission (Addr)؛

// ثبت داده ها را انتخاب کنید (0x02 - 0x07)

Wire.write (0x02) ؛

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

Wire.endTransmission ()؛

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

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

// شش بایت را بخوانید

// xAccl lsb ، xAccl msb ، yAccl lsb ، yAccl msb ، zAccl lsb ، zAccl msb

if (Wire.available () == 6)

{

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

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

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

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

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

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

}

تأخیر (300) ؛

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

xAccl = ((داده [1] * 256) + (داده [0] & 0xC0)) / 64؛

if (xAccl> 511)

{

xAccl -= 1024 ؛

}

yAccl = ((داده [3] * 256) + (داده [2] & 0xC0)) / 64 ؛

if (yAccl> 511)

{

yAccl -= 1024 ؛

}

zAccl = ((داده [5] * 256) + (داده [4] & 0xC0)) / 64 ؛

if (zAccl> 511)

{

zAccl -= 1024 ؛

}

// خروجی داده ها به داشبورد

Particle.publish ("شتاب در محور X:" ، رشته (xAccl)) ؛

تاخیر (1000) ؛

Particle.publish ("شتاب در محور Y:" ، رشته (yAccl)) ؛

تاخیر (1000) ؛

Particle.publish ("شتاب در محور Z:" ، رشته (zAccl)) ؛

تاخیر (1000) ؛

}

تابع Particle.variable () متغیرهایی را برای ذخیره خروجی سنسور ایجاد می کند و تابع Particle.publish () خروجی را در داشبورد سایت نمایش می دهد.

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

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

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

شتاب سنج هایی مانند BMA250 بیشتر کاربرد آن را در بازی ها و تغییر نمای صفحه نمایش پیدا می کنند. این ماژول حسگر همچنین در سیستم پیشرفته مدیریت قدرت برای برنامه های تلفن همراه استفاده می شود. BMA250 یک سنسور شتاب دیجیتال سه محوری است که با یک کنترل کننده وقفه با حرکت روی تراشه هوشمند ترکیب شده است.

توصیه شده: