پروژه سنسور شتاب سه محوره ADXL345
در این نوشته شما پروژه راهاندازی سنسور شتاب و زاویه سه محوره توسط چیپ ADXL345 با میکرو کنترلر STM8 را خواهید آموخت. سورس شماتیک، پی سی بی و فایل برنامه نیز موجود است.
ابتدا با مفهوم شتاب و سنسور آن آشنا شویم.
شتاب چیست؟
به میزان تغییرات سرعت در یک بازه زمانی، شتاب گفته میشود. به عبارتی دیگر اگر شما در یک بازهی زمانی با سرعت 100 کیلومتر در حال حرکت باشید (بدون در نظر گرفتن شتاب زمین)، شتاب شما صفر خواهد بود؛ درصورتیکه در حال افزایش سرعت باشید این شتاب یک عدد مثبت و درصورتیکه در حال کاهش سرعت باشید، شتاب یک عدد منفی خواهد بود.
سنسور شتاب چه قابلیتهایی دارد؟
سنسور شتاب به سنسوری گفته میشود که دارای قابلیت تشخیص شتاب است. همانطور که میدانید، زمین نیز یک شتاب مشخص با واحد g، بهتمامی اجسام وارد میکند؛ میزان این شتاب، 9.82 m/s^2 است. اگر یک سنسور شتاب داشته باشید، در حالت عادی میزان شتاب واردشده از سطح زمین را به شما نمایش خواهد داد. این سنسور که اصطلاحاً به آن Accelerometer نیز گفته میشود، یکی از سنسورهای رایج در بازار است.
در زیر، بلاک دیاگرام این سنسور را مشاهده میکنید.
در این مقاله قصد داریم پروژهای معرفی و تشریح کنیم که برای راهاندازی یک سنسور شتاب سه محوره با شماره ADXL345 طرح شده است.
راهاندازی یک سنسور شتاب سه محوره با شماره ADXL345:
در پروژهها قبلاً از ماژول MPU6050 با فیلتر کالمن استفاده میکردیم. متأسفانه قیمت این ماژول بسیار بالا بود و مدتی بعد هم در بازار نایاب شد؛ به همین علت تصمیم گرفتیم منطبق بر ماژول MPU6050، یک ماژول طراحی کنیم بهصورتیکه استاندارد درگاه خروجی آن نیز منطبق بر همین ماژول باشد. جهت اجرا از ماژول شتاب سنج ADXL345 و جهت پروسسور هم از میکرو STM8 به شماره STM8S003F3 استفاده کردیم که باعث شد ازنظر قیمتی نیز بسیار مقرونبهصرفه گردد. این دو ماژول ازنظر فوت پرینت و ترتیب پایه، مشابه هم هستند و میتوان بهراحتی ماژول طراحیشده را جایگزین قبلی نمود. البته ازنظر ارتفاع، برد طراحیشده کمی بلندتر است.
امکانات سنسور:
در ابتدا نگاهی به امکانات این سنسور میاندازیم. این سنسور میتواند گرانش واردشده به هر سه محور X, Y, Z را بهصورت استاتیک با حساسیتهای 0.2±، 0.4±، 8± و 16± “G” و با دقت 13 بیت اندازهگیری کند. همچنین بهصورت استاتیک شوک واردشده و یا حرکت را نیز میتواند تشخیص دهد.
این چیپ میتواند دیتاهای خود را توسط رابطهای کاربری I2C و SPI انتقال دهد. جریان مصرفی آن در حین کار کمتر از 40 میکرو آمپر است و در محدوده ولتاژی 2 تا 3.6 ولت کار میکند.
برای راهاندازی این ماژول نیاز به یک میکرو کنترلر داریم که ما در اینجا از یک میکرو 8 بیتی به شماره STM8S003F3 ساخت شرکت STM استفاده کردهایم. کار با این میکرو ساده بوده و به نسبت، قیمت مناسبی نیز دارد.
خروجی این برد سریال است؛ میتوان آن را با یک مبدل USB به TTL به یک کامپیوتر متصل کرد و خروجی را توسط یک نرمافزار سریال مثل hyperterminal خود ویندوز یا RealTerm در مانیتور مشاهده کرد.
همچنین برد بسیار جمع و جور طراحیشده؛ میتوان آن را روی بردهای خود، مونتاژ و با رابط سریال با آن ارتباط برقرار کرد.
کدهای سنسور:
با استفاده از این برد دیگر نیازی به ترجمه کدهای سنسور ندارید. برنامه این میکرو توسط ادیتور قدرتمند IAR Embedded Workbench for STM8 نوشتهشده که در صورت نیاز به تغییر در ساختار برنامه، میتوانید آن را تغییر دهید. فایل هگز میکرو بهصورت جداگانه قرار دادهشده تا درصورتیکه احتیاج به تغییر در برنامه ندارید بتوانید آن را بهصورت مستقیم با پروگرامر STLINK، بر روی میکرو پروگرام کنید.
میتوانید سورس برنامه به زبان C، کامپایلر IRA، شماتیک و پی سی بی (Altium Designer ) را دانلود نمایید:
منبع: سیسوگ