همانطور که چاپکردن عبارت «Hello, World» روی صفحهنمایش یک قدم عالی برای شروع یادگیری یک زبان برنامهنویسی است، روشنکردن یک LED نیز روش سنتی برای شروع یادگیری محاسبات فیزیکی (Physical Computing) محسوب میشود.
برای این پروژه به وسایل زیر نیاز دارید:
مقاومت با محدود کردن جریان عبوری از رزبری پای و LED محافظت می کند. در صورت عدم وجود مقاومت،LED ممکن است جریان زیادی دریافت کند که منجر به خرابی LED یا برد رزبری پای گردد.
مقدار دقیق مقاومتی که نیاز دارید به نوع LED مورد استفاده وابسته است، اما ۳۳۰ اهم (330 Ω) برای بیشتر LEDهای معمولی مناسب است.
هیچوقت یک LED را بدون مقاومت محدودکنندهٔ جریان به رزبری پای وصل نکنید، مگر اینکه مطمئن باشید خود LED دارای مقاومت داخلی با مقدار مناسب است.
کار را با بررسی سالمبودن LED شروع کنید. رزبری پای خود را طوری بچرخانید که پینهای GPIO (هدر GPIO) بهصورت دو ردیف عمودی در سمت راست قرار گیرند. یک سرِ مقاومت ۳۳۰ اهمی خود را با استفاده از یک سیم جامپر ماده به ماده به اولین پین ۳.۳ ولت (که در شکل 1-10 با برچسب 3V3 مشخص شده) وصل کنید؛ سپس سر دیگر آن را با یک سیم جامپر ماده به مادهٔ دیگر به پایه بلندتر LED یعنی قطب مثبت یا آنُد (anode) متصل کنید. در نهایت، یک سیم جامپر ماده به مادهٔ دیگر بردارید و پایه کوتاه LED یعنی قطب منفی یا کاتُد (cathode) را به اولین پین زمین (که در شکل 1-10 با برچسب GND مشخص شده) وصل کنید.

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

شکل 2-10: سیم را از پین 3V3 جدا کرده و به پین GPIO 25 وصل کنید.
«اکنون شما آماده هستید تا یک برنامه اسکرچ (Scratch) یا پایتون (Python) برای روشن و خاموشکردن LED خود بسازید.»
برای انجام پروژههای این فصل، لازم است با نحوه استفاده از اسکرچ ۳ (Scratch 3) و محیط توسعه یکپارچه (IDE) پایتون تانی (Thonny Python) آشنایی کافی داشته باشید.
اگر هنوز این کار را انجام ندادهاید، به فصل ۴ (برنامهنویسی با اسکرچ ۳) و فصل ۵ (برنامهنویسی با پایتون) مراجعه کنید و ابتدا پروژههای آن فصلها را به پایان برسانید.
اسکرچ ۳ را اجرا کنید و روی آیکون زیر
افزودن افزونه (Add Extension)
![]()
کلیک کنید. به پایین اسکرول کنید تا افزونه «Raspberry Pi GPIO» را پیدا کنید (شکل 3-10)، سپس روی آن کلیک کنید. با این کار، بلاکهای موردنیاز برای کنترل هدر GPIO رزبری پای از طریق اسکرچ ۳ بارگذاری میشوند. خواهید دید که بلاکهای جدید در پالت بلاکها ظاهر میشوند؛ هر زمان که به آنها نیاز داشته باشید، در دستهبندی Raspberry Pi GPIO در دسترس هستند.

شکل 3-10: افزودن افزونهٔ Raspberry Pi GPIO به برنامهٔ اسکرچ ۳
ابتدا یک بلاک when
clicked از بخش Events را به ناحیهٔ کدنویسی بکشید. سپس یک بلاک set gpio to output high را زیر آن قرار دهید.
باید شمارهٔ پینی را که استفاده میکنید انتخاب کنید: روی فلش کوچک کلیک کنید تا فهرست کشویی باز شود، سپس عدد 25 را انتخاب کنید تا به اسکرچ بگویید که در حال کنترل پین GPIO 25 هستید.

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

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

