مقدمه
اگر از علاقهمندان به الکترونیک و ساخت و توسعه پروژههای این دسته باشید، حتما با میکروکنترلرها آشنا هستید. انواع مختلف میکروکنترلرها تولید میشوند که دارای قابلیتهای متنوعی هستند. برای افرادی که به تازگی با این کنترلرهای کوچک آشنا شدند، حتماً این سوال پیش میآید که با کدامیک از آنها به این عرصه وارد شوند.
یکی از راحتترین بردها برای یادگیری اولیه عملکرد میکروکنترلرها، میکروبیت (micro:bit) است. در این آموزش، با این برد و قابلیتهای آن آشنا خواهید شد.
آنچه در این آموزش یاد می گیرید
- آشنایی با میکروکنترلرهای میکروبیت
- معرفی نسخههای مختلف میکروبیت
- آشنایی با قابلیتها و مزایای میکروکنترلرهای میکروبیت
- آشنایی با نرمافزار تحت وب پایتون برای برنامهنویسی میکروبیت
- آشنایی با نرمافزار تحت وب Microsoft MakeCode برای برنامهنویسی میکروبیت
معرفی برد میکروبیت (Micro:bit)
از سال 2010 که آردوینو در بین بردهای بر پایه میکروکنترلر رواج پیدا کرد، انواع مختلف بردهای مبتنی بر میکروکنترلرهای مختلف ساخته شدند. میکروبیت نیز از جمله بردهای مبتنی بر میکروکنترلرهای سری nRF شرکت Nordic است که در سال 2016 اولین نسخه میکروبیت معرفی شد. در تصویر زیر، میکروبیت ورژن 2.2 این برد را مشاهده میکنید.
میکروکنترلر استفاده شده در این برد از مدل nRD52833 است که یک میکروکنترلر 32 بیتی بر پایه Arm-Cortex-M4 است. سایر مشخصات آن به صورت زیر میباشد:
- حجم حافظه فلش: 512 کیلوبایت
- حافظه رم: 128 کیلوبایت
- فرکانس کاری: 64 مگاهرتز
- رابط پروگرام: SWD و J-Link/OB
این برد همانطور که در تصویر بالا مشاهده میکنید دارای امکانات جانبی زیر است:
- بلوتوث نسخه 5.1 با قابلیت BLE
- ارتباط رادیویی RF 2.4 گیگاهرتزی با سرعت تبادل داده 1 یا 2Mbps
- 2 عدد دکمه فشاری
- 25 عدد الایدی به صورت ماتریس 5 در 5
- سنسور حرکتی LSM303AGR دارای شتابسنج و قطبنمای داخلی
- سنسور دماسنج با رزولوشن 0.25 درجه و دقت 5 درجه در بازه دمایی 40- تا 105 درجه سلسیوس
- اسپیکر
- میکروفون MEMs به همراه LED برای نمایش فعال بودن آن
- درگاه micro USB برای پروگرام کردن و برقراری ارتباط سریال با سرعت 12Mbit/s
همچنین، این برد دارای 19 پایه GPIO است که جزئیات آن به شرح زیر است:
- امکان تعریف کل 19 پایه به عنوان GPIO
- ارتباط I2C و SPI
- امکان کنترل همزمان 3 سیگنال PWM در هر یک از 19 پایه خروجی
- امکان تعریف 6 پایه به عنوان مبدل ADC (10 بیت)
- امکان اتصال حسگر لمسی بر روی 3 پایه
- امکان تعریف هریک از پایهها به عنوان پایههای ارتباط UART
البته از بین 19 پایه ذکر شده، 2 پایه برای دکمههای فشاری و 6 پایه برای کنترل نمایشگر و سنسور روشنایی رزرو شدهاند.
نسخههای مختلف میکروبیت
میکروبیت تاکنون 2 نسخه از برد خود را ارائه کرده است. بین آنها تفاوت اساسی دیده نمیشود اما بعضی از قابلیتها ارتقا یافته است. در ادامه، بهبودهایی که در نسخه 2 برد میکروبیت مشاهده میشود را به شما معرفی خواهیم کرد.
تفاوت کلی
برد میکروبیت نسخه 1، به ماژول بلوتوث 4 مجهز بود که در برد نسخه 2، به بلوتوث نسخه 5.0 ارتقا پیدا کرده است. همچنین میکروبیت نسخه 2، دارای میکروفون و اسپیکر است که میکروفون آن دارای نشانگر LED میباشد. این نسخه، دارای کلید OFF است که با نگه داشتن آن برد خاموش میشود.
قابلیت ساده اما جذاب دیگری که به میکروبیت نسخه 2 اضافه شده، لوگوی حساس به لمس است.
تفاوت سختافزاری
در قسمت سختافزار بهبودهای بیشتری مشاهده میشود. میکروکنترلر آن از مدل nRF51822 به nRF52833 ارتقا یافته است که باعث افزایش 2 برابری حافظه فلش (256 به 512 کیلوبایت) و 8 برابری حافظه رم (16 به 128 کیلوبایت) شده است.
برنامهنویسی برای برد micro:bit
ٰبرد میکروبیت، از زبانهای برنامهنویسی مختلفی مانند Python، Javascrip و Microsoft MakeCode پشتیبانی میکند. هر یک از آنها مزایایی نسبت به دیگری دارند. محیط برنامهنویسی پایتون، با اینکه بسیار گرافیکیتر و سادهتر طراحی شده است، نوشتارمحور است.
ولی محیط برنامهنویسی MakeCode، کاملاً گرافیکی است و تنها با قرار دادن بلوکهایی در کنار هم، برنامهها ایجاد میشوند.
هر یک از موارد فوق، دارای مزایایی نسبت به دیگری هستند اما مهمترین آن سادگی کار با نرمافزار است.
MakeCode، با توجه به برنامهنویسی بلوک محور، برای کاربران ابتدایی مناسبتر است. اما برای کدهای پیچیده مناسب نمیباشد.
پایتون نسبت به MakeCode نوشتاریتر است و نوشتن کدهای پیچیده و استفاده از کتابخانههای خارجی را ممکن میسازد. اما نسبت به Makecode پیچیدهتر است و کاربر باید درک ابتدایی از زبان برنامهنویسی داشته باشد.
در ادامه این آموزش، این دو محیط برنامهنویسی را بیشتر معرفی خواهیم کرد.
برنامهنویسی میکروبیت با پایتون
محیط برنامهنویسی پایتون به صورت تحت وب است و در مرورگرهایی مانند Chrome، Edge و Firefox قابلیت اجرا دارد. طبیعی است برای کار با پایتون به اینترنت نیاز دارید. اما پس از یکبار باز کردن آن، دادهها در حافظه کش مرورگر شما ذخیره میشوند و برای دفعات بعد، نیازی به اینترنت نخواهید داشت. البته گزینه help در حالت offline غیر فعال است.
محیط برنامهنویسی پایتون در مقایسه با MakeCode کمی نوشتاریتر شده است. بر خلاف MakeCode که کدنویسی میکروبیت به صورت کاملا گرافیکی و بلوک دیاگرامی انجام میشد، میتوانید در پایتون جزئیات برنامه را به صورت نوشتاری تعریف کنید.
تصویر این محیط برنامهنویسی به صورت زیر است.
صفحه اصلی این محیط برنامه نویسی، شامل یک کد اولیه است که در صورت پروگرام کردن آن روی برد میکروبیت، یکبار علامت قلب بر روی نمایشگر الایدی ماتریسی نشان داده میشود و سپس پس از تاخیر 1 ثانیهای، لغت Hello به نمایش در میآید.
در ادامه قسمتهای مختلف محیط این برنامه را که در تصویر فوق نیز شمارهگذاری شده، معرفی میکنیم.
قسمت 1: راهنمای کاربر
در این قسمت با کلیک بر روی هر یک از گزینههای Reference، Ideas و API میتوانید در برنامهنویسی خود، از برنامه کمک بگیرید.
مثلاً با کلیک بر روی گزینه Reference، همانطور که از معنی این کلمه پیداست، راهنمای مرجع این زبان کدنویسی نمایش داده میشود. موارد نمایش داده شده شامل مرجع کلیه سنسورها و ماژولهایی است که روی برد میکروبیت وجود دارند.
شما میتوانید با کلیک بر روی گزینههای مختلف، روش کار با آنها را یاد بگیرید. به عنوان مثال، Accelerometer، نمونه کدهایی است برای خواندن وضعیت یا مقدار شتاب. میتوانید با کلیک و نگه داشتن کلید چپ ماوس بر روی هر کدام، و جابجا کردن آن به محیط کد، آن را به کد خود اضافه کنید.
اگر بر روی Ideas کلیک کنید مثالهای مختلفی به نمایش درمیآید.
به عنوان مثال، با کلیک بر روی Step counter، کد آن نمایش داده میشود و با زدن گزینه Open، کد در محیط برنامهنویسی باز میشود.
اگر بر روی گزینه آخر که API است کلیک کنید دستورهای فراخوانی مقادیر ورودی و خروجی به/از سنسورها و ماژولها نمایش داده میشود.
به عنوان مثال، اگر بر روی accelerometer بزنید، توابع خواندن اطلاعات شتابسنج به شما نمایش داده میشود. با کپی کردن آن به محیط کد و اختصاص یک متغیر برای آن، می توانید مقدار شتاب را در جهات مختلف اندازهگیری کنید. یا با کلیک بر روی گزینه microbit به عملگرهای اصلی میکروکنترلر مانند reset، sleep یا دستورات کنترلی پایههای GPIO و دمای میکروکنترلر دسترسی پیدا خواهید کرد.
قسمت 2: نام پروژه
در این قسمت نام پروژه خود را وارد کنید.
قسمت 3: بخش کد
همانطور که در توضیحات قسمت 1 ذکر شد در این قسمت، کد نویسی انجام میشود.
قسمت4: شبیهسازی کد
یکی از مزایای این محیط برنامهنویسی، قابلیت شبیهسازی کد نوشته شده است. برای مثال، در تصویر زیر، با کلیک بر روی Play، میتوانید عملکرد کد نوشته شده را به صورت شبیهسازی شده مشاهده کنید.
همچنین 3 کلید در زیر این تصویر وجود دارد که به ترتیب از سمت چپ، وظیفه توقف شبیهسازی، ریستارت شبیهسازی و قطع/وصل صدا را بر عهده دارند.
کمی پایینتر، قسمتی را مشاهده میکنید که از طریق آن، میتوانید دادههای تبادل شده در درگاه سریال را رصد کنید.
در ادامه، تصویر زیر را مشاهده میکنید که امکان تغییر وضعیت ورودیهای برد میکروبیت را در حین شبیهسازی به کاربر میدهند.
در این تصویر، از بالا به پایین، میتوانید ورودیهای مربوط به شتابسنج، دما، قطبنما (Heading)، میکروفن، دکمههای فشاری، پایههای لمسی و پیامهای بیسیم را وارد شبیهسازی کنید. در انتهای این تصویر، قسمت Data logger قرار دارد که در صورت نیاز، امکان ذخیره دادهها را بر روی کامپیوتر فراهم میکند.
قسمت 5: پروگرام کردن
پس از اتصال برد میکروبیت به کامپیوتر با استفاده از کابل میکرو USB، با زدن این دکمه، مرورگر از شما شماره پورت برد میکروبیت را میپرسد و سپس شروع به پروگرام کردن آن میکند.
قسمت 6: ذخیره یا باز کردن فایل
در این قسمت می توانید پروژه خود را ذخیره کنید یا از محلی که قبلاً در آنجا ذخیره کرده بودید فایل کد خود را باز کنید.
برنامهنویسی میکروبیت با Microsoft MakeCode
محیط برنامه نویسی بلوکی مایکروسافت MakeCode مانند پایتون، به صورت تحت وب است. نسخه آفلاین آن نیز وجود دارد که میتوانید در سیستم خود نصب کنید.
برای دانلود این نرمافزار، به این لینک مراجعه کنید. همچنین برای ورود به محیط برنامهنویسی، بر روی این لینک بزنید.
در این آموزش، با ابزار آنلاین Microsoft MakeCode آشنا خواهید شد. با باز کردن این ابزار، صفحه اصلی زیر نمایش داده میشود.
در انتهای صفحه، انواع مثالها در زمینههای مختلف (بازی، پخش صدا، اسباب بازی، ارتباط بیسیم و غیره) در کنار راهنماییها، آموزش قطعات الکترونیک و ابزار و ماژولهای کاربردی، در اختیار کاربران قرار گذاشته شده است. با کلیک بر روی هریک از آنها، میتوانید تجربه بسیار جذابی داشته باشید.
برای ایجاد یک پروژۀ جدید، ابتدا بر روی New Project کلیک کرده و سپس نام پروژه خود را وارد کرده و سپس بر روی دکمه Create بزنید. اگر میخواهید از زبان برنامهنویسی خاصی برای کدنویسی استفاده کنید میتوانید آن را در قسمت مشخص شده در تصویر زیر تعیین کنید. در حالت پیشفرش، از بلوکها که به زبان پایتون و جاوا اسکریپت هستند به صورت ترکیبی در این نرمافزار استفاده میشود.
پس از زدن کلید Create، وارد صفحه اصلی برنامهنویسی میشوید. در صورتی که برای اولین بار وارد این صفحه شده باشید، راهنمای چند مرحلهای شما را با قسمتهای مختلف این محیط برنامهنویسی آشنا میکند. این محیط به شکل زیر است.
ابتدا یک دید کلی بر روی عملکرد هر بخش داشته باشیم. قسمتهای مختلف این ابزار در تصویر فوق شمارهگذاری شده است که وظایف زیر را به عهده دارند:
1: شبیهسازی کد نوشته شده
2: ابزارها (بلوکها)ی مختلف برنامهنویسی
3: محل چیدن بلوکها برای ایجاد برنامه
4: کلید پروگرام کردن میکروبیت
5: انتخاب/ویرایش نام پروژه و ذخیره آن
در ادامه، هر بخش را به طور جداگانه معرفی میکنیم.
قسمت 1: شبیهسازی کد
6 کلید در پایین صفحه قرار دارد که از سمت چپ، به ترتیب، وظیفه شروع/توقف شبیهسازی، ریستارت، فعال/غیر فعال کردن Debug، Mute/Unmute، فعال/غیر فعال کردن دوربین و حالت تمام صفحه را دارند.
با استفاده از این بخش میتوانید قبل از پروگرام کردن برد میکروبیت، از صحت عملکرد کد مطمئن شوید.
قسمت 2: ابزارها (بلوکها)ی مختلف برنامهنویسی
همانطور که در تصویر فوق میبینید بلوکهای مختص هر زمینه به صورت جداگانه مرتب شدهاند.
به عنوان مثال، اولین گزینه برای بلوکهای ابتدایی (Basic Blocks) است. با برداشتن و قرار دادن بلوک show leds در محیط برنامهنویسی، میتوانید شکل دلخواه خود را بر روی نمایشگر الایدی ماتریسی نمایش دهید.
برای اینکار، بر روی خانههایی از نمایشگر که میخواهید روشن شود کلیک کنید تا سفید شوند. به عنوان مثال به تصویر زیر نگاه کنید که یک شکل ضربدر را نمایش میدهد.
قسمت 3: محل چیدن بلوکها
همانطور که در قسمت 2 نیز توضیح داده شد، در اینجا بلوکها در کنار یکدیگر چیده میشوند تا تشکیل برنامه دهند.
هر پروژه که ایجاد میکنید، دو خانه on start و forever دارد. این قسمت برای کسانی که با آردوینو کار کرده باشند، بسیار آشنا خواهد بود و شاید نیازی به توضیح نباشد.
در on start، همانطور که از نامش پیداست، قرار است بلوکهایی چیده شود (برنامهای نوشته شود) که میخواهیم هربار که میکروبیت را روشن می¬کنیم همان ابتدا اجرا شوند.
در forever، بلوکهایی چیده میشود (برنامهای نوشته میشود) که میخواهیم میکروبیت دائماً آن را اجرا و تکرار کند.
مقلاً با قرار دادن بلوک show leds در خانه on start، شکلی که تعریف کردیم در ابتدای اجرای برنامه بر روی نمایشگر میکروبیت نمایش داده میشود.
قسمت 4 و 5 نیازی به توضیح ندارند و از آنها میگذریم.
یک گام جلوتر
در این آموزش، با بردهای میکروبیت آشنا شدیم. اگر به تازگی به حوزه الکترونیک علاقمند شده باشید، از کار کردن با این برد لذت خواهید برد.
پایتون و MakeCode نرمافزارهایی هستند که برای برنامهنویسی میکروبیت به شما معرفی کردیم. بسته به تواناییهای فعلی خود، از بین این دو نرمافزار، یکی را برای شروع برنامهنویسی انتخاب کنید.