برد های میکروبیت در سال های اخیر شاهد تغییرات چشمگیر بودهاند که باعث جلب توجه توسعه دهندگان امبدد قرار گرفتهاند اضافه شدن سنسور ها و قابلیت های متعدد به این برد ها، از جمله دلایل این مورد بوده است. در این آموزش قصد دارم به شما آموزش انتقال دیتا بین برد های میکروبیت را بدهم، که به راحتی قادر خواهید بود با استفاده از سنسور داخلی دما در این برد ها و استفاده از تراشه Nrf این انتقال دیتا را عملی کنیم، بدون استفاده از هیچ گونه اتصالات خارجی قفط و فقط با استفاده از خود برد های microbit. در ادامه پروژه دماسنج میکروبیت ارسال و دریافت مقادیر دما بین برد های میکروبیت با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
برد میکروبیت Mirco:bit
این دستگاه به اندازه نصف یک کارت اعتباری توصیف شده است و دارای یک پردازنده ARM Cortex-M0، حسگرهای شتاب سنج و مغناطیس سنج، اتصال بلوتوث و USB، نمایشگری متشکل از ۲۵ LED، دو دکمه قابل برنامه ریزی است. ورودی و خروجی دستگاه از طریق پنج کانکتور است. همچنین در سال ۲۰۲۰، یک برد V2 از نظر فیزیکی تقریبا یکسان منتشر شد که دارای یک میکروکنترلر Cortex-M4F، با حافظه بیشتر و سایر ویژگیهای جدید است.
روش کار پروژه دماسنج میکروبیت
پروژه دماسنج میکروبیت از دو برنامه مختلف استفاده می کند، یکی برای micro:bit در فضای باز که دما را حس کرده و در گروه رادیویی ۲۳ ارسال می کند. میکروبیت از سنسور دمای خود برای اندازه گیری گرم یا سرد بودن دما استفاده می کند. از رادیو برای ارسال این دما به میکروبیت دوم استفاده می کند. هنگامی که میکروبیت داخلی یک دما را از خارج دریافت می کند، آن را در متغیری به نام outdoorTemp ذخیره می کند. وقتی دکمه ورودی A را روی میکروبیت داخلی فشار می دهید، دمای فعلی خود را در خروجی نمایشگر LED نشان می دهد. و در ادامه وقتی دکمه B را فشار میدهید، دمایی که از خارج در متغیر OutdoorTemp ذخیره کرده است را نشان میدهد.
وسایل مورد نیاز
اتصالات پروژه سنسور دما میکروبیت
در پروژه دماسنج میکروبیت تنها از دو عدد برد میکروبیت استفاده میکنیم، در نتیجه نیازی به اتصالات اضافی نداریم، تنها با پروگرام کردن هردو برد و تغذیه آنها قادر خواهید بود پروژه را بدون مشکلی اجرا کنید، سنسور های دما و ماژول رادیویی برای انتقال دیتا در خود برد میکروبیت نصب شدهاند. و بصورت نرمافزاری قابل تعریف خواهند بود.
کدنویسی در محیط MakeCode
پروگرام کردن برد های میکروبیت به لطف پلتفرم MakeCode بسیار آسان شده، و به کاربر این امکان را میدهد تا در محیط وب اقدام به کدنویسی و پروگرام کردن برد میکروبیت خود بپردازیم. به نقل از سازندگان این پلتفرم، Microsoft MakeCode یک پلتفرم رایگان و منبع باز برای ایجاد تجربیات یادگیری جذاب علوم کامپیوتر است که از مسیر پیشرفت به سمت برنامه نویسی در دنیای واقعی پشتیبانی می کند. این پلتفرم از چند بخش تشکیل شده.
- شبیهساز که یک شبیه ساز تعاملی است که بازخورد فوری در مورد نحوه اجرای برنامه را ارائه می دهد و آزمایش و اشکال زدایی کد آنها را آسان می کند.
- بلوک ادیتور که این امکان را میدهد تا با بلوکهای رنگی که میتوانند آنها را جابجا و روی فضای کاری خود رها کنند تا برنامههایشان را بسازند.
- ادیتور کد که امکان ویرایش و نوشتن کد های پروژه دماسنج میکروبیت را به دو زبان java scrpt و python را فراهم میکند.
- پس از ورود به سایت MakeCode در صفحه پروژه خود آیکون زیر را مشاهده میکنید که امکان دانلود را برای شما فراهم میکند، همچنین میتوانید با اتصال برد میکروبیت به سیستم خود، کد پروژه را بطور مستقیم در برد خود آپلود کنید.
- پس از اتصال میکروبیت، آیکون به شکل زیر نمایش داده خواهد شد، اما ابتدا باید برد را به مرورگر معرفی کنید.
- در صفحهای که به شکل خودکار برای شما باز خواهد شد، برد میکروبیت مدنظر خود را انتخاب کنید.
- تنها با این حرکت برد شما توسط مروگر و سایت MakeCode با موفقیت معرفی شد.
- بلوک های مورد نیاز برای میکروبیت در نقش ارسال کننده به شرح زیر است.
- بلوک های مورد نیاز برای میکروبیت در نقش دریافت کننده به شرح زیر است.
کد های پروژه دماسنج میکروبیت
همچنین میتوانید با استفاده از کد های زیر برای هر برد در نقش های مشخص شده اقدام به راهاندازی پروژه دماسنج میکروبیت کنید، برای این مورد میتوانید از بخش ادیتور در سایت MakeCode و یا ادیتور مدنظر با قابلیت ساپورت از میکروپایتون اقدام به راهاندازی پروژه کنید.
- کد مورد نیاز برای میکروبیت در نقش ارسال کننده.
from microbit import * import radio radio.config(group=23) radio.on() while True: radio.send(str(temperature())) sleep(5000)
- کد مورد نیاز برای میکروبیت در نقش دریافت کننده.
from microbit import * import radio radio.config(group=23) radio.on() outdoorTemp = '-' while True: message = radio.receive() if message: outdoorTemp = message if button_a.was_pressed(): display.scroll(str(temperature())) if button_b.was_pressed(): display.scroll(outdoorTemp)
نتیجه نهایی
پس از آپلود کد ها در برد های مشخص شده در نقش های مختلف مانند تصویر زیر وقتی دکمه ورودی A را در میکروبیت داخلی فشار می دهیم، دمای فعلی خود را در خروجی نمایشگر LED نشان می دهد. و در ادامه وقتی دکمه B را فشار میدهیم، دمایی که از خارج در متغیر OutdoorTemp ذخیره کرده است را نشان میدهد. همچنین برای جالب تر کردن پروژه میتوانیم با خاموش کردن رادیو میکروبیت در فضای باز در زمانی که از آن استفاده نمی کنید و ارسال دما به دفعات کمتر، باتری ها دوام بیشتری داشته باشند. و یا از متغیرها برای ردیابی بالاترین و پایینترین دمای ثبت شده استفاده کنیم.
کلام آخر با سایفر
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.