آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

قسمت 10
دوره آموزشی رزبری پای 10
مشاهده سایر جلسات آموزش
9 بازدید
۱۴۰۵-۰۴-۲۲
7 دقیقه
  • نویسنده: بهاره بهرامی
  • درباره نویسنده: ---

همان‌طور که چاپ‌کردن عبارت «Hello, World» روی صفحه‌نمایش یک قدم عالی برای شروع یادگیری یک زبان برنامه‌نویسی است، روشن‌کردن یک LED نیز روش سنتی برای شروع یادگیری محاسبات فیزیکی (Physical Computing) محسوب می‌شود.

برای این پروژه به وسایل زیر نیاز دارید:

  • یک LED
  • یک مقاومت ۳۳۰ اهم (330 Ω) یا مقاومتی که مقدارش تا حد ممکن نزدیک به ۳۳۰ اهم باشد
  • سیم‌های جامپر Female‑to‑Female یا F2F
مقاومت بسیار مهم است

مقاومت با محدود کردن جریان عبوری از رزبری پای و LED محافظت می کند. در صورت عدم وجود مقاومت،LED  ممکن است جریان زیادی دریافت کند که منجر به خرابی LED یا برد رزبری پای گردد.

مقدار دقیق مقاومتی که نیاز دارید به نوع LED مورد استفاده وابسته است، اما ۳۳۰ اهم (330 Ω) برای بیشتر LEDهای معمولی مناسب است.

  • هر چه مقدار مقاومت بیشتر باشد،LED کم‌نورتر می‌شود.
  • هر چه مقدار مقاومت کمتر باشد،LED پرنورتر می‌شود.

هیچ‌وقت یک LED را بدون مقاومت محدودکنندهٔ جریان به رزبری پای وصل نکنید، مگر اینکه مطمئن باشید خود LED دارای مقاومت داخلی با مقدار مناسب است.

کار را با بررسی سالم‌بودن LED شروع کنید. رزبری پای خود را طوری بچرخانید که پین‌های GPIO (هدر GPIO) به‌صورت دو ردیف عمودی در سمت راست قرار گیرند. یک سرِ مقاومت ۳۳۰ اهمی خود را با استفاده از یک سیم جامپر ماده به ماده به اولین پین ۳.۳ ولت (که در شکل 1-10 با برچسب 3V3 مشخص شده) وصل کنید؛ سپس سر دیگر آن را با یک سیم جامپر ماده به مادهٔ دیگر به پایه بلندتر LED یعنی قطب مثبت یا آنُد (anode) متصل کنید. در نهایت، یک سیم جامپر ماده به مادهٔ دیگر بردارید و پایه کوتاه LED یعنی قطب منفی یا کاتُد (cathode) را به اولین پین زمین (که در شکل 1-10 با برچسب GND مشخص شده) وصل کنید.

شکل ۱-6: LED خود را به این پین‌ها وصل کنید – مقاومت را فراموش نکنید!

شکل 1-10: LED خود را به این پین‌ها وصل کنید – مقاومت را فراموش نکنید!

تا زمانی که رزبری پای شما روشن است،LED  باید روشن شود. اگر روشن نشد، مدار خود را دوباره بررسی کنید: مطمئن شوید که از مقاومت با مقدار خیلی بالا استفاده نکرده‌اید، همه سیم‌ها به درستی وصل شده‌اند و دقیقاً پین‌های GPIO صحیح را مطابق با نمودار انتخاب کرده‌اید. همچنین پایه‌های LED را بررسی کنید، زیرا LEDها فقط در یک جهت کار می‌کنند: پایه بلندتر به سمت مثبت مدار و پایه کوتاه‌تر به سمت منفی وصل می‌شود.

هنگامی که LED شما به‌درستی کار کرد، زمان برنامه‌نویسی آن است. سیم جامپر را از پین ۳.۳ ولت (که در شکل 2-10 با برچسب 3V3 مشخص شده) جدا کنید و آن را به پین GPIO 25 (که در شکل 2-10 با برچسب GP25 مشخص شده) وصل کنید. اکنون LED خاموش می‌شود، اما نگران نباشید – این امر کاملاً طبیعی است.

شکل ۲-۶: سیم را از پین 3V3 جدا کرده و به پین GPIO 25 وصل کنید.

شکل 2-10: سیم را از پین 3V3 جدا کرده و به پین GPIO 25 وصل کنید.

«اکنون شما آماده هستید تا یک برنامه اسکرچ (Scratch) یا پایتون (Python) برای روشن و خاموش‌کردن LED خود بسازید.»

 

دانش برنامه‌نویسی

برای انجام پروژه‌های این فصل، لازم است با نحوه استفاده از اسکرچ ۳ (Scratch 3) و محیط توسعه یکپارچه (IDE) پایتون تانی (Thonny Python)  آشنایی کافی داشته باشید.

اگر هنوز این کار را انجام نداده‌اید، به فصل ۴ (برنامه‌نویسی با اسکرچ ۳) و فصل ۵ (برنامه‌نویسی با پایتون) مراجعه کنید و ابتدا پروژه‌های آن فصل‌ها را به پایان برسانید.

کنترل LED در اسکرچ

اسکرچ ۳ را اجرا کنید و روی آیکون زیر

افزودن افزونه (Add Extension)

آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

کلیک کنید. به پایین اسکرول کنید تا افزونه «Raspberry Pi GPIO» را پیدا کنید (شکل 3-10)، سپس روی آن کلیک کنید. با این کار، بلاک‌های موردنیاز برای کنترل هدر GPIO رزبری پای از طریق اسکرچ ۳ بارگذاری می‌شوند. خواهید دید که بلاک‌های جدید در پالت بلاک‌ها ظاهر می‌شوند؛ هر زمان که به آن‌ها نیاز داشته باشید، در دسته‌بندی Raspberry Pi GPIO در دسترس هستند.

 

شکل ۳-۶: افزودن افزونهٔ Raspberry Pi GPIO به برنامهٔ اسکرچ ۳

شکل 3-10: افزودن افزونهٔ Raspberry Pi GPIO به برنامهٔ اسکرچ ۳

ابتدا یک بلاک when پروژه آموزش ساخت بازی تایمر فضانورد در Scratchclicked از بخش Events را به ناحیهٔ کدنویسی بکشید. سپس یک بلاک set gpio to output high را زیر آن قرار دهید.

باید شمارهٔ پینی را که استفاده می‌کنید انتخاب کنید: روی فلش کوچک کلیک کنید تا فهرست کشویی باز شود، سپس عدد 25 را انتخاب کنید تا به اسکرچ بگویید که در حال کنترل پین GPIO 25 هستید.

آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

برای اجرای برنامه، روی پرچم سبز کلیک کنید. خواهید دید که LED روشن می‌شود؛ شما اولین پروژهٔ محاسبات فیزیکی خود را برنامه‌نویسی کرده‌اید!

برای متوقف کردن برنامه، روی علامت هشت‌ضلعی قرمز (Stop) کلیک کنید. توجه کنید که LED همچنان روشن می‌ماند. دلیلش این است که برنامهٔ شما فقط به رزبری پای گفته است LED را روشن کند — این همان معنی بخش output high در بلاک set gpio 25 to output high است.

شاید برای شما مفید باشد:
Arduino Nano RP2040 Connect - اولین آردوینو رسمی با میکروکنترلر رزبری پای

برای خاموش‌کردن LED، روی فلش کوچک انتهای بلاک کلیک کنید و از فهرست گزینهٔ low را انتخاب کنید.

آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

دوباره روی پرچم سبز کلیک کنید؛ این بار برنامهٔ شما LED را خاموش می‌کند.

برای جالب‌تر شدن برنامه، یک بلاک forever از بخش Control اضافه کنید و چند بلاک wait 1 seconds نیز قرار دهید تا برنامه‌ای بسازید که LED را هر یک ثانیه یک‌بار روشن و خاموش (چشمک‌زن) کند.

آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

روی پرچم سبز کلیک کنید و به LED نگاه کنید. LED برای یک ثانیه روشن می‌شود، سپس برای یک ثانیه خاموش می‌شود، دوباره یک ثانیه روشن می‌شود و این الگو مرتب تکرار می‌شود تا زمانی که روی علامت هشت‌ضلعی قرمز (Stop) کلیک کنید و برنامه را متوقف کنید.

امتحان کنید وقتی LED در حالت روشن یا خاموش است روی علامت توقف کلیک کنید و ببینید چه اتفاقی می‌افتد.

 

چالش: آیا می‌توانید آن را تغییر دهید؟
  • چطور می‌توانید برنامه را تغییر دهید تا LED مدت بیشتری روشن بماند؟
  • اگر بخواهید مدت بیشتری خاموش بماند چه تغییری باید بدهید؟
  • کمترین مقدار زمان تأخیر (delay) که می‌توانید استفاده کنید و هنوز هم بتوانید روشن و خاموش‌شدن LED را ببینید چقدر است؟

کنترل LED با پایتون

برنامه Thonny را از بخش Programming در منوی رزبری پای باز کنید. سپس روی دکمه New کلیک کنید تا یک پروژهٔ جدید شروع شود و آن را با نام Hello LED ذخیره کنید.

برای استفاده از پین‌های GPIO در پایتون، به یک کتابخانه به نام GPIO Zero  نیاز دارید. در این پروژه فقط به بخشی از این کتابخانه که برای کار با LEDها است احتیاج دارید.

برای واردکردن همین بخش از کتابخانه، کد زیر را در قسمت Python shell تایپ کنید:

در مرحلهٔ بعد باید به GPIO Zero بگویید که LED به کدام پین GPIO وصل شده است.

کد زیر را تایپ کنید:

این دو خط کد در کنار هم به پایتون اجازه می‌دهند LEDهای متصل به پین‌های GPIO رزبری پای را کنترل کند و مشخص می‌کنند که LED به کدام پین وصل شده است. (یا اگر چند LED داشته باشید، کدام پین‌ها باید کنترل شوند).

برای اینکه واقعاً LED را کنترل کنید، کد زیر را تایپ کنید:

برای اینکه LED دوباره خاموش شود، این دستور را تایپ کنید:

تبریک! حالا شما می‌توانید پین‌های GPIO رزبری پای را با پایتون کنترل کنید.

دوباره همان دو دستور را امتحان کنید. اگر LED از قبل خاموش باشد، دستور led.off() کاری انجام نمی‌دهد. همین‌طور اگر LED از قبل روشن باشد و شما led.on() را تایپ کنید، تغییری ایجاد نمی‌شود.

برای ساختن یک برنامهٔ واقعی، کد زیر را در بخش Script تایپ کنید:

این برنامه تابع LED را از کتابخانه gpiozero (GPIO Zero) و تابع sleep را از کتابخانه time وارد می‌کند. سپس یک حلقهٔ بی‌نهایت (infinite loop) می‌سازد که LED را یک ثانیه روشن می‌کند، یک ثانیه خاموش می‌کند و این کار را به طور مداوم تکرار می‌کند.

روی دکمه Run کلیک کنید تا برنامه اجرا شود؛ LED شما شروع به چشمک‌زدن خواهد کرد.

مثل برنامهٔ اسکرچ، توجه کنید وقتی دکمه Stop را می‌زنید چه اتفاقی می‌افتد؛ مخصوصاً وقتی که LED در حالت روشن است در مقایسه با زمانی که خاموش است.

چالش: روشن ماندن طولانی‌تر

چطور می‌توانید برنامه را تغییر دهید تا LED مدت بیشتری روشن بماند؟

اگر بخواهید مدت بیشتری خاموش بماند چه تغییری لازم است؟

کمترین مقدار تأخیر (delay) که هنوز بتوانید روشن و خاموش‌شدن LED را ببینید چقدر است؟

 

استفاده از بردبورد  (Breadboard)

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

آموزش روشن کردن LED با رزبری پای (Raspberry Pi) با Scratch و Python

بردبورد چیست و چطور کار می‌کند؟

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

شاید برای شما مفید باشد:
آموزش واحد RNG در میکروکنترلر WCH | تولید اعداد تصادفی

نحوهٔ اتصال داخلی

این اتصال‌ها به‌صورت ردیفی/ستونی روی برد قرار دارند.

در بیشتر بردبوردها یک شکاف در وسط وجود دارد که برد را به دو نیمه تقسیم می‌کند.

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

مثلاً:

A1 = گوشهٔ بالا-چپ

B1 = سوراخ کنار آن

B2 = یک خانه پایین‌تر

در این حالت:

A1 به B1 وصل است، اما هیچ سوراخی در ردیف 1 به سوراخی در ردیف 2 وصل نیست مگر اینکه خودتان با سیم جامپر وصلشان کنید.

ریل‌های تغذیه

در بردبوردهای بزرگ‌تر معمولاً در کناره‌ها ستون‌هایی از سوراخ‌ها وجود دارد که با خط‌های:

  • قرمز و مشکی
  • قرمز و آبی

مشخص شده‌اند. این‌ها ریل تغذیه (Power Rails) هستند و سیم‌کشی را راحت‌تر می‌کنند.

مثلاً:

می‌توانید یک سیم از GND رزبری‌پای را به ریل آبی/مشکی (منفی) وصل کنید تا زمین مشترک برای چند قطعه داشته باشید.

اگر مدار به 3.3V  یا 5V  نیاز دارد، می‌توانید آن را هم به ریل مناسب وصل کنید.

قراردادن قطعات

برای قراردادن قطعات روی بردبورد:

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

سیم‌های مناسب

  • برای اتصال روی خود بردبورد: سیم جامپر male-to-male (M2M)
  • برای اتصال بردبورد بهRaspberry Pi : سیم جامپر male-to-female (M2F)

✅نکتهٔ مهم

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

یادتان باشد:

سوراخ‌ها در هر ستون/ردیف متصل هستند، بسته به طراحی برد

مثلاً اگر پایه‌ای در A1 باشد، از نظر الکتریکی به B1، C1، D1 و E1 هم وصل است.

اطلاعات
9
0
0
اشتراک و حمایت
جلسات دیگر
رزبری پای

آموزش محاسبات فیزیکی با رزبری پای: آشنایی با...

profile نویسنده: بهاره بهرامی متخصص الکترونیک

ویراستار: حسین زنجانی زاده
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله