خانه / بردهای سیستم عامل دار / رزبری پای / فاصله سنج با ماژول التراسونیک و رزبری پای

فاصله سنج با ماژول التراسونیک و رزبری پای

فاصله سنج با ماژول التراسونیک و رزبری پای ، معمولا در کاربرد های صنعتی و غیر صنعتی از یک فرستنده التراسونیک و یک گیرنده یا حسگر التراسونیک استفاده می شود. نحوه عملکرد به این صورت می باشد که ابتدا فرستنده موج التراسونیک که موجی در رنج فرکانس التراسونیک است را ارسال می کند و این موج پس از برخورد به مانع بازگشت می کند و گیرنده این موج بازگشتی را دریافت می کند. حال با توجه به زمان و طیف فرکانس بازگشتی می توان به اطلاعاتی از قبیل عمق،نوع، سرعت و … مانع دست یافت.در این قسمت هدف تشخیص فاصله با سنسور اولتراسنویک است که در ادامه با نحوه ی راه اندازی این سنسور را با رزبری پای آشنا خواهیم شد. برای این کاربرد از رایج ترین ماژول های التراسونیک موجود در بازار ماژول SRF04 و SRF05 می باشد.در ادامه با میکرو دیزاینر الکترونیک باشید.

فاصله سنج با ماژول التراسونیک و رزبری پای

ماژول

اکثر ماژول های التراسونیک(سنجش مسافت) (Ultrasonic Ranging Module) از دو قسمت فرستنده و گیرنده تشکیل شده اند.قسمت فرستنده در کسری از ثانیه امواج التراسونیک را ارسال می کند این امواج پس از برخورد به جسم بازتاب داده می شوند. وظیفه قسمت گیرنده دریافت امواج بازتابی از جسم است.

گیرنده و فرستنده ماژول های HC-SR04 و HC-SR05 در کنار یکدیگر  قرار دارند و می توانند جسم های در فاصله ۲ تا ۳۰۰ ساتی متر را با دقت قابل قبولی تشخیص دهند. البته ماژول هایی نیز وجود دارند که قسمت گیرنده و فرستنده به صورت جدا از یکدیگر طراحی شده اند و می توان گیرنده و فرستنده را رویروی یکدیگر قرار داد و اکثرا برای مقاصدی همچو تشخیص مانع استفاده می شوند.

حتما در ادامه این مطلب را هم بخوانید:  پروژه تقویت کننده کلاس D در Raspberry PI

ماژول SRF05 نسخه تکامل یافته SRF04 می باشد. این نسخه جدید دو مد کاری را پشتیبانی می کند و ۵ پایه جهت کار با با ماژول را در اختیار قرار می دهد. اما ماژول SRF04 دارای ۴ پایه می باشد و تنها یک مد کاری را پشتیبانی می کند.هردوی این ماژول ها دارای یک مد کاری مشترک هستند این مد کاری بانام مد۱ شناخته میشود.در این قسمت تنها از مد کاری ۱ استفاده شده .

راه اندازی ماژول

همان طور که در دیاگرام مشخص شده است برای تریگ ماژول ابتدا باید یک پالس با عرض حداقل ۱۰ میکرو ثانیه به پایه Trigger اعمال کنیم. ماژول به صورت اتوماتیک ۸ عدد پالس با فرکانس ۴۰ کیلو هرتز ارسال میکند. وقتی که پالس ها ارسال شد پایه ECHO یک میشه و تا زمانی که برگشت پالس ها از جسم را دریافت نکند این پایه یک باقی میماند. پس با اندازه گیری مدت زمانی که این پایه در سطح منطقی ۱ بوده است میتوان زمان رفت و برگشت صوت را بدست آورد. برای اندازه گیری پالس روی پایه ECHO باید از تایمر استفاده کرد. بعد از اطلاع از زمان رفت و برگشت سیگنال اولتراسونیک با استفاده از رابطه زیر فاصله سنسور تا مانع به راحتی محاسبه می شود.

حتما در ادامه این مطلب را هم بخوانید:  15 پروژه با رزبری پای

D=(T/2)(340*100)

سرعت صوت: سرعت امواج التراسونیک برابر با سرعت صوت و عدد ثابتی برابربا  ۳۴۰متر بر ثانیه است.

زمان: مدت زمانی سیگنال روی پایه ی ECHO در وضعیت یک منطقی قرار دارد.این پارامتر بر حسب میکرو ثانیه است.

فاصله: فاصله ی ماژول تا مانع بر حسب Cm.

فاصله سنج با ماژول التراسونیک و رزبری پای

محدودیتها

