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

آیا تا به حال به این فکر کرده اید که دستگاه هوشمند شما چگونه جهت صفحه نمایش را بر اساس نحوه در دست گرفتن دستگاه خود تغییر می دهد؟ پاسخ در دستگاه ساده ای به نام شتاب سنج نهفته است.
در این آموزش با نحوه کار شتاب سنج ها آشنا می شویم. ما به طور خاص بر شتاب سنج سه محوره LIS3DH از Adafruit تمرکز خواهیم کرد. همچنین نحوه اتصال این شتاب سنج را به رزبری پای و نحوه برنامه ریزی آن با پایتون را یاد خواهیم گرفت.
همچنین میتونید مقاله راه اندازی سنسور شتاب سنج MPU6050 با رزبری پای را بخوانید.
در اینجا برخی از کاربرد های دنیای واقعی با استفاده از شتاب سنج با رزبری پای آورده شده است:
- مانیتورینگ ارتعاش
- تشخیص شیب
- تشخیص ضربه زدن
- تشخیص سقوط آزاد
- تشخیص جهت صفحه نمایش
- می توان از آن برای اندازه گیری سرعت و فاصله دینامیکی استفاده کرد
شتاب سنج ها چگونه کار می کنند؟
شتاب سنج یک دستگاه میکروالکترومکانیکی است که نیروهای شتاب استاتیک یا دینامیکی را که بر روی یک دستگاه اعمال می شود اندازه گیری می کند. این نیروها ممکن است ناشی از شتاب ثابت گرانش یا شتاب ناشی از حرکت یا تغییر در جهت باشد.

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

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

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

شماتیک سیم کشی برای اتصال 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): پیکربندی ارتباط I2Cint1 = digitalio.DigitalInOut(board.D24): قرار دادن وقفه در پایه 24 رزبری پایx, y, z = lis3dh.acceleration: ذخیره مقادیر شتاب سنجprint("%0.3f %0.3f %0.3f" % (x, y, z)):چاپ مقادیر
اجرای کد بالا با دستور sudo python3 خروجی زیر را به ما می دهد:

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







