الألتراسونيك Ultrasonic

الموضوع في 'برمجة الاشياء arduino' بواسطة ابوفارس, بتاريخ ‏27 ديسمبر 2019.

  1. ابوفارس

    ابوفارس ادارة المنتدى إداري

    إنضم إلينا في:
    ‏12 يوليو 2014
    المشاركات:
    690
    الإعجابات المتلقاة:
    200
    نقاط الجائزة:
    43
    الجنس:
    ذكر
    [​IMG]
    تصميم على الSolidworksبواسطة المهندس حسن البيتاوي

    [​IMG]
    اهلاً بمتابعي مدونتي الأحباء , الموضوع الذي سأتناوله في تدوينتي يعتبر مهم جداً نظراً لأستخداماته في العديد من التطبيقات , حديثي اليوم سيكون عن حساس الأمواج فوق الصوتية أو ما يعرف ب Ultrasonic

    [​IMG]
    [​IMG]
    حسناً لنتعرف في بداية عن مبدأ عمل الأمواج فوق الصوتية .


    الفكرة مرتكزه على إطلاق موجات عالية التردد و التي عند اصطدامها بجسم ما ترتد هذه الموجات على شكل صدىEcho .

    [​IMG]
    سرعة الموجات في الفراغ هي 345متر\ثانية عند 25سيلسيوس و تختلف من وسط لأخر حسب الوسط الناقل كالسوائل و الغازات و الأجسام الصلبة .
    سنركز من الآن على انتقال الموجات فوق الصوتية في الفراغ .
    [​IMG]
    لمعرفة المسافة , يكفي أن نعرف سرعة هذه الموجات , و أن نعرف الفرق بين زمن الارسال و زمن الأرتداد للصدى و بهذا يمكننا معرفة المسافة حسب قانون نيوتن :
    المسافه = السرعه × الزمن
    ستجد تطبيقاته في الخفاش , الغواصات , الرادارات


    [​IMG]
    حسناً لننتقل إلى ما سنقوم اليوم بفعله , وما هي الإمكانيات التي يوفرها لنا هذا الحساس .
    يمكننا هذا الحساس من معرفة المسافة بشكل دقيق بينه و بين الأجسام التي امامه , مما يعد خيار مفضل عند بناء روبوتات تفادي الأصطدام Avoiding Robot .
    كما ممكن ان نبني من خلاله جهاز لقياس السرعة عن بعد كالذي يستخدمه رجال شرطة السير لمعرفة السيارات التي تسير بسرعة أعلى من المقرر
    [​IMG]
    بعد هذه اللمحة , حان الوقت للتطبيق العملي .

    لنجهّز معداتنا .
    المعدّات

    ستحتاج لتنفيذ هذه التجربة ما يلي :
    1) بطاقة أردوينو
    2)التراسونيك HC SRF04
    3) BreadBoard
    4)اسلاك توصيل .
    5)محرك سيرفو صغير"اختياري " .
    [​IMG]
    حسناً لننتقل للتوصيل :
    سنقوم بتوصيل الحساس مع الأردوينو كالآتي :
    Trigger>>>> D12
    Echo>>>> D13
    بالإضافة للتغذية و الأرضي Vcc+GND
    [​IMG]

    [​IMG]

    البرمجة
    من النشرة الفنية لحساس الأمواج فوق الصوتية " للألتراسونيك" نستطيع برمجة هذا الحساس بسهولة .
    الرسم التالي يوضح المخطط الزمني لعمل الألتراسونيك .


    [​IMG]
    ليبدأ الالتراسونيك العمل , يتم قدحه Trigger بنبضة طولها 10us , ثم يقوم المرسل في الألتراسونيك بإرسال 8 نبضات بطول 40KHz , ثم ينتظر أن يصله صدى Echo للنبضات التي أرسلها , و تكون بين 100us-18ms اعتماداً على المسافة التي قطعتها الأمواج الصوت "في حال كان طول نبضة الصدى 36ms هذا يعني أنه لم يصطدم بجسم أمامه ! "

    [​IMG]
    لكتابة الكود يلزمنا فقط اتباع الارشادات الوادة في المخطط الزمني .

    الكود الأولي بسيط و يعتمد على ارسال نبضات كل 10uS ثم قراءة الصدى الراجع إلى الحساس, ثم قسمتها على 58 لنحصل على المسافة بالسنتيمتر هذا الكود أولي , لكن أليكم هذه المفاجأة ! فهناك مكتبة سهلة جداً للتعامل مع هذا النوع
    هذه المكتبة يمكن تحميلها من هنا

    بعد ان تقوم بفك الضغط عن الملف و وضعه في مسار المكتبات Libraries داخل مجلد الاردوينو قم بتحميل البرنامج المرفق معاه .

    و إذا لم تكن تملك الشاشة الكريستالية فإليك هذا البرنامج الذي ستحتاج فقط فيه لبطاقة أردوينو و الألتراسونيك .

    الكود موجود بالأسفل :
    لتحميل البرنامج
    Download the code





    لتهيئة المداخل التي سنربط عليها الألتراسونيك نستدعي الأمر :


    Ultrasonic ultrasonic(Trigger_pin,Echo_pin);
    لقياس البعد بين الألتراسونيك و الجسم التي ترتطم به الأمواج فوق الصوتية ما علينا سوى استدعاء الأمر

    ;(ultrasonic.Ranging(CM

    و البرنامج الأخير هنا يعرض التحكم بأكثر من التراسونيك واحد .
    لتحميل البرنامج
    Download the code





    [​IMG]


    [​IMG]

    [​IMG]
     

مشاركة هذه الصفحة