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

0
131
آموزش راه اندازی GPIO رزبری پای
آموزش راه اندازی GPIO رزبری پای

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

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

کانکتور GPIO در واقع تعدادی اتصالات مختلف روی خود دارد که شامل موارد زیر هستند:

  • پایه‌های (GPIO (General Purpose Input Output  حقیقی که می‌توانید از آن‌ها برای روشن و خاموش کردن LED و کارهای دیگر استفاده کنید.
  • پین های رابط I2C که به شما امکان اتصال ماژول‌های سخت افزاری را تنها با 2 پین کنترلی می‌دهد.
  • رابط SPI با دستگاه‌های SPI
  • پین‌های سریال Rx و Tx برای ارتباط با لوازم جانبی سریال.

به علاوه، بعضی از پین‌ها می‌توانند به عنوان PWM  (مدولاسیون عرض پالس)  برای کنترل توان یا برای تولید نوع دیگری از پالس برای کنترل سرور و موتور‌ها به نام PPM Pulse Position Modulation  استفاده شوند.

در این آموزش شما در واقع چیزی نمی‌سازید بلکه فرا می‌گیرید که چگونه Raspberry Pi خود را تنظیم کنید و کتابخانه‌های کاربردی نصب کنید تا بتوانید چند ابزار الکترونیکی خارجی به آن متصل کنید.

نکته مهم: این آموزش فقط برای Raspbian و مشتقات آن (مانند Occidentalis) نوشته شده است.

کانکتور GPIO

دیاگرام زیر پین‌های روی کانکتور GPIO برد Raspberry Pi ورژن 1  را نشان می‌دهد.

 

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

برای ورژن‌های 2 به بالا

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

علاوه بر تامین انرژی (GND,3.3v,5v) تمامی پایه‌های GPIO می‌توانند به عنوان ورودی یا خروجی‌های دیجیتال استفاده شوند . پین‌های نام گذاری شده به عنوان SCL و  SDA می‌توانند برای I2C استفاده شوند.

پین‌های با نام MOSI و MISO و SCKL برای اتصال دستگاه‌های پرسرعت SPI  به کار می‌روند. تمامی پایه‌ها سطح منطقی 3.3 ولت دارند و نمی‌توانند ولتاژ 5ولت را تحمل کنند. بنابراین سطوح خروجی 0-3.3ولت هستند و به پایه‌های ورودی نباید بیشتر از 3.3 ولت متصل کرد.

اگر می‌خواهید یک خروجی 5 ولت را به ورودی Raspberry Pi متصل کنید از یک level shifter استفاده کنید. یک راه متداول برای ایجاد اتصالات به Raspberry Pi استفاده از یک Pi Cobbler است.

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

این وسیله از یک کابل ریبون برای اتصال کانکتور GPIO به بردبرد استفاده می‌کند تا بتوانید  قطعات خودتان را روی بردبرد به آن متصل کنید.

حتما و حتما دوبار چک کنید که نشانگر پایه 1 در گوشه Raspberry Pi باشد. اگر کابل شما طوسی رنگ است این پایه به احتمال زیاد قرمز است و برای کابل‌های مشکی یک سیم سفید است. این پایه نباید کنار کانکتور TV باشد. اگر اینچنین است کابل را بچرخانید تا در موقعیت درست قرار گیرد.

 کتابخانه‌های آماده Adafruit Pi

Adafruit برای سهولت بخشیدن به کار کسانی که می‌خواهند قطعات الکترونیکی به Raspberry Pi خود متصل کنند یک مجموعه عظیم و کاربردی از کد تولید کرده است که شامل کتابخانه‌های ساده پایتون برای تعداد زیادی از ماژول‌ها مانند نمایشگر‌ها، سنسورها و کنترلرهای PWM و غیره می‌شود.

برای دریافت این کد باید از برنامه‌ای به نام ‘git’ استفاده کنید. این برنامه به طور پیش‌فرض روی Occidentalis نصب شده است اما روی Raspbian باید با وارد کردن دستورات زیر در LXTerminal آن را نصب کنید. آیکن LXTerminal را روی Desktop خواهید یافت.

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

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

sudo apt-get update
آموزش راه اندازی GPIO رزبری پای
آموزش راه اندازی GPIO رزبری پای

به روزرسانی ممکن است مدتی طول بکشد مخصوصا اگر اولین بار است که آن را روی Raspberry Pi خود اجرا می‌کنید. نهایتا بعد از به روزرسانی باید دوباره علامت ‘$’ را مشاهده کنید که نشان از آمادگی برای دستور بعدی دارد که در زیر آمده:

sudo apt-get install git

بعد از نصب git  می‌توانید گنجینه پایتون Adafruit Pi را با استفاده از دستورات زیر به Raspberry Pi خود اضافه کنید.

git clone http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code
ls

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

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

پیکره بندی GPIO

پایه‌های GPIO می‌توانند هم به عنوان ورودی دیجیتال و هم به عنوان خروجی دیجیتال استفاده شوند. به عنوان خروجی دیجیتال می‌توانید برنامه‌هایی بنویسید که یک پایه مشخص را 0 یا 1 کند. 1 کردن آن را روی 3.3 ولت و 0 کردن آن را روی 0 ولت قرار می‌دهد. برای راه اندازی یک LED با این پایه‌ها به یک مقاومت 1kΩ به صورت سری با LED نیاز دارید زیرا پایه‌های GPIO تحمل عبور جریان کمی را دارند.

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

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

برای برنامه ریزی پورت‌های GPIO در پایتون باید یک کتابخانه پایتون 2 بسیار کاربردی به نام Rpi.GPIO را نصب کنید. این ماژول یک کتابخانه پایتون بسیار ساده به ما می‌دهد که می‌توانیم توسط آن‌ها پایه‌های GPIO را کنترل کنیم.

روند نصب این ماژول روی Raspbian و Occidentalis یکسان است. در واقع بعضی از نسخه‌های Raspbian این کتابخانه را در خود دارند، اما دستورات زیر علاوه بر نصب امکان به روزرسانی به آخرین نسخه را نیز دارند که ارزش انجام را دارد.

sudo apt-get update

برای نصب Rpi.GPIO ابتدا باید ابزار توسعه پایتونی (Python Development Toolkit) که Rpi.GPIO نیاز دارد را نصب کنید. برای این کار دستور زیر را در LXTerminal وارد کنید:

sudo apt-get install python-dev

سپس برای نصب خود Rpi.GPIO متن زیر را تایپ کنید:

sudo apt-get install python-rpi.gpio

احتمالا از شما خواسته می‌شود که با زدن ‘Y’ نصب را تایید نمایید.

اکنون برد شما برای اجرای بعضی از پروژه‌هایی که در بالا ذکر شد آماده است.

پیکره بندی I2C

I2C استاندارد بسیار رایجی است که طراحی شده است تا امکان صحبت کردن یک چیپ با چیپ دیگر را فراهم کند. بنابراین از آن جایی که Raspberry Pi از I2C پشتیبانی می‌کند می‌توانیم آن را به مجموعه‌ای از چیپ‌ها و ماژول‌های دارای I2C متصل کنیم.

باس I2C این امکان را می‌دهد که چندین دستگاه هر کدام با یک آدرس منحصر بفرد که اغلب با تعویض تنظیمات جامپرهای روی ماژول تعیین می‌شود به Raspberry Pi شما متصل شوند.

امکان دیدن این که چه دستگاه‌هایی به Raspberry Pi متصل‌اند به عنوان راهی برای اطمینان یافتن از این که همه چیز به درستی کار می‌کند می‌تواند بسیار مفید باشد. برای انجام این کار با استفاده از دستورات زیر ابزار i2c-tools را نصب کنید:

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

نصب پشتیبانی کرنل  با استفاده از Raspi-Config

sudo raspi-config را اجرا کنید و از دستورات پیروی کنید تا پشتیبانی از i2c برای هسته ARM و کرنل linux نصب شود.

به بخش Interfacing Options بروید.

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

در نسخه‌های قدیمی‌تر در بخش Advanced آن را خواهید یافت.

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

سپس I2C

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

Enable !

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

سپس ریبوت کنید.

همچنین پیشنهاد می‌شود مراحل زیر را دنبال کنید و به صورت دستی چک کنید که همه چیز توسط raspi-config اضافه شده باشد.

نصب پشتیبانی کرنل ( به صورت دستی )

اگر از نسخه‌های به روز Raspbian استفاده نمی‌کنید یا می‌خواهید خودتان این کار را انجام دهید LXTerminal یا console یا ssh را باز کنید و دستور زیر را وارد کنید:

sudo nano /etc/modules

دو خط زیر را به آخر فایل اضافه کنید:

i2c-bcm2708 
i2c-dev

مانند عکس زیر:

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

سپس فایل را با Control-X Y <return> ذخیره کنید. بسته به توزیعی که با آن کار می‌کنید ممکن است فایلی به نام /etc/modprobe.d/raspi-blacklist.conf نیز داشته باشید. اگر این فایل را دارید، نیاز به انجام هیچ کاری نیست اما اگر آن را دارید، باید آن را ویرایش کنید و دو خط زیر را با گذاشتن یک # در جلوی آن‌ها غیر فعال کنید:

blacklist spi-bcm2708
blacklist i2c-bcm2708

با دستور زیر روی فایل یک ویرایشگر باز کنید:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

سپس آن را مانند شکل زیر ویرایش کنید و فایل را با CTRL-X و Y ذخیره کنید و خارج شوید.

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

اگر از یک Raspberry Pi جدید استفاده می‌کنید (کرنل 3.18 یا جدیدتر )  باید فایل /boot/config.txt را نیز به‌روز‌ رسانی کنید.

با دستور sudo nano /boot/config.txt آن را ویرایش کنید و دو خط

dtparam=i2c1=on

dtparam=i2c_arm=on

را به انتهای آن بیافزایید.

توجه کنید “1” در “i2c1” عدد یک است نه حرف L .

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

بعد از انجام این کار، سیستم را ریبوت کنید.

sudo i2cdetect -y 1

تست I2C

اکنون هنگامی که به سیستم وارد می‌شوید می‌توانید با دستور زیر تمامی دستگاه‌های متصل را ببینید.

sudo i2cdetect -y 0
آموزش راه اندازی GPIO رزبری پای
آموزش راه اندازی GPIO رزبری پای

این عکس نشان می‌دهد که دو آدرس I2C استفاده شده است،  0x40 و 0x70.

توجه داشته باشید که اگر از یکی از اولین Raspberry Pi ها استفاده می‌کنید (یک Raspberry Pi مدل B با رم 256MB ) آنگاه باید دستور را به شکل زیر تغییر دهید.

sudo nano /etc/modprobe.d/raspi-blacklist.conf

طراحان Raspberry Pi بین دو نسخه برد پورت‌های I2C را جابجا کردند. فقط نکته زیر را به خاطر داشته باشید Raspberry Pi های 512MB ای از پورت i2c1 و 256MBای ها از پورت i2c0 استفاده می‌کنند.

پیکره بندی SPI

ابتدا هرگونه blacklist مربوط به ماژول spi را با اجرای دستور زیر حذف کنید:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

به دنبال خط blacklist spi-bcm2708 بگردید و یک # در جلوی آن قرار دهید مانند عکس زیر:

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

اکنون Control-X Y و سپس return را بزنید تا فایل ذخیره شود.

با دستور sudo reboot ریبوت کنید. دفعه بعدی که وارد سیستم می‌شوید می‌توانید با دستور ls -l /dev/spidev* چک کنید که می‌توانید دستگاه‌ها را ببینید.

باید 2 “device” را مشاهده کنید، یکی برای هر باس spi

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

تست و راه اندازی

بهترین راه برای تست آن‌چه که انجام داده‌اید انجام یک پروژه (البته از نوع ساده آن برای شروع) می‌باشد.

 

امیدوارم این نوشته برایتان مفید باشد.

 

منبع:  میکرودیزاینرالکترونیک

 

مطلب قبلیآموزش استفاده از کابل کنسول در Raspberry Pi
مطلب بعدیآموزش پیکره بندی اولیه رزبری پای

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید