میکروبیت micro:bit میکروپایتون Micropython

آموزش BBC micro:bit بخش سیزدهم: کنترل شدت نور led با آردوینو و پایتون

getting-started-with-bbc-microbit-step-thirteen-led-light-control-digispark
نوشته شده توسط پریسا پوربلورچیان

علاوه بر ال ای دی های داخلی که در دو ردیف ۵X5 بر روی میکروبیت قرار گرفته شده است، میتوانید به صورت خارجی از ال ی دی LED هم توسط پایه های دیجیتال بر روی برد استفاده کنید. در آموزش  کنترل شدت نور led با آردوینو و پایتون توسط چند ال ای دی حالت های مختلف فرمان به خروجی ال ای دی را در پایتون و آردوینو راه اندازی و تست می‌کنیم. در ادامه با مرجع تخصصی برد میکروبیت micro:bit به زبان فارسی، دیجی اسپارک همراه باشید.

کنترل شدت نور led با آردوینو و پایتون - دیجی اسپارک

 


اتصال ال ای دی به میکروبیت


ال ای دی نیاز به توضیح ندارد! یک دیود نورانی که در دو حالت HIGH , LOW در خروجی تعریف می‌شود. در این پروژه از ال ای دی های ساده ۵ میلی متری برای راه اندازی و اتصال به میکروبیت استفاده شده است. در آموزش کنترل شدت نور led با آردوینو و پایتون از پایه های دیجیتال برای انصال ال ای دی به میکروبیت استفاده می‌کنیم. برای اتصال ای ای دی به میکروبیت به سه روش میتوانید اقدام کنید. در مرحله ی اول بدون استفاده از برد بورد و شیلد میتوانید از طریق گیره سوسماری و با استفاده از تنها دو کابل اتصال میان ال ای دی و میکروبیت را برقرار کنید. در روش دوم توسط یک برد بورد میتوانید ال ای دی را بر روی برد بورد قرار داده و توسط مقاومت به یکی از پایه های دیجیتال اتصال دهید. در مرحله ی سوم استفاده از شیلد کاربردی GPIO است که میکروبیت از طریق اسلات قرار گرفته شده بر روی شیلد GPIO بر روی آن سوار شده و تمامی پایه ها از طریق ۳ ردیف پایه در اختیار ما قرار گرفته می‌شود. مزیت استفاده از شیلد GPIO چیزی نیست جز در اختیار داشتن دو ردیف ۲۰ تایی VCC , GND که برای اتصال چندین قطعه اتفاق خوشایندی است! برای اتصال ال ای دی به میکروبیت پیشنهاد می‌شود از مقاومت ۳۳۰ اهم و ۴۷۰ اهم استفاده کنید. برای اتصال مقاومت یک سر مقاومت را به پایه دیتا ( پایه بلندتر ) و سر دیگر مقاومت را با کابل به پایه دیجیتال مورد استفاده وصل کنید. در صورتیکه بخواهید چندین ال ای دی اضافه کنید، روش کار به همین صورت خواهد بود. به یک ال ای دی و یک مقاومت دیگر نیاز خواهید داشت.

اتصال ال ای دی به میکروبیت micro:bit - دیجی اسپارک

 


کد آردوینو ال ای دی چشمک زن با میکروبیت


برای برقراری ارتباط آردوینو با میکروبیت نوع برد را از منو TOOLS در نرم افزار آردوینو MICROBIT انتخاب کنید. سپس برد میکروبیت را به سیستم وصل کرده تا برد توسط ARDUINO IDE شناسایی و پورت مشخص شود. در صورتیکه تا به حال آردوینو را با میکروبیت راه اندازه نکرده اید، آموزش بخش یازدهم را کامل مطالعه کرده و فایل MICROBIT.ADV را به پوشه MICROBIT انتقال دهید. کد آردوینو برای ال ای دی چشمک زن دقیقا مشابه همان کدهایی است که تا به حال برای آردوینو مینوشتیم. در ابتدا پایه ی مورد نظر برای اتصال ال ای دی به پایه میکروبیت را در نرم افزار آردوینو معرفی می‌کنیم. یک اسم دلخواه برای ال ای دی خود در نظر بگیرید و خط اول کدنویسی را آغاز کنید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

برای آپلود کد برنامه از نوار ابزار بر روی Upload کلیک کنید.

کنترل شدت نور LED با برد میکروبیت - دیجی اسپارک

 


کد میکروپایتون LED چشمک زن با میکروبیت


برای کدنویسی میکروپایتون توسط برد میکروبیت از ادیتور mu و یا آنلاین وب ادیتور سایت میکروبیت برای کدنویسی میتوانید استفاده کنید. کدنویسی در میکروپایتون ساده تر، کوتاه تر و جذاب تر است. برای استفاده از میکروپایتون بایستی ماژول میکروبیت برای معرفی و استفاده از میکروبیت در کد برنامه تعریف کنید. از تابع import برای فراخوانی ماژول هایی استفاده می‌شود که به صورت پیشفرض در لیست پایتون وجود ندارد. برای همین منظور میکروبیت را با import در کد آردوینو معرفی می‌کنیم.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

در نهایت ال ای دی شروع به جشمک زدن خواهد کرد.

 


کنترل شدت نور led با کلیدهای میکروبیت در آردوینو


در قسمت آموزش کنترل شدت نور led با آردوینو و پایتون یاد گرفتیم که به دو زبان برنامه نویسی ال ای دی چشمک زن را با میکروبیت پیاده سازی کنیم. در این بخش توسط کلیدهای قرار گرفته شده بر روی برد میکروبیت شدت نور ال ای دی را کم و زیاد می‌کنیم.

  • ButtonA
  • ButtonB

در این کد توسط دو کلید ButtonA و ButtonB شدت نور ال ای دی کم و زیاد شده و سپس عدد آن بر روی ال ای دی ها مشخص شده است. کد آردوینو تنظیم شدت نور ال ای دی به صورت زیر است.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

برای تست و راه اندازی این کد به کتابخانه ی Adafruit_Microbit.h نیاز داریم.

#include <Adafruit_Microbit.h>

 

توابع مورد نیاز برای معرفی کتابخانه به میکروبیت به صورت زیر است.

#include <Adafruit_Microbit.h>

Adafruit_Microbit_Matrix microbit;

از چندین تابع برای تعریف حد بالا و حد پایین و تعیین شدت نور در برنامه استفاده می‌کنیم که به صورت زیر در برنامه معرفی شده است.

  • min_power – پایین ترین سطح خروجی یعنی عدد ۰ که به معنی خاموش شدن ال ای دی است، توسط این دستور در کد برنامه مشخص شده است و میتوانید شدت نور را تغییر دهید.
  • max_power – بالاترین سطح خروجی یعنی عدد۱ که به معنی روشن شدن ال ای دی است، توسط این دستور در کد برنامه مشخص شده است و میتوانید شدت نور را تغییر دهید..
  • power_step – شدت نور در ۱۰ مرحله تغییر می‌کند که توسط این دستور مشخص شده است.
  • brightness – توسط این دستور سطح شدت نور ال ای دی مشخص شده است.

حد پایین و حد بالا به ترتیب با ۵۰ , ۲۵۵ مشخص شده است. در کد برنامه برای ورودی ها از دو کلید قرار گرفته شده بر روی برد میکروبیت استفاده می‌کنیم. این دو کلید در برنامه نقش ورودی را دارد.

pinMode(PIN_BUTTON_A, INPUT);
  pinMode(PIN_BUTTON_B, INPUT);

 

برای شرط نویسی از کاندیشن های شرطی استفاده می‌کنیم. اگر در برنامه نویسی آردوینو بخواهیم تحت شرایطی تعدادی از دستورات اجرا و یا تعدادی دیگر اجرا نشود، از ساختارهای تصمیم استفاده می‌کنیم. ساختار if شرطی را تست کرده، در صورت درست بودن شرط، دستورات را اجرا می‌کند. ساختار if دستور انتقال کنترل شرطی است و در ابتدا شرطی را تست می‌کند و در صورتی که شرط دارای ارزش درستی باشد، مجموعه ای از دستورات را اجرا می‌کند. در این قسمت با فشردن کلید A شدت نور ال ای دی کاهش یافته و با –Brightness مقدار شدت نور ال ای دی کاهش می‌یابد. سپس با فشردن کلید B مقدار شدت نور ال ای دی افزایش ++ یافته و همزمان شرط بین ۰ تا ۹ را بررسی می‌کند.

if (digitalRead(PIN_BUTTON_A) == LOW) {
    brightness --;
    if (brightness < 0) {
      brightness = 0;
    }
    setPower(brightness);
    delay(200);
  }
  else if (digitalRead(PIN_BUTTON_B) == LOW) {
    brightness ++;
    if (brightness > 9) {
      brightness = 9;
    }
    setPower(brightness);
    delay(200);
  }
}

 

