پس از مطالعه و آموزش فصل ۱ تا ۵ رسپبری پای در این بخش و فصلهای بعدی میخواهیم شما را با دنیای پروژه محور و پر هیاهوی رسپبری پای آشنا کنیم. بنابراین هدف و مسیر آموزشی از این قسمت به بعد به صورت پروژه ای بوده و متناسب با هر پروژهای اطلاعات جدیدی در اختیار شما قرار میگیرد.
تنها نکتهی بسیار مهم و حائز اهمیت فراگیری زبان پایتون است که در طول این پروژه ها و آموزشها برای هر خط کدنویسی توضیحی را ارائه خواهیم داد اما باید توجه داشته باشید که این درس و سرفصل برای آموزش پایتون اصلا مناسب نیست. برای یادگیری این زبان قدرتمند کافیست به لینک زیر توجه کنید:
یکی از ویژگیهای کلیدی و اساسی که روی فروش رسپبری پای بسیار تاثیر گذاشته است وجود پینهای GPIO میباشد. GPIO مخفف عبارت General Purpose Input/Output است. این پینها روی برد رسپبری پای قرار دارند و به شما کمک میکنند تا سایر تجهیزات را به سادگی به این برد متصل نمایید. با کمی برنامهنویسی، میتوانید با استفاده از این پینها به کنترل تجهیزات یا پیبردن به چگونگی فعالیت آنها بپردازید.
در این مقاله به شما نحوهی روشن کردن چراغ کوچک LED را با استفاده از رسپبری پای ارائه خواهیم داد.
برای انجام این پروژه به وسایل زیر نیاز دارید:
برد آموزشی یک راه برای اتصال کردن کامپوننتها و اجزای الکترونیکی به یکدیگر بدون استفاده از سیم یا برد PCB است. معمولا از این بردها برای تست کردن یک مدار طراحی شده قبل از تبدیل کردن آن به برد پرینت شده (PCB) استفاده میشود.
در تصویر زیر سوراخهای این برد را تشریح کردهایم.
همانطور که ملاحظه کردید تمام سوراخهای موجود در قسمت بالایی و پایینی این برد آموزشی در یک ردیف به یکدیگر متصل بوده و در وسط این برد، این سوراخها به صورت ستونی به یکدیگر وصل هستند.
کلمهی LED مخفف عبارت Light Emitting Diode به معنای دیود ساطع نور میباشد. و هنگامیکه جریان الکتریکی از آن عبور کند، روشن میشود. اگر شما یک LED را در دست بگیرید، نکتهای توجه شما را به خود جلب میکند و آن این است که یک پایهی LED همواره از پایهی دیگر آن بلندتر میباشد. پایهای که بلند تر است به عنوان anode (آنود) معرفی شده و همیشه به قسمت مثبت منبع تغذیه متصل و پایه کوتاه تر که آنرا cathode (کاتود) مینامند به پایهی منفی منبع تغذیه که معمولا زمین یا GND که مخفف Ground (زمین) است، وصل میشود.
در صورتیکه پایههای مثبت و منفی یک LED را اشتباه متصل کنید، LED شما نمیترکد! بلکه فقط نوری از خود ساطع نمیکند. اگر در مدار شما LED موردنظر نوری از خود نداشت باید متوجه شوید که پایههای آن به درستی به منبع تغذیه متصل نشده است.
همواره باید از مقاومتها برای اتصال LED به منبع تغذیه استفاده کرد. که در این پروژه منبع تغذیهی ما پینهای GPIO میباشد. رسپبری پای میتواند تنها یک جریان کوچک حدود ۶۰ میلیآمپر را تولید کند. حال LEDها جریانکشی بیشتری داشته و اگر آنها را مستقیم به رسپبری پای متصل کنیم باعث سوختن برد رسپبری پای میشوند. بنابراین یک مقاومت در مدار قرار داده تا مطمئن شویم این جریان ۶۰ میلیآمپر همواره مورد استفاده قرار گرفته و آسیبی به رسپبری پای وارد نمیشود.
مقاومتها به عنوان راهی برای کنترل برق درون یک مدار مورد استفاده قرار میگیرند. به عبارت دیگر آنها مقدار جریان مورد استفاده را در حد نرمال محدود میکنند. واحد اندازهگیری این مقاومتها اهم Ohm با نماد Ω میباشد و هرچقدر مقدار مقاومت بیشتر باشد، جریان بیشتری را محدود میکند. مقدار مقاومت بر اساس رنگهای موجود در آن تعیین میشود.
برای این پروژه از مقاومت ۳۳۰ اهم استفاده شده است. شما میتوانید ۳۳۰ اهم را با رنگهای موجود در بدنهی این مقاومت تشخیص دهید که رنگ آن به صورت زیر تعریف شده است:
اینکه چگونه پایههای مقاومت را متصل میکنید مهم نیست. از هر طرف قرار بگیرید، مقدار جریان را کنترل میکند.
از سیمها در مدارهای الکترونیکی برای ایجاد ارتباط بین قطعات استفاده میشود. بنابراین در این پروژه از دو سیم برای ارتباط بین پینهای GPIO رسپبری پای و پایههای LED و مقاومت استفاده شده است.
همانطور که در فوق ذکر کردیم کلمه GPIO مخفف عبارت General Purpose Input Output است. این پینها به عنوان راهی برای کنترل و مانیتورینگ دنیای بیرون از رسپری بای توسط اتصال به مدارهای الکترونیکی میباشد. رسپبری پای توانایی روشن و خاموش کردن LED، کنترل موتورها و هزاران کار دیگر را داشته که تماما توسط این پایهها و پینها صورت میپذیرد.
در تصاویر زیر همانطور که مشاهده میکنید برد مربوط به رسپبری پای ۲ و ۳ مدل B نمایش داده شده است.
در جلسات بعدی متناسب با نیاز هر پروژه به توضیح هر یک از این پایهها میپردازیم.
مدار کنترل LED توسط رسپبری پای شامل یک منبع تغذیه (منبع رسپبری پای)، یک LED که هنگام برقراری جریان روشن میشود و یک مقاومت برای محدود کردن جریان که بین مدار برقرار است. همچنین باید از یک منبع زمین (GND) جهت برقراری ولتاژ منفی یا ۰ استفاده کرد که در پایههای پینهای GPIO موجود است. بنابراین در این پروژه از پایهی ۱۲ (GPIO18) برای دریافت ولتاژ ۳.۳+ ولت و از پایهی ۲۵ (GND) برای دریافت ولتاژ منفی یا ۰ ولت استفاده میکنیم. مدار باید به صورت زیر پیاده سازی شود:
اتصالات خود را دقت چک کنید و پس از اطمینان از صحت آنها، منبع تغذیه یا آداپتور رسپبری پای را متصل و سپس مراحل زیر را بررسی کنید:
از سیم جامپر برای اتصال پایه و پین زمین به برد آموزشی استفاده کرده و پایهی منفی را به خط آبی برد آموزشی (یا خط نشان خود) و پایهی مثبت را به پین GPIO18 متصل کنید. این سیم باید به گونهای باشد که مادگی آن به سمت پین GPIO و نر آن به برد آموزشی متصل شود.
سپس مقاومت را به مسیر موردنظر مطابق با شکل مداری که برای شما ترسیم شده است متصل کنید.
در نهایت پایهی LED را دقیقا مطابق با شکل متصل کنید.
پس از انجام فرآیندهای فوق وارد مرحلهی جذاب برنامهنویسی میشویم، با استفاده از زبان برنامهنویسی پایتون (Python) میخواهیم توسط رسپبری پای یک LED را خاموش و روشن کنیم. برای انجام این کار درون محیط دسکتاپ رسپبری پای خود یک فایل به نام LED.py با راست کلیک کردن روی دسکتاپ و کلیک روی گزینه new، ایجاد کنید. روش دیگری برای انجام این کار وجود دارد و آن استفاده از خط فرمان Terminal رسپبری پای است که با کلیک روی ترمینال و وارد کردن دستور زیر میتوانید این فایل را ایجاد کنید:
nano LED.py
حال دستورهای زیر را درون این فایل تایپ کنید تا به توضیح هر خط بپردازیم:
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(18,GPIO.OUT) print "LED on" GPIO.output(18,GPIO.HIGH) time.sleep(1) print "LED off" GPIO.output(18,GPIO.LOW)
حال فایل را ذخیره کرده و با استفاده از دستور sudo python LED.py این کد را درون ترمینال خود اجرا کنید.
توضیحات خطوط بالا را خدمتتان ارائه میکنم:
دستور import RPi.GPIO as GPIO:
این خط به مفسر پایتون اطلاع میدهد که از کتابخانهی RPi.GPIO برای کار با پینهای GPIO استفاده خواهیم کرد. کتابخانهها در زبانهای برنامه نویسی همانند کانالهای و شبکههای یک تلویزیون هستند.
دستور import time:
با استفاده از این دستور کتابخانه زمان به نرمافزار ما اضافه شده تا بتوانیم با استفاده از آن تاخیر یا توقف در کدها ایجاد کنیم.
دستور GPIO.setmode(GPIO.BCM):
در رسپبری پای، هر پین چندین اسم متفاوت دارد، بنابراین باید به برنامهی خود بگوییم که مقصود و منظور ما کدوم نام پین است.
دستور GPIO.setwarning(False):
این دستور به پایتون میگویید که پیغامهای اخطاری را در مانیتور، نمایش ندهد.
دستور GPIO.setup(18, GPIO.OUT):
این خط به مفسر پایتون اطلاع میدهد که پین ۱۸ به عنوان خروجی اطلاعات در نظرگرفته میشود. یعنی با استفاده از آن میتوان دستور on و off شدن به این پین را اعمال کرد.
دستور print "LED on":
در خروجی صفحه نمایش عبارت LED on را به هنگام روشن شدن LED نمایش میدهد.
دستور GPIO.output(18, GPIO.HIGH):
با این دستور پین GPIO مقداری برابر on میگیرد و فعال میشود. در عمل این پین به گونهای ولتاژ ۳.۳+ ولت را تولید میکند و این ولتاژ برای روشن کردن یک LED مناسب است.
دستور time.sleep(1):
با این دستور به مدت ۱ ثانیه نرمافزار متوقف میشود.
دستور print "LED off":
با این دستور LED خاموش شده و پیام LED off نمایش داده خواهد شد.
دستور GPIO.output(18,GPIO.LOW):
با دستور فوق پین GPIO ۱۸ برابر off شده و این به معنای قطع شدن جریان برق است.
بسیار عالی، همینطور که مشاهده میکنید هم اکنون LED شما روشن شده است. اگر کد شما خطا داشت مجددا آن را از طریق کنسول ویرایشگر، تغییر دهید.
به شما تبریک میگوییم اولین پروژه رسپبری پای خود را توانستید با چند خط کد ساده به مرحله اجرا بگذارید. در پروژه های بعدی به صورت تخصصی تر با رسپبری پای در ارتباط خواهیم بود.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.