آموزش کاربرد پین های GPIO برد رزبری پای به زبانی ساده

رزبری پای (Raspberry Pi ) یک چیپ الکترونیکی و در حقیقت یک کامپیوتر کوچک می باشد که می توان آن را برنامه ریزی نمود و در کارهای مختلفی استفاده کرد. یکی از اهداف رزبری پای آموزش می باشد. با پین های ورودی و خروجی (GPIO pins) زیادی که بر روی آن قرار گرفته است ، شما می تواند دستگاه ها و گجت های جدیدی را بسازید و یا اختراع کنید.

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

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

Raspberry Pi GPIO Pins چیست؟


پین‌های GPIO به بورد مدار کامپیوتر متصل می‌شود. رفتار آن‌ها را می توان توسط کاربر کنترل کرد تا به آن‌ها اجازه خواندن داده از سنسور و اجزای کنترلی مانندLED، موتورها، و صفحه نمایش ها را بدهد. مدل‌های قدیمی‌تر رزبری پای  ۲۶ پین داشتند ، در حالی که مدل‌های جدیدتر ، ۴۰ پین دارند. این تصاویرنشان می‌دهد که هرpin چه کاری انجام می‌دهد:

در نمودار مشخص‌شده در بالا می‌توانید ببینید که انواع مختلفی از پین ها وجود دارند که هر کدام اهداف و وظایف مختلفی دارند. شما می‌توانید یک نسخه تعاملی از این نمودار را در سایت pinout.xyz  مشاهده کنید. این نمودار همچنین یکی از اولین چیزهایی است که باید با آن آشنا شوید. هر pin دارای دو شماره است که با آن شناسایی می شود. شماره BOARD  ( شماره ای که در دایره ها نوشته شده است ) و شماره BCM (Broadcom SOC channel ). شما هنگام کد نویسی در پایتون می توانید یکی از این دو را انتخاب کنید.

# 1 - GPIO/BCM Numbering
GPIO.setmode(GPIO.BCM)

# 2 - Board Numbering
GPIO.setmode(GPIO.BOARD)

شما در هر پروژه فقط می توانید یکی از دو موارد بالا را انتخاب کنید. بنابراین یکی را انتخاب کنید و برنامه نویسی خود را بر اساس آن انجام دهید.  البته لازم است اشاره کنیم که بعضی از لوازم جانبی بر اساس GPIO/BCM کار می کنند.

در این مقاله ما توضیحات بعدی را بر اساسBOARD  ارائه می کنیم.  حال می پردازیم به پین ها و ببین هر کدام از آن ها چه کاری را انجام می دهند.

پین های Power


بیاید با پین power شروع کنیم.  برد رزبری پای می تواند دو منبع تغزیه با ولتاژ های 5 و 3.3 را ارائه دهد. همچینن یک پین ground (GND) را نیز برای پین های 6, 9, 14, 20, 25, 30, 34 و 39 فراهم می کند. متاسفانه جواب درستی برای مقدار توان خروجی پین 5 ولتی وجود ندارد. اما در رزبری پای 3 ، شما از این پین تا مقدار 2.5 آمپر می توانید جریان بکشید  و از این مقدار حدود 750mA برای راه اندازی طبیعی و انجام عملیات پردازش خود ماژول مورد نیاز است. به این معنا که اگر شما از یک منبع تغزیه 2.5 آمپری استفاده کنید ، پین 5 ولتی می تواند حدود 1.7 آمپر را به شما خروجی دهد و مابقی را صرف خود بورد می کند.

برای بسیاری از افراد که کار خود را با پای آغاز کرده اند این موضوع مشکلی به حساب نمی آید.

پین ۳.۳ ولتی تا حدودی ساده‌تر هست ، با اصلاحات اخیری که در Raspberry Pi ( مدل B+ به بعد ) صورت گرفت ، این پین ها می توانند ۵۰۰ میلی آمپر را تامین می‌کند، در حالی که در مدل های قدیمی تر این مقدار فقط ۵۰mA بود. توجه داشته باشید که این جریان در تمامی پین ها به اشتراک گذاشته می شود.

بنابراین این پین ها می‌توانند به اجزای شما قدرت دهند و این تنها کاری است که آن‌ها انجام می‌دهند.

پین های استاندارد -Standard GPIO


اگر به تصویری که در ابتدا قرار دادیم نگاه کنید بعضی از پین ها به رنگ سبز می باشند به این پین ها  standard GPIO pins می گویند. از این پین ها برای پروژه های ساده و مبتدیانه استفاده می شود. خروجی این پین ها 3.3 ولت می باشد. این پین ها در دو حالت کاملا روشن و کاملا خاموش سوییچ می کنند و به عبارتی شما فقط دو حالت HIGH  و LOW را دارید.

این پین ها همچنین قادر هستند ورودی های تا 3.3 ولت را بخوانند .

دقت داشته باشید که هیچ گاه این پین ها را نباید به ولتاژی بیشتر از 3.3 ولت متصل کنید.

پین های PWM


پین های PWM (مخفف Pulse Width Modulation) برای تجهیزاتی مانند موتور ها ، سروو و ال ای دی ها به کار می رود و با این پین ها می توان مقدار نیروی آن ها را با پالس های کوتاه کنترل کرد. دو پین دوازدهم  (GPIO 18) و سی و پنجم (GPIO 35) از لحاظ سخت افزاری PWM هستند ، اما شما به کمک کتابخانه pigpio می توانید به صورت نرم افزاری PWM را نیز ایجاد کنید.

پین های UART


پین های هشتم و دهم (GPIO 14 and 15) پین های UART  هستند. این پین ها برای ارتباط رزبری پای با پورت های سریال طراحی شده اند.

SPI


SPI (Serial Peripheral Interface bus) روشی برای ارتباط با وسایلی مانند RFID می باشد. این پین ها به دستگاه اجازه ارتباط همگام را با بورد می دهد. استفاده از صفحه تاچ اسکرین نمونه ای از این ارتباط می باشد.

این ویژگی به شما امکان می دهد تا دستگاه های بیشتری را به بورد خود متصل کنید و  پین هایی به مراتب بیشتر از پین های موجود در اختیار داشته باشید. اما برای این کار شما نیاز به سیم کشی های بسیاری دارید.

پین های 19 ، 21 ، 23 ، 24 ، 25 و 26 امکان اتصال به وسیله های SPI را دارند. پرتکل های SPI به صورت پیش فرض فعال نیستند و شما می توانید این ویژگی را در در فایل کانفیگ فعال کنید.

پین های I2C


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

پین های بیست و هفتم و بیست و هشتم (marked ID_SD و ID_SC)  نیز دارای ویژگی I2Cهستند . این پین ها برای عملیات داخلی رزبری پای مورد استفاده قرار می گیرد. تا زمانی که دقیقا نمی دانید می خواهید چه کاری انجام دهید ، خودتان را با این دو درگیر نکنید.

امیدواریم در این آموزش به کاربرد پین های رزبری پای آشنا شده باشید. در آینده مثال هایی را از کاربرد هر کدام از این پین ها به شما آموزش خواهیم داد.