اگر تا به حال ال ای دی های نئوپیکسل را با پایتون پیاده سازی نکرده اید، این آموزش برای شما نوشته شده است. ال ای دی نئوپیسکل در مدل های مختلف با تعداد پیکسل های متفاوت عرضه شده است و با تمامی میکروکنترلرها سازگاری دارد. اما این بار به یک سبک کاملا متفاوت پروژه ها را اجرا میکنیم. CircuitPython یکی از زیر شاخه های زبان برنامه نویسی پایتون است که شامل بسیاری از کتابخانه های پرطرفدار کاربران است و به راحتی با یک Drag & Drop قابل اجرا است. در ادامه روش ساخت رقص نور با ال ای دی نئوپیکسل و رزبری پای پیکو را یاد خواهیم گرفت. با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.
نصب CircuitPython در رزبری پای پیکو
CircuitPython دارای رابط کاربری ساده برای شروع یادگیری و نسخه ی اوپن سوری از پایتون و انتخاب فوق العاده ای برای میکروکنترلر ها است. طراحی CircuitPython دارای دیسک درایو USB است که پس از اتصال به سیستم نمایش داده میشود و فایل و کدها را در خود ذخیره میکند. به راحتی میتوانید تمامی فابل ها را بدون نیاز به نصب هیچ برنامه ای با استفاده از Drag and Drop به درایور USB انتقال دهید. زمانیکه فایل را در درایو دیسک ذخیره می کنید ، CircuitPython کد شما را مجدد راه اندازی می کند. بدین صورت که وقتی کد پایتون را می نویسید ، پس از ذخیره به صورت اتوماتیک کد را برای شما اجرا و ریلود میکند تا سریع استفاده کنید. CircuitPython بر روی تمامی بردهای امبدد یعنی Pico, NRF, ESP سازگار است و از آن ها پشتیبانی میکند. تا به حال بیش از ۲۶۰ کتابخانه ی استاندار برای آن توسعه یافته است که این روند همچنان ادامه دار و در حال به روز رسانی است. جهت نصب CircuitPython روی رزبری پای پیکو کلیک کنید.
یکی از قابلیت های منحصر به فرد CircuitPython نصب پکیج کتابخانه CircuitPython Libraries است. هر برنامه ی CircuitPython که اجرا میکنید به اطلاعات پیش فرضی از قبل نیاز دارد. دلیل اینکه CircuitPython به سادگی قابل اجرا است، اجرای پیش فرض های مهم و ضروری در پشت صحنه است. کتابخانه ها از قبل اجرا شده و فقط کافیست در برنامه فراخوانی شود. به طور کلی CircuitPython از دو بخش کتابخانه های پیش فرض که از قبل وجود دارد و کتابخانه هایی که در Lib قرار میگیرند، تشکیل شده است. پس از نصب CircuitPython یکی از پوشه ها با نام Lib نمایش داده میشود و در صورت فراخوانی کتابخانه های جدید بایستی در این پوشه قرار گیرند.
نصب کتابخانه Bundle در CircuitPython
کمپانی Adafruit هر روز در حال توسعه ی کتابخانه های کاربردی و معروف در بین کاربران است و تمامی کتابخانه ها در فایلی با نام Bundle ذخیره شده است و کافی است آن را دانلود کرده و سپس کتابخانه های مورد نظر خود را پیدا، انتخاب و به پوشه ی Lib در CircuitPy انتقال دهید.
برای دانلود CircuitPython Library Bundle کلیک کنید.
- دانلود AdafruitCircuitPython-Bundle
- انتخاب کتابخانه ی مورد نظر
- کپی فایل با پسوند mpy
- انتخاب پوشه Lib در Circuitpy
- انتقال به CIRCUITPY
به همین سادگی کتابخانه ی مورد نظر و برنامه ی پیش فرض نوشته شده برای آن اجرا میشود.
پس از بار شدن پوشه Adafruit-circuitpython-bundle با صفحه ی زیر رو به رو میشوید.
پوشه Lib را باز کنید. تمامی کتابخانه های توسعه یافته برای CircuitPython در این بخش قرار دارد و کافیست آن ها را کپی و به پوشه Lib در رزبری پای پیکو یعنی CircuitPY انتقال دهید.
کپی کتابخانه در رزبری پای پیکو
در این آموزش هدف راه اندازی ال ای دی نئوپیکسل است. از لیست کتابخانه های Bundle، کتابخانه ی Neopixel را انتخاب میکنیم. سپس آن را به رزبری پای پیکو در پوشه ی Lib کپی میکنیم.
بر روی فایل دبل کلیک کنید تا برنامه ی پایتون یعنی neopixel.mpy اجرا شود. اگر از نرم افزار MU استفاده میکنید، برنامه در نرم افزار اجرا میشود.
برنامه نویسی LED Neopixel با پایتون
برای برنامه نویسی ال ای دی نئوپیسکل پس از انجام اتصالات و فراخوانی کتابخانه به Circuitpy زمان کدنویسی فرا رسیده است. کد زیر را بایستی در پوشه code.py ذخیره کنید تا اجرا شود.
import board import neopixel num_pixels = 16 pixels = neopixel.NeoPixel(board.GP0, num_pixels) pixels.brightness = 0.5 while True: pixels.fill((255, 0, 0))
تحلیل کدنویسی پایتون LED Neopixel
قدم اول در برنامه نویسی پایتون فراخوانی کتابخانه ها است که در این بخش برد و نئوپیکسل را فراخوانی میکنیم.
import board import neopixel
در قدم بعدی تعداد پیکسل های استفاده شده است که به صورت زیر در برنامه تعریف میکنیم و تعداد پیکسل ها را وارد میکنیم.
num_pixels = 16
قدم بعدی مشخص کردن GP استفاده شده و انتخاب یک متغیر دلخواه برای ذخیره ی دیتای دریافتی است که در این بخش از پایه GP0 برای اتصال پایه DIN ال ای دی استفاده شده است.
pixels = neopixel.NeoPixel(board.GP0, num_pixels)
شدت نور ال ای دی به صورت زیر تعریف میشود.
pixels.brightness = 0.5
برای پر شدن تمام پیکسل ها از دستور PIXEL.FILL استفاده میکنیم.
while True: pixels.fill((255, 0, 0))
انتخاب کد رنگ دلخواه است. برای اجرا شدن برنامه بر روی SAVE کلیک کنید.
ال ای دی NEOPIXEL به رنگ قرمز روشن خواهد شد.
تعمیم کد پروژه
در این بخش زمان را وارد کدنویسی شده است. توسط تابع TIME.SLEEP مدت زمان تغییر رنگ نئوپیکسل را در برنامه مشخص میکنیم. به دلخواه از سه رنگ برای تغییر شدت نور استفاده میکنیم. که با مدت زمان ۱ ثانیه رنگ ها تغییر میکند. انتخاب رنگ ها را به کمک جدول کد رنگ استخراج کنید.
import time import board import neopixel num_pixels = 16 pixels = neopixel.NeoPixel(board.GP0, num_pixels) pixels.brightness = 1 while True: pixels.fill((255, 0, 0)) time.sleep(1) pixels.fill((0, 255, 0)) time.sleep(1) pixels.fill((0, 0, 255)) time.sleep(1)
برای نمایش تغییرات جدید، مجدد بر روی SAVE کلیک کنید تا برنامه بر روی ال ای دی و رزبری پای پیکو اجرا شود. هر تعداد رنگ را در دستور شرطی while True میتوانید تعریف کنید و محدودیتی وجود ندارد.
اتصال LED نئوپیکسل به رزبری پای پیکو
ال ای دی نئوپیکسل دارای ۴ پایه از دو طرف است:
سمت راست:
- پایه GND
- پایه Dout
- پایه ۴ – ۷ DC
- پایه GND
سمت چپ:
- پایه GND
- پایه DIN
- پایه ۴ – ۷ DC
- پایه GND
پایه DIN, DOUT جهت اتصال سری ال ای دی ها استفاده میشود. به عنوان مثال اگر بخواهید ۴ عدد ال ای دی نئوپیکسل را به یکدیگر متصل کنید، پایه DIN ال ای دی اول را به پایه DOUT ال ای دی دوم متصل میکنیم. به همین ترتیب روند اتصالات ادامه پیدا میکند. برای اتصال به رزبری پای پیکو مجاز به استفاده از تمامی پایه های GP هستیم که در تصویر زیر با رنگ سبز کم رنگ مشخص شده است.
در این آموزش به دلخواه از GP0 استفاده شده است.
خرید تجهیزات آموزش
رزبری پای پیکو Raspberry Pi PICO
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
واقعا میکروکنترلر مسخره و پر دردسری ه ! صد رحمت به آردوینو !
این خیلی داستان داره ! این رو دانلود کن، حالا این رو فشار بده بعد
دراگ اند دراپ کن بعد …
با سلام
سپاس از همراهی شما کاربر گرامی
برد رزبری پای پیکو بسیار قدرتمند و با هدف پوشش بسیاری از پارمترهای خاص در برنامه نویسی طراحی تولید شده است و جامعه کاربری آن در دنیا هر روز در حال رشد و توسعه است. قطعا روش برنامه نویسی آن بسیار نوآوری داشته و با هدف افزایش سرعت و رابط کاربری بهتر با در دسترس قرار گرفتن کتابخانه های پرمصرف توسعه یافته است.
با سلام
آیا استفاده از circuitpython را پیشنهاد میکنید/
با سلام
این مورد کاملا دلخواه است و circuitpython برای کسایی که تمایل به یادگیری خط به خط برنامه را ندارند، پیشنهاد میشود.
با سلام
برای سیرکوییت پاییتون نیازی به نوشتن کد نیست> آماده است؟
با سلام
نزدیک به ۳۰۰ برنامه از قبل نوشته شده برای Circuitpython نوشته شده است و به راحتی میتوانید تست کنید.