استفاده از رسپبری‌پای برای تشخیص ورود افراد به اتاق

سه شنبه, 12 دی 1396 14:26
این مورد را ارزیابی کنید
(6 رای‌ها)

در این آموزش خواهیم دید که چگونه با استفاده از برد رسپبری‌پای متوجه خواهیم شد که چه کسی وارد اتاق ما شده است. برای این منظور به یک سنسور تشخیص حرکت PIR و ماژول دوربین رسپبری‌پای نیاز است.

در این آموزش، درواقع، با تشخیص حضور فرد در اتاق توسط سنسور تشخیص حرکت PIR دوربین رسپبری‌پای شروع به فیلم گرفتن می‌کند. معرفی سنسور تشخیص حرکت PIR را می‌توانید در دو آموزش "معرفی و نحوه راه‌اندازی سنسور تشخیص حرکت PIR : بخش اول" و "معرفی و نحوه راه‌اندازی سنسور تشخیص حرکت PIR : بخش دوم" مطالعه کنید. همچنین، راه‌اندازی این سنسور با برد رسپبری‌پای (رزبری‌پای) را می‌توانید در آموزش "راه‌اندازی سنسور تشخیص حرکت با برد رسپبری‌پای | درس سیزدهم" دنبال کنید. به‌علاوه، برای مطالعه در رابطه با استفاده از دوربین رسپبری‌پای و راه‌اندازی اولیه آن، می‌توانید به دو آموزش "شروع کار با دوربین رسپبری‌پای با زبان برنامه‌نویسی پایتون (قسمت اول)" و "شروع کار با دوربین رسپبری‌پای با زبان برنامه‌نویسی پایتون (قسمت دوم)" مراجعه نمایید.

قطعات موردنیاز

ماژول دوربین رسپبری‌پای

1 عدد

برد رسپبری پای 3 تولید Raspberry Pi 3 model B RS

1 عدد
سنسور تشخیص حرکت PIR 1 عدد

 

ماژول دوربین از بهترین لوازم جانبی رسپبری‌پای است که به کاربران اجازه عکس گرفتن و ضبط ویدئو باکیفیت full HD را می‌دهد. همچنین، این ماژول برای شما امکان دیدن و تصویربرداری در تاریکی را با استفاده از روشنایی اینفرارد فراهم می‌کند. اگرچه سنسور PIR به منبع توان 5V احتیاج دارد، ولی خروجی آن 3.3V بوده که با برد رسپبری‌پای سازگاری دارد، لذا می‌تواند به‌طور مستقیم به ورودی GPIO متصل گردد.

اتصال سنسور تشخیص حرکت PIR به برد رسپبری‌پای

به همراه سنسور تشخیص حرکت PIR یک سیم سوکت دار وجود دارد. سوکت را مطابق شکل به سنسور PIR متصل کنید، سیم قرمز برای 5 ولت، سیم مشکی برای GND و سیم زرد را هم به GPIO 4 برد رسپبری‌پای وصل کنید. این خروجی سنسور، به‌محض اینکه سنسور حرکتی را تشخیص دهد یک ولتاژی را به این پین رسپبری‌پای می‌دهد.

 PIR

 pir-diagram

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

 pir_potentiometers

اتصال ماژول دوربین رسپبری‌پای

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

 connect-camera

آزمایش سنسور تشخیص حرکت PIR

در این مرحله از آموزش، قرار است تا چند خط برنامه در رسپبری‌پای بنویسیم تا به‌محض تشخیص حرکت، جمله “Motion detected” نمایش داده شود. برای این منظور برد رسپبری‌پای خود را روشن کرده و در محیط Python3 (IDLE) فایل جدیدی با نام parent-detector.py ذخیره کنید.

برنامه زیر به‌منظور فهماندن رسپبری‌پای که سنسور به پین GPIO 4 متصل شده است را بنویسید:

from gpiozero import MotionSensor

pir = MotionSensor (4)

حال، چند خط برنامه دیگر زیر را نیز بنویسید تا در صورت تشخیص حرکت توسط سنسور، در صفحه‌نمایش “Motion detected!” نشان داده شود.

pir.wait_for_motion()

print(“Motion detected!”)

برای یادگیری نحوه استفاده از دستور pir.wait_for_motion() به gpio zero مراجعه کنید.

برنامه را ذخیره کنید و F5 را فشار دهید تا برنامه اجرا شود. خواهید دید که جمله Motion detected! در صفحه‌نمایش نشان داده خواهد شد.

برای اجرای مداوم برنامه، آن را در یک حلقه بینهایت قرار دهید. برای این منظور از دستور زیر می‌توانید در ابتدای برنامه خود استفاده کنید.

While True:

          pir.wait_for_motion()

          print(“Motion detected!”)

