فهرست مطالب:

سنسور حرکت/چراغ کنترل: 7 مرحله
سنسور حرکت/چراغ کنترل: 7 مرحله

تصویری: سنسور حرکت/چراغ کنترل: 7 مرحله

تصویری: سنسور حرکت/چراغ کنترل: 7 مرحله
تصویری: آموزش نصب سنسور حرکتی برای چراغ راهرو 2024, نوامبر
Anonim
سنسور حرکت/چراغ های کنترل شده
سنسور حرکت/چراغ های کنترل شده

این پروژه به عنوان آخرین پروژه برای دوره طراحی دیجیتال در Cal Poly ، San Luis Obispo (CPE 133) ایجاد شد.

چرا ما این کار را می کنیم؟ ما می خواهیم به حفظ منابع طبیعی در جهان کمک کنیم. تمرکز پروژه ما بر صرفه جویی در مصرف برق است. با صرفه جویی بیشتر در برق ، می توانیم منابع طبیعی مورد استفاده برای تولید برق را حفظ کنیم. با آغاز سال 2018 ، منابع طبیعی با سرعت باورنکردنی مصرف می شوند. ما می خواهیم از تأثیر خود بر محیط زیست خود آگاه باشیم و نقش خود را در حفظ منابع طبیعی ایفا کنیم. الکترونیک را می توان به طرق مختلف برای صرفه جویی در انرژی اجرا کرد که به محیط زیست و همچنین وضعیت اقتصادی ما کمک می کند.*این مدل با استفاده از اجزای موجود در دسترس ما ایجاد شده است.

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

چگونه می توانید از این طرح استفاده کنید؟ این طرح را می توان برای انواع چراغ ها اعم از تزئینی ، کاربردی و یا هر دو اجرا کرد. به عنوان مثال ، اگر می خواهید چراغ میز شما فقط 6 ساعت کار کند. شما باید یک شمارنده را روی 21 ، 600 ثانیه (6 ساعت در 3 ، 600 ثانیه در ساعت) تنظیم کنید. در حالی که شمارنده به طور فعال در حال افزایش است ، سنسور حرکت نور را کنترل می کند. بنابراین ، هر بار که در آن بازه زمانی خاموش می شود ، فقط باید دست خود را در مقابل سنسور حرکت تکان دهید تا دوباره روشن شود. اگر پشت میز خود بخوابید و 7 ساعت بعد از خواب بیدار شوید ، حرکت شما آن را روشن نمی کند.

مرحله 1: نرم افزار و سخت افزار مورد نیاز

نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز
نرم افزار و سخت افزار مورد نیاز

نرم افزار:

  • Vivado 2016.2 (یا نسخه جدیدتر) را می توانید در اینجا پیدا کنید
  • Arduino IDE 1.8.3 (یا نسخه جدیدتر) را می توانید در اینجا پیدا کنید

سخت افزار:

  • 1 Basys 3 تخته
  • 1 آردوینو اونو
  • 2 تخته نان
  • 1 سنسور فراصوت فراگیر HC-SR04
  • 9 سیم نر به مرد
  • 1 عدد LED
  • 1 مقاومت 100Ω

مرحله 2: کدها (Vivado)

کدها (Vivado)
کدها (Vivado)

ماشین حالت محدود (نمودار حالت بالا را ببینید):

LED به یک دستگاه حالت محدود نیاز داشت. یک LED فقط دو حالت روشن و خاموش دارد. فقط دو ورودی وضعیت LED ، شمارنده و سنسور را کنترل می کنند. تنها زمانی که LED باید روشن باشد زمانی است که سنسور حرکت را تشخیص می دهد و هنگامی که شمارنده از صفر تا سی ثانیه شمارش می کند. در هر صورت دیگر LED خاموش می شود.

نام فایل: LEDDES

پیشخوان:

شمارنده به ما اجازه می دهد مدت زمانی را که سنسور حرکت می تواند LED را فعال کند ، محدود کنیم. مقدار آن در صفحه نمایش هفت قسمتی Basys 3 Board از طریق یک کد منبع ("sseg_dec") نمایش داده می شود. وقتی کلید Reset پایین است (مقدار: '0') ، شمارنده هر ثانیه از 0 به 30 افزایش می یابد. هنگامی که به 30 می رسد ، روی آن عدد ثابت می شود. تا زمانی که کلید Reset به "1" و دوباره به "1" تغییر نکند ، از 0 شروع نمی شود. اگر Reset در حالی که شمارنده در حال حرکت است ، "1" شود ، شمارنده با هر مقداری که به آن رسیده بود منجمد می شود. هنگامی که تنظیم مجدد به "0" باز می گردد ، شمارنده از 0 تا 30 راه اندازی مجدد می شود. این پیاده سازی همچنین نیاز به استفاده از سیگنال ساعت دارد ، کد آن در زیر ارائه شده است ("clk_div2").

نام فایل: FinalCounter

فایل های ارائه شده:

نمایش هفت بخش:

این کد به صفحه نمایش هفت بخش اجازه می دهد تا مقادیر اعشاری را نمایش دهد. یکی از زیر ماژول ها به عنوان رمزگشایی بین یک ورودی باینری 8 بیتی و یک اعشاری کد شده دوتایی 4 بیتی عمل می کند. دیگری سیگنال ساعت را تقسیم می کند تا مقدار آن را با نرخ مشخصی تازه کند.

نام فایل: sseg_dec

سیگنال ساعت:

این کد به شمارنده اجازه می دهد تا 1 ثانیه افزایش یابد. فرکانس ساعت ورودی را به فرکانس کندتر تقسیم می کند. ما با تغییر ثابت max_count: integer: = (3000000)”به“max_count ثابت: integer: = (50000000) یک دوره 1 ثانیه ای را فراهم کردیم.

نام فایل: clk_div2

فایل های ارائه شده: sseg_dec، clk_div2 *این فایل های منبع توسط پروفسور برایان میلی تهیه شده است.

مرحله 3: درک نحوه ترکیب آنها (نمودارهای اجزای VHDL)

درک نحوه ترکیب آنها (شماتیک اجزای VHDL)
درک نحوه ترکیب آنها (شماتیک اجزای VHDL)

فایل اصلی ("MainProjectDES") شامل تمام زیرفایل هایی است که قبلاً مورد بحث قرار گرفت. آنها به روش بالا به هم متصل می شوند. اجزای مختلف با استفاده از نقشه های پورت برای ارسال سیگنال از یک عنصر به عنصر دیگر به هم متصل هستند.

همانطور که ممکن است متوجه شده باشید ، FinalCounter خروجی 5 بیتی را ارائه می دهد در حالی که sseg_dec به یک ورودی 8 بیتی نیاز دارد. برای جبران ، ما سیگنال اتصال هر دو جزء را با "000" شروع می کنیم و خروجی 5 بیتی را از شمارنده اضافه می کنیم. بنابراین یک ورودی 8 بیتی ارائه می دهد.

محدودیت ها:

برای اجرای این کدها بر روی برد Basys 3 ، یک فایل محدودیت ها مورد نیاز بود که به هر سیگنال می گفت که کجا باید برود و قطعات چگونه وصل شده اند.

مرحله 4: کد (آردوینو)

ما Arduino Uno را طوری برنامه ریزی کردیم که از سنسور حرکت برای تشخیص حرکت و خروجی ای که به LED نشان می دهد روشن شود ، استفاده کند. علاوه بر این ، استفاده از سنسور برای تشخیص حرکت به حلقه های در حال اجرا نیاز دارد که به طور مداوم به دنبال تغییر فاصله هستند. در اصل ، به یک تایمر نیاز دارد که به طور همزمان کار کند تا سیگنال "بالا" برای روشن شدن LED روشن شود در حالی که زمان تشخیص حرکت جدید باید تایمر را تنظیم مجدد کند ، که تقریباً غیرممکن است بر اساس دامنه دانش ، روی Vivado پیاده سازی شود. از کلاس علاوه بر این ، ما از آردوینو استفاده کردیم زیرا استفاده از HC-SR04 با برد Basys 3 امکان پذیر نیست زیرا این برد فقط 3.3 ولت را تغذیه می کند در حالی که سنسور به منبع تغذیه 5 ولت نیاز دارد. برای پیاده سازی حرکت تشخیص ، کدگذاری واقعی آن برخلاف CAD در VHDL است.

ما از عملکرد پالس داخلی سنسور برای بازیابی زمان سپری شده بین صدایی که در ابتدا از سنسور ساطع می شود و صدایی که هنگام برخورد با یک شیء برگشت می کند ، استفاده کردیم. سپس از سرعت صدا و فاصله زمانی برای محاسبه فاصله بین جسم و سنسور استفاده می کنیم. از این رو ، فاصله فعلی را ذخیره کرده و آن را پیگیری می کنیم. ما هر 150 میلی متر فاصله را بررسی می کنیم. ما همچنین از کتابخانه elapsedmil برای اجرای یک تایمر داخلی در داخل آردوینو برای پیگیری زمان سپری شده استفاده کردیم. اگر یک تغییر فاصله را که مربوط به یک حرکت است تشخیص دهیم ، تایمر به صفر بازنشانی می شود و تا زمانی که 3 ثانیه نگذشته باشد چراغ را روشن نگه می دارد. هر زمان که سنسور حرکت دیگری را تشخیص داد ، تایمر روی 0 تنظیم می شود و سیگنال چراغ LED تا 3 ثانیه بعدی "زیاد" خواهد بود. ما یک کپی از کد آردوینو را در زیر پیوست کرده ایم.

مرحله 5: اجزای ما چگونه با هم هماهنگ می شوند

اجزای ما چگونه با هم هماهنگ می شوند!
اجزای ما چگونه با هم هماهنگ می شوند!
اجزای ما چگونه با هم هماهنگ می شوند!
اجزای ما چگونه با هم هماهنگ می شوند!
اجزای ما چگونه با هم هماهنگ می شوند!
اجزای ما چگونه با هم هماهنگ می شوند!

همانطور که در "Basys3: Pmod Pin-out Diagram*" و عکس Arduino Uno Board مشاهده می کنید ، پورت هایی را که استفاده می کنیم برجسته و برچسب گذاری می کنیم.

1. LED و برد Basys 3

LED به صورت سری با مقاومت 100Ω متصل می شود. سیم سفید مقاومت را به پین PWR برد Basys 3 متصل می کند. -سیم زرد LED را به پین H1 برد Basys 3 متصل می کند.

2. سنسور حرکت و Arduino Uno

سیم نارنجی Vcc (قدرت) سنسور حرکت را به پین 5 ولت برد Arduino Uno متصل می کند.-سیم سفید پین Trig سنسور حرکت را به پین 10 برد Arduino Uno متصل می کند.-سیم زرد پین Echo of را وصل می کند سنسور حرکت به پین 9 برد Arduino Uno.-سیم سیاه پایه GND سنسور حرکت را به پین GND برد Arduino Uno متصل می کند.

[سیمهای مورد استفاده ما برای رسیدن به قطعات بسیار کوتاه بودند ، بنابراین به هم متصل بودند]

3. برد Basys 3 و Arduino Uno

سیم زرد پین A14 برد Basys 3 را به پین 6 برد Arduino Uno متصل می کند.

*این نمودار از "Basys 3" FPGA Manual Reference Manual "Digilent" گرفته شده است که در اینجا یافت می شود.

مرحله ششم: تظاهرات

مرحله 7: زمان آزمایش آن است

تبریک می گویم! شما به پایان پروژه سنسور حرکت و کنترل نور کنترل ما رسیده اید! بسیار سپاسگزارم که پست دستورالعمل های ما را مطالعه کردید. اکنون وقت آن است که خودتان سعی کنید این پروژه را بسازید. اگر هر مرحله را با دقت دنبال کنید ، باید یک سنسور حرکت و چراغ کنترل کننده مشابه ما داشته باشید! آرزوی موفقیت برای شما در ساخت این پروژه داریم و امیدواریم بتواند در صرفه جویی در مصرف برق و همچنین منابع طبیعی کمک کند!

توصیه شده: