فهرست مطالب:

Raspberry Pi - ADXL345 3 -Axis Accelerometer Python آموزش: 4 مرحله
Raspberry Pi - ADXL345 3 -Axis Accelerometer Python آموزش: 4 مرحله

تصویری: Raspberry Pi - ADXL345 3 -Axis Accelerometer Python آموزش: 4 مرحله

تصویری: Raspberry Pi - ADXL345 3 -Axis Accelerometer Python آموزش: 4 مرحله
تصویری: Input Shaper with a Pi Pico - Klipper Tips 2024, نوامبر
Anonim

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

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

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

1. تمشک پای

2. ADXL345

3. کابل I²C

4. I²C Shield برای رزبری پای

5. کابل اترنت

مرحله 2: اتصال:

ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط

یک سپر I2C برای تمشک pi بگیرید و آن را به آرامی روی پایه های gpio تمشک pi فشار دهید.

سپس یک سر کابل I2C را به سنسور ADXL345 و سر دیگر را به سپر I2C وصل کنید.

همچنین کابل اترنت را به pi وصل کنید یا می توانید از ماژول WiFi استفاده کنید.

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

مرحله 3: کد:

کد
کد

کد پایتون ADXL345 را می توانید از مخزن GitHub ما بارگیری کنید- فروشگاه Dcube

در اینجا پیوند مربوط به آن است:

github.com/DcubeTechVentures/ADXL345..

ما از کتابخانه SMBus برای کد پایتون استفاده کرده ایم ، مراحل نصب SMBus بر روی تمشک pi در اینجا شرح داده شده است:

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

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

# توزیع شده با مجوز اراده آزاد.

# از آن به هر نحوی که می خواهید استفاده کنید ، سودمند یا رایگان ، مشروط بر اینکه در مجوز آثار مرتبط با آن متناسب باشد.

# ADXL345

# این کد برای کار با ADXL345_I2CS I2C Mini Module موجود در فروشگاه Dcube طراحی شده است.

smbus وارد کنید

زمان واردات

# اتوبوس I2C بگیرید

bus = 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

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

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

توصیه شده: