GPIO: همه چیز در مورد اتصالات Raspberry Pi 4 و 3 است

Raspberry Pi 4 GPIO

ل پین های GPIO از برد Raspberry Pi 4 ، the 3، و همچنین اسلاف آن ، توانایی های مشابهی را که آردوینو می تواند در اختیار هیئت مدیره SBC قرار دهد ، از آنجا که با آنها می توانید پروژه های الکترونیکی بسیار جالبی ایجاد کنید که از طریق سیستم عامل با استفاده از کد به زبانهای مختلف کنترل می شوند ، مانند پایتون.

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

GPIO چیست؟

GPIO

GPIO مخفف عبارت General Purpose Input / Output است ، یعنی General Purpose Input / Output. محصولات الکترونیکی مختلف می توانند آن را داشته باشند ، مانند تراشه های خود یا برخی از تخته های PCB مانند این Raspberry Pi. همانطور که از نام آن مشخص است ، آنها پین هایی هستند که می توانند برای انجام عملکردهای مختلف پیکربندی شوند ، از این رو هدف کلی دارند و برای استفاده خاصی نیستند.

این کاربر در زمان اجرا است که می تواند این پین های GPIO را پیکربندی کنید تا آنها آنچه را که او می خواهد انجام دهند. این کار به روش های مختلفی انجام می شود ، مثلاً با کدهای خاص یا اسکریپت های موجود در کنسول یا با برنامه Python ، که به دلیل تعداد گزینه هایی که در اختیار دارید ، یکی از ساده ترین و ترجیحی ترین راه ها است.

از این طریق Raspberry Pi نه تنها دارای یک سری پورت و رابط برای اتصال چندین دستگاه استاندارد ، اما این پایه های GPIO را اضافه کنید تا بتوانید دستگاه های الکترونیکی یا پروژه های سازنده دیگری را که خود ایجاد کرده اید اضافه کنید. به همان روشی که با آردوینو و پایه های ورودی / خروجی آن برای کنترل کار می کنید.

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

توابع GPIO

و بین ویژگی های او برجسته ترین:

  • آنها می توانند پیکربندی شود خیلی زیاد به عنوان ورودی به عنوان خروجی. آنها همان دوگانگی را دارند که اتفاق می افتد برای افراد دیگر آردوینو.
  • پین های GPIO نیز می تواند فعال و غیرفعال شود توسط کد یعنی می توان آنها را روی 1 (سطح ولتاژ بالا) یا 0 (سطح ولتاژ پایین) تنظیم کرد.
  • البته آنها می توانند خواندن داده های باینری، به عنوان یک و صفر ، یعنی سیگنال ولتاژ یا عدم وجود آن.
  • مقادیر خروجی از خواندن و نوشتن.
  • مقادیر ورودی را می توان در برخی موارد بصورت پیکربندی کرد رویدادها به طوری که آنها نوعی کنش را روی برد یا سیستم ایجاد می کنند. برخی از سیستم های جاسازی شده از آنها به عنوان IRQ استفاده می کنند. مورد دیگر پیکربندی این است که وقتی یک یا چند پین توسط حسگرهای خاصی فعال هستند ، برخی اقدامات را انجام دهید ...
  • در مورد ولتاژ و شدت ، شما باید به خوبی ظرفیت های قابل قبول برای صفحه را بشناسید ، در این مورد Raspberry Pi 4 یا 3. برای جلوگیری از آسیب دیدن آن نباید از آنها عبور کنید.

به هر حال ، هنگامی که گروهی از پین های GPIO گروه بندی می شوند ، مانند مورد Raspberry Pi ، این گروه به عنوان پورت GPIO.

پایه های GPIO رزبری پای

Raspberry Pi GPIO

طرح برای نسخه 4 ، 3 ، صفر معتبر است

جدید برد های Raspberry Pi 4 و نسخه 3 آنها به تعداد زیادی پین GPIO مجهز شده اند. همه نسخه ها به یک میزان ارائه نمی شوند و به همین ترتیب شماره گذاری نمی شوند ، بنابراین باید مراقب این مورد باشید تا به خوبی بدانید که چگونه باید مطابق مدل و تجدیدنظر شده اتصال را برقرار کنید.

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

  • تغذیهاز این پایه ها برای اتصال خطوط برق یا سیم کشی پروژه های الکترونیکی شما استفاده می شود. آنها با پین های مشابه برد آردوینو مطابقت دارند و ولتاژهای 5 ولت و 3 ولت 3 را فراهم می کنند (3.3 ولت محدود به بار 50 میلی آمپر). علاوه بر این ، موارد زمینی (GND یا Ground) را نیز پیدا خواهید کرد. اگر از منابع تغذیه خارجی مانند باتری یا آداپتور استفاده نمی کنید ، این پین ها می توانند کمک زیادی به برق رسانی مدار شما کنند.
  • DNC (اتصال برقرار نشود): آنها پین هایی هستند که در برخی نسخه ها وجود دارند و عملکردی ندارند ، اما در تابلوهای جدید هدف دیگری به آنها داده شده است. این موارد را فقط در مدل های ابتدایی Pi پیدا خواهید کرد. در 3 و 4 جدید به طور کلی به عنوان GND علامت گذاری می شوند ، زیرا می توانند در گروه قبلی ادغام شوند.
  • پین های قابل تنظیم: آنها GPIO های معمولی هستند و می توانند توسط کدهایی برنامه ریزی شوند که بعداً توضیح خواهم داد تا آنچه را که نیاز دارید انجام دهم.
  • سنجاق های مخصوص: اینها برخی اتصالات هستند که برای اتصالات یا رابطهای خاصی مانند اتصالات سریال UART ، TXD و RXD و غیره در نظر گرفته شده اند ، همانطور که در آردوینو اتفاق می افتد. حتی برخی از آنها مانند SDA ، SCL ، MOSI ، MISO ، SCLK ، CE0 ، CE1 و غیره را پیدا خواهید کرد. آنها در میان آنها برجسته هستند:
    • PWM، که می تواند عرض پالس را تنظیم کند همانطور که در مقاله قبلی دیدیم. در Raspberry Pi 3 و 4 آنها GPIO12 ، GPIO13 ، GPIO18 و GPIO19 هستند.
    • SPI رابط ارتباطی دیگری است که در مقاله دیگری نیز به آن پرداختم. در مورد تخته های 40 پین جدید ، این پین ها هستند (همانطور که می بینید با کانال های ارتباطی مختلف):
      • SPI0: MOSI (GPIO10) ، MISO (GPIO9) ، SCLK (GPIO11) ، CE0 (GPIO8) ، CE1 (GPIO7)
      • SPI1: MOSI (GPIO20) ؛ MISO (GPIO19) ؛ SCLK (GPIO21) ؛ CE0 (GPIO18) ؛ CE1 (GPIO17) ؛ CE2 (GPIO16)
    • I2C ارتباط دیگری است که من نیز در این وبلاگ توضیح داده ام. این گذرگاه از سیگنال داده (GPIO2) و ساعت (GPIO3) تشکیل شده است. علاوه بر EEPROM Data (GPIO0) و EEPROM Clock (GPIO1).
    • سریال ، یک ارتباط بسیار کاربردی دیگر با پین های TX (GPIO14) و RX (GPIO15) مانند پین هایی که می توانید روی برد پیدا کنید Arduino UNO.

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

تفاوت GPIO بین نسخه ها

پین های قدیمی Raspberry Pi GPIO

همانطور که گفتم، همه مدل ها یک پایه نیستنددر اینجا برخی از نمودارها آورده شده است ، بنابراین شما می توانید تفاوت بین مدل ها را ببینید و بنابراین می توانید روی Raspberry Pi 4 و 3 تمرکز کنید ، که جدیدترین و جدیدترین موردی است که احتمالاً در اختیار دارید. این تفاوت بین (همه گروه ها دارای پین های مشابه هستند):

  • Raspberry Pi 1 Model B Rev 1.0 ، با 26 پین کمی متفاوت از Rev2.
  • Raspberry Pi 1 Model A and B Rev 2.0 ، هر دو مدل با 26 پین.
  • Rapsberry Pi Model A +، B +، 2B، 3B، 3B +، Zero and Zero W و همچنین 4 مدل. همه آنها با هدر GPIO 40 پین.

چه چیزی می توانم به GPIO ها وصل کنم؟

کلاه رزبری پای

شما نه تنها قادر خواهید بود دستگاه های الکترونیکی را متصل کنید مانند ترانزیستور, سنسورهای رطوبت / دما, ترمیستور, موتورهای پله ای, ال ای دی، و غیره. شما همچنین می توانید اجزای سازنده یا ماژول هایی را که به طور خاص برای Raspberry Pi ایجاد شده اند و قابلیت های برد را فراتر از آنچه در پایه موجود است ، گسترش دهید.

اشاره من به معروف است کلاه یا کلاه و بشقاب هایی که می توانید در بازار پیدا کنید. انواع مختلفی وجود دارد ، از انواع مورد استفاده برای کنترل موتور با درایور ، تا انواع دیگر برای ایجاد یک خوشه محاسباتیبا پنل LED قابل کنترل ، برای اضافه کردن قابلیت تلویزیون DVB, صفحه نمایش ال سی دی، و غیره

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

من این را می گویم در صورتی که بشقاب قدیمی تری داشته باشید ، زیرا کلاه وجود دارد فقط با جدیدترین سازگار است. همانطور که Raspberry Pi Model A + ، B + ، 2 ، 3 ، و 4 مدل وجود دارد.

مقدمه ای برای استفاده از GPIO در Raspberry Pi

خروجی دستور Pinout

منبع: رزبری پای

برای شروع ، در Raspbian می توانید کنسول را باز کرده و تایپ کنید فرمان پین اوتآنچه به شما باز خواهد گشت تصویری در ترمینال با پین های GPIO موجود در برد شما و آنچه برای هرکدام استفاده می شود است. چیزی بسیار کاربردی که همیشه در لحظه کار آن را داشته باشید تا گیج نشوید.

پروژه اول: چشمک زدن یک LED با GPIO ها

GPIO با LED در Raspberry Pi

اساسی ترین راه برای ساختن نوعی "سلام به جهان" با GPIO استفاده از یک LED ساده متصل به پایه های Raspberry Pi است تا بتوانید نحوه کار آنها را ببینید. در این حالت ، من آن را به GND و دیگری را به پایه 17 متصل کرده ام ، اگرچه شما می توانید یکی دیگر از پایه های معمولی را انتخاب کنید ...

پس از اتصال ، می توانید آنها را از Raspbian کنترل کنید استفاده از ترمینال. در لینوکس ، از پرونده های خاص مانند پرونده های / sys / class / gpio / استفاده می شود. به عنوان مثال ، برای ایجاد یک پرونده با ساختار لازم برای شروع کار:

echo 17 > /sys/class/gpio/export

پس شما می توانید پیکربندی به عنوان ورودی (در) یا به عنوان یک خروجی (خارج) آن پایه 17 برای مثال ما انتخاب شده است. شما می توانید این کار را به راحتی انجام دهید:

echo out > /sys/class/gpio/gpio17/direction

در این حالت به عنوان یک خروجی ، از آنجا که ما می خواهیم یک پالس الکتریکی به LED بفرستیم تا روشن شود ، اما اگر سنسور بود و غیره ، می توانید از آن استفاده کنید. حالا برای روشن (1) یا خاموش (0) LED شما می توانید استفاده کنید:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

اگر می خواهید به پروژه دیگری بروید و ورودی را حذف کنید ایجاد شده ، می توانید این روش را انجام دهید:

echo 17 > /sys/class/gpio/unexport

ضمناً ، شما همچنین می توانید تمام دستورات لازم برای پروژه خود را جمع آوری کنید ، مانند همه دستورات قبلی ، آنها را در یک نوع پرونده ذخیره کنید اسکریپت bash و سپس بجای تایپ کردن یکی یکی آنها را بصورت بسته ای اجرا کنید. این مفید است وقتی شما یک تمرین را چندین بار تکرار کنید ، بنابراین نیازی به بازنویسی نیست. فقط بدو و برو مثلا:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

پس از اتمام کار ، ذخیره می کنید و سپس می توانید مجوزهای مناسب اجرا و اجرا را به آن بدهید فیلمنامه برای روشن شدن LED ، 1.3 ثانیه صبر کنید و در حلقه اینگونه خاموش شوید ...

chmod +x led.sh
./led.sh

پیشبرد برنامه

کد منبع زبان برنامه نویسی

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

می توان از آنها استفاده کرد ابزارهای مختلف برای برنامه ریزی ، با زبانهای بسیار متفاوت کتابخانه هایی که انجمن ایجاد کرده است کارها را برای شما بسیار راحت تر می کند ، مانند WiringPi ، sysfs ، pigpio و ... برنامه ها می توانند بسیار متنوع باشند ، از پایتون ، که گزینه مورد نظر بسیاری است ، از طریق Ruby ، ​​Java ، Perl ، BASIC و حتی C #.

رسماً Raspberry Pi به شما پیشنهاد می دهد بسیاری از امکانات برای برنامه ریزی GPIO های خود ، مانند:

  • با ناخن خراش، برای کسانی که برنامه نویسی بلد نیستند و می خواهند از بلوک های پازلی این پروژه استفاده کنند که آردوینو نیز می تواند با آنها برنامه ریزی شود و غیره برنامه نویسی با بلوک های گرافیکی برای حوزه آموزش کاملاً شهودی و بسیار کاربردی است.
  • پــایتــون: این زبان برنامه نویسی تفسیر شده ساده به شما امکان می دهد کدهای ساده و قدرتمندی ایجاد کنید ، با تعداد زیادی کتابخانه در اختیار شما ، تقریباً هر آنچه را تصور می کنید انجام دهید.
  • C / C ++ / C #: آنها زبانهای برنامه نویسی قدرتمندتری برای ایجاد باینری هایی هستند که با آنها با GPIO تعامل داشته باشند. با استفاده از فرم استاندارد یا رابط هسته از طریق کتابخانه ، می توانید این کار را به چند روش انجام دهیدlibgpiod، بلکه از طریق کتابخانه شخص ثالث مانند پیگیو.
  • پردازش 3، مشابه آردوینو.

انعطاف پذیر را انتخاب کنید یکی را که بیشتر دوست دارید یا فکر می کنید ساده است.


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

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.