جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

اسفند 18, 1396
ارسال شده توسط mjavad
پروژه، پروژه های رایگان، پروژه های رزبری پای
اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

به نام خدا

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

در این پروژه ما با استفاده از ماژول سنسور آلتراسونیک HC-SR04 و رزبری پای  عمل اندازه گیری فاصله را انجام می دهیم .

سنسور آلتراسونیکHC-SR04 :

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

این سنسور یک  موج فراصوت را در فرکانس 40KHz در هوا منتشر می کند و اگر  در مسیر این موج یک شی قرار بگیرد ، موج به سنسور منعکس می شود .

با استفاده از زمانی که طول می کشد تا موج به  شی  برخورد کند و به سنسور برگردد، می توانیم فاصله را محاسبه کنیم .

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

سنسور آلتراسونیک از یک تکنیک به نام ECHO استفاده می کند. “ECHO” به معنی یک موج صوتی منعکس شده است. هنگامی که صوت پس از رسیدن به یک جسم بازتاب میشود، شما ECHO خواهید داشت.

ماژول HCSR04 موجب ارتعاش صدا در محدوده فراصوت می شود، زمانی که پین ​​”Trigger” را برای 10us یک  کنیم باعث میشود که سنسور  8 موج  آلتراسونیک را با سرعت ارسال  کند و پس از برخورد با شی، توسط پین Echo دریافت میشود .

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

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

ما می توانیم فاصله جسم را بر اساس زمان صرف شده توسط موج آلتراسونیک برای بازگشت به سنسور محاسبه کنیم. از آنجا که زمان و سرعت صوت شناخته شده است، می توانیم فاصله را با فرمول زیر محاسبه کنیم.
فاصله = (زمان x سرعت صدا در هوا)\2         سرعت صوت در هوا = 343 متر بر ثانیه
این مقدار برای این بر 2 تقسیم شده است که موج زمانی را برای رسیدن به جسم و همان مقدار زمان را برای برگشت به سنسور صرف  می کند پس زمان تا رسیدن صوت به سنسور نصف کل زمانی است که صرف این فرآیند می شود.

قطعات مورد نیاز اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04 :

در اینجا ما از  رزبری پای مدل B با Raspbian Jessie OS استفاده می کنیم.

رزبری پای با سیستم عامل از پیش نصب شده روی آن

سنسور آلتراسونیک HC-SR04

منبع تغذیه 5 ولت

3 قطعه مقاومت 1KΩ

خازن 1000uf

ال سی دی کاراکتری 16*2

توضیحات مدار :

اتصالات بین رسپبری پای و LCD در جدول زیر آورده شده است:

LCD connection

Raspberry Pi connection

GND

GND

VCC

+5V

VEE

GND

RS

GPIO17

R/W

GND

EN

GPIO27

D0

GPIO24

D1

GPIO23

D2

GPIO18

D3

GPIO26

D4

GPIO5

D5

GPIO6

D6

GPIO13

D7

GPIO19

در این مدار ما از ارتباط 8 بیتی (D0-D7) برای اتصال LCD به رسپبری پای استفاده می کنیم . اگرچه این نوع ارتباط اجباری نیست و ما همچنان می توانیم از ارتباط 4 بیتی استفاده کنیم (D4-D7) ، اما برنامه نویسی ارتباط 4 بیتی برای تازه کاران کمی پیچیده خواهد شد بنابراین ما از ارتباط 8 بیتی استفاده  می کنیم. در این قسمت ما 10 پین از LCD را به رزبری پای متصل کرده ایم که 8 پین از آنها مربوط به انتقال دیتا و 2 پین دیگر برای کنترل هستند .

در پایین دیاگرام مداری برای اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04 آورده شده است:

اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

همانطور که در تصویر مشخص است سنسور آلترا سونیک HCSR04 چهار پایه دارد :

1 -VCC : تغذیه 5 ولت

2-  TRIGGER : به این پایه باید یک پالس با سطح 1 منطقی به مدت 10us داده شود تا سنسور مسافت را بسنجد.

3- ECHO : پالس خروجی را که مقدار فاصله را می توان از روی آن تشخیص داد،  پس از عمل TRIGGER فراهم می کند.

4- GROUND

 

خروجی پین ECHO مقدار 5 ولت را دارد که نمی تواند مستقیما به رزبری پای متصل شود . بنابراین ما از یک مدار تقسیم ولتاژ  (که از دو مقاومت R1 و R2  ساخته شده است) برای گرفتن 3.3 ولت به جای 5 ولت منطقی  استفاده می کنیم.

توضیح عملکرد :

مراحل کار اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04

1-تحریک کردن سنسور با یک کردن پین متصل به  trigger  سنسور به مدت 10us

2-صوت توسط سنسور ارسال می شود. پس از دریافت ECHO، ماژول سنسور خروجی متناسب با فاصله را فراهم می کند.

3-ما زمانی که پالس خروجی از حالت صفر به یک منطقی می رود و زمانی که دوباره از یک به صفر منطقی بر می گردد را ثبت می کنیم.

