یکی از قابلیتهای Pi کاربرد آن در پروژههای الکترونیکی است. شاید قبلاً از Arduino بهعنوان یک میکروکنترلر استفاده کرده باشید. Pi به دلیل پردازنده و حافظه توسعهیافته قابلیتهای بیشتری نسبت به Arduino فراهم ساخته است.
Raspberry Pi بهعلت داشتن یک PWM (سرنام Pulse Width Modulation) پین خروجی و تعدادی پینهای ورودی/ خروجی همهمنظوره، میتواند در کنترل سختافزارهای الکترونیکی مانند زنگ اخبار، چراغها و کلیدها مورد استفاده قرار گیرد. با استفاده از مراحلی که در ادامه شرح داده میشود، قادر خواهید بود الایدیها را با استفاده از Pi کنترل کنید. قبل از اینکه کدنویسی را شروع کنید، به ساختار و نحوه قرار گرفتن پینها روی Pi نگاهی بیاندازید. بسته به اینکه چه زمانی Pi را خریداری کردهاید، ممکن است از نسخه 1 یا 2 استفاده کنید. نحوه قرار گرفتن پینهای ورودی/ خروجی همهمنظوره در این دو نسخه کمی متفاوت است. در اینجا با نسخه 1 کار خواهیم کرد.
اگر به گوشه سمت چپ بالای تابلو نگاه کنید، یک برچسب سفید رنگ به نام ‘P1’ مشاهده میکنید. پین 1 در این قسمت قرار دارد و بالای آن نیز پین 2 است. این الگو ادامه دارد تا به پین 26 برسید.
پین 1 ولتاژ 3.3 ولت دارد و پین اصلی برای تأمین برق الایدی است. پینهای 2 و 4 ولتاژ 5 ولت و پینهای 6، 9، 14، 20 و 25 پینهای اتصال به زمین دارند.
پین 1 ولتاژ 3.3 ولت دارد و پین اصلی برای تأمین برق الایدی است. پینهای 2 و 4 ولتاژ 5 ولت و پینهای 6، 9، 14، 20 و 25 پینهای اتصال به زمین دارند.
حال بردبورد، دو سیم، یک مقاومت 270 اهم و یک الایدی بردارید. اگر دقت کنید، یکی از پایههای الایدی اندکی خمیدگی دارد. این پایه را در نظر داشته باشید؛ زیرا در مراحل بعدی مهم است. مطمئن شوید که Pi به برق وصل نباشد.
یک پایه سیم را به پین شماره 1 روی Pi و پایه دیگر را به بردبورد وصل کنید. مهم نیست سیم را به کدام قسمت از بردبورد وصل کنید، فقط دقت کنید جایی که وصل کردید در اطراف آن شکافهای کافی برای الایدیها وجود داشته باشد.
سر ماده سیم را به پین 6 و سر دیگر را به بردبورد وصل کنید. دقت کنید که باید فضای کافی برای مقاومت خود در نظر بگیرید. نکته مهمی که باید به آن توجه کنید این است که تحت هیچ شرایطی مقدار مقاومتی که انتخاب میکنید، کمتر از مقدار مقاومت الایدی نباشد.
حال یک سر مقاومت را نزدیک سیم متصل شده به زمین و سر دیگر را به یک شکاف زیر سیم 3.3 ولت وصل کنید.
الایدی را بردارید. پایه خم شده را کنار سیم 3/3 ولت و پایه دیگر را کنار مقاومت (روبهروی سیم متصل به زمین) وصل کنید.
USB را به برق، لپتاپ یا کامپیوتر وصل کنید تا روشن شود. به محض وصل شدن به برق، الایدی باید روشن شود.
این الایدی را از طریق کدنویسی کنترل کنید. پیش از آغاز، بهروز بودن همه برنامهها را با استفاده از دستور sudo apt-get dist-upgrade چک کنید. برای کنترل الایدی باید به ریشه دسترسی داشته باشید، پس در پایانه دستور su را وارد کنید. اگر نمیخواهید از این دستور استفاده کنید، باید بهخاطر داشته باشید که قبل از نوشتن هر دستوری کلمه ‘sudo’ را اضافه کنید. یک کتابخانه بسیار مفید بهنام GPIO پایتون وجود دارد که کار با پینهای GPIO را بسیار راحت میکند. با استفاده از دستور زیر، این کتابخانه را دریافت کنید و فایلهای آن را از حالت فشرده خارج سازید.
با استفاده از دستور زیر کتابخانه را دانلود کنید.
ابتدا یک قطعه کد پایتون بنویسید و کتابخانه را در آن وارد کنید و درون یک بلاک try-except قرار دهید تا مطمئن شوید همهچیز بهدرستی انجام میشود. برای اطمینان از درست بودن کد، دستور sudo python gpio.py را وارد کنید.
gpio.py نام کدی است که نوشتید. دوباره کد را در Nano باز و حالت ورودی/ خروجی به تابلو را تنظیم کنید.
برای اینکه یک پین بهدرستی کار خود را انجام دهد، باید مشخص شود که از نوع ورودی است یا خروجی. این کار در کتابخانه GPIO از طریق فراخوانی تابع GPIO.setup انجام میشود. شماره پین را به این تابع ارسال و یکی از دو حالت GPIO.OUT یا GPIO.IN را برای آن تعریف کنید. به دلیل اینکه قرار است در این پروژه از الایدی استفاده کنید، پین از نوع خروجی است.
قدم بعدی این است که مشخص کنید پین یک خروجی تولید کند و سپس راهی برای خارج شدن از برنامه پیدا کند. در اینجا باز هم از کلاس GPIO استفاده و تابع PWM را فراخوانی کنید. این تابع دو پارامتر ورودی دارد. یکی شماره پین و دیگری مقدار فرکانس به هرتز که در اینجا 0.5 است.
برای اینکه به الایدی یک تایمر اضافه کنید تا بهتدریج محو شود، باید کتابخانه time را به برنامه اضافه و پین 12 را تنظیم کنید که فرکانس 50 هرتز دارد.
حال با استفاده از یک بلاک try-except، میزان برق الایدی را اندازه بگیرید و اگر به یک سطح مشخص رسید، فرایند معکوس شود. برای این کار ابتدا برنامه را ذخیره کنید و ببندید و مجدد آن را باز کنید و کد زیر را بنویسید.
منبع: مجله شبکه مترجم: سارا بصیری
تشکر از زحماتتان