پروژه راه اندازی سنسور فاصله سنج آلتراسونیک SR04 با استفاده از Raspberry Pi به زبان پایتون

0

راهنمای راه اندازی سنسور فاصله سنج آلتراسونیک SR04 با استفاده از Raspberry Pi به زبان پایتون

هدف از این آموزش راه اندازی سنسور فاصله سنج آلتراسونیک SR04  به زبان  پایتون  توسط برد  Raspberry Pi  میباشد.

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

  1. رزبری پای (رزبری پای مورد استفاده در این آموزش Raspberry Pi3 model B می باشد.)
  2. LCD2X16
  3. ماژول PCF8574
  4. SR04
  5. برد بورد
  6. سیم برد بورد

سنسور SR04

سنسور فاصله سنج آلتراسونیک HC-SR04 برای اندازه گیری مسافت استفاده می شود. محدوده فرکانس شنوایی انسان ۲۰ هرتز تا ۲۰ هزار هرتز است. محدوده فرکانسی امواج مافوق صوت ۴۰ کیلو هرتز تا چندین مگا هرتز می‌باشد.امواج مافوق، کاربردهای فراوانی از جمله در لیزر، تخلیه الکتریکی برای بهبود خواص سطحی و افزایش نرخ باربرداری، سنجش فاصله، عمق مخزن، شستشوی دقیق ظروف آزمایشگاهی، تعیین فشار خون بیمار، همگن کردن مواد مذاب، جوشکاری مواد غیر هم جنس، ریخته گری، تراشکاری، فرزکاری، سوراخکاری و غیره دارد. سنسور HC-SR04 برای اندازه گیری فواصل بدون وجود مانع 2cm تا 400cm استفاده می شود. این ماژول دارای فرستنده و گیرنده اولتراسونیک و یک مدار کنترل است. نحوه عملکرد ماژول به این صورت است که میزان اختلاف زمان ارسال و دریافت سیگنال محاسبه می شود و به راحتی از روی آن مسافت قابل محاسبه خواهد بود.

تعریف پایه های سنسور SR04

  1. Vcc توان ورودی، 5V
  2. TRIG ورودی Trigger
  3. ECHO خروجی Echo
  4. GND زمین یا Ground
سنسور-SR04
سنسور SR04

نحوه اتصال به رزبری پای

  1. اتصال پین مثبت SR04 به تغذیه 5 ولت برد رزبری پای (سیم قرمز)
  2. اتصال پین منفی سنسور به پین GND برد رزبری پای (سیم مشکی)
  3. اتصال پین TRIG به GPIO4(PIN7) مانند تصویر زیر
  4. اتصال پین ECHO به PIN11 مانند تصویر زیر
اتصال سنسور SR04 به رزبری پای
پایه-های-رزبری-پای
پایه های رزبری پای

توجه:

استفاده از مقسم مقاومتی برای عدم اسیب رسانی به پایه های برد زربری پای الزامیست.

نحوه اتصال I2CLCD

اتصال-ال-سی-دی-به-رزبری-پای-با-I2C
اتصال ال سی دی به رزبری پای با I2C

برنامه پایتون

ابتدا با دستور زیر یک اسکریپت پایتون ایجاد می کنیم:

[python]

Sudo nano sr04.py

[/python]

برنامه کامل پایتون به شرح زیر می باشد:

[python]
import I2C_LCD_driver
import RPi.GPIO as GPIO
import time
try:
mylcd = I2C_LCD_driver.lcd()
GPIO.setmode(GPIO.BOARD)
mylcd.lcd_display_string(" Redronic",1) #Give a intro message
time.sleep(2) #wait for 2 secs
PIN_TRIGGER = 7
PIN_ECHO = 11
GPIO.setup(PIN_TRIGGER, GPIO.OUT)
GPIO.setup(PIN_ECHO, GPIO.IN)
while 1:
GPIO.output(PIN_TRIGGER, GPIO.LOW)
print "Waiting for sensor to settle"
time.sleep(2)
print "Calculating distance"
GPIO.output(PIN_TRIGGER, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(PIN_TRIGGER, GPIO.LOW)
while GPIO.input(PIN_ECHO)==0:
pulse_start_time = time.time()
while GPIO.input(PIN_ECHO)==1:
pulse_end_time = time.time()
pulse_duration = pulse_end_time – pulse_start_time
distance = round(pulse_duration * 17150, 2)
print "Distance:",distance,"cm"
mylcd.lcd_display_string("Dis = %.1f cm" % distance, 2)
time.sleep(2)
mylcd.lcd_display_string(" ",2) #Give a intro message
#mylcd.lcd_clear()
finally:
GPIO.cleanup()
[/python]

در برنامه بالا ابتدا دو کتابخانه RPI.GPIO و TIME را به برنامه اضافه کرده ایم تا بتوانیم به واسطه انها از توابع کنترلی زمان و توابع دسترسی و تنظیمات پایه های برد رزبری پای استفاده کنیم.

در مرحله بعد پین های TRIG  و ECHO و حالت انها رو مشخص کرده و پس از ان در یک حلقه بی نهایت مقادیر زمان رفت و برگشت امواج را خوانده و فاصله را بدست می اوریم.

در پایان هم مقادیر بدست امده را با استفاده از کتابخانه I2C_LCD_driver بر روی  LCD  نمایش می دهیم.

و با فشار دادن کلید های CTRL + X و سپس Y (در انتها زدن کلید Enter) اقدام به ذخیره اسکریپت نوشته شده می کنیم.

خروجی برنامه پایتون:

پروژه-راه-اندازی-آلتراسونیک-با-رزبری-پای
پروژه راه اندازی آلتراسونیک با رزبری پای
Choose your Reaction!
دیدگاه خود را بنویسید

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

redronic.com