برای خارج شدن از برنامه نیز Ctrl+F6 را بزنید.

پیش‌نمایش دوربین رسپبری‌پای با سنسور تشخیص حرکت PIR

پیش‌نمایش دوربین رسپبری‌پای (رزبری‌پای) قبلاً به‌طور کامل در آموزش "شروع کار با دوربین رسپبری‌پای با زبان برنامه‌نویسی پایتون (قسمت اول)" آورده شده است. در این آموزش قرار است تا با تشخیص حرکت توسط سنسور، پیش‌نمایش دوربین رسپبری‌پای اجرا شود. برای این منظور برنامه زیر را نوشته و ذخیره و با زدن دکمه F5 اجرا نمایید.

While True:

          pir.wait_for_motion()

          print(“Motion detected!”)

            camera.sart_preview()

            pir.wait_for_no_motion()

            camera.stop_preview()

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

ضبط ویدئو

در قسمت قبلی آموزش دیدیم که با تشخیص حرکت، پیش‌نمایش دوربین رسپبری‌پای فعال می‌شد. در این قسمت می‌خواهیم این فیلم را ذخیره کنیم تا بعداً هم قابل‌نمایش باشد. برای این منظور دستورات زیر را وارد نمایید:

While True:

            filename = "intruder.h264"

          pir.wait_for_motion()

          print(“Motion detected!”)

            camera.start_recording(filename)

            pir.wait_for_no_motion()

            camera.stop_ recording ()

خط اول این برنامه در داخل حلقه بینهایت، متغیری با نام intruder را ایجاد می‌کند که .h264 پسوند نوع فایل ویدئوی ضبط‌شده با رسپبری‌پای (رزبری‌پای) است. برنامه را ذخیره و برای اجرای آن F5 را بزنید. خواهید دید که فایلی با نام intruder.h264 هم در کنار فایل parent-detector.py ایجاد خواهد شد.

با اجرای این برنامه هرزمان که سنسور تشخیص حرکت، حرکتی را تشخیص دهد ویدئوی جدیدی ضبط‌شده و بر روی فایل قبلی ذخیره می‌شود. برای اینکه ویدئو را نمایش دهید کافی است تا یک پنجره ترمینال (terminal window) را با کلیک کردن روی آیکون مانیتور مشکی در نوار بازکنید. به‌منظور پخش ویدئو دستوری که در ادامه آمده است را تایپ کرده و Enter را بزنید:

omxplayer intruder.h264

ویدئو باید پخش شود. ممکن است درواقع با سرعتی سریع‌تر آنچه ضبط‌شده است پخش شود که به دلیل نرخ فریم سریع‌تر omxplayer است.

همان‌طور که گفتیم، با اجرای این برنامه هرزمان که سنسور تشخیص حرکت، حرکتی را تشخیص دهد ویدئوی جدیدی ضبط‌شده و بر روی فایل قبلی ذخیره می‌شود. اگر بخواهید ویدئوهای ضبط‌شده براثر تمامی حرکات را نگه‌دارید تا بعداً به همگی آن‌ها دسترسی داشته باشید، آیا می‌توانید یک برنامه برای نوشتن تاریخ و زمان فعلی خود بنویسید و آن را به نام فایل ویدئویی اضافه کنید؟ سپس، هر ویدیویی که ضبط می‌کنید یک نام فایل متفاوت خواهد داشت!

شما می‌توانید LED قرمز را در برد دوربین غیرفعال کنید که به‌طورمعمول هنگام شروع برنامه Python شما روشن می‌شود، آیا می‌توانید برنامه مرتبط با آن را بنویسید؟

 

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

 


ترجمه شده توسط تيم الکترونيک صنعت بازار | منبع: سايت raspberrypi.org

خواندن 2395 دفعه
عباس بطالبلو

عباس بطالبلو دانش‌آموخته کارشناس ارشد رشته مهندسی مکاترونیک از دانشگاه صنعتی خواجه نصیرالدین طوسی و عضو گروه رباتیک جراح آزمایشگاه ارس (ARAS) هستند. موضوع پایان نامه کارشناسی ارشد ایشان در زمینه ی «طراحی و پیاده سازی ربات ۲RT برای جراحی از دور چشم» بوده است. ایشان سابقه پیاده سازی و ساخت ربات هایی چون ربات موازی جراحی چشم، ربات سری SCARA، ربات Palletizer و … را دارند.

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (2)

  1. بطالبلو

سلام دوست عزیز
بله برنامه مشابه با استفاده از بردهای آردوینو هم در سایت موجود است
موفق باشید

 
  1. علی عزیزی

با سلام خئمت شما
امکانش هست کد بالا رو با زبان c نوشت؟

 
هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟

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

ما را دنبال کنید:

Copyright © 2017-2018 | Sanatbazar.com