فهرست مطالب:
- مرحله 1: سخت افزار مورد نیاز:
- مرحله 2: اتصال سخت افزاری:
- مرحله 3: کد آردوینو برای اندازه گیری شتاب:
- مرحله 4: برنامه های کاربردی:
تصویری: اندازه گیری شتاب با استفاده از BMA250 و آردوینو نانو: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
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: کد آردوینو برای اندازه گیری شتاب:
بیایید اکنون با کد آردوینو شروع کنیم.
هنگام استفاده از ماژول سنسور با آردوینو ، ما کتابخانه Wire.h را شامل می شود. کتابخانه "Wire" شامل عملکردهایی است که ارتباط i2c بین سنسور و برد آردوینو را تسهیل می کند.
برای راحتی کاربر ، کل کد آردوینو در زیر آورده شده است:
#عبارتند از
// آدرس BMA250 I2C 0x18 است (24)
#تعریف Addr 0x18
void setup ()
{
// راه اندازی ارتباط 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 بیت
float xAccl = ((داده [1] * 256.0) + (داده [0] & 0xC0)] / 64؛
if (xAccl> 511)
{
xAccl -= 1024 ؛
}
شناور yAccl = ((داده [3] * 256.0) + (داده [2] & 0xC0)) / 64؛
if (yAccl> 511)
{
yAccl -= 1024 ؛
}
float zAccl = ((داده [5] * 256.0) + (داده [4] & 0xC0)) / 64 ؛
if (zAccl> 511)
{
zAccl -= 1024 ؛
}
// خروجی داده ها به مانیتور سریال
Serial.print ("شتاب در محور X:") ؛
Serial.println (xAccl) ؛
Serial.print ("شتاب در محور Y:") ؛
Serial.println (yAccl) ؛
Serial.print ("شتاب در محور Z:") ؛
Serial.println (zAccl) ؛
}
در کتابخانه سیم Wire.write () و Wire.read () برای نوشتن دستورات و خواندن خروجی سنسور استفاده می شود. Serial.print () و Serial.println () برای نمایش خروجی سنسور در مانیتور سریال Arduino IDE استفاده می شود.
خروجی سنسور در تصویر بالا نشان داده شده است.
مرحله 4: برنامه های کاربردی:
شتاب سنج هایی مانند BMA250 بیشتر کاربرد آن را در بازی ها و تغییر نمای صفحه نمایش پیدا می کنند. این ماژول حسگر همچنین در سیستم پیشرفته مدیریت قدرت برای برنامه های تلفن همراه استفاده می شود. BMA250 یک سنسور شتاب دیجیتال سه محوری است که با یک کنترل کننده وقفه با حرکت روی تراشه هوشمند ترکیب شده است.
توصیه شده:
اندازه گیری شتاب با استفاده از H3LIS331DL و آردوینو نانو: 4 مرحله
اندازه گیری شتاب با استفاده از H3LIS331DL و آردوینو نانو: H3LIS331DL ، یک شتاب سنج خطی کم توان با عملکرد بالا 3 محور متعلق به خانواده "نانو" ، با رابط سریال دیجیتال I²C است. H3LIS331DL دارای مقیاس های کامل قابل انتخاب 100 گرم//200 گرم/400 گرم user است و قادر به اندازه گیری شتاب های
اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2 C قابل دسترسی است. اندازه گیری
اندازه گیری شتاب با استفاده از BMA250 و Raspberry Pi: 4 مرحله
اندازه گیری شتاب با استفاده از BMA250 و Raspberry Pi: BMA250 یک شتاب سنج کوچک ، باریک ، فوق العاده کم قدرت ، 3 محور با اندازه گیری وضوح بالا (13 بیت) تا 16 گرم است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2C قابل دسترسی است. اندازه گیری استاتیک
اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: BMA250 یک شتاب سنج کوچک ، باریک و فوق کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2C قابل دسترسی است. اندازه گیری استاتیک
اندازه گیری زاویه با استفاده از ژیروسکوپ ، شتاب سنج و آردوینو: 5 مرحله
اندازه گیری زاویه با استفاده از ژیروسکوپ ، شتاب سنج و آردوینو: این دستگاه نمونه اولیه ای از چیزی است که در نهایت به یک ربات خود تعادل تبدیل می شود ، این قسمت دوم از سوراخ است (شتاب سنج را بخوانید و یک موتور را برای تعادل خود کنترل کنید). قسمت اول فقط با ژیروسکوپ را می توانید در اینجا پیدا کنید. در این inst