4- فاصله در صفحه LCD 16×2 نمایش داده می شود

دانلود کد های برنامه اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04 :

[maxbutton id=”207″ url=”http://avatrobo.ir/wp-content/uploads/2018/03/Raspberrypi-and-ultrasonic.txt” ]

import time
import RPi.GPIO as IO    #calling for header file which helps in using GPIOs of PI
string_of_characters = 0 
IO.setwarnings(False)    #do not show any warnings
IO.setmode (IO.BCM)      #programming the GPIO by BCM pin numbers. (like PIN29 as GPIO5)
IO.setup(17,IO.OUT)      #initialize GPIO17,27,24,23,18,26,5,6,13,19,21 as an output
IO.setup(27,IO.OUT)
IO.setup(24,IO.OUT)
IO.setup(23,IO.OUT)
IO.setup(18,IO.OUT)
IO.setup(26,IO.OUT)
IO.setup(5,IO.OUT)
IO.setup(6,IO.OUT)
IO.setup(13,IO.OUT)
IO.setup(19,IO.OUT)
IO.setup(21,IO.OUT)
IO.setup(16,IO.IN)      #initialize GPIO16 as an input
def send_a_command (command):  #steps for sending a command to 16x2 LCD
    pin=command
    PORT(pin);
    IO.output(17,0)
    #PORTD&= ~(1<<RS);
    IO.output(27,1)
    #PORTD|= (1<<E);
    time.sleep(0.001)
    #_delay_ms(50);
    IO.output(27,0)
    #PORTD&= ~(1<<E);
    pin=0
    PORT(pin); 
def send_a_character (character):  #steps for sending a character to 16x2 LCD
    pin=character
    PORT(pin);
    IO.output(17,1)
    #PORTD|= (1<<RS);
    IO.output(27,1)
    #PORTD|= (1<<E);
    time.sleep(0.001)
    #_delay_ms(50);
    IO.output(27,0)
    #PORTD&= ~(1<<E);
    pin=0
    PORT(pin);
def PORT(pin):                    #assigning level for PI GPIO for sending data to LCD through D0-D7
    if(pin&0x01 == 0x01):
        IO.output(24,1)
    else:
        IO.output(24,0)
    if(pin&0x02 == 0x02):
        IO.output(23,1)
    else:
        IO.output(23,0)
    if(pin&0x04 == 0x04):
        IO.output(18,1)
    else:
        IO.output(18,0)
    if(pin&0x08 == 0x08):
        IO.output(26,1)
    else:
        IO.output(26,0)    
    if(pin&0x10 == 0x10):
        IO.output(5,1)
    else:
        IO.output(5,0)
    if(pin&0x20 == 0x20):
        IO.output(6,1)
    else:
        IO.output(6,0)
    if(pin&0x40 == 0x40):
        IO.output(13,1)
    else:
        IO.output(13,0)
    if(pin&0x80 == 0x80):
        IO.output(19,1)
    else:
        IO.output(19,0)
def send_a_string(string_of_characters):
  string_of_characters = string_of_characters.ljust(16," ")
  for i in range(16):
    send_a_character(ord(string_of_characters[i]))  #send characters one by one through data port
    
while 1:
    send_a_command(0x38);  #16x2 line LCD
    send_a_command(0x0E);  #screen and cursor ON
    send_a_command(0x01);  #clear screen
    time.sleep(0.1)                #sleep for 100msec
    
    IO.setup(21,1)
    time.sleep(0.00001)
    IO.setup(21,0)           #sending trigger pulse for sensor to measure the distance
        
    while (IO.input(16)==0):
        start = time.time()  #store the start time of pulse output         
            
    while (IO.input(16)==1):
        stop = time.time()   #store the stop time 
      
            
    distance = ((stop - start)*17150)  #calculate distance from time
    distance = round(distance,2)       #round up the decimal values
    if(distance<400):                  #if distance is less than 400 cm, display the result on LCD 
        send_a_command(0x80 + 0);
        send_a_string ("Dist=%s cm"% (distance));
        time.sleep(0.15)
        
    if(distance>400):                  #If distance is more than 400cm, just print 400+ on LCD
        send_a_command(0x80 + 0);
        send_a_string ("Dist= 400+ cm");
        time.sleep(0.15)

 

برچسب ها: HCSR04آلترسونیک و رزبری پایآموزش اندازه گیری فاصله با رزبری پای و آلتراسونیکپروژه اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04پروژه های رزبری پایدانلود اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04راه اندازی سنسور با رزبری پایرزبری پایفاصله سنج با رزبری پایکد اندازه گیری فاصله با رزبری پای و سنسور آلتراسونیک HCSR04کد رزبری پای
قبلی کنترل موتور براشلس دی سی بدون سنسور با آردوینو به همراه کد
بعدی راه اندازی ماژول جی پی اس با رزبری پای

پست های مرتبط

اردیبهشت 9, 1398

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

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

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

mjavad
ادامه مطلب

بهمن 10, 1397

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

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

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

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.