الخطوة 1: إصنعها
قم بتحويل مجموعة من أجهزة micro:bit إلى سرب سحري من الخنافس المضيئة باستخدام الاتصال اللاسلكي
ماذا ستتعلم؟
- كيفية استخدام الاتصال اللاسلكي بين أجهزة micro:bit لتفعيل الأحداث
- أنه يمكن جعل عرض شاشة LED في micro:bit أكثر سطوعًا ودقة
- كيفية استخدام أرقام عشوائية وفرص محاكاة سلوك العالم الحقيقي
ماهو ؟
الخنافس المضيئة هي الحشرات التي تستخدم الضوء الحيوي (الضوء مصنوع في أجسامها) للتواصل مع بعضها البعض.
هذا المشروع يحاكي سلوك الخنافس المضيئة الحقيقية باستخدام خاصية الاتصال اللاسلكي في micro:bit. تم إنشاء نسخة بايثون بواسطة Nicholas H. Tollervey، و نسخة MakeCode مبنية على هذا.
ضع البرنامج على الأقل على ثلاث أجهزة micro:bit في نفس الغرفة. اضغط على الزر A على أي micro:bit وسوف أن ترى 'سرب' من أجهزة micro:bit يضيء بينما يتلقى رسالة راديوية. يعمل بشكل أفضل في غرفة مظلمة مع عدة أجهزة micro:bit.
بمجرد تلقي micro:bit رسالة الراديو، يكون لديه فرصة واحدة من عشر فرص لبث رسالة الراديو الخاصة به وبدء موجة أخرى من الإضاءة المشتعلة في أجهزة micro:bit الأخرى.
عندما تتوقف الأضواء، اضغط على الزر A على أي micro:bit لإعادة تشغيل 'سرب' في الاتصال.
كيف يعمل ؟
- يستخدم البرنامج الاتصال اللاسلكي لإرسال رسالة 'فلاش' عند الضغط على الزر A على أحد أجهزة micro:bit.
- عندما يتلقى كل جهاز micro:bit الرسالة، فإنه ينتظر فترة زمنية عشوائية تتراوح بين 50 و 350 مللي ثانية. ثم يجعل شاشة LED تستنير بشكل ساطع تدريجي لمحاكاة توهج الخنافس المضيئة.
- ثم يولد رقمًا عشوائيًا بين 0 و 9. إذا كان الرقم 0، فإنه يرسل رسالة الراديو "فلاش" الخاصة به، مما يؤدي إلى توهج المزيد من الخنافس المضيئة في micro:bit. إذًا لديه فرصة واحدة من كل عشر فرص لتفعيل المزيد من الإضاءات المشتعلة في أجهزة micro:bit الأخرى.
- يمكنك استخدام مزيج من أجهزة micro:bit القديمة والجديدة، ولكن يجب أن يكون لديهم إما إصدارات MakeCode أو Python من البرنامج مثبتة عليها. (تعمل الاتصالات اللاسلكية بشكل مختلف بعض الشيء في كل لغة من لغات البرمجة. برامج MakeCode لا تستطيع التواصل عبر الراديو مع Python والعكس صحيح.
ما تحتاجه
- 3 أجهزة micro:bit على الأقل، كلما كان أكثر كلما كان أفضل
- حزم بطاريات micro:bit (اختياري)
الخطوة 2: برمجها
1# A micro:bit Firefly.
2# By Nicholas H.Tollervey. Released to the public domain.
3import radio
4import random
5from microbit import display, Image, button_a, sleep
6
7# Create the "flash" animation frames. Can you work out how it's done?
8flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]
9
10# The radio won't work unless it's switched on.
11radio.on()
12
13# Event loop.
14while True:
15 # Button A sends a "flash" message.
16 if button_a.was_pressed():
17 radio.send('flash') # a-ha
18 # Read any incoming messages.
19 incoming = radio.receive()
20 if incoming == 'flash':
21 # If there's an incoming "flash" message display
22 # the firefly flash animation after a random short
23 # pause.
24 sleep(random.randint(50, 350))
25 display.show(flash, delay=100, wait=False)
26 # Randomly re-broadcast the flash message after a
27 # slight delay.
28 if random.randint(0, 9) == 0:
29 sleep(500)
30 radio.send('flash') # a-ha
31
32
الخطوة 3: حسنها
- قم بتغيير الصورة التي تظهر عند وميض الشاشة
- قم بتعديل التعليمات البرمجية لجعلها أكثر أو أقل احتمالاً لتفعيل حدث فلاش آخر في أجهزة micro:bit الأخرى. نطاق الأرقام العشوائية يمكن أن يتطابق مع عدد أجهزة micro:bit الذي لديك: يزيد الاحتمالات إذا كان لديك عدد أقل من أجهزة micro:bit
- قم بصنع مجموعات أصغر من الخنافس المضيئة باستخدام أرقام مجموعات راديو مختلفة. فقط أجهزة micro:bit التي تحتوي على نفس رقم المجموعة ستكون قادرة على التواصل مع بعضها البعض.
- جرب تغيير قوة إشارة الراديو.
استخدم كتلة "تعيين جهاز الإرسال اللاسلكي" في MakeCode.
في Python استخدمradio.config(power=7)
اختر رقما بين 0 (أضعف إشارة راديوية) و 7 (أقوى).
ما هو تأثير تغيير قوة الراديو؟
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.