الخطوة ١: صنّع
ما هو؟
اصنع ساعة إيقاف حقيقية باستخدام مستشعر اللمس المدمج.
مقدمة
دليل البرمجة
ماذا ستتعلم؟
- كيفية استخدام مستشعر اللمس المدمج في شعار مايكروبت كزر إضافي ضمن مشروع عملي.
- كيفية استخدام المتغيرات والعوامل الرياضية لقياس الزمن.
- كيفية استخدام العوامل الرياضية لتحويل وحدات الزمن، من المللي ثانية إلى الثواني.
- مفهوم «المتغير المنطقي (Boolean)» وكيفية استخدامه للتحكّم في تنفيذ البرنامج.
كيف تقوم بإستخدامه؟
- حمّل البرنامج إلى إصدار مايكروبت للنسخة الأحدث والتي تأتي مزوّدة بمكبّر الصوت المدمج.
- اضغط على الزر «A» لبدء تشغيل ساعة الإيقاف. سيظهر قلب متحرك على الشاشة طوال فترة القياس.
- اضغط على الزر «B» لإيقاف الساعة. يمكنك بدء القياس وإيقافه عدة مرات كما تشاء، وستواصل الساعة جمع الفترات الزمنية، تمامًا مثل ساعة الإيقاف الحقيقية.
- المس الشعار الذهبي الموجود في الجهة الأمامية من جهاز مايكروبت لعرض الزمن المقاس بالثواني.
- لإعادة ضبط الزمن إلى الصفر، اضغط على زر إعادة الضبط الموجود في الجهة الخلفية من الجهاز.
كيف يعمل ؟
- يتتبع جهاز مايكروبت المدة المنقضية منذ تشغيله، بوحدة المللي ثانية (أجزاء الألف من الثانية). ويُسمّى بذلك «زمن التشغيل (Running Time)».
- عند الضغط على الزر «A» يُسنَد زمن التشغيل الحالي إلى متغير يُسمّى «بدأ (start)»
- عند الضغط على الزر «B»، يُطرح زمن البدء من زمن التشغيل الحالي لحساب المدة المنقضية منذ بدء ساعة الإيقاف. ثم تُضاف هذه المدة إلى الزمن الإجمالي المخزّن في متغير يُسمّى «الزمن (time)» .
- عند لمس الشعار، يعرض البرنامج إجمالي الزمن المنقضي على شاشة العرض. يحوّل الزمن من المللي ثانية (أجزاء الألف من الثانية) إلى الثواني بقسمته على «1000». ويستخدم عامل القسمة الصحيحة للحصول على النتيجة كعدد صحيح.
- يستخدم البرنامج أيضًا متغيرًا منطقيًا يُسمّى «قيد التشغيل (running)» للتحكم في سير البرنامج. متغيرات القيم المنطقية يمكن أن تحتوي فقط على قيمتين: «صواب» أو«خطأ». إذا كانت قيمة « قيد التشغيل» هي «صواب»، فهذا يعني أن ساعة الإيقاف قد بدأ تشغيلها. أما إذا كانت قيمته «خطأ» ، فهذا يعني أن ساعة الإيقاف لم يبدأ تشغيلها بعد أو أنه تم إيقافها.
- إذا كانت قيمة «قيد التشغيل» تساوي «صواب»، فستستمر حلقة التكرار في عرض صورة متحرك لقلب على شاشة العرض.
- لن يُعرض الوقت عند الضغط على الشعار إلا إذا كانت ساعة الإيقاف متوقفة، أي عندما لا تكون قيمة «قيد التشغيل» تساوي «صواب»
- تمنع الشفرة البرمجية ظهور قراءات غير صحيحة، إذ يضمن عدم تغيير قيمة متغير الوقت إلا عند الضغط على الزر «B» ، بشرط أن تكون ساعة الإيقاف قد بدأت العمل بالفعل، أي عندما تكون قيمة «قيد التشغيل» تساوي «صواب».
المطلوب
- نسخة مايكروبت الأحدث أو محاكي «ميك كود»
- محرر «بايثون» أو «ميك كود»
- حزمة بطاريات (اختياري)
الخطوة ٢: بَرمج
1from microbit import *
2time = 0
3start = 0
4running = False
5
6while True:
7 if running:
8 display.show(Image.HEART)
9 sleep(300)
10 display.show(Image.HEART_SMALL)
11 sleep(300)
12 else:
13 display.show(Image.ASLEEP)
14 if button_a.was_pressed():
15 running = True
16 start = running_time()
17 if button_b.was_pressed():
18 if running:
19 time += running_time() - start
20 running = False
21 if pin_logo.is_touched():
22 if not running:
23 display.scroll(int(time/1000))الخطوة ٣: حسّن
- عدّل البرنامج بحيث تتمكن من إعادة ضبط الوقت عن طريق هزّ الجهاز.
- اجعل عداد الوقت أكثر دقة باستخدام أجزاء من الأرقام بدلًا من عدد صحيح (أعداد كاملة).
- أضف ميزة تسجيل زمن اللفة، بحيث إذا لمست الشعار أثناء تشغيل ساعة الإيقاف، فسيُعرض الوقت عند تلك اللحظة تذكّر التأكد من أن هذا الزمن لا يُضاف إلى متغير الوقت الإجمالي.


