کار با حسگر مادون قرمز و Raspberry Pi

حسگر مادون قرمز را به Raspberry Pi GPIO اضافه کنید

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

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

Raspberry Pi همچنین به عنوان یک کامپیوتر جیبی دارای Wi-Fi داخلی و دارای قابلیت های میکروکنترلر، یک مزیت برای پروژه های اینترنت اشیا محسوب می شود.

 

در این آموزش یاد می گیریم که چگونه می توان یک حسگر IR را با Raspberry pi ارتباط دهید. این سنسورها معمولاً در ربات های کوچکی مانند ربات پیرو خط و غیره استفاده می شود. به زبان ساده، می تواند وجود اشیا را قبل از خود تشخیص دهد و همچنین تفاوت بین رنگ سفید و سیاه را تشخیص دهد. عالی به نظر می رسد درسته؟

بنابراین بیایید یاد بگیریم که چگونه از این سنسور با Raspberry Pi استفاده کنیم. در این پروژه، وقتی شیئی در مقابل سنسور IR وجود ندارد، LED قرمز روشن باقی می ماند و به محض قرار دادن چیزی در مقابل سنسور IR ، LED قرمز خاموش و LED سبز روشن می شود. این مدار می تواند به عنوان مدار زنگ خطر نیز عمل کند.

 


لوازم مورد نیاز:

رزبری پای ۳ (هر مدلی)
ماژول سنسور IR
چراغ های LED سبز و قرمز


 

ماژول سنسور IR:

سنسورهای IR (سنسور مادون قرمز) ماژول هایی هستند که وجود اشیا قبل از خود را تشخیص می دهند. اگر جسم موجود باشد، ۳.۳ ولت به عنوان خروجی و در صورت عدم وجود ۰ ولت می دهد. این امر با استفاده از یک جفت IR (فرستنده و گیرنده) امکان پذیر است، فرستنده (IR LED) یک پرتوی IR ساطع می کند که در صورت وجود جسمی قبل از آن منعکس می شود.

این اشعه IR توسط گیرنده (Photodiode) پس گرفته می شود و پس از تقویت با استفاده از op-amp LM358، خروجی تقویت می شود

سنسور IR مورد استفاده در این پروژه در بالا نشان داده شده است. مانند تمام سنسورهای IR سه پایه دارد که به ترتیب ۵ ولت ، Gnd و Out هستند. ماژول از پایه ۵ ولت Raspberry Pi تغذیه می شود و پایه خروجی به GPIO14  برد Raspberry Pi متصل می شود. برای تنظیم برد سنسور IR می توان از پتانسیومتر بالای ماژول استفاده کرد.

 

شماتیک مدار و توضیحات:

شماتیک مدار اتصال Raspberry Pi با سنسور IR در زیر نشان داده شده است. همانطور که مشاهده می کنید شماتیک مدار بسیار ساده است. ماژول IR را مستقیماً از ۵ ولت و پین زمینی Raspberry Pi تأمین کرده ایم. پین خروجی ماژول IR به GPIO14 متصل است. ما همچنین از دو LED (سبز و قرمز) برای نشان دادن وضعیت جسم استفاده کرده ایم. این دو LED به ترتیب به GPIO3 و GPIO2 متصل هستند.

مدار

 

از آنجا که پایه های GPIO برد  Raspberry Pi دارای ۳.۳ ولت است، مقاومت محدود کننده جریان اجباری نیست. اما در صورت تمایل می توان مقاومت بین ۴۷۰ اهم را بین پایه زمین LED ها و Raspberry Pi اضافه کرد. کل مدار توسط یک شارژر همراه ۵ ولت از طریق درگاه میکرو USBبرد Raspberry pi تأمین می شود.

توجه: هنگام اتصال هر سنسور، مطمئن شوید که زمین سنسور به زمین MCU یا MPU وصل شده است (در اینجا Raspberry Pi). فقط در این صورت است که آنها قادر به برقراری ارتباط خواهند بود.

 

برنامه نویسی به زبان پایتون:

در اینجا ما از زبان برنامه نویسی پایتون برای برنامه نویسی RPi استفاده می کنیم. روش های زیادی برای برنامه ریزی Raspberry Pi شما وجود دارد. در این آموزش ما از Python 3 IDE استفاده می کنیم، زیرا بیشترین استفاده را دارد. برنامه پایتون کامل در انتهای این آموزش آورده شده است.

ما قصد داریم فایل GPIO را از کتابخانه وارد کنیم، عملکرد زیر ما را قادر می سازد تا پایه های GPIO برد  را برنامه ریزی کنیم. ما همچنین “GPIO” را به “IO” تغییر نام می دهیم، بنابراین در برنامه هر زمان که بخواهیم به پین های GPIO مراجعه کنیم از کلمه “IO” استفاده خواهیم کرد.

import RPi.GPIO as IO

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

IO.setwarnings(False)

ما می توانیم پین های GPIO را، یا با شماره پین موجود در صفحه یا با توجه به تعداد عملکرد آنها ، ارجاع دهیم. مانند «پین ۲۹» روی  «GPIO5» است. بنابراین ما در اینجا می گوییم یا می خواهیم پین را با “۲۹” یا “۵” نشان دهیم.

IO.setmode (IO.BCM)

ما ۳ پایه به عنوان پایه های ورودی / خروجی تنظیم می کنیم. دو پایه خروجی LED را کنترل می کنند و پایه ورودی سیگنال را از سنسور IR می خواند.

IO.setup(2,IO.OUT) #GPIO 2 -> Red LED as output
IO.setup(3,IO.OUT) #GPIO 3 -> Green LED as output
IO.setup(14,IO.IN) #GPIO 14 -> IR sensor as input
حالا ما باید LED سبز را خاموش کنیم و وقتی که جسم دور است ، LED قرمز را روشن کنیم. این کار را می توان با بررسی پین GPIO14 انجام داد.
    if(IO.input(14)==True): #object is far away
        IO.output(2,True) #Red led ON
        IO.output(3,False) # Green led OFF

به همین ترتیب ما باید LED سبز را روشن کرده و LED قرمز را هنگام نزدیک شدن جسم خاموش کنیم.

  if(IO.input(14)==False): #object is near
        IO.output(3,True) #Green led ON
        IO.output(2,False) # Red led OFF

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

While 1:

اجرای برنامه:

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

اکنون، چیزی را به لامپ IR نزدیک کنید و باید خاموش شدن LED قرمز و روشن شدن سبز را مشاهده کنید.

Code:

 

import RPi.GPIO as IO
import time
IO.setwarnings(False)
IO.setmode(IO.BCM)

IO.setup(2,IO.OUT) #GPIO 2 -> Red LED as output
IO.setup(3,IO.OUT) #GPIO 3 -> Green LED as output
IO.setup(14,IO.IN) #GPIO 14 -> IR sensor as input

while 1:

    if(IO.input(14)==True): #object is far away
        IO.output(2,True) #Red led ON
        IO.output(3,False) # Green led OFF
    
    if(IO.input(14)==False): #object is near
        IO.output(3,True) #Green led ON
        IO.output(2,False) # Red led OFF

 


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


 

محمد صداقتی
Latest posts by محمد صداقتی (see all)

دیدگاهتان را بنویسید

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