نکته ای در این کد قابل توجه است، استفاده از یک تابع کاستومایز شده ( شخصی سازی شده ) برای شدت نور ال ای دی است که در یک حلقه مجزا تعریف شده است و در صورت نیاز در حلقه اصلی برنامه آن را فراخوانی خواهیم کرد. در این حلقه برای چاپ عدد ۰ تا ۹ برای شدت نور Brightness کد جدا نوشته شده است و توسط microbit print عدد نمایش داده می‌شود. اگر عدد صفر باشد، شدت نور ال ای دی صفر و اگر عدد تا ۹ افزایش یابد، به ترتیب شدت نور ال ای دی تا رسیدن به مقدار ۹ افزایش می‌یابد.

void setPower(int brightness) {
  microbit.print(brightness);
  if (brightness == 0) {
    analogWrite(ledPin, 0);
  }
  else {
    analogWrite(ledPin, brightness * powerStep + minPower);
  }
}

 

 


کنترل شدت نور led با کلیدهای میکروبیت در میکروپایتون


کد کامل میکروپایتون برای تنظیم شدت نور ال ای دی با کلیدهای قرار گرفته شده در میکروبیت به صورت زیر است.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

از چندین تابع برای تعریف حد بالا و حد پایین و تعیین شدت نور در برنامه استفاده می‌کنیم که به صورت زیر در برنامه معرفی شده است.

  • min_power – پایین ترین سطح خروجی یعنی عدد ۰ که به معنی خاموش شدن ال ای دی است، توسط این دستور در کد برنامه مشخص شده است و میتوانید شدت نور را تغییر دهید.
  • max_power – بالاترین سطح خروجی یعنی عدد۱ که به معنی روشن شدن ال ای دی است، توسط این دستور در کد برنامه مشخص شده است و میتوانید شدت نور را تغییر دهید..
  • power_step – شدت نور در ۱۰ مرحله تغییر می‌کند که توسط این دستور مشخص شده است.
  • brightness – توسط این دستور سطح شدت نور ال ای دی مشخص شده است.

برای استفاده از کلیدهای داخلی در میکروبیت از دستور زیر استفاده می‌شود. دو کلید بر روی میکروبیت با نام های A , B مشخص شده است. برای فراخوانی و استفاده از کلیدها در کد پایتون برنامه بایستی از دستورات آن ها استفاده کنیم.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

تمامی این دستورات به صورت کامل در بخش نهم سری آموزش های میکروبیت آموزش داده شده است.

برای تست برنامه در میکروپایتون ابتدا بر روی Connect کلیک کنید. سپس برد را Pair کنید.

 

پس از کانکت شدن برنامه را Flash کنید.

 

برای تست برنامه از کلید A برای کاهش شدت نور و از کلید B برای افزایش شدت نور ال ای دی استفاده کنید.

افزایش و کاهش شدت نور ال ای دی در میکروبیت micro:bit - دیجی اسپارک

 


جمع بندی لیدی پای


در بخش سیزدهم از سری آموزش های میکروبیت دو پروژه ی فوق العاده جذاب و کاربردی به کمک کتابخانه ی Adafruit اجرا کردیم. برای کدنویسی و اجرا از دو IDE پایتون و سی پلاس پلاس استفاده شده است. از Arduino IDE برای کدنویسی میکروپایتون به زبان سی پلاس پلاس استفاده شده است که از کتابخانه ی Adafruit کمک گرفتیم و توانستیم شدت نور ال ای دی را توسط دو کلید قرار گرفته شده بر روی برد میکروبیت تنظیم کرده و همزمان عدد آن را بر روی ال ای دی های داخلی نمایش دهیم. همچنین تمامی دستورات برنامه نویسی آموزش داده شده است و میتوانید کد را بهینه کنید. دیگر قسمت این پروژه اجرای برنامه با میکروپایتون در وب ادیتور آنلاین میکروبیت است. تمامی دستورات مورد نیاز برای کدنویسی در پایتون در بخش نهم سری آموزش های میکروبیت یاد گرفتیم و الان زمان استفاده از دستورات فرا رسیده است. توابع مورد نیاز در متن آموزش کنترل شدت نور led با آردوینو و پایتون گفته شده است، تست و اجرا کرده و لذت ببرید 🙂

 


وسایل مورد نیاز


برد میکروبیت MICROBIT BBC V2

شیلد GPIO MICROBIT

ال ای دی LED

مقاومت

برد بورد

پروژه کنترل نور ال ای دی با میکروپایتون در برد micro:bit - دیجی اسپارک

 

چنانچه در مراحل راه اندازی برد میکروبیت و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه