สารบัญ:

ไฟ Motion Sensor Basic3: 8 ขั้นตอน
ไฟ Motion Sensor Basic3: 8 ขั้นตอน

วีดีโอ: ไฟ Motion Sensor Basic3: 8 ขั้นตอน

วีดีโอ: ไฟ Motion Sensor Basic3: 8 ขั้นตอน
วีดีโอ: PIR เซนเซอร์ตรวจจับการเคลื่อนไหว220V 2024, พฤศจิกายน
Anonim
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3
ไฟเซ็นเซอร์ตรวจจับความเคลื่อนไหว Basic3

สำหรับโปรเจ็กต์สุดท้ายของเราในการออกแบบดิจิทัล เราตัดสินใจจำลองไฟของเซ็นเซอร์ตรวจจับความเคลื่อนไหว โดยจะเปิดใช้งานไม่เฉพาะเมื่อมีวัตถุอยู่ใกล้เท่านั้น แต่ยังเปิดใช้งานเฉพาะในช่วงเวลาหนึ่งของวันด้วย เราสามารถจำลองสิ่งนี้ได้โดยใช้ FPGA (บอร์ด Basy3) ในขณะที่ใช้ FPGA เราอนุญาตให้ผู้ใช้ป้อนเวลาที่เซ็นเซอร์ตรวจจับความเคลื่อนไหวจะเริ่มเปิดใช้งาน จากนั้นเซ็นเซอร์จะส่งสัญญาณขึ้นอยู่กับว่าเซ็นเซอร์ตัวใด คือการเปิดไฟเฉพาะนั้นในห้องหรือบริเวณนั้น เราจำลองสิ่งนี้โดยอนุญาตให้เปิดใช้งานเซ็นเซอร์ตรวจจับความเคลื่อนไหวเพียงตัวเดียวในเวลาที่กำหนด และเปิดไฟที่ให้มาตามลำดับ เนื่องจากการจำกัดเวลา เราจึงไม่สามารถกำหนดให้เวลาที่ผู้ใช้ป้อนส่งผลต่อการเปิดใช้งานเซ็นเซอร์ตรวจจับความเคลื่อนไหว อย่างไรก็ตาม พื้นฐานของตรรกะของเราควรอนุญาตให้ผู้อื่นทำซ้ำและปรับปรุงได้ง่าย

### ลิงค์ด้านล่างแสดงวิดีโอของ Project

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

ขั้นตอนที่ 1: อุปกรณ์ที่จำเป็น

อุปกรณ์ที่จำเป็น
อุปกรณ์ที่จำเป็น

สำหรับโครงการนี้ คุณจะต้องมีสิ่งต่อไปนี้:

-Basys3 บอร์ด

- สาย USB เป็นไมโครยูเอสบี

-8 สายจัมเปอร์เขียงหั่นขนม

-เขียงหั่นขนม

-2 LED แบบกระจาย

ขั้นตอนที่ 2: Blackbox Diagram/Finite State Machine

Blackbox Diagram/เครื่องไฟไนต์สเตท
Blackbox Diagram/เครื่องไฟไนต์สเตท
Blackbox Diagram/เครื่องไฟไนต์สเตท
Blackbox Diagram/เครื่องไฟไนต์สเตท

ไดอะแกรมกล่องดำนี้แสดงอินพุตที่จำเป็นสำหรับการเปิดไฟ LED อินพุตชั่วโมงและอินพุตต่ำสุดแสดงเวลาที่ผู้ใช้ป้อนบนบอร์ด basey3 (โดยใช้สวิตช์) สำหรับอินพุต sw หมายถึงส่วนใดของผู้ใช้ในห้อง (ใช้สวิตช์เพื่อแสดงตำแหน่งของวัตถุอีกครั้ง)

FSM แสดงการเปลี่ยนแปลงจากพื้นที่หนึ่งไปยังอีกพื้นที่หนึ่งของห้องที่มีวัตถุอยู่ในช่วงเวลาที่กำหนด มีเซ็นเซอร์ 4 ตัวในห้องต่างๆ ซึ่งแสดงเป็น (s1, s2, s3, s4) ซึ่งควบคุมเอาท์พุตหรือไฟในห้องต่างๆ เช่น ไฟ (L1, L2, L3) สถานะเริ่มต้นที่เซ็นเซอร์ตรวจไม่พบใคร ดังนั้นไฟทั้งหมดจึงดับลง หากต้องการย้ายไปยังสถานะถัดไป (สถานะ 1) s1 จะต้องตรวจจับใครบางคน s2, s3 และ s4 จะถูกปิด สิ่งนี้จะส่งสัญญาณออก L1 (เปิดไฟ 1), L2 และ L3 จะถูกปิด หากต้องการย้ายไปยังสถานะ 2 จากสถานะ 1 ต้องปิด s1, s3 และ s4 และต้องเปิด s2 การดำเนินการนี้จะเปิด L1 และ L2 หากต้องการย้ายไปยังสถานะถัดไปจากสถานะนี้ s3 จะต้องเปิดและปิดเซ็นเซอร์อื่นๆ ทั้งหมด การดำเนินการนี้จะเปิด L2 และ L3, L1 จะปิด หากต้องการย้ายไปยังสถานะสุดท้าย ต้องเปิด S4 และต้องปิดเซ็นเซอร์อื่นๆ ทั้งหมด การดำเนินการนี้จะเปิด L3 เท่านั้น ไฟอื่นๆ ทั้งหมดจะดับลง หากมีคนเข้าห้องจากด้าน s4 และออกจาก s1 ขั้นตอนทั้งหมดจะอยู่ในลำดับที่กลับกัน

ขั้นตอนที่ 3: นาฬิกาดิจิตอล BlackBox

นาฬิกาดิจิตอล BlackBox
นาฬิกาดิจิตอล BlackBox

จุดประสงค์ของนาฬิกาดิจิทัลที่เราสร้างขึ้นคือเพื่อไม่ให้ไฟเซ็นเซอร์ทำงานในระหว่างวัน และจะทำงานได้เฉพาะในช่วงเวลาที่ผู้ใช้ป้อนเท่านั้น นาฬิกาดิจิตอลใช้เวลาอินพุต hour_in และ mins_in โดยใช้สวิตช์บนบอร์ด basy3 และเพื่อให้สามารถโหลดลงบนบอร์ดได้ คุณต้องกด (led_btn) เพื่อให้แสดงบนบอร์ด นอกจากนี้เรายังเพิ่มปุ่มรีเซ็ต (rst_b) เพื่อให้คุณสามารถอัปโหลดอีกครั้งในเวลาอื่น เนื่องจาก Basy3 มีพื้นที่เพียงพอที่จะแสดงข้อมูล 3 อินสแตนซ์ที่แตกต่างกัน เราจึงนำวินาทีไปใช้ในเบื้องหลัง เพื่อจุดประสงค์นี้ เราใช้สวิตช์วินาที ดังนั้นมันจะเพิ่มขึ้นในเวลาที่ผู้ใช้ตัดสินใจเปิด (e_sec)อินพุตบนบอร์ด base3 เท่านั้น การทำงานของเฟรมภายในนาฬิกาดิจิตอลประกอบด้วยรองเท้าแตะที่เก็บเวลาที่ป้อนเข้ามาและตัวนับที่เพิ่มเวลาที่ผู้ใช้ป้อนเฉพาะเมื่อ (e_sec) เปิดอยู่ เราจะเพิ่มโค้ดเพื่อให้คุณสามารถดูวิธีการใช้งานได้อย่างแม่นยำ

ขั้นตอนที่ 4: ส่วนประกอบร่วมกันและคำอธิบาย

ส่วนประกอบเข้าด้วยกันและคำอธิบาย
ส่วนประกอบเข้าด้วยกันและคำอธิบาย
ส่วนประกอบเข้าด้วยกันและคำอธิบาย
ส่วนประกอบเข้าด้วยกันและคำอธิบาย

รูปภาพด้านบนแสดงให้เห็นว่าส่วนประกอบต่างๆ เชื่อมต่อกันอย่างไร เริ่มต้นด้วยการรับอินพุตเป็นชั่วโมงและนาทีก่อน สัญญาณจากอินพุตเหล่านั้นจะถูกส่งไปยังตัวนับชั่วโมงและตัวนับนาที ซึ่งจะรวมบิตเข้าด้วยกัน และสัญญาณเอาท์พุตตัวนับจะถูกส่งไปยังส่วนประกอบ SSEG ซึ่งจะแปลงบิตเป็นอักขระเฉพาะที่จะแสดงบนบอร์ด basy3 อย่างไรก็ตาม สัญญาณจากตัวนับจะไม่ถูกส่งไปยังองค์ประกอบ SSEG จนกว่าผู้ใช้จะกดอินพุต (led_btn) ซึ่งเป็นการดำเนินการเนื่องจากเราไม่ได้สร้าง FSM สำหรับนาฬิกาดิจิตอล นอกจากนี้ เวลาที่ป้อนจะไม่เพิ่มขึ้นจนกว่าจะเปิดสวิตช์อินพุต (e_sec) เพราะมิฉะนั้นตัวนับวินาทีจะทำงานในพื้นหลังเสมอ เมื่อวินาทีตัวนับถึง '59' มันจะส่งสัญญาณไปยังนาทีเพื่อให้มันเพิ่มขึ้นทีละนาทีจากนาทีเป็นชั่วโมง นอกจากนี้ยังมีอินพุตเซ็นเซอร์ตรวจจับความเคลื่อนไหว และสัญญาณจะถูกส่งไปยังส่วนประกอบ FSM ซึ่งจะกำหนดสถานะที่จะไปที่ขึ้นอยู่กับเซ็นเซอร์ที่ใช้ สถานะเริ่มต้นคือเมื่อปิดเซ็นเซอร์ทั้งหมด คำอธิบายทั้งหมดของ FSM ได้อธิบายไว้ในขั้นตอนที่ 2

ขั้นตอนที่ 5: รหัส

ขั้นตอนที่ 6: การปรับเปลี่ยนในอนาคต

ในอนาคต การเพิ่มเซ็นเซอร์ตรวจจับความเคลื่อนไหวจริงพร้อมไฟ LED ร่วมกันในโครงการจะได้รับการปรับปรุง เพื่อให้เราสามารถเพิ่มความซับซ้อนของโครงการ และดูว่าเราสามารถสร้างเซ็นเซอร์วัดแสงเคลื่อนไหวที่ทันสมัยได้หรือไม่ สิ่งนี้จะสร้างปัญหามากขึ้น เนื่องจากคุณจะต้องนึกถึงความใกล้ชิดของวัตถุด้วยเพื่อให้ไฟสว่างขึ้นตามนั้น นอกจากนี้ ฟังก์ชันอื่นๆ ทั้งหมดก่อนหน้านี้ นอกจากนี้ การปรับปรุงการทำงานของนาฬิกาดิจิตอลโดยใช้ FSM เช่นกัน แทนที่จะรอให้ผู้ใช้เปิดเครื่องเป็นวินาที (e_sec) FSM สำหรับนาฬิกาดิจิตอลจะคล้ายกับของเซ็นเซอร์ตรวจจับความเคลื่อนไหว

ขั้นตอนที่ 7: บทสรุป

โดยรวมแล้ว โครงการนี้ช่วยให้เรามีความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของเครื่องจักรที่มีสถานะจำกัด นอกจากนี้ ด้วย FSM คุณต้องจำไว้เสมอว่าคุณจำเป็นต้องรู้ว่าคุณอยู่ในสถานะใด และเมื่อใดที่คุณต้องการเปลี่ยนเป็นสถานะอื่น พูดอีกอย่างก็คือ คุณต้องรู้ว่าคุณอยู่ที่ไหนในเวลาที่กำหนด และคุณจะอยู่ที่ไหนในเวลาต่อมา คำนึงถึงปัจจัยใดบ้างที่จะช่วยให้คุณ (อินพุต) เปลี่ยนเป็นสถานะอื่นได้ และจะทำอย่างไรเมื่อไปถึงที่นั่น (เอาต์พุต) นอกจากนี้เรายังได้เรียนรู้วิธีจัดเก็บข้อมูลภายในบอร์ด basy3 โดยใช้ flip-flop ซึ่งเป็นรีจิสเตอร์ และวิธีเพิ่มเวลาโดยใช้ตัวนับที่รวมเลขฐานสองเข้าด้วยกัน

ขั้นตอนที่ 8: Citiation

two_sseg.vhdl = universal_sseg_dec.vhd

Ratner, James และ Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd

แนะนำ: