سنقوم في هذا المشروع باستخدام مستشعر الصوت الموجود في اللوحة الرئيسية Auriga لروبوت Ranger
لبرمجة روبوت يستجيب للأوامر الصوتية
الأدوات المطلوبة
Sound Sensor مستشعر الصوت
يمكن أن نقول بأن مستشعر الصوت هو عبارة عن مايكروفون صغير يقوم بتحويل الصوت إلى إشارة كهربائية، ويعطي قيمة تتراوح بين 0-1023. تختلف القيمة باختلاف المحيط الذي نقوم بتشغيل الروبوت فيه
لا يستطيع مستشعر الصوت التمييز بين الكلمات لكن يستطيع التمييز بين الأصوات المرتفعة والمنخفضة التي تقع في المدى الخاص به. كلما كانت شدة الصوت أعلى كانت الإشارة الكهربائية أكثر
تحديد مدى قراءة المستشعر
قبل أن نقوم بكتابة البرنامج نحتاج أولا إلى عمل اختبار صغير لمعرفة المدى الذي يقرأ فيه المستشعر، والقراءات التي يعطيها عند التصفيق أو الكلام أو أي أصوات أخرى.
نقوم أولا بتوصيل الروبوت إلى الحاسوب عن طريق الكيبل.
قم بانشاء متغير Sound
اختيار الأمر say وتعيينه على مستشعر الضوء
ووضع الأمر داخل حلقة forever
ستظهر قراءة المستشعر على الشاشة
نلاحظ أن القيمة تتغير بسرعة كبيرة جدا وبهذا يصعب تحديد أعلى قيمة وأقل قيمة، لذا سنضيف متغيرين آخرين
Max ليمثل أعلى قيمة، و Min ليمثل أقل قيمة
سنقوم بتعيين المتغيرين على قراءة مستشعر الصوت
ونقوم كذلك بتعيين المتغير Sound لقراءة مستشعر الصوت
في البداية ستكون Max = Min
داخل حلقة forever ستتغير قيمة المتغير Sound
ولتحديد أعلى وأقل قيمة نستخدم if ..then
بحيث إذا كانت قيمة sound أكبر من قيمة max
يتم إعادة تعيين قيمة max إلى هذه القيمة كأعلى قيمة
ويتم إعادة تعيين قيمة min إلى أقل قيمة تمت قراءتها في المتغير Sound
الكود البرمجي
سنقوم ببرمجة الروبوت بحيث يتراجع للوراء عند التصفيق أو إعطاءه أي أمر صوتي
سنأخذ بالاعتبار القيم التي حصلنا عليها من الكود السابق، لاستخدامها في كتابة كود الروبوت الجديد
نقوم بفتح صفحة جديدة في برنامج mBlock
وانشاء متغير Sound وتعيينه لقراءة مستشعر الصوت في اللوحة الرئيسية
نقوم بإضافة شرط if then
بحيث إذا كانت قراءة مستشعر الصوت أعلى من قيمة معينة يتحرك الروبوت للخلف
لتحديد هذه القيمة نعود إلى القيم التي حصلنا عليها من الكود السابق
نلاحظ في الصورة أن قيمة max = 184 وهذه القيمة تم تسجيلها قبل إصدار أي صوت
مما يعني أنه عند التصفيق مثلا ستكون قيمة المستشعر أكبر من هذه القيمة
إذا كانت قيمة القراءة أقل، يتم تنفيذ الأوامر بعد else وهو التحرك للأمام
الكود البرمجي:
قم بتجربة إضافة أوامر برمجية تقوم بإضاءة LED عند التصفيق
لمزيد من المعلومات حول الأوامر البرمجية الأخرى قم بالرجوع لدرس جولة حول الأوامر البرمجية