آموزش رزبری پایپروژه رزبری پای

چگونه شتاب سنج LIS3DH را به رزبری پای متصل کنیم؟

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

در این آموزش با نحوه کار شتاب سنج ها آشنا می شویم. ما به طور خاص بر شتاب سنج سه محوره LIS3DH از Adafruit تمرکز خواهیم کرد. همچنین نحوه اتصال این شتاب سنج را به رزبری پای و نحوه برنامه ریزی آن با پایتون را یاد خواهیم گرفت.

همچنین میتونید مقاله راه اندازی سنسور شتاب سنج MPU6050 با رزبری پای را بخوانید.

در اینجا برخی از کاربرد های دنیای واقعی با استفاده از شتاب سنج با رزبری پای آورده شده است:

  • مانیتورینگ ارتعاش
  • تشخیص شیب
  • تشخیص ضربه زدن
  • تشخیص سقوط آزاد
  • تشخیص جهت صفحه نمایش
  • می توان از آن برای اندازه گیری سرعت و فاصله دینامیکی استفاده کرد

شتاب‌ سنج‌ ها چگونه کار می‌ کنند؟

شتاب سنج یک دستگاه میکروالکترومکانیکی است که نیروهای شتاب استاتیک یا دینامیکی را که بر روی یک دستگاه اعمال می شود اندازه گیری می کند. این نیروها ممکن است ناشی از شتاب ثابت گرانش یا شتاب ناشی از حرکت یا تغییر در جهت باشد.

شتاب‌ سنج‌ ها چگونه کار می‌ کنند؟

همانطور که در نمودار بالا نشان داده شده است، جرمی را تجسم کنید که روی یک سکوی متحرک قرار دارد. همانطور که سکو در یک جهت حرکت می کند، جرم می خواهد در برابر تغییر حرکت مقاومت کند. این بدان معنی است که جرم یک جفت حسگر پیزوالکتریک را فشرده می کند و در نتیجه جریان الکتریکی متناسب با نیروی اعمال شده تولید می کند. از این رابطه محاسبه نیرو آسان می شود و از آنجایی که جرم ثابت است می توان شتاب را از Force = Mass * Acceleration بدست آورد.

این همان مفهومی است که شتاب سنج LIS3DH برای اندازه گیری شتاب در امتداد محورهای x، y و z استفاده می کند. با این حال، تنها تفاوت در مبدل نهفته است. مبدل در LIS3DH به جای پیزوالکتریک، خازنی است.

شتاب سنج LIS3DH

اگر به برد شتاب‌سنج LIS3DH با دقت نگاه کنید، متوجه این فلش‌ها خواهید شد:

شتاب سنج LIS3DH

این فلش ها جهت شتاب را به ما نشان می دهند. مطابق تصویر سمت چپ بالا، شتاب در امتداد محور x در جهت فلش x عمل می کند. همین امر در مورد محور y نیز صدق می کند. محور z یک علامت (دایره) متفاوت به خود می گیرد زیرا نیروی گرانش به آن وارد می شود.

جهت های سنسور شتاب سنج

اتصال شتاب سنج LIS3DH به Raspberry PI

همانطور که از پین های تصویر بالا می بینید، دو راه برای اتصال شتاب سنج LIS3DH به Raspberry Pi وجود دارد: I2C یا SPI. برای این آموزش، من قصد دارم هر دو را به شما نشان دهم.

ما به موارد زیر نیاز داریم:

  • رزبری پای
  • شتاب سنج LIS3DH
  • برد بورد
  • سیم های جامپر

شماتیک سیم کشی برای اتصال SPI

اتصال LIS3DH با SPI

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

شماتیک سیم کشی برای اتصال I2C

شماتیک سیم کشی برای اتصال I2Cچگونه شتاب‌سنج LIS3DH را با پایتون برنامه‌ریزی کنیم

برای برقراری ارتباط با شتاب‌سنج LIS3DH، از کتابخانه circuitPython Adafruit استفاده می‌کنیم. برای نصب این کتابخانه، دستور pip را در ترمینال Raspberry Pi اجرا کنید:

sudo pip3 install adafruit-circuitpython-lis3dh

با نصب کتابخانه، می‌توانید مانند قبل، نوشتن یک اسکریپت پایتون را شروع کنید.

در برنامه زیر مقادیر شتاب را از شتاب سنج LIS3DH می خوانیم و روی ترمینال نمایش می دهیم. این کد را در یک ویرایشگر متن در Raspberry Pi کپی کنید و آن را به عنوان یک فایل با پسوند “.py” ذخیره کنید:

import time
import board
import digitalio
import busio
import adafruit_lis3dh

i2c = busio.I2C(board.SCL, board.SDA)                # Remove this line if using SPI
int1 = digitalio.DigitalInOut(board.D24)             # Remove this line if using SPI
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1)  # Remove this line if using SPI

# spi = busio.SPI(board.SCK, board.MOSI, board.MISO)        # Uncomment this line if using SPI
# cs = digitalio.DigitalInOut(board.D23)                    # Uncomment this line if using SPI
# int1 = digitalio.DigitalInOut(board.D24)                  # Uncomment this line if using SPI
# lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs, int1=int1)   # Uncomment this line if using SPI

x, y, z = lis3dh.acceleration

while True:
  print("%0.3f %0.3f %0.3f" % (x, y, z))
  time.sleep(2) 

شرح کد

  • import time, board, digitalio, busio, adafruit_lis3dh: فراخوانی کتابخانه های مورد نیاز
  • i2c = busio.I2C(board.SCL, board.SDA): پیکربندی ارتباط I2C
  • int1 = digitalio.DigitalInOut(board.D24): قرار دادن وقفه در پایه 24 رزبری پای
  • x, y, z = lis3dh.acceleration: ذخیره مقادیر شتاب سنج
  • print("%0.3f %0.3f %0.3f" % (x, y, z)):چاپ مقادیر

اجرای کد بالا با دستور sudo python3 خروجی زیر را به ما می دهد:

چگونه شتاب‌سنج LIS3DH را با پایتون برنامه‌ریزی کنیم

این مقادیر خام خروجی توسط محورهای x، y و z شتاب‌سنج هستند.

امیدواریم این آموزش به شما کمک کرده باشد که شتاب سنج را در Raspberry Pi تنظیم کنید. اگر در مورد هر چیزی سوالی دارید، در زیر نظر خود را بنویسید!

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.