سنتعرف في هذا المقال على الحساس HC-SR04 المعروف باسم حساس الموجات فوق الصوتية (حساس الألتراسونيك)، وآلية عمله وربطه مع لوحة NodeMCU، إضافةً إلى كيفية قياس المسافة باستخدامه.

لمحة عن HC-SR04

تقيس حساسات الألتراسونيك المسافة باستخدام الموجات فوق الصوتية، إذ يصدر رأس الحساس موجة فوق صوتية بتردد معين وينتظر ارتدادها عن الهدف، وبتسجيل الزمن الذي تستغرقه تلك الموجة المرسلة منذ لحظة إصدارها حتى استقبال الحساس لانعكاسها، يمكن حساب المسافة بين الحساس والجسم.

الخطوة 1: المتطلبات

متطلبات حساس الألتراسونيك
( المتطلبات، مصدر الصورة: instructables)

قائمة المتطلبات  للتنفيذ:

  1. المتطلبات المادية:
  • لوحة NodeMCU
  • حساسHC-SR04 
  • لوحة اختبار bread board
  • أسلاك التوصيل Jumper wires
  • كابل Micro USB
  1. المتطلبات البرمجية:
  • بيئة التطوير المتكاملة للأردوينو (Arduino IDE)

الخطوة 2: المواصفات

(لوحة الاختبار مع لوحة NodeMCU، مصدر الصورة: instructables)
(لوحة الاختبار مع لوحة NodeMCU، مصدر الصورة: instructables)
:(حساس HC-SR04، مصدر الصورة: instructables)
:(حساس HC-SR04، مصدر الصورة: instructables)
( أسلاك التوصيل، مصدر الصورة: instructables)
( أسلاك التوصيل، مصدر الصورة: instructables)
( كابل Micro USB، مصدر الصورة: instructables)
( كابل Micro USB، مصدر الصورة: instructables)

مواصفات HC-SR04

  • مصدر الطاقة: 5 فولت تيار مستمر.
  • المدى: 2 سم – 500 سم.
  • تردد الموجات فوق الصوتية: 40 كيلو هرتز.

الخطوة 3: آلية عمل HC-SR04

( HC-SR04، مصدر الصورة: instructables)
( HC-SR04، مصدر الصورة: instructables)
( الإشارات في HC-SR04، مصدر الصورة: instructables)
( الإشارات في HC-SR04، مصدر الصورة: instructables)

يحافظ الحساس على قيمة High للطرف (ECHO) لمدة زمنية تتوافق مع الوقت المستغرق لاستقبال انعكاس (صدى) الموجة المرسلة.

  1. يرسل الحساس دفعة من الموجات الصوتية، ويطبق جهداً كهربائياً على الطرف (ECHO) في نفس الوقت.
  2. يستقبل الحساس الموجات الصوتية المنعكسة ويصفّر الجهد المطبق على الطرف (ECHO).

يولد حساس الألتراسونيك نبضة لإرسال البيانات إلى لوحةNodeMCU  أو المتحكم الصغري المستخدم تتناسب مع المسافة إلى الهدف (إشارة PWM تعديل عرض النبضة وهي الإشارة الناتجة عن الطرف ECHO)، ويتراوح زمنها بين 25 ميكرو ثانية و150 ميكرو ثانية بناءً على تلك المسافة، بينما يرسل الحساس نبضة زمنها 38 ميكرو ثانية إلى لوحة NodeMCU إذا لم يكن هناك عائق لتأكيد عدم اكتشاف أجسام ضمن مداه، ويكون زمن نبضة قدح الحساس حوالي 10 ميكروثانية.

طريقة حساب المسافة في الحساس HC-SR04

العلاقة:

D = 1/2 × T × C

حيث: 

D: المسافة

T: الزمن بين إصدار الموجة الصوتية واستقبال ارتدادها

C: سرعة الصوت

(تضرب العَلاقة  ب 2/1 لأن T هو زمن مسافة الذَّهاب  والعودة)

الخطوة 4: توصيل الحساس بلوحة التحكم

( توصيلات الدارة، مصدر الصورة: instructables)
( توصيلات الدارة، مصدر الصورة: instructables)

تجرى توصيلات الدارة على النحو التالي:

  1. يوصل حساس HC-SR04 بلوحة الاختبار.
  2. يوصل طرف جهد التغذية (VCC) للحساس بطرف 3.3 فولت للوحة NodeMCU.
  3. يوصل طرف الأرضي (GND) للحساس بطرف GND للوحة NodeMCU.
  4. يوصل طرف القدح (Trigger) للحساس بطرف الدخل/الخرج الرقمي D4 للوحة NodeMCU.
  5. يوصل طرف الصدى (Echo) للحساس بطرف الدخل/الخرج الرقمي D3 للوحة NodeMCU.

يجب أيضاً تثبيت برنامَج  Arduino IDE للبدء بالبرمجة.

الخطوة 5: كتابة البرنامَج 

( الدارة بعد تثبيت العناصر على لوحة الاختبار، مصدر الصورة: instructables)
( الدارة بعد تثبيت العناصر على لوحة الاختبار، مصدر الصورة: instructables)
( المنظور الأمامي للدارة بعد التوصيل، مصدر الصورة: instructables)
( المنظور الأمامي للدارة بعد التوصيل، مصدر الصورة: instructables)
( المنظور الخلفي للدارة بعد التوصيل، مصدر الصورة: instructables)
( المنظور الخلفي للدارة بعد التوصيل، مصدر الصورة: instructables)

الكود البرمجي

لتحميل الكود البرمجي اضغط هنا.

أنشئ برنامجًا  جديدًا ضمن Arduino IDE ثم انسخ البرنامَج  (الكود) المكتوب أعلاه وقم بلصقه فيه، ثم اضغط على زر Upload، ويمكن تعديله بناءً على المشروع المطلوب أو تركه كما هو.

الخطوة 6: استعراض الخرج

( توصيل الدارة بالحاسوب، مصدر الصورة: instructables)
( توصيل الدارة بالحاسوب، مصدر الصورة: instructables)
( الخرج على شاشة المنفذ التسلسلي، مصدر الصورة: instructables)
( الخرج على شاشة المنفذ التسلسلي، مصدر الصورة: instructables)

وبعد إنهاء التوصيلات ورفع البرنامَج  تظهر قراءات  حساس الألتراسونيك على واجهة الاتصال التسلسلي Serial Monitor، وبذلك يصبح المشروع مُعدّ  لقياس المسافة إلى جسم محدد.

ملاحظة: يمكننا إضافة ليد وصفارة إنذار (Buzzer) إلى المشروع ليبدو أكثر إإبداعًا

الخطوة 7: قياس المسافة

( وضع عائق أمام حساس الألتراسونيك لقياس المسافة، مصدر الصورة: instructables)
( وضع عائق أمام الحساس، مصدر الصورة: instructables)
( خرج الحساس على شاشة المنفذ التسلسلي، مصدر الصورة: instructables)
( خرج الحساس على شاشة المنفذ التسلسلي، مصدر الصورة: instructables)

بما أن سرعة الصوت معروفة يمكن للوحة NodeMCU حساب المسافة بعد معرفة المدة التي استغرقتها الموجات الصوتية للانتقال من وحدة الحساس والعودة إليها (حسب المدة التي بقي فيها طرف الصدى ECHO مفعَّلاً HIGH). تبعًا للمعادلة التي ذكرناها سابقًا (وهذه الخطوات موضحة ضمن  البرنامج )، وتظهر على واجهة الاتصال التسلسلي المسافة بين الحساس والجسم الموضوع أمامه فللحساس مجال قياس دقيق من (2سم -400سم).


المصدر: هنا

ترجمة:إيليا سليمان، مراجعة: يارا قاضون، تدقيق لغوي: بولا ابراهيم ، تصميم: علي العلي، تحرير: معتصم حفيان.