فهرست مطالب:
- مرحله 1: نرم افزار و سخت افزار مورد نیاز
- مرحله 2: کدها (Vivado)
- مرحله 3: درک نحوه ترکیب آنها (نمودارهای اجزای VHDL)
- مرحله 4: کد (آردوینو)
- مرحله 5: اجزای ما چگونه با هم هماهنگ می شوند
- مرحله ششم: تظاهرات
- مرحله 7: زمان آزمایش آن است
تصویری: سنسور حرکت/چراغ کنترل: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این پروژه به عنوان آخرین پروژه برای دوره طراحی دیجیتال در 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)
ماشین حالت محدود (نمودار حالت بالا را ببینید):
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)
فایل اصلی ("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: زمان آزمایش آن است
تبریک می گویم! شما به پایان پروژه سنسور حرکت و کنترل نور کنترل ما رسیده اید! بسیار سپاسگزارم که پست دستورالعمل های ما را مطالعه کردید. اکنون وقت آن است که خودتان سعی کنید این پروژه را بسازید. اگر هر مرحله را با دقت دنبال کنید ، باید یک سنسور حرکت و چراغ کنترل کننده مشابه ما داشته باشید! آرزوی موفقیت برای شما در ساخت این پروژه داریم و امیدواریم بتواند در صرفه جویی در مصرف برق و همچنین منابع طبیعی کمک کند!
توصیه شده:
DIY: جعبه مینی سنسور سقفی با سنسور حرکت فوکوس: 4 مرحله
DIY: جعبه مینی سنسور سقفی با سنسور حرکت قابل تمرکز: سلام. مدتی پیش من با مفهوم خانه هوشمند به دوستم کمک کردم و یک جعبه سنسور کوچک با طراحی سفارشی ایجاد کردم که می تواند روی سقف به سوراخ 40x65 میلی متر نصب شود. این جعبه به موارد زیر کمک می کند: • اندازه گیری شدت نور • اندازه گیری رطوبت
از چراغ قوه تا سنسور حرکت با ESP8266 و MQTT: 5 مرحله (همراه با تصاویر)
از چراغ قوه تا سنسور حرکت با ESP8266 و MQTT: در این پست ، موارد زیر را ارائه می کنم: LED ها برای ایجاد چراغ قوه به یک چراغ قوه احتیاج دارند تا نور را با باتری قابل حمل تغذیه کند و LED ها را با ESP8266 از طریق MQTT کم می کند. و توضیح مختصری در مورد نحوه
یک چراغ سنسور حرکت ساده بسازید! (PIR): 13 مرحله (همراه با تصاویر)
یک چراغ سنسور حرکت ساده بسازید! (PIR): یک Small & amp؛ نور سنجش حرکت ساده با دردسر کمتر و اجزای کمتر. مبتدی نیز می تواند این کار را انجام دهد. درک ساده نحوه عملکرد ترانزیستور و دانش آند و کاتد فقط مورد نیاز است ، بنابراین آن را بدون تنش انجام دهید
سنسور لمسی و سنسور صدا کنترل چراغ های AC/DC: 5 مرحله
سنسور لمسی و سنسور صدا کنترل چراغ های AC/DC: این اولین پروژه من است و بر اساس دو سنسور اصلی کار می کند ، یکی سنسور لمسی و دیگری سنسور صدا است ، هنگامی که صفحه لمسی را روی سنسور لمسی فشار می دهید ، چراغ AC تغییر می کند روشن است ، اگر آن را رها کنید ، نور خاموش می شود و همان
خروجی کنترل شده حرکت - از طریق نور حسگر حرکت: 6 مرحله
خروجی کنترل شده حرکت - از طریق نور حسگر حرکت: & nbsp؛ تصور کنید که شما یک حقه باز یا درمانگر هستید که به ترسناک ترین خانه بلوک می روید. پس از پشت سر گذاشتن همه غولها ، ارواح و قبرستان ، سرانجام به آخرین مسیر می رسید. می توانید آب نبات را در یک کاسه جلوی خود ببینید! اما ناگهان یک غافل