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