สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์ที่จำเป็น
- ขั้นตอนที่ 2: Blackbox Diagram/Finite State Machine
- ขั้นตอนที่ 3: นาฬิกาดิจิตอล BlackBox
- ขั้นตอนที่ 4: ส่วนประกอบร่วมกันและคำอธิบาย
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: การปรับเปลี่ยนในอนาคต
- ขั้นตอนที่ 7: บทสรุป
- ขั้นตอนที่ 8: Citiation
วีดีโอ: ไฟ Motion Sensor Basic3: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สำหรับโปรเจ็กต์สุดท้ายของเราในการออกแบบดิจิทัล เราตัดสินใจจำลองไฟของเซ็นเซอร์ตรวจจับความเคลื่อนไหว โดยจะเปิดใช้งานไม่เฉพาะเมื่อมีวัตถุอยู่ใกล้เท่านั้น แต่ยังเปิดใช้งานเฉพาะในช่วงเวลาหนึ่งของวันด้วย เราสามารถจำลองสิ่งนี้ได้โดยใช้ 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
ไดอะแกรมกล่องดำนี้แสดงอินพุตที่จำเป็นสำหรับการเปิดไฟ 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
จุดประสงค์ของนาฬิกาดิจิทัลที่เราสร้างขึ้นคือเพื่อไม่ให้ไฟเซ็นเซอร์ทำงานในระหว่างวัน และจะทำงานได้เฉพาะในช่วงเวลาที่ผู้ใช้ป้อนเท่านั้น นาฬิกาดิจิตอลใช้เวลาอินพุต 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
แนะนำ:
Sound Sensor & Servo: Reactive Motion: 4 ขั้นตอน
Sound Sensor & Servo: Reactive Motion: ก่อนอื่นคุณต้องรวบรวมวัสดุที่เกี่ยวข้องเพื่อรวมวงจรนี้เข้าด้วยกัน
Motion Sensor Water Tap โดยใช้ Arduino และโซลินอยด์วาล์ว - DIY: 6 ขั้นตอน
Motion Sensor Water Tap โดยใช้ Arduino และ Solenoid Valve - DIY: ในโครงการนี้ ฉันจะแสดงวิธีสร้าง Motion Sensor Water Tap โดยใช้โซลินอยด์วาล์ว โปรเจ็กต์นี้สามารถช่วยคุณแปลงก๊อกน้ำแบบใช้มือที่มีอยู่ให้เป็นก๊อกน้ำที่สามารถควบคุมได้ตามการตรวจจับการเคลื่อนไหว การใช้อินเทอร์เฟซเซ็นเซอร์ IR
Raspberry Pi Motion Sensor IFTTT: 4 ขั้นตอน
Raspberry Pi Motion Sensor IFTTT: สวัสดี ฉันเป็นนักเรียนชั้นประถมศึกษาปีที่ 4 และวันนี้เรากำลังจะสร้างเซ็นเซอร์ตรวจจับความเคลื่อนไหว IFTTT
ESP-01 Motion Sensor พร้อม Deep Sleep: 5 ขั้นตอน
ESP-01 Motion Sensor With Deep Sleep: ฉันกำลังพยายามสร้างเซ็นเซอร์ตรวจจับความเคลื่อนไหวแบบโฮมเมดที่ส่งข้อความอีเมลเมื่อถูกทริกเกอร์ มีตัวอย่างการสอนและตัวอย่างอื่นๆ มากมายในการทำเช่นนี้ ฉันเพิ่งต้องทำสิ่งนี้ด้วยเซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR ที่ใช้แบตเตอรี่และ ESP
ใครอยู่ที่ประตูของฉัน? โครงการ PIR Motion Sensor/Range Sensor: 5 ขั้นตอน
ใครอยู่ที่ประตูของฉัน? โครงการ PIR Motion Sensor/Range Sensor: โครงการของเรามีวัตถุประสงค์เพื่อตรวจจับการเคลื่อนไหวผ่าน PIR และเซ็นเซอร์วัดระยะทาง รหัส Arduino จะส่งสัญญาณภาพและเสียงเพื่อบอกผู้ใช้ว่ามีคนอยู่ใกล้ รหัส MATLAB จะส่งสัญญาณอีเมลแจ้งเตือนผู้ใช้ว่ามีคนอยู่ใกล้ อุปกรณ์นี้