الحصول على تسليم مجانا على جميع الطلبات أكثر من 20 جنيه!

باستخدام HC-SR04 مع Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

ال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 الخاص بك. استمتع بالتجربة!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

اترك تعليقًا