آموزش رزبری پای رزبری پای

ساخت رقص نور با رزبری پای پیکو Pico

led-ring-light-dancer-with-raspberry-pi-pico-digispark
نوشته شده توسط پریسا پوربلورچیان

اگر تا به حال ال ای دی های نئوپیکسل را با پایتون پیاده سازی نکرده اید، این آموزش برای شما نوشته شده است. ال ای دی نئوپیسکل در مدل های مختلف با تعداد پیکسل های متفاوت عرضه شده است و با تمامی میکروکنترلرها سازگاری دارد. اما این بار به یک سبک کاملا متفاوت پروژه ها را اجرا می‌کنیم. 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 نمایش داده می‌شود و در صورت فراخوانی کتابخانه های جدید بایستی در این پوشه قرار گیرند. 

نصب و راه اندازی circuit python - دیجی اسپارک

 


نصب کتابخانه Bundle در CircuitPython


کمپانی Adafruit هر روز در حال توسعه ی کتابخانه های کاربردی و معروف در بین کاربران است و تمامی کتابخانه ها در فایلی با نام Bundle ذخیره شده است و کافی است آن را دانلود کرده و سپس کتابخانه های مورد نظر خود را پیدا، انتخاب و به پوشه ی Lib در CircuitPy انتقال دهید.

برای دانلود CircuitPython Library Bundle کلیک کنید. 

  • دانلود AdafruitCircuitPython-Bundle
  • انتخاب کتابخانه ی مورد نظر
  • کپی فایل با پسوند mpy
  • انتخاب پوشه Lib در Circuitpy
  • انتقال به CIRCUITPY

به همین سادگی کتابخانه ی مورد نظر و برنامه ی پیش فرض نوشته شده برای آن اجرا می‌شود.

نصب کتابخانه Bundle در CircuitPython - دیجی اسپارک

 

پس از بار شدن پوشه Adafruit-circuitpython-bundle با صفحه ی زیر رو به رو می‌شوید.

مراحل نصب کتابخانه Bundle در CircuitPython - دیجی اسپارک

 

پوشه Lib را باز کنید. تمامی کتابخانه های توسعه یافته برای CircuitPython در این بخش قرار دارد و کافیست آن ها را کپی و به پوشه Lib در رزبری پای پیکو یعنی CircuitPY انتقال دهید.

 


کپی کتابخانه در رزبری پای پیکو


در این آموزش هدف راه اندازی ال ای دی نئوپیکسل است. از لیست کتابخانه های Bundle، کتابخانه ی Neopixel را انتخاب می‌کنیم. سپس آن را به رزبری پای پیکو در پوشه ی Lib کپی می‌کنیم.

کپی کتابخانه در رزبری پای پیکو pico - دیجی اسپارک

 

بر روی فایل دبل کلیک کنید تا برنامه ی پایتون یعنی 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 با پایتون - دیجی اسپارک

 

پروژه ساخت رقص نور با رزبری پای پیکو pico - دیجی اسپارک

 


تحلیل کدنویسی پایتون 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 کلیک کنید.

برنامه نویسی LED Neopixel با پایتون رقص نور - دیجی اسپارک

 

ال ای دی 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 هستیم که در تصویر زیر با رنگ سبز کم رنگ مشخص شده است.

اتصال LED نئوپیکسل به رزبری پای پیکو Pico - دیجی اسپارک

 

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

 

اتصال LED نئوپیکسل به رزبری پای پیکو pico رقص نور - دیجی اسپارک

 


خرید تجهیزات آموزش


رزبری پای پیکو Raspberry Pi PICO

ال ای دی نئوپیسکل 

کابل و برد بورد

 

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

 

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

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

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

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

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

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

۶ دیدگاه

  • واقعا میکروکنترلر مسخره و پر دردسری ه ! صد رحمت به آردوینو !
    این خیلی داستان داره ! این رو دانلود کن، حالا این رو فشار بده بعد
    دراگ اند دراپ کن بعد …

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

    • با سلام
      این مورد کاملا دلخواه است و circuitpython برای کسایی که تمایل به یادگیری خط به خط برنامه را ندارند، پیشنهاد می‌شود.

    • با سلام
      نزدیک به ۳۰۰ برنامه از قبل نوشته شده برای Circuitpython نوشته شده است و به راحتی میتوانید تست کنید.