Mục lục:
- Bước 1: Hộp đen hệ thống
- Bước 2: Các thành phần
- Bước 3: D Flip-flops
- Bước 4: Điều kiện
- Bước 5: Ràng buộc
- Bước 6: Tệp nguồn chính
- Bước 7: Lắp ráp
- Bước 8: Tải chương trình
Video: Đèn đường kích hoạt chuyển động hiệu quả năng lượng: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Mục tiêu của chúng tôi với dự án này là tạo ra thứ gì đó giúp tiết kiệm năng lượng và nguồn tài chính cho cộng đồng. Đèn đường được kích hoạt chuyển động sẽ làm được cả hai điều này. Tất cả năng lượng trên toàn quốc đang bị lãng phí trên những ngọn đèn đường thắp sáng những con đường vắng tanh. Hệ thống đèn đường của chúng tôi đảm bảo rằng đèn chỉ được bật khi cần thiết, tiết kiệm cho cộng đồng vô số đô la. Sử dụng cảm biến chuyển động, hệ thống chỉ bật đèn khi có ô tô. Ngoài ra, vì sự an toàn của người đi bộ, chúng tôi đã triển khai nút ghi đè bật tất cả đèn trên đường phố. Các bước sau đây sẽ hướng dẫn bạn cách chúng tôi thiết kế và xây dựng mô hình thu nhỏ của dự án bằng Vivado và bảng Basys 3.
Bước 1: Hộp đen hệ thống
Chúng tôi bắt đầu dự án này bằng cách vẽ một sơ đồ hộp đen đơn giản. Sơ đồ hộp đen chỉ đơn giản là hiển thị các đầu vào và đầu ra mà hệ thống của chúng tôi yêu cầu để hoàn thành tất cả các quy trình cần thiết. Chúng tôi đã cố gắng giữ cho thiết kế của mình đơn giản và cơ bản nhất có thể. Ba đầu vào hệ thống của chúng tôi bao gồm một bus cảm biến chuyển động (4 cho mô hình thu nhỏ của chúng tôi), một nút ghi đè dành cho người đi bộ và một đầu vào đồng hồ. Ở phía bên kia đầu ra duy nhất của chúng tôi là một xe buýt đèn LED đại diện cho đèn đường của chúng tôi. Đối với mô hình này, chúng tôi sử dụng kịch bản gồm 16 đèn đường đơn giản vì đó là số lượng tối đa các đầu ra LED tích hợp trên bảng Basys 3. Cuối cùng, bằng cách sử dụng sơ đồ này, chúng tôi đã có thể tạo dự án Vivado, tệp nguồn và tệp ràng buộc với các đầu vào và đầu ra thích hợp.
Bước 2: Các thành phần
Trong bước này, chúng tôi đi sâu hơn để kiểm tra các thành phần tạo nên sơ đồ hộp đen của chúng tôi. Thành phần đầu tiên của chúng tôi là tệp nguồn VHDL chứa D flip-flops. D flip-flops chỉ cần lấy bất kỳ tín hiệu nào đang được nhập vào chúng từ các cảm biến trên cạnh tăng của đồng hồ và chốt dữ liệu đó cho đến cạnh tăng tiếp theo. Điều này giúp các cảm biến chuyển động nhạy cảm của chúng tôi không làm cho đèn LED đầu ra "nhấp nháy". Ngoài ra, chúng tôi đặt một nắp lật D duy nhất trên tín hiệu đầu vào của nút để giữ cho đèn LED bật trong khoảng 5-7 giây sau khi nút được nhấn. Chúng tôi cũng chạy điều này thông qua một bộ chia đồng hồ.
thực thể clk_div2 là Port (clk: in std_logic; sclk: out std_logic); end clk_div2;
kiến trúc my_clk_div của clk_div2 là
hằng số max_count: số nguyên: = (300000000); tín hiệu tmp_clk: std_logic: = '0'; begin my_div: process (clk, tmp_clk) biến div_cnt: integer: = 0; begin if (ising_edge (clk)) then if (div_cnt = MAX_COUNT) then tmp_clk <= not tmp_clk; div_cnt: = 0; else div_cnt: = div_cnt + 1; kết thúc nếu; kết thúc nếu; sclk <= tmp_clk; kết thúc quá trình my_div; end my_clk_div;
Thành phần cuối cùng của chúng ta trong sơ đồ này là tệp nguồn VHDL hành vi chứa các điều kiện cho đầu ra dựa trên cấu hình của tín hiệu đầu vào.
Bước 3: D Flip-flops
Bốn flip-flops gắn với các tín hiệu đầu vào rất cần thiết cho chức năng của hệ thống của chúng tôi. Như đã nói trước đây, với các cảm biến chuyển động nhạy cảm và nút ghi đè, dép xỏ ngón sử dụng chốt để chỉ xuất tín hiệu đầu vào của chúng ta trên cạnh tăng của đồng hồ. Logic tuần tự này có nghĩa là đèn đường của chúng ta có thể bật sáng trong một khoảng thời gian nhất định sau khi được kích hoạt bởi một chuyển động nhanh. Mã hóa cho D-Flip Flop khá đơn giản:
beginprocess (CLK) bắt đầu nếu tăng_edge (CLK) then Q <= D; kết thúc nếu; kết thúc quá trình;
Toàn bộ nội dung có thể được biên dịch thành một câu lệnh if duy nhất. Khi chúng tôi có phần này, chúng tôi đã tạo một tệp nguồn VHDL cấu trúc chứa tất cả bốn flip-flops cần thiết của chúng tôi:
begin DFF0: Bản đồ cổng DFF (CLK => CLK, D => D (0), Q => Q (0)); DFF1: Bản đồ cổng DFF (CLK => CLK, D => D (1), Q => Q (1)); DFF2: Bản đồ cổng DFF (CLK => CLK, D => D (2), Q => Q (2)); DFF3: Bản đồ cổng DFF (CLK => CLK, D => D (3), Q => Q (3));
cuối Hành vi;
Điều này giúp giữ cho tệp cấu trúc chính của chúng tôi, nơi chúng tôi tập hợp tất cả các thành phần hệ thống gọn gàng và có tổ chức hơn nhiều.
Bước 4: Điều kiện
Để giữ cho mã của chúng tôi nhỏ gọn và hiệu quả, chúng tôi đã viết tất cả các điều kiện của chúng tôi trong một câu lệnh trường hợp duy nhất. Đối với mô hình thu nhỏ của chúng tôi, chúng tôi có 16 cấu hình đầu ra LED khả thi vì mỗi cảm biến chuyển động chịu trách nhiệm cho một nhóm 4 đèn LED.:
trường hợp NMS là khi "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "1111111111111111"; trường hợp kết thúc;
Bước 5: Ràng buộc
Để xác định đúng đầu vào và đầu ra của bạn bằng Vivado, bạn phải triển khai tệp ràng buộc nêu rõ tất cả các cổng, nút, đèn LED và đồng hồ đang được sử dụng.
set_property PACKAGE_PIN W5 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports CLK]
set_property PACKAGE_PIN U16 [get_ports {LED [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [0]}] set_property PACKAGE_PIN E19 [get_ports {LED [1]}] set_property IOSTANDARD LVCMOS33 [get_property} U19 [get_ports {LED [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [2]}] set_property PACKAGE_PIN V19 [get_ports {LED [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [3]}] set_property PACK get_ports {LED [4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [4]}] set_property PACKAGE_PIN U15 [get_ports {LED [5]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [5]}] set_property PACKAGE LED [6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [6]}] set_property PACKAGE_PIN V14 [get_ports {LED [7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [7]}] set_property PACKAGE_PIN V13 [get_property PACKAGE_PINs V13 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO STANDARD LVCMOS33 [get_ports {LED [9]}] set_property PACKAGE_PIN W3 [get_ports {LED [10]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [10]}] set_property PACKANDAGE_PIN U3 [get_ports {LED [11]}] set_ports {LED [11]}] [get_ports {LED [11]}] set_property PACKAGE_PIN P3 [get_ports {LED [12]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [12]}] set_property PACKAGE_PIN N3 [get_ports {LED [13]}] set_property IOST {LED [13]}] set_property PACKAGE_PIN P1 [get_ports {LED [14]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [14]}] set_property PACKAGE_PIN L1 [get_ports {LED [15]}] set_property IOSTANDARD LVCMOS33 [get_property IOSTANDARD LVCMOS33 [15]}]
set_property PACKAGE_PIN U18 [get_ports BTN] set_property IOSTANDARD LVCMOS33 [get_ports BTN]
set_property PACKAGE_PIN A14 [get_ports {MS [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [0]}] set_property PACKAGE_PIN A16 [get_ports {MS [1]}] set_property IOSTANDARD LVCMOS33 [get_PIN} PACKAGE_property} {set_property} B15 [get_ports {MS [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [2]}] set_property PACKAGE_PIN B16 [get_ports {MS [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [3]}]
Bước 6: Tệp nguồn chính
Trong tệp chính này, chúng tôi tập hợp tất cả các tệp nguồn thành phần được đề cập trước đó. Tệp này có chức năng như mã cấu trúc tập hợp các thành phần khác nhau lại với nhau.
thực thể Master_Final_Project là Cổng (BTN: trong STD_LOGIC; CLK: trong STD_LOGIC; MS: trong STD_LOGIC_VECTOR (3 xuống 0); LED: ra STD_LOGIC_VECTOR (15 xuống 0)); end Master_Final_Project;
Kiến trúc Hành vi của Master_Final_Project là
thành phần final_project là Cổng (--CLK: trong STD_LOGIC; NMS: trong STD_LOGIC_VECTOR (3 xuống 0); BTN: trong STD_LOGIC; --sw: trong STD_LOGIC_Vector (1 xuống 0); LED: ra STD_LOGIC_VECTOR (15 xuống 0)); thành phần cuối;
thành phần Final_DFF mới là
Cổng (CLK: trong STD_LOGIC; D: trong STD_LOGIC_Vector (3 xuống 0); Q: ra STD_LOGIC_Vector (3 xuống 0)); thành phần cuối;
tín hiệu DFF02proj30: STD_LOGIC;
tín hiệu DFF12proj74: STD_LOGIC; tín hiệu DFF22proj118: STD_LOGIC; tín hiệu DFF32proj1512: STD_LOGIC;
bắt đầu
DFF0: Bản đồ cổng Final_DFF (CLK => CLK, D (0) => MS (0), D (1) => MS (1), D (2) => MS (2), D (3) => MS (3), Q (0) => DFF02proj30, Q (1) => DFF12proj74, Q (2) => DFF22proj118, Q (3) => DFF32proj1512); Bản đồ cổng Proj0: final_project (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); cuối Hành vi;
Bước 7: Lắp ráp
Việc lắp ráp phần cứng cho dự án này là tối thiểu. Các phần yêu cầu duy nhất như sau:
1. Bảng Basys 3 (1)
2. Cảm biến chuyển động giá rẻ có thể tìm thấy trên amazon tại đây. (4)
3. Nam nữ chính (4)
Cuộc họp:
1. Kết nối 4 dây dẫn nam với các cổng JB của tiêu đề PMod 1-4 (Xem Hình).
2. Kết nối các đầu cái với mỗi chân đầu ra của cảm biến chuyển động.
Bước 8: Tải chương trình
Bây giờ chúng tôi đã sẵn sàng tải tệp nguồn chính VHDL vào bảng Basys 3. Đảm bảo chạy tổng hợp, triển khai và tạo ra kiểm tra dòng bit để tìm bất kỳ lỗi nào có thể xảy ra. Nếu tất cả đều chạy thành công, hãy mở trình quản lý phần cứng và lập trình thiết bị Basys 3. Dự án của bạn bây giờ đã hoàn thành!
Đề xuất:
Văn phòng chạy bằng pin. Hệ thống năng lượng mặt trời với tự động chuyển đổi bảng năng lượng mặt trời Đông / Tây và tuabin gió: 11 bước (có hình ảnh)
Văn phòng chạy bằng pin. Hệ thống năng lượng mặt trời với tự động chuyển đổi bảng năng lượng mặt trời Đông / Tây và tuabin gió: Dự án: Một văn phòng rộng 200 ft vuông cần được cung cấp năng lượng từ pin. Văn phòng cũng phải chứa tất cả các bộ điều khiển, pin và các thành phần cần thiết cho hệ thống này. Năng lượng mặt trời và năng lượng gió sẽ sạc pin. Chỉ có một vấn đề nhỏ là
Bảng điều khiển động cơ hiệu quả năng lượng: 5 bước
Bảng điều khiển động cơ hiệu quả năng lượng: Dự án được trình bày là một bảng mạch điều khiển động cơ / động cơ bước với IC điều khiển động cơ SN754410 bao gồm một số tính năng tiết kiệm điện. Bo mạch có thể điều khiển 2 động cơ DC hoặc động cơ bước với sự hỗ trợ của mạch cầu H kép trong IC. SN754410 IC
Đèn LED kích hoạt chuyển động hoạt động bằng pin: 4 bước
Đèn LED kích hoạt chuyển động hoạt động bằng pin: Nếu bạn muốn đặt đèn ở một nơi nào đó không có dây, đây có thể là thứ bạn cần
Dấu hiệu bãi bảo mật được kích hoạt bằng chuyển động: 4 bước (có hình ảnh)
Dấu hiệu sân an ninh được kích hoạt bằng chuyển động: Dấu hiệu sân của hệ thống an ninh truyền thống không làm được gì cả. Trên thực tế, chúng không thay đổi nhiều trong 30 năm qua. Tuy nhiên, chúng là một biện pháp ngăn chặn có giá trị miễn là chúng được đặt ở vị trí dễ thấy trong sân của bạn và trông có vẻ được bảo quản tốt. Tôi yêu
Thêm giắc cắm đồng bộ Pc vào cáp Nikon Sc-28 Ttl (sử dụng Cài đặt tự động cho đèn flash trên máy ảnh và kích hoạt đèn flash máy ảnh tắt !!): 4 bước
Thêm Giắc cắm Pc Sync vào Cáp Nikon Sc-28 Ttl (sử dụng Cài đặt Tự động cho Đèn flash trên Máy ảnh và Kích hoạt Tắt Đèn flash Máy ảnh !!): trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tháo một trong các đầu nối 3pin TTL độc quyền của Pesky trên mặt bên của máy ảnh Nikon SC-28 đứt cáp TTL và thay thế nó bằng đầu nối đồng bộ PC tiêu chuẩn. điều này sẽ cho phép bạn sử dụng đèn flash chuyên dụng, s