أنت هنا:إصنعها»الحساسات»برمجة الحساسات»برمجة الموجات فوق الصوتية

برمجة الموجات فوق الصوتية

كتبه برمجة الحساسات 44825 2
آخر تعديل في الأحد, 06 كانون1/ديسمبر 2020 20:33
برمجة الموجات فوق الصوتية
قيم الموضوع
(7 أصوات)

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


تعريف 

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

 

  

يعتبر هذا المركب الإليكتروني من المستشعرات المتقدمة في عالم الروبوتات والإليكترونيات، لكن أبشر سنحاول تقديمه لك اليوم بشكل مبسط وسهل حتى تتمكن من استعمالهلا يهم ان لم تكن متخصصا في الروبوتيكفأنا أيضا لست متخصصا، ونريد من كل واحد منا أن يتمكن من صناعة الروبوتات ولو كان تخصصه بعيدا كل البعد عن الروبوتيك.

 


تفكر في الخفاش 

 01

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

 

 

واعجب من هذا، أن بعض أنواع الخفافيش تستطيع أن تسافر لعدة كيلومترات (30 كيلومترا مثلاباحثة عن طعامها في طرق ملتوية، لكن عندما تريد العودة إلى كهوفها فتسلك أقصر طريق مستقيم نحوه.

 

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

 


تطبيقات عملية 

في الطب: يأتي في أشكال وأحجام مختلفة من أجل استعمالها في تحديد صور لمختلف أعضاء الجسم.

02

في الصناعة: تسعمل مستشعرات موجات فوق الصوتية لتحديد اهداف وقياس المسافة التي تفصل الروبوث مثلا عن الهدف كما أن لها استعمالات أخرى أيضا.

 

 


كيف تركب في الروبوت؟

 

غالبا ما يتم تركيب مستشعر الموجات فوق صوتية في الواجهة أمام الروبوت، وبذلك تظهر للرائي كعيني الروبوتصورة المقال والصور التالية تظهر بعض النماذج من الروبوتات المعتمدة على هذا المستشعر. 

 

 

 

اجزاء الرئيسية

 

المستشعر الذي نود برمجته اليوم يمكنه تحديد اشياء عن بعد 3 أمتار وله ثلاث مرابط (مربطين للتيار الكهربائي ومربط ثالث يستعمل كمدخل أو مخرج يتم من خلاله استبدال المعلومات بين المستشعر والجهاز المرتبط به). لامتحان هذا المستشعر سنحتاج للتالي: 

l  بطاقة Arduino

l  مستشعر الموجات فوق الصوتية (ultrasonic sensor ويسمى أيضا PING range finder)

l  أسلاك كهربائية (يمكنك الحصول عليها من حاسوب قديم مثلا)

03


تركيب الدارة الكهربائية 

 

 

امر بسيط في الحقيقة، قم فقط بإيصال المربط GND للمستشعر بالمربط GND للبطاقة، وإيصال المربط 5V للمستشعر بالمربط 5V للبطاقة، وأخيرا أصل المربط المتبقي SIG بالمربط للبطاقة مثلا. 

  


آلية عمل المستشعر

النموذج الذي سنستعمله اليوم انتج من طرف شركة Parallaxيستطيع هذا النوع من تحديد المسافة بينه وبين أقرب شيء أمامه (من سنتمترين إلى أمتار). يعمل عن طريق ارسال حزمة من الموجات فوق الصوتية ثم ينصت للصدى عندما ينبعث من الشيء الذي تم ارتطام الموجات به. 

 


برمجة 

تهيء بطاقة Arduino المستشعر عن طريق جعله في حالة انصات لصوت الصدىبرمجيا، تستعمل الدالة pulseIn للاتقاط الصدى، ويتم تحديد المسافة الفاصلة بين المستشعر والشيء عن طريق علاقة رياضية تربط بين سرعة الصوت في الهواء والمدة الزمنية التي تستغرقها الموجات ذهابا وإيابا.

 

يتم التلاعب بالمربط الثالث عن طريق استخدامه تارة كمدخل وتارة أخرى كمخرجيعتبر هذا المربط مخرجا عندما يراد من الروبوت ارسال موجات فوق صوتية ثم يستبدل (المربطمدخلا عندما يراد من الروبوت استقبال الموجات المرسلة لقياس المسافة مثلا.

 

سنستعمل البطاقة البرمجية Arduino للتفاعل مع المستشعروبإمكانك عن طريق هذه الشيفرة أن تقوم ببرمجة مماثلة عندما تريد أن تزود روبوتك بعينين حتى لا يستطدم باشياء أمامه مثلاولربما تطور الشيفرة لتجعل الروبوت أو أي جهاز تريد صنعه قادرا على تحديد بعض اشياء عوض قياس المسافة.

 

/*  شيفرة مستشعر الموجات فوق الصوتية
 
 
هذه الشيفرة هي مثال لحساب المسافة الفاصلة بين المستشعر وأقرب شيء أمامه،ه
 للقيام بهذا، نرسل إشارة للمستشعر لتهيئته للقراءة، ثم ننصت لإشارة رجوع الموجات فوق الصوتية،ه
 يتناسب طول الإشارة مع المسافة التي تفصل المستشعر عن الشيء،ه
 
  الدارة الكهربائية:                                 
 * مربط 5 فولط للمستشعر موصول بمربط 5 فولط للبطاقة
 * مربط ارضية للمستشعر موصول بمربط ارضية للبطاقة
 * مربط الإشارة للمستشعر موصول بالمربط 7 للبطاقة

   http://www.arduino.cc/en/Tutorial/Ping
  
  
انجزت الشيفرة  بالثالث من نوفمبر 2008
   David A. Mellis من طرف
   وتم تحديث الشيفرة بتاريخ 30 غشت 2011
   Tom Igoe من طرف
   وتمت تحديثها مرة ثانية بتاريخ 26  نوفمبر 2011
   من طرف محمد السهلي
 
  
هذه الشيفرة جاهزة للاستعمال لكل من يريدها
 */

const int pingPin = 7; // رقم مربط البطاقة الذي سيوصل بمربط الإشارة للمستشعر
long duration;         // متغير لحساب المدة الزمنية

long cm;               // لحساب المسافة بالسنتيمتر


voidsetup()

{
 
Serial.begin(9600);   // تهيئة سرعة التحويل
}

voidloop()
{
 
/*الحالة اولى: الإرسال */
 pinMode(pingPin, OUTPUT);   // اعتبار مربط المستشعر كمخرج عند القيام بإرسال إشارة إليه

 digitalWrite(pingPin, LOW);
 
delayMicroseconds(2);
 
digitalWrite(pingPin, HIGH); //ينشط المستشعر بإشارة عالية تمتد لميكروثانيتن أو أكثر
 delayMicroseconds(5);
 
digitalWrite(pingPin, LOW); //نرسل اشارة منخفظة بعد مرور 5 ميكروثوان لضمان إشارة عالية نظيفة


 /*الحالة الثانية: الإستقبال */
 pinMode(pingPin, INPUT);  // اعتبار مربط المستشعر كمدخل لاستقبال الاشارة

 

  //ترجع هذه الدالة المدة الزمنية (بالميكروثوان) التي استغرقتها الموجة العالية (وهو ما يعرف بالصدى)ه
  duration = pulseIn(pingPin, HIGH);


  /*الحالة الثالثة: في هذه الفقرة تبرمج ما تريده في روبوتك كتوجيه المحركات مثلا */ 

 // تحويل المدة الزمنية الى مسافة
 // سرعة الصوت هي 340 متر في الثانية (أي 29 ميكوثانية في كل سنتيمتر واحد)ه
 // تقوم الموجة بالذهاب والإياب وبالتالي لإيجاد المسافة الحقيقية نقوم بقسمة المسافة المقطوعة على 2

 
 cm = ( duration / 29 ) / 2;
 
 
Serial.print(cm);
 
Serial.print("cm");
 
Serial.println();

 

   //يمكنك أن تفعل في هذا المكان من الشيفرة ما تريد

 
/*الحالة الرابعة: انتظار لبعض الوقت */

  delay(100);  // هذا الانتظار يعطي للبطاقة بعض الوقت لمواكبة سرعة الأحداث ليس إلا
}

 


تأليف 

محمد السهلي 

 

{jumi [*3]}


 المراجع 

http://arduino.cc/en/Tutorial/Ping 

http://www.harunyahya.com/designinnature03.php

http://betterworldforanimals.com/animal_facts_or_fiction

http://www.redorbit.com/news/science/1112422505/bats-dolphins-and-mole-rats-provide-ultrasound-inspriation 

http://www.nlm.nih.gov/medlineplus/ency/imagepages/18056.htm 

http://www.parallax.com/Store/Sensors/ObjectDetection/tabid/176/ProductID/92/List/1/Default.aspx?SortField=ProductName,ProductName 

التعليقات  

غبدالجبار
0 # غبدالجبار 2013-06-06 04:02
ارجو قرائة هده الرسالة في اقرب وقت ممكن

و الرد بسرعة


اعتقد ان اربوت غير مطور بشكل جيد ولاكن بداية وفقة
يحتاج الى تعديل بسيط و اتمنى ان اكون قد افدتكم

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

سؤالي كان هل توجد مستشعرات اصغر حجما و اين يمكنني ان اجدها في المغرب
و اتمنى ان يكون بالدارالبيضاء

شكرا
رد | رد مع اقتباس | اقتباس | تقرير إلى المدير
إدارة إصنعها
+1 # إدارة إصنعها 2013-09-07 18:33
نعم، ربما ما اقترحته يبدوا جميلا جدا، ونشجعك على تطويره ومشاركتنا به.

وبخصوص أمكنة تواجد هذه المركبات الإلكترونية بالدار البيضاء، فهل بحث في درب غلف ودرب عمر مثلا؟

وستجد أجوبة أخرى إذا دخلت منتدى إصنعها. اضغط على "إسألها" ثم بعدها "أين تباع المركبات الإلكترونية" واختر "في المغرب". ستجد أجوبة هناك لعلها تنفعك.
رد | رد مع اقتباس | اقتباس | تقرير إلى المدير

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث