الألتراسونيك Ultrasonic
اهلاً بمتابعي مدونتي الأحباء , الموضوع الذي سأتناوله في تدوينتي يعتبر مهم جداً نظراً لأستخداماته في العديد من التطبيقات , حديثي اليوم سيكون عن حساس الأمواج فوق الصوتية أو ما يعرف ب Ultrasonic
حسناً لنتعرف في بداية عن مبدأ عمل الأمواج فوق الصوتية .
الفكرة مرتكزه على إطلاق موجات عالية التردد و التي عند اصطدامها بجسم ما ترتد هذه الموجات على شكل صدىEcho .
سرعة الموجات في الفراغ هي 345متر\ثانية عند 25سيلسيوس و تختلف من وسط لأخر حسب الوسط الناقل كالسوائل و الغازات و الأجسام الصلبة .
سنركز من الآن على انتقال الموجات فوق الصوتية في الفراغ .
لمعرفة المسافة , يكفي أن نعرف سرعة هذه الموجات , و أن نعرف الفرق بين زمن الارسال و زمن الأرتداد للصدى و بهذا يمكننا معرفة المسافة حسب قانون نيوتن :
المسافه = السرعه × الزمن
ستجد تطبيقاته في الخفاش , الغواصات , الرادارات
حسناً لننتقل إلى ما سنقوم اليوم بفعله , وما هي الإمكانيات التي يوفرها لنا هذا الحساس .
يمكننا هذا الحساس من معرفة المسافة بشكل دقيق بينه و بين الأجسام التي امامه , مما يعد خيار مفضل عند بناء روبوتات تفادي الأصطدام Avoiding Robot .
كما ممكن ان نبني من خلاله جهاز لقياس السرعة عن بعد كالذي يستخدمه رجال شرطة السير لمعرفة السيارات التي تسير بسرعة أعلى من المقرر
بعد هذه اللمحة , حان الوقت للتطبيق العملي .
لنجهّز معداتنا .
لنجهّز معداتنا .
المعدّات
ستحتاج لتنفيذ هذه التجربة ما يلي :
1) بطاقة أردوينو
1) بطاقة أردوينو
2)التراسونيك HC SRF04
3) BreadBoard
4)اسلاك توصيل .
5)محرك سيرفو صغير"اختياري " .
حسناً لننتقل للتوصيل :
سنقوم بتوصيل الحساس مع الأردوينو كالآتي :
Trigger>>>> D12
Echo>>>> D13
بالإضافة للتغذية و الأرضي Vcc+GND
البرمجة
من النشرة الفنية لحساس الأمواج فوق الصوتية " للألتراسونيك" نستطيع برمجة هذا الحساس بسهولة .
الرسم التالي يوضح المخطط الزمني لعمل الألتراسونيك .
ليبدأ الالتراسونيك العمل , يتم قدحه Trigger بنبضة طولها 10us , ثم يقوم المرسل في الألتراسونيك بإرسال 8 نبضات بطول 40KHz , ثم ينتظر أن يصله صدى Echo للنبضات التي أرسلها , و تكون بين 100us-18ms اعتماداً على المسافة التي قطعتها الأمواج الصوت "في حال كان طول نبضة الصدى 36ms هذا يعني أنه لم يصطدم بجسم أمامه ! "
لكتابة الكود يلزمنا فقط اتباع الارشادات الوادة في المخطط الزمني .
الكود الأولي بسيط و يعتمد على ارسال نبضات كل 10uS ثم قراءة الصدى الراجع إلى الحساس, ثم قسمتها على 58 لنحصل على المسافة بالسنتيمتر
الكود الأولي بسيط و يعتمد على ارسال نبضات كل 10uS ثم قراءة الصدى الراجع إلى الحساس, ثم قسمتها على 58 لنحصل على المسافة بالسنتيمتر
هذا الكود أولي
و إذا لم تكن تملك الشاشة الكريستالية فإليك هذا البرنامج الذي ستحتاج فقط فيه لبطاقة أردوينو و الألتراسونيك .
الكود موجود بالأسفل :
لتهيئة المداخل التي سنربط عليها الألتراسونيك نستدعي الأمر :
Ultrasonic ultrasonic(Trigger_pin,Echo_pin);
لقياس البعد بين الألتراسونيك و الجسم التي ترتطم به الأمواج فوق الصوتية ما علينا سوى استدعاء الأمر
;(ultrasonic.Ranging(CM
و البرنامج الأخير هنا يعرض التحكم بأكثر من التراسونيك واحد .
التطبيقات على هذا الحساس لا تنتهي , و في نهاية تدوينتي هذه أعرض عليكم تطيبق بسيط استخدمت فيه هذا الحساس في روبوتي G1
0 تعليقات