فهرست مطالب:

اندازه گیری شتاب با استفاده از ADXL345 و Raspberry Pi: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و Raspberry Pi: 4 مرحله

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

تصویری: اندازه گیری شتاب با استفاده از ADXL345 و Raspberry Pi: 4 مرحله
تصویری: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, نوامبر
Anonim
Image
Image

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

در این آموزش ، رابط ماژول سنسور ADXL345 با تمشک pi نشان داده شده است و برنامه نویسی آن با استفاده از زبان پایتون نیز نشان داده شده است. برای خواندن مقادیر شتاب در تمام محورهای 3 ، ما از رز تمشک pi با آداپتور I2C استفاده کرده ایم. این آداپتور I2C اتصال به ماژول سنسور را آسان و قابل اطمینان تر می کند.

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

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

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

1. ADXL345

2. تمشک پای

3. کابل I2C

4. I2C Shield برای تمشک pi

5. کابل اترنت

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

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

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

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

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

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

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

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

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

مزیت استفاده از تمشک pi این است که به شما انعطاف پذیری زبان برنامه نویسی را می دهد که در آن می خواهید بورد را برنامه ریزی کنید تا سنسور با آن ارتباط برقرار کند. با استفاده از این مزیت این برد ، ما در اینجا برنامه نویسی آن را در پایتون نشان می دهیم. کد پایتون ADXL345 را می توانید از انجمن github ما که کنترل همه چیز است بارگیری کنید.

و همچنین برای سهولت کاربران ، ما در اینجا کد را نیز توضیح می دهیم:

به عنوان اولین مرحله کدگذاری ، باید کتابخانه smbus را در مورد پایتون بارگیری کنید ، زیرا این کتابخانه از توابع مورد استفاده در کد پشتیبانی می کند. بنابراین ، برای بارگیری کتابخانه می توانید از لینک زیر دیدن کنید:

pypi.python.org/pypi/smbus-cffi/0.5.1

همچنین می توانید کد پایتون کارکرد این سنسور را از اینجا کپی کنید:

smbus وارد کنید

زمان واردات

# دریافت I2C busbus = smbus. SMBus (1)

آدرس # ADXL345 ، 0x53 (83)

# ثبت نرخ پهنای باند ، 0x2C (44)

# 0x0A (10) حالت عادی ، نرخ داده خروجی = 100 هرتز

bus.write_byte_data (0x53 ، 0x2C ، 0x0A)

آدرس # ADXL345 ، 0x53 (83)

# ثبت کنترل قدرت ، 0x2D (45)

# 0x08 (08) خواب خودکار غیرفعال می شود

bus.write_byte_data (0x53 ، 0x2D ، 0x08)

آدرس # ADXL345 ، 0x53 (83)

# ثبت فرمت داده را انتخاب کنید ، 0x31 (49)

# 0x08 (08) خودآزمایی غیرفعال ، رابط 4 سیم

# وضوح کامل ، محدوده = +/- 2g

bus.write_byte_data (0x53 ، 0x31 ، 0x08)

زمان خواب (0.5)

آدرس # ADXL345 ، 0x53 (83)

# داده ها را از 0x32 (50) ، 2 بایت برگردانید

# X-Axis LSB ، X-Axis MSB

data0 = bus.read_byte_data (0x53 ، 0x32)

data1 = bus.read_byte_data (0x53 ، 0x33)

# داده ها را به 10 بیت تبدیل کنید

xAccl = ((data1 & 0x03) * 256) + data0

اگر xAccl> 511:

xAccl -= 1024

آدرس # ADXL345 ، 0x53 (83)

# خواندن داده ها از 0x34 (52) ، 2 بایت

# Y-Axis LSB ، Y-Axis MSB

data0 = bus.read_byte_data (0x53 ، 0x34)

data1 = bus.read_byte_data (0x53 ، 0x35)

# داده ها را به 10 بیت تبدیل کنید

yAccl = ((data1 & 0x03) * 256) + data0

اگر yAccl> 511:

yAccl -= 1024

آدرس # ADXL345 ، 0x53 (83)

# داده ها را از 0x36 (54) ، 2 بایت برگردانید

# Z-Axis LSB ، Z-Axis MSB

data0 = bus.read_byte_data (0x53 ، 0x36)

data1 = bus.read_byte_data (0x53 ، 0x37)

# داده ها را به 10 بیت تبدیل کنید

zAccl = ((data1 & 0x03) * 256) + data0

اگر zAccl> 511:

zAccl -= 1024

# خروجی داده ها به صفحه

print "Acceleration in X-Axis:٪ d"٪ xAccl

print "Acceleration in Y-Axis:٪ d"٪ yAccl

print "Acceleration in Z-Axis:٪ d"٪ zAccl

بخشی از کد ذکر شده در زیر شامل کتابخانه های مورد نیاز برای اجرای صحیح کدهای پایتون است.

واردات زمان smbusimport

کد را می توان با تایپ دستور زیر در خط فرمان اجرا کرد.

$> پایتون ADXL345.py

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

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

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

ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم ، سه محور است که می تواند در گوشی ها ، ابزار پزشکی و غیره استفاده شود. برنامه کاربردی آن همچنین شامل دستگاه های بازی و اشاره ، ابزارهای صنعتی ، دستگاه های ناوبری شخصی و حفاظت از هارد دیسک (HDD) است.

توصیه شده: