في هذا المشروع ، سنقوم بربط وحدة استشعار الموجات فوق الصوتية HC-SR04 مع Raspberry Pi لقياس المسافة. لقد استخدمنا سابقًا مستشعر الموجات فوق الصوتية مع Raspberry Pi لبناء روبوت تجنب العقبة. قبل المضي قدمًا ، دعنا نتعرف على مستشعر الموجات فوق الصوتية.
جهاز استشعار الموجات فوق الصوتية HC-SR04:
يستخدم جهاز الاستشعار بالموجات فوق الصوتية لقياس المسافة بدقة عالية وقراءات مستقرة. يمكن قياس المسافة من 2 سم إلى 400 سم أو من 1 بوصة إلى 13 قدم. تبعث موجة فوق صوتية بتردد 40 كيلو هرتز في الهواء وإذا كان الجسم سيعترض طريقه ، فسوف يرتد مرة أخرى إلى المستشعر. باستخدام ذلك الوقت الذي يستغرقه ضرب الجسم والعودة ، يمكنك حساب المسافة.
يستخدم جهاز الاستشعار بالموجات فوق الصوتية تقنية تسمى "ECHO". "ECHO" هو ببساطة موجة صوتية منعكسة. سيكون لديك ECHO عندما ينعكس الصوت مرة أخرى بعد الوصول إلى طريق مسدود.
تولد وحدة HCSR04 اهتزازًا صوتيًا في نطاق الموجات فوق الصوتية عندما نجعل دبوس "Trigger" مرتفعًا لحوالي 10us والذي سيرسل انفجارًا صوتيًا من 8 دورات بسرعة الصوت وبعد ضرب الكائن ، سيتم استقباله بواسطة دبوس Echo. اعتمادًا على الوقت الذي يستغرقه اهتزاز الصوت للعودة ، فإنه يوفر خرج نبضًا مناسبًا. إذا كان الكائن بعيدًا ، فسيستغرق الأمر وقتًا أطول لسماع ECHO وسيكون عرض نبضة الإخراج كبيرًا. وإذا كان العائق قريبًا ، فسيتم سماع صوت ECHO بشكل أسرع وسيكون عرض النبض الناتج أصغر.
يمكننا حساب مسافة الجسم بناءً على الوقت الذي تستغرقه الموجات فوق الصوتية للعودة إلى المستشعر. نظرًا لأن وقت الصوت وسرعته معروفان ، يمكننا حساب المسافة بالصيغ التالية.
- المسافة = (الوقت × سرعة الصوت في الهواء (343 م / ث)) / 2.
يتم تقسيم القيمة على اثنين حيث أن الموجة تتحرك للأمام وللخلف تغطي نفس المسافة ، وبالتالي فإن الوقت اللازم للوصول إلى العائق هو نصف إجمالي الوقت المستغرق
إذن المسافة بالسنتيمتر = 17150 * T.
لقد قمنا سابقًا بالعديد من المشاريع المفيدة باستخدام مستشعر Ultrasonic و Arduino ، تحقق منها أدناه:
- قياس المسافة على أساس اردوينو باستخدام جهاز استشعار فوق صوتي
- إنذار الباب باستخدام Arduino والمستشعر فوق الصوتي
- مراقبة القمامة المستندة إلى IOT باستخدام Arduino
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi و Raspberry PI LED Blinking للبدء ، بخلاف ما نحتاج إليه:
- Raspberry Pi مع نظام تشغيل مثبت مسبقًا
- HC-SR04 جهاز استشعار بالموجات فوق الصوتية
- مزود الطاقة (5 فولت)
- 1KΩ المقاوم (3 قطع)
- مكثف 1000 فائق التوهج
- 16 * 2 حرف LCD
شرح الدائرة:
يتم عرض الاتصالات بين Raspberry Pi و LCD في الجدول أدناه:
اتصال LCD |
اتصال Raspberry Pi |
GND |
GND |
VCC |
+ 5 فولت |
VEE |
GND |
RS |
GPIO17 |
ص / دبليو |
GND |
EN |
GPIO27 |
د 0 |
GPIO24 |
D1 |
GPIO23 |
د 2 |
GPIO18 |
د 3 |
GPIO26 |
د 4 |
GPIO5 |
د 5 |
GPIO6 |
د 6 |
GPIO13 |
د 7 |
GPIO19 |
في هذه الدائرة ، استخدمنا اتصال 8 بت (D0-D7) لتوصيل شاشة LCD مع Raspberry Pi ، ولكن هذا ليس إلزاميًا ، يمكننا أيضًا استخدام اتصال 4 بت (D4-D7) ، ولكن مع برنامج اتصال 4 بت يصبح قليلاً معقدة بالنسبة للمبتدئين ، لذا انتقل إلى اتصال 8 بت لقد قمنا هنا بتوصيل 10 دبابيس من LCD بـ Raspberry Pi حيث 8 دبابيس عبارة عن دبابيس بيانات و 2 دبابيس دبابيس تحكم.
يوجد أدناه مخطط الدائرة لتوصيل مستشعر HC-SR04 وشاشة LCD مع Raspberry Pi لقياس المسافة.
كما هو مبين في الشكل ، يحتوي مستشعر الموجات فوق الصوتية HC-SR04 على أربعة دبابيس ،
- PIN1- VCC أو + 5V
- PIN2- TRIGGER (يتم إعطاء نبضة عالية 10us لإخبار المستشعر بالمسافة)
- PIN3- ECHO (يوفر خرج نبضي يمثل عرضه المسافة بعد الزناد)
- PIN4- الأرض
يوفر دبوس Echo نبضة خرج + 5 فولت لا يمكن توصيلها بـ Raspberry Pi مباشرة. لذلك سنستخدم دائرة مقسم الجهد (تم إنشاؤها باستخدام R1 و R2) للحصول على منطق + 3.3 فولت بدلاً من منطق + 5 فولت.
شرح العمل:
العمل الكامل لمقياس مسافة Raspberry Pi هو
1. تشغيل جهاز الاستشعار عن طريق سحب دبوس الزناد لمدة 10uS.
2. يتم إرسال الموجة الصوتية بواسطة جهاز الاستشعار. بعد استلام ECHO ، توفر وحدة المستشعر مخرجات تتناسب مع المسافة.
3. سنقوم بتسجيل الوقت الذي ينتقل فيه النبض الناتج من LOW إلى HIGH وعندما ينتقل مرة أخرى من HIGH إلى LOW.
4. سيكون لدينا وقت البدء والتوقف. سنستخدم معادلة المسافة لحساب المسافة.
5. يتم عرض المسافة في شاشة عرض LCD مقاس 16 × 2.
وفقًا لذلك قمنا بكتابة برنامج Python لـ Raspberry Pi للقيام بالوظائف التالية:
1. لإرسال الزناد إلى جهاز الاستشعار
2. سجل بدء وإيقاف وقت إخراج النبض من جهاز الاستشعار.
3. لحساب المسافة باستخدام وقت START و STOP.
4. لعرض النتيجة التي تم الحصول عليها على شاشة LCD مقاس 16 * 2.
البرنامج الكامل والفيديو التجريبي معروضان أدناه. تم شرح البرنامج جيدًا من خلال التعليقات ، إذا كان لديك أي شك يمكنك طرحه في قسم التعليقات أدناه.