اولین وشاید بزرگترین محدودیتی که در راه اندازی  این سنسور در رزبری پای وجود دارد مثئله ی سنجش زمان با تایمر است.چون در رزبری تایمری به صورت سخت افزاری وجود ندارد. باید این مشکل را به صورت نرم افزاری حل کرد. برای سنجش زمان در زبان سی کتابخانه ای با نام time.h  sys/وجود دارد که دارای مجموعه ای از توابع میباشد که زمان سیستم را باز میگردانند.تابعی که در این پروژه برای سنجش زمان استفاده شده تابع gettimeofday میباشد.

توضیحات برنامه

در برنامه ی فوق بعد از تریگر کردن ماژول با پایه ی Trig در داخل یک حلقه ی while منتظر high  شدن پایه ی  echo ماژول میمانیم.سپس با تابع gettimeofday زمان فعلی سیستم را دریافت میکنیم  و در ساختمانی با نام tv1 قرار میدهیم و دوباره در یک حلقه ی while دیگر منتظر low شدن پایه ی echo میمانیم و یک بار دیگر زمان فعلی سیستم را با تابع gettimeofday دریافت میکنیم  و در ساختمانی با نام tv2 قرار میدهیم .به این ترتیب با تفریق زمان ارسال امواج با زمان دریافت امواج میتوان به فاصله ی جسمی که روبه روی این ماژول قرار دارد با رابطه ای که گفته شد  بدست آورید.

حتما در ادامه این مطلب را هم بخوانید:  آموزش رزبری پای - Raspberry pi - مقدمه

نکته ی مهمی در سیم بندی رزبری با سنسور باید مورد توجه قرار دهید استفاده از تقسیم کننده ی ولتاژ مقاومتی به منظور کاهش سطح ولتاژ اعمالی به رزبری توسط سنسور است.مقدار مقتومتها ۳۳۰Ω  و ۴۷۰Ω   میباشد.

/*******************************
* Ultra Sonic Raning module Pin VCC should
* be connected to 5V power.
******************************/
#include <wiringPi.h>
#include <stdio.h>
#include <sys/time.h>
#define Trig 4
#define Echo 17
void ultraInit(void)
{
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
}
float disMeasure(void)
{
struct timeval tv1;
struct timeval tv2;
long time1, time2;
float dis;
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10); //send out ultrasonic pulses

while(!(digitalRead(Echo) == 1));
gettimeofday(&tv1, NULL); //get current time
while(!(digitalRead(Echo) == 0));
gettimeofday(&tv2, NULL); //get current time
time1 = tv1.tv_sec * 1000000 + tv1.tv_usec; //microsecond time
time2 = tv2.tv_sec * 1000000 + tv2.tv_usec;
dis = (float)(time2 - time1) / 1000000 * 34000 / 2; //calculate the distance
return dis;
}
int main(void)
{
float dis;
if(wiringPiSetupGpio() == -1){ //when initialize wiring failed,print messageto screen
printf("setup wiringPi failed !");
return 1; 
}
ultraInit();
while(1){
dis = disMeasure();
printf("%0.2f cm\n\n",dis);
delay(300);
}
return 0;
}

نویسنده : این مقاله توسط دوست عزیم آقا میثم سعیدی برامون ارسال شده.

اگر شما هم مقاله و  فایل آموزشی دارید آن را از قسمت تماس با ما به ما بفرستید تا در اختیار دوستاران الکترونیک قرار گیرد.

این نوشته را با دوستانتان در تلگرام به اشتراک بگذارید :

درباره ی جهاندیده

با سلام درود به شما که مطالب سایت خودتان را مطالعه می کنید امیدوارم مطالب سایت برایتان مفید باشد و باعث پیشرفت روز افزون شما شود. دوران راهنمایی در کار منتاژ کیت های الکترونیکی بودم تا رفتم هنرستان ^_^ دو سال هنرستان الکترونیک خیلی چیزها یاد گرفتم ! دو سال کاردانی الکترونیک و کارشناسی ICT گرایش بهره برداری از سیستم های مخابراتی پر از تجربه بود و مدتی است در الکترونیک دنیای مشغولم . الکترونیک - تکنولوژی - ICT ، برنامه نویسی ...

۳ دیدگاه

  1. محمدکریم آفرین

    سلام و تشکر از مطالب جدید و آموزنده شما.

  2. سلام
    بزرگوار نیاز دارم عرض یه نوارپلاستیکی که از دستگاه بیرون میاد ودائم کنترل کنم ودر صورت کم یا زیاد شدن بلافاصله مطلع بشم.مثلا با وب کم یا هرسنسور دیگه عرض نوار کنترل بشه پیشنهاد شما چیه؟
    از چه برنامه ای استفاده کنم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوزده + ده =