برنامهنویسی فقط به انجام کارها روی صفحهنمایش محدود نمیشود؛ شما میتوانید با استفاده از برنامهها، قطعات الکترونیکی متصل به پایههای GPIO رزبری پای را نیز کنترل کنید.
وقتی مردم به «برنامهنویسی» یا «کدنویسی» فکر میکنند، معمولاً و به طور طبیعی به نرمافزار فکر میکنند. بااینحال، کدنویسی میتواند چیزی فراتر از نرمافزار باشد؛ میتواند از طریق سختافزار بر دنیای واقعی تأثیر بگذارد. به این کار، محاسبات فیزیکی (Physical Computing) گفته میشود.
همانطور که از نام آن پیداست، محاسبات فیزیکی دربارهٔ کنترلکردن چیزهای واقعی در دنیای اطراف با استفاده از برنامههای شماست؛ یعنی کار با سختافزار بهجای فقط نرمافزار. وقتی برنامهٔ ماشین لباسشویی خود را تنظیم میکنید، دمای ترموستات قابلبرنامهریزی را تغییر میدهید، یا دکمهٔ چراغراهنمایی را برای عبور ایمن از خیابان فشار میدهید، در واقع از محاسبات فیزیکی استفاده میکنید.
رزبری پای (Raspberry Pi) به دلیل یک ویژگی مهم، دستگاه بسیار مناسبی برای یادگیری محاسبات فیزیکی است:
هدر GPIO (ورودی/خروجی عمومی) که در لبهٔ بالایی برد رزبری پای یا در پشت Raspberry Pi 400 قرار دارد و به شکل دو ردیف بلند از پینهای فلزی دیده میشود، بخشی است که به شما امکان میدهد سختافزارهایی مانند LEDها و کلیدها را به رزبری پای متصل کنید و آنها را با برنامههایی که مینویسید کنترل کنید.
این پینها میتوانند هم برای ورودی (Input) و هم برای خروجی (Output) استفاده شوند.

هدر GPIO رزبری پای از ۴۰ پین male تشکیل شده است. برخی از این پینها برای استفاده در پروژههای محاسبات فیزیکی در اختیار شما هستند، بعضی پینها برق (توان) فراهم میکنند و تعدادی دیگر برای برقراری ارتباط با سختافزارهای افزونه مانند Sense HAT (که در قسمتهای بعدی معرفی میشود) رزرو شدهاند.

رزبری پای 400 دقیقاً همان هدر GPIO با همان پینها را دارد، اما جهت آن نسبت به مدلهای دیگر رزبری پای وارونه است. این دیاگرام فرض میکند که شما از پشت دستگاه به هدر GPIO رزبری پای 400 نگاه میکنید.
وقتی میخواهید چیزی را به پینهای GPIO رزبری پای 400 وصل کنید، حتماً اتصالها را دوباره بررسی کنید؛ چون بهسادگی ممکن است فراموش شود که جهت پینها برعکس است، حتی با وجود اینکه روی بدنه، برچسب پین 1 و پین 40 وجود دارد!
استفاده از هدر GPIO رزبری پای 400 به شکل پیشفرض کاملاً امکانپذیر است، اما ممکن است کار با آن برایتان راحتتر باشد اگر از افزونه (Extension) استفاده کنید. با استفاده از افزونه، پینها به کنار دستگاه منتقل میشوند؛ در نتیجه میتوانید سیمکشی خود را به راحتی ببینید و تنظیم کنید، بدون اینکه مدام به پشت دستگاه سر بزنید.
افزونههای سازگار شامل موارد زیر هستند:
اگر قصد خرید افزونه دارید، حتماً بررسی کنید که سیمکشی آن چگونه انجام شده است؛ زیرا بعضی از افزونهها، مانند Pi T-Cobbler Plus، چیدمان پینهای GPIO را تغییر میدهند.
در صورت تردید، همیشه از راهنمای سازنده استفاده کنید.
چندین دسته از انواع پینها وجود دارد که هرکدام وظیفهٔ مشخصی دارند:
|
یک منبع تغذیه ۳٫۳ ولت که بهصورت دائمی فعال است؛ همان ولتاژی که رزبری پای به طور داخلی با آن کار میکند. |
توان ۳٫۳ ولت |
3V3 |
|
یک منبع تغذیه ۵ ولت که بهصورت دائمی فعال است؛ همان ولتاژی که رزبریپای از طریق کانکتور تغذیه Micro‑USB دریافت میکند. |
توان ۵ ولت |
5V |
|
یک اتصال زمین (GND) که برای کاملکردن مدار متصل به منبع تغذیه استفاده میشود. |
۰ ولت (زمین / Ground) |
زمین (GND) |
|
پینهای GPIO قابلاستفاده برای برنامههای شما که با شمارههای ۲ تا ۲۷ مشخص شدهاند. |
پین ورودی/خروجی همهمنظوره شماره XX |
GPIO XX |
|
پینهای رزروشده برای استفاده با Hardware Attached on Top (HAT) و سایر لوازم جانبی. |
پینهای رزروشده با کاربرد ویژه |
ID EEPROM |
هدر GPIO رزبریپای راهی سرگرمکننده و ایمن برای آزمایش محاسبات فیزیکی است، اما باید با دقت با آن کار کرد. هنگام وصل و جداکردن سختافزار مراقب باشید پینها آسیب نبینند. هرگز دو پین را مستقیماً به هم وصل نکنید—چه به طور تصادفی و چه عمدی—مگر اینکه در دستورالعمل یک پروژه صراحتاً گفته شده باشد. این کار «اتصال کوتاه» نامیده میشود و بسته به پینها میتواند به طور دائمی به رزبریپای شما آسیب بزند.
هدر GPIO تنها بخشی از ابزارهایی است که برای شروع کار در زمینه «محاسبات فیزیکی» (Physical Computing) به آنها نیاز دارید؛ بخش دیگر این معادله را قطعات الکترونیکی تشکیل میدهند، یعنی همان قطعاتی که قرار است از طریق هدر GPIO آنها را کنترل کنید. اگرچه هزاران قطعه مختلف در بازار وجود دارد، اما اکثر پروژههای GPIO با استفاده از همین قطعات رایج و پرکاربردی که در ادامه معرفی میشوند، ساخته میشوند.

