الHC-SR04 حساس الموجات فوق الصوتية هو أداة شعبية وفعّالة من حيث التكلفة لقياس المسافة في مشاريع الهواة والمحترفين المختلفة. عند اقترانه بـ Raspberry Pi، يفتح آفاقًا واسعة لإنشاء تطبيقات مثل اكتشاف العقبات، قياس المستويات، وحتى التركيبات التفاعلية. ستوجهك هذه التدوينة خلال عملية إعداد واستخدام حساس HC-SR04 مع Raspberry Pi الخاص بك.
ما هو حساس الموجات فوق الصوتية HC-SR04؟
الHC-SR04 هو وحدة حساس موجات فوق صوتية تقيس المسافة عبر إصدار موجات فوق صوتية وحساب الوقت المستغرق لعودة الصدى. يعمل عند 5V ومعروف بدقته وموثوقيته في قياسات المسافة القصيرة إلى المتوسطة، عادةً بين 2 cm و 400 cm.
المكونات التي ستحتاجها
- Raspberry Pi (أي طراز يحتوي على دبابيس GPIO، مثل Raspberry Pi 4)
- HC-SR04 حساس الموجات فوق الصوتية
- أسلاك توصيل (Jumper Wires)
- لوحة تجارب (Breadboard)
- مقاومة 10kΩ (للتقسيم الجهدي)
- اختياري: LED ومقاومة للتغذية البصرية
توصيل HC-SR04 إلى Raspberry Pi
توصيل HC-SR04 إلى Raspberry Pi يتطلب تعاملًا حذرًا، خاصة لأن دبابيس GPIO في Raspberry Pi تعمل على 3.3V بينما يعمل HC-SR04 على 5V. لمنع تلف جهاز Pi، من الضروري استخدام مقسم جهد على دبوس Echo.
وصلات الدبابيس
- VCC من HC-SR04 إلى دبوس 5V على Raspberry Pi
- GND من HC-SR04 إلى GND على Raspberry Pi
- Trig دبوس HC-SR04 إلى GPIO pin على Raspberry Pi (مثال: GPIO23)
- Echo دبوس HC-SR04 إلى Raspberry Pi عبر مقسم جهد
إعداد مقسم الجهد
للاتصال الآمن بدبوس Echo إلى Raspberry Pi، استخدم مقسم جهد بمقاومة 10kΩ ومقاومة 20kΩ. سيخفض هذا إشارة 5V إلى ما يقارب 3.3V.
# مثال مخطط لمقسم الجهد
# HC-SR04 دبوس Echo ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
# |
# 20kΩ
# |
# GND
تثبيت المكتبات اللازمة
قبل كتابة الكود، تأكد من أن Raspberry Pi محدَّث ولديه المكتبات اللازمة مثبتة.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio
كتابة سكربت بايثون
فيما يلي سكربت بايثون بسيط للتعامل مع حساس 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()
تشغيل السكربت
تأكَّد من صحة التوصيلات ثم شغّل السكربت باستخدام بايثون 3:
python3 hc-sr04.py
يجب أن ترى المسافة المقاسة بالسنتيمتر مطبوعة في وحدة التحكم. إذا كنت تستخدم LED لتغذية بصرية، يمكنك تعديل السكربت لإضاءة الـ LED عندما يكون جسم ما ضمن مدى معين.
تحسين مشروعك
بمجرد أن تعمل قياسات المسافة الأساسية، فكّر في دمج ميزات إضافية:
- مؤشرات LED: استخدم LEDs للإشارة إلى نطاقات مسافة مختلفة.
- شاشة LCD: عرض المسافة على شاشة LCD.
- تسجيل البيانات: سجل قياسات المسافة عبر الزمن للتحليل.
- أنظمة التنبيه: تشغيل إنذارات أو إشعارات عندما تكون الأجسام قريبة جدًا.
استكشاف المشكلات الشائعة وإصلاحها
العمل مع الحساسات وGPIO قد يكون تحديًا أحيانًا. فيما يلي بعض المشاكل الشائعة وكيفية معالجتها:
- توصيل خاطئ: تحقق من جميع التوصيلات، خصوصًا مقسم الجهد على دبوس Echo.
- قياسات بها ضوضاء: تأكد من ثبات الإعداد وفكّر بإضافة مكثفات لتصفية الضوضاء.
- تعارضات GPIO: تأكد من أنّ لا سكربتات أو خدمات أخرى تستخدم نفس دبابيس GPIO.
-
الأذونات: شغّل السكربتات بالأذونات المناسبة، باستخدام
sudoعند الضرورة.
الخاتمة
حساس الموجات فوق الصوتية HC-SR04 مكوّن متعدد الاستخدامات وموثوق يمكنه، عند دمجه مع Raspberry Pi، خدمة مجموعة واسعة من التطبيقات من قياس المسافة البسيط إلى أنظمة الأتمتة المعقدة. باتباع الخطوات الموضحة في هذا الدليل، يجب أن تكون قادرًا على إعداد والبدء بالتجربة على HC-SR04 على Raspberry Pi الخاص بك. استمتع بالتجربة!