روی پرچم سبز کلیک کنید و به LED نگاه کنید. LED برای یک ثانیه روشن میشود، سپس برای یک ثانیه خاموش میشود، دوباره یک ثانیه روشن میشود و این الگو مرتب تکرار میشود تا زمانی که روی علامت هشتضلعی قرمز (Stop) کلیک کنید و برنامه را متوقف کنید.
امتحان کنید وقتی LED در حالت روشن یا خاموش است روی علامت توقف کلیک کنید و ببینید چه اتفاقی میافتد.
برنامه Thonny را از بخش Programming در منوی رزبری پای باز کنید. سپس روی دکمه New کلیک کنید تا یک پروژهٔ جدید شروع شود و آن را با نام Hello LED ذخیره کنید.
برای استفاده از پینهای GPIO در پایتون، به یک کتابخانه به نام GPIO Zero نیاز دارید. در این پروژه فقط به بخشی از این کتابخانه که برای کار با LEDها است احتیاج دارید.
برای واردکردن همین بخش از کتابخانه، کد زیر را در قسمت Python shell تایپ کنید:
|
1 |
from gpiozero import LED |
در مرحلهٔ بعد باید به GPIO Zero بگویید که LED به کدام پین GPIO وصل شده است.
کد زیر را تایپ کنید:
|
1 |
from gpiozero import LED |
این دو خط کد در کنار هم به پایتون اجازه میدهند LEDهای متصل به پینهای GPIO رزبری پای را کنترل کند و مشخص میکنند که LED به کدام پین وصل شده است. (یا اگر چند LED داشته باشید، کدام پینها باید کنترل شوند).
برای اینکه واقعاً LED را کنترل کنید، کد زیر را تایپ کنید:
|
1 |
<span style="color: #ff6600;">led.on() امیر این دستور را چک کن با سورس یکی نیست آخر صفحه 131 قسمت LED oN حذف شده </span> |
برای اینکه LED دوباره خاموش شود، این دستور را تایپ کنید:
|
1 |
led.off() |
تبریک! حالا شما میتوانید پینهای GPIO رزبری پای را با پایتون کنترل کنید.
دوباره همان دو دستور را امتحان کنید. اگر LED از قبل خاموش باشد، دستور led.off() کاری انجام نمیدهد. همینطور اگر LED از قبل روشن باشد و شما led.on() را تایپ کنید، تغییری ایجاد نمیشود.
برای ساختن یک برنامهٔ واقعی، کد زیر را در بخش Script تایپ کنید:
|
1 2 3 4 5 6 7 8 |
from gpiozero import LED from time import sleep led = LED(25) while True: led.on() sleep(1) led.off() sleep(1) |
این برنامه تابع LED را از کتابخانه gpiozero (GPIO Zero) و تابع sleep را از کتابخانه time وارد میکند. سپس یک حلقهٔ بینهایت (infinite loop) میسازد که LED را یک ثانیه روشن میکند، یک ثانیه خاموش میکند و این کار را به طور مداوم تکرار میکند.
روی دکمه Run کلیک کنید تا برنامه اجرا شود؛ LED شما شروع به چشمکزدن خواهد کرد.
مثل برنامهٔ اسکرچ، توجه کنید وقتی دکمه Stop را میزنید چه اتفاقی میافتد؛ مخصوصاً وقتی که LED در حالت روشن است در مقایسه با زمانی که خاموش است.
چطور میتوانید برنامه را تغییر دهید تا LED مدت بیشتری روشن بماند؟
اگر بخواهید مدت بیشتری خاموش بماند چه تغییری لازم است؟
کمترین مقدار تأخیر (delay) که هنوز بتوانید روشن و خاموششدن LED را ببینید چقدر است؟
اگر در پروژههای بعدی این فصل، از یک بردبورد برای نگهداشتن قطعات و ایجاد اتصالهای الکتریکی استفاده کنید، خیلی راحتتر انجام میشوند.

بردبورد پر از سوراخهایی است که با فاصلهٔ 2.54 میلیمتر از هم قرار گرفتهاند تا پایههای قطعات الکترونیکی بهراحتی داخل آنها قرار بگیرند. زیر این سوراخها، نوارهای فلزی وجود دارد که مثل سیمهای جامپر عمل میکنند.
این اتصالها بهصورت ردیفی/ستونی روی برد قرار دارند.
در بیشتر بردبوردها یک شکاف در وسط وجود دارد که برد را به دو نیمه تقسیم میکند.
خیلی از بردبوردها در بالا حروف و در کنارهها اعداد دارند تا بتوانید محل سوراخها را راحت پیدا کنید.
مثلاً:
A1 = گوشهٔ بالا-چپ
B1 = سوراخ کنار آن
B2 = یک خانه پایینتر
در این حالت:
A1 به B1 وصل است، اما هیچ سوراخی در ردیف 1 به سوراخی در ردیف 2 وصل نیست مگر اینکه خودتان با سیم جامپر وصلشان کنید.
در بردبوردهای بزرگتر معمولاً در کنارهها ستونهایی از سوراخها وجود دارد که با خطهای:
مشخص شدهاند. اینها ریل تغذیه (Power Rails) هستند و سیمکشی را راحتتر میکنند.
میتوانید یک سیم از GND رزبریپای را به ریل آبی/مشکی (منفی) وصل کنید تا زمین مشترک برای چند قطعه داشته باشید.
اگر مدار به 3.3V یا 5V نیاز دارد، میتوانید آن را هم به ریل مناسب وصل کنید.
برای قراردادن قطعات روی بردبورد:
هیچوقت بیشتر از یک پایه یا سیم را داخل یک سوراخ نچپانید.
یادتان باشد:
سوراخها در هر ستون/ردیف متصل هستند، بسته به طراحی برد
مثلاً اگر پایهای در A1 باشد، از نظر الکتریکی به B1، C1، D1 و E1 هم وصل است.
آموزش محاسبات فیزیکی با رزبری پای: آشنایی با...
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.