بردبورد (Breadboard) که به آن برد آزمایشی بدون لحیمکاری نیز میگویند، میتواند اجرای پروژههای محاسبات فیزیکی را بسیار آسانتر کند. بهجای اینکه قطعات مجزای زیادی داشته باشید که مجبور باشید آنها را با سیم به هم وصل کنید، بردبورد به شما این امکان را میدهد که قطعات را داخل آن قرار دهید تا از طریق مسیرهای فلزی که زیر سطح آن پنهان شدهاند، به هم متصل شوند. بسیاری از بردبوردها بخشهایی هم برای توزیع توان (منبع تغذیه) دارند که ساخت مدارها را سادهتر میکند. برای شروع یادگیری محاسبات فیزیکی لزوماً به بردبورد نیاز ندارید، اما داشتن آن قطعاً کمک بزرگی است.

سیمهای جامپر (Jumper wires) که با نام سیمهای رابط (jumper leads) نیز شناخته میشوند، قطعات را به رزبری پای شما متصل میکنند و درصورتیکه از بردبورد استفاده نمیکنید، برای اتصال قطعات به یکدیگر نیز به کار میروند. این سیمها در سه نوع عرضه میشوند:
بسته به نوع پروژه، ممکن است به هر سه نوع سیم نیاز پیدا کنید؛ اما اگر از بردبورد استفاده میکنید، معمولاً داشتن سیمهای M2F و M2M برای کار شما کافی خواهد بود.

کلید فشاری (Push-button) که با نام کلید لحظهای نیز شناخته میشود، همان نوع کلیدی است که برای کنترل کنسولهای بازی از آن استفاده میکنید. این کلیدها معمولاً با دو یا چهار پایه در بازار موجودند (هر دو نوع با رزبری پای کار میکنند). کلید فشاری یک دستگاه ورودی است: میتوانید برنامهتان را طوری تنظیم کنید که منتظر فشردهشدن کلید بماند و سپس کار خاصی را انجام دهد.
نوع رایج دیگر، کلید قفلشونده (Latching switch) است؛ درحالیکه کلید فشاری فقط تا زمانی که آن را نگه داشتهاید فعال میماند، کلید قفلشونده – مانند کلیدهای برق معمولی – با یکبار زدن فعال میشود و تا زمانی که دوباره آن را تغییر وضعیت ندهید، در همان حالت فعال باقی میماند.

دیود ساطعکننده نور (LED) یک دستگاه خروجی (Output device) است؛ شما میتوانید آن را مستقیماً از طریق برنامهتان کنترل کنید. یک LED زمانی که روشن است، نور ساطع میکند و میتوانید آنها را در سرتاسر خانهتان پیدا کنید؛ از LEDهای کوچکی که به شما اطلاع میدهند ماشین لباسشوییتان روشن مانده است، تا LEDهای بزرگی که ممکن است برای روشنایی اتاقهایتان استفاده کنید. LEDها در طیف وسیعی از شکلها، رنگها و اندازهها در دسترس هستند، اما همه آنها برای استفاده با رزبری پای مناسب نیستند: از هر نوع LED که گفته شده برای منابع تغذیه 5 V یا 12 V طراحی شده است، اجتناب کنید.

مقاومتها قطعاتی هستند که جریان الکتریکی را کنترل میکنند و در مقادیر مختلفی موجودند که با واحدی به نام اهم (Ω) اندازهگیری میشوند. هرچه تعداد اهم بیشتر باشد، مقاومت بیشتری ایجاد میشود.
در پروژههای محاسبات فیزیکی با Raspberry Pi، رایجترین کاربرد آنها محافظت از LEDها است تا جریان بیش از حد نکشند و به خودشان یا Raspberry Pi شما آسیب نزنند. برای این کار معمولاً از مقاومتهایی با مقدار حدود ۳۳۰ اهم استفاده میشود. بااینحال بسیاری از فروشندگان تجهیزات الکترونیکی بستههایی شامل چندین مقدار متداول مختلف میفروشند تا انعطافپذیری بیشتری در انتخاب داشته باشید.

یک بازر (buzzer) پیزوالکتریک که معمولاً فقط buzzer یا sounder نامیده میشود، یک دستگاه خروجی دیگر است. درحالیکه LED نور تولید میکند، بازر یک صدا تولید میکند — و در واقع صدای وزوزی. داخل محفظه پلاستیکی بازر، یک جفت صفحه فلزی قرار دارند؛ وقتی دستگاه فعال است، این صفحات به یکدیگر میلرزند تا صدای وزوز ایجاد کنند. دو نوع بازر وجود دارد: بازرهای فعال و بازرهای غیرفعال. حتماً یک بازر فعال تهیه کنید، چون استفاده از آنها سادهتر است.
دیگر قطعات الکتریکی رایج شامل موتورها هستند که قبل از اتصال به رزبری پای به یک برد کنترل مخصوص نیاز دارند. همچنین سنسورهای مادونقرمز (Infrared sensors) وجود دارند که میتوانند حرکت را تشخیص دهند، سنسورهای دما و رطوبت که برای پیشبینی وضعیت هوا کاربرد دارند و مقاومتهای وابسته به نور (LDR) که دستگاههای ورودی هستند و با تشخیص نور کار میکنند و عملکردی شبیه LED برعکس دارند.
فروشندگان زیادی در سراسر جهان قطعات موردنیاز برای محاسبات فیزیکی با رزبری پای را عرضه میکنند؛ این قطعات ممکن است بهصورت تکی یا در قالب کیتهایی که همه چیز لازم برای شروع را دارند فروخته شوند. برای پیداکردن فروشندگان میتوانید به آدرس rpf.io/products بروید، روی Raspberry Pi 4 کلیک کنید تا فهرستی از فروشگاههای آنلاین شریک رزبری پای (فروشندگان تأییدشده) در کشور یا منطقه شما نمایش داده شود.
برای انجام پروژههای این فصل، حداقل به موارد زیر نیاز دارید:
مقاومتها در طیف گستردهای از مقدارها ساخته میشوند؛ از نوعهایی با مقاومت تقریباً صفر که در عمل فقط مانند یک تکه سیم هستند، تا مقاومتهای با مقدار بسیار زیاد که حتی ممکن است اندازهای به بزرگی پای انسان داشته باشند.
بااینحال، روی تعداد بسیار کمی از این مقاومتها مقدارشان بهصورت عدد نوشته شده است. در عوض، برای نشاندادن مقدار مقاومت از یک کد ویژه شامل نوارها یا حلقههای رنگی استفاده میشود که بهصورت خطوط رنگی دور بدنهٔ مقاومت چاپ شدهاند.

برای خواندن مقدار یک مقاومت، آن را طوری قرار دهید که گروه نوارهای رنگی در سمت چپ و نوار تکی در سمت راست باشد.
از اولین نوار شروع کنید. رنگ آن را در ستون نوار اول/دوم جدول جستوجو کنید تا رقم اول و دوم به دست آید.
در این مثال، دو نوار نارنجی وجود دارد که هر دو نشاندهنده عدد ۳ هستند؛ بنابراین عدد ما تا اینجا ۳۳ میشود.
اگر مقاومت شما بهجای سه نوار، چهار نوار گروهی داشته باشد، مقدار نوار سوم را نیز یادداشت کنید. (برای مقاومتهای پنج یا شش نواره به rpf.io/5-6band مراجعه کنید.)
اکنون به آخرین نوار گروهی (نوار سوم یا چهارم) بروید. رنگ آن را در ستون ضریب (Multiplier) جدول پیدا کنید. این مقدار نشان میدهد که باید عدد فعلی خود را در چه عددی ضرب کنید تا مقدار واقعی مقاومت به دست آید.
در این مثال، نوار قهوهای است که به معنی ×10¹ است. شاید این شکل نوشتار کمی گیجکننده به نظر برسد، اما این فقط نمایش علمی اعداد است:
بنابراین:
یک مقاومت ۱۰۰ اهم (100 Ω) چه نوارهای رنگی خواهد داشت؟
یک مقاومت ۲٫۲ مگااهم (2.2 MΩ) چه نوارهای رنگی خواهد داشت؟
اگر بخواهید ارزانترین مقاومتها را پیدا کنید، باید به دنبال نوار تلرانس با چه رنگی بگردید؟
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.