يعد مستشعر الموجات فوق الصوتية HC-SR04 أداة شائعة وفعالة من حيث التكلفة لقياس المسافة في مختلف المشاريع DIY والمهنية. عند إقرانه مع Raspberry Pi ، فإنه يفتح عالمًا من الاحتمالات لإنشاء تطبيقات مثل اكتشاف العقبات ، وقياس المستوى ، وحتى المنشآت التفاعلية. سوف يرشدك منشور المدونة هذا خلال عملية إعداد واستخدام HC-SR04 باستخدام Raspberry Pi.
ما هو مستشعر الموجات فوق الصوتية HC-SR04؟
HC-SR04 هي وحدة استشعار بالموجات فوق الصوتية التي تقيس المسافة عن طريق انبعاث الموجات فوق الصوتية وحساب الوقت الذي يستغرقه الصدى للعودة. تعمل عند 5V وهي معروفة بدقة وموثوقيتها في قياسات مسافة قصيرة إلى متوسطة المدى ، وعادة ما بين 2 سم و 400 سم.
المكونات التي ستحتاجها
- Raspberry PI (أي نموذج مع دبابيس GPIO ، مثل Raspberry PI 4)
- HC-SR04 مستشعر الموجات فوق الصوتية
- الأسلاك الطائر
- لوح
- مقاوم 10KΩ (لتقسيم الجهد)
- اختياري: LED والمقاوم للتعليقات المرئية
توصيل HC-SR04 إلى Raspberry Pi
يتطلب توصيل HC-SR04 بـ Raspberry Pi التعامل الدقيق ، خاصة وأن دبابيس Raspberry PI GPIO تعمل عند 3.3V وتعمل HC-SR04 عند 5V. لمنع تلف Pi الخاص بك ، من الضروري استخدام مقسم الجهد على دبوس الصدى.
اتصالات دبوس
- VCC من HC-SR04 إلى 5V دبوس على التوت بي
- GND من HC-SR04 إلى GND على التوت PI
- علم حساب المثلثات دبوس HC-SR04 إلى أ دبوس GPIO على Raspberry Pi (على سبيل المثال ، GPIO23)
- صدى دبوس من HC-SR04 إلى Raspberry Pi من خلال مقسم الجهد
إعداد مقسم الجهد
لتوصيل دبوس الصدى بأمان إلى Raspberry Pi ، استخدم مقسمًا للجهد مع مقاوم 10KΩ ومقاوم 20KΩ. سيؤدي هذا إلى انخفاض إشارة 5V إلى حوالي 3.3 فولت.
# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
# |
# 20kΩ
# |
# GND
تثبيت المكتبات اللازمة
قبل كتابة الرمز ، تأكد من تحديث Raspberry Pi الخاص بك ، ويتم تثبيت المكتبات اللازمة.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio
كتابة نص بيثون
يوجد أدناه برنامج نصي Python بسيط للتفاعل مع مستشعر HC-SR04. يرسل هذا البرنامج النصي نبضًا مشغلًا ، وينتظر الصدى ، ويحسب المسافة بناءً على الوقت المستغرق حتى يعود الصدى.
import RPi.GPIO as GPIO
import time
# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
# Set GPIO Pins
TRIG = 23
ECHO = 24
print("Distance Measurement In Progress")
# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def distance():
# Set TRIG to LOW
GPIO.output(TRIG, False)
time.sleep(2)
# Send 10us pulse to TRIG
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
start_time = time.time()
stop_time = time.time()
# Save StartTime
while GPIO.input(ECHO) == 0:
start_time = time.time()
# Save Time of Arrival
while GPIO.input(ECHO) == 1:
stop_time = time.time()
# Time difference between start and arrival
time_elapsed = stop_time - start_time
# Multiply with speed of sound (34300 cm/s)
# and divide by 2, because there and back
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print("Measured Distance = %.1f cm" % dist)
time.sleep(1)
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
تشغيل البرنامج النصي
تأكد من أن الأسلاك الخاصة بك صحيحة ثم قم بتشغيل البرنامج النصي باستخدام Python 3:
python3 hc-sr04.py
يجب أن ترى المسافة المقاسة في سنتيمترات مطبوعة على وحدة التحكم. إذا كنت تستخدم LED للتعليقات المرئية ، فيمكنك تعديل البرنامج النصي لإضاءة LED عندما يكون الكائن ضمن نطاق معين.
تعزيز مشروعك
بمجرد أن يكون لديك قياسات المسافة الأساسية تعمل ، فكر في دمج ميزات إضافية:
- مؤشرات LED: استخدم LEDs للإشارة إلى نطاقات مسافة مختلفة.
- شاشة LCD: إظهار المسافة على شاشة LCD.
- تسجيل البيانات: تسجيل قياسات المسافة مع مرور الوقت للتحليل.
- أنظمة التنبيه: تشغيل الإنذارات أو الإخطارات عندما تكون الكائنات قريبة جدًا.
استكشاف الأخطاء وإصلاحها القضايا المشتركة
قد يكون العمل مع أجهزة الاستشعار و GPIO في بعض الأحيان تحديًا. فيما يلي بعض المشكلات الشائعة وكيفية معالجتها:
- الأسلاك غير الصحيحة: تحقق من جميع الاتصالات ، وخاصة مقسم الجهد على دبوس الصدى.
- قياسات صاخبة: تأكد من أن الإعداد مستقر وفكر في إضافة المكثفات لتصفية الضوضاء.
- صراعات GPIO: تأكد من عدم وجود نصوص أو خدمات أخرى تستخدم نفس دبابيس GPIO.
-
أذونات: قم بتشغيل البرامج النصية الخاصة بك بأذونات مناسبة ، باستخدام
sudo
إذا لزم الأمر.
خاتمة
يعد مستشعر الموجات فوق الصوتية HC-SR04 مكونًا متعدد الاستخدامات وموثوق به ، عند دمجه مع Raspberry Pi ، يمكن أن يخدم العديد من التطبيقات من قياس المسافة البسيطة إلى أنظمة الأتمتة المعقدة. باتباع الخطوات الموضحة في هذا الدليل ، يجب أن تكون قادرًا على إعداد وبدء تجربة HC-SR04 على Raspberry Pi. العبث سعيد!