
Mục lục:
- Bước 1: Vật liệu
- Bước 2: Bắt đầu mã hóa
- Bước 3: Tệp ràng buộc
- Bước 4: Lật tệp Flop
- Bước 5: Tệp phân đoạn
- Bước 6: Tệp phân chia đồng hồ
- Bước 7: Tệp tín hiệu Servo
- Bước 8: Tệp trên cùng của Servo
- Bước 9: Tệp trên cùng
- Bước 10: Kiểm tra trong Vivado
- Bước 11: Xây dựng giới thiệu phần cứng
- Bước 12: Chuẩn bị
- Bước 13: Hàn
- Bước 14: Chung kết
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15

Đối với lớp CPE 133 của chúng tôi tại Cal Poly, chúng tôi được yêu cầu tạo một dự án VHDL / Basys 3 sẽ giúp ích cho môi trường và đủ đơn giản để chúng tôi có thể thực hiện nó với kiến thức mới về thiết kế kỹ thuật số. Ý tưởng đằng sau dự án của chúng tôi mà nói chung, mọi người không nghĩ về nơi họ vứt rác. Chúng tôi quyết định tạo ra một cỗ máy buộc mọi người phải suy nghĩ về nơi họ đặt thùng rác. Máy phân loại rác của chúng tôi nhận thông tin đầu vào của người dùng thông qua ba công tắc, mỗi công tắc đại diện cho thùng rác, tái chế hoặc phân trộn. Khi người dùng đã chọn loại chất thải mà họ muốn loại bỏ, họ nhấn nút. Nút này sẽ mở nắp hộp chứa tương ứng. Máy cũng sử dụng màn hình trên Basys 3 để cho biết có bất kỳ nắp nào hiện đang mở hay không. Khi nút được nhả ra, các nắp sẽ đóng lại để máy sẵn sàng cho người dùng tiếp theo.
Bước 1: Vật liệu



Các vật liệu cần thiết cho dự án này là:
Bảng Basys 3
Máy tính đã cài đặt Vivado
3x servo *
Dây đồng 3 chân
Máy cắt dây / Máy rút dây
Hàn sắt và thuốc hàn
* bởi vì servo đắt tiền và chúng tôi là sinh viên đại học, chúng tôi đã thay thế một điện trở 68 ohm và đèn LED cho mỗi servo làm nguyên mẫu (mã hoạt động theo cùng một cách)
Bước 2: Bắt đầu mã hóa



Có rất nhiều mã được viết cho dự án này. Chúng tôi sẽ sử dụng mã VHDL được viết bằng Vivado. Để bắt đầu, chúng tôi sẽ muốn tạo một dự án mới. Đầu tiên, bạn sẽ đặt tên cho dự án và chỉ định loại dự án. Đảm bảo chọn các cài đặt giống như trong hình. Khi bạn đã đến màn hình nguồn, bạn sẽ muốn thêm sáu nguồn có tên "top", "flip_flop", "segment", "servo_top", "servo_sig" và "clk_div". Đảm bảo chọn VHDL cho ngôn ngữ của mỗi tệp, không phải Verilog. Trên màn hình ràng buộc, bạn nên tạo một tệp để gán pin. Tên của tệp này không quan trọng. Sau đó, bạn sẽ được nhắc chọn bảng bạn sẽ sử dụng. Đảm bảo rằng bạn chọn đúng. Ảnh tham khảo để lựa chọn chính xác. Bước cuối cùng sẽ yêu cầu bạn chỉ định các đầu vào và đầu ra của mỗi tệp nguồn. Bước này có thể được mã hóa sau đó vì vậy hãy nhấp vào tiếp theo.
Bước 3: Tệp ràng buộc


Trong bước này, chúng tôi sẽ viết tệp các ràng buộc. Điều này cho Vivado biết chân nào sẽ gửi / nhận tín hiệu nào từ mạch. Chúng ta sẽ cần đồng hồ, ba công tắc, màn hình bảy đoạn (bảy cực âm và bốn cực dương), một nút và ba chân PMOD đầu ra mà servo / LED sẽ sử dụng. Hình ảnh tham khảo để biết mã sẽ trông như thế nào.
Bước 4: Lật tệp Flop

Tệp tiếp theo mà chúng ta sẽ viết là tệp nguồn flip_flip. Đây sẽ là một triển khai VHDL của D flip flop. Nói cách khác, nó sẽ chỉ chuyển đầu vào của nó đến đầu ra trên cạnh lên của tín hiệu đồng hồ và khi nút được nhấn. Nó sẽ lấy đồng hồ, D và nút làm đầu vào và sẽ xuất ra Q. tham chiếu các bức ảnh để lấy mã. Mục đích của tệp này là cho phép các thùng chỉ mở khi nhấn nút chứ không phải mở trực tiếp mỗi khi bật công tắc và chỉ đóng khi lật lại công tắc.
Bước 5: Tệp phân đoạn

Tệp tiếp theo được ghi là tệp phân đoạn. Thao tác này sẽ lấy nút như trong các giá trị đầu vào và đầu ra cho bảy cực âm và bốn cực dương của màn hình bảy phân đoạn của Basys 3. Tệp này khiến màn hình bảy phân đoạn hiển thị chữ "C" khi các thùng được đóng và "O" khi các thùng được mở. Để biết mã xem ảnh đính kèm.
Bước 6: Tệp phân chia đồng hồ

Servos hoạt động bằng cách lấy tín hiệu PWM với tần số 64k Hz trong khi đồng hồ tích hợp trong Basys 3 hoạt động ở tần số 50M Hz. Tệp phân chia đồng hồ sẽ chuyển đổi đồng hồ mặc định thành tần số thân thiện cho servo. Tệp sẽ lấy đồng hồ và tín hiệu đặt lại làm đầu vào và sẽ xuất ra tín hiệu đồng hồ mới. Xem ảnh đính kèm để biết mã.
Bước 7: Tệp tín hiệu Servo

Tệp tín hiệu servo sẽ nhận một đầu vào đồng hồ, một đầu vào đặt lại và một đầu vào vị trí mong muốn. Nó sẽ xuất ra một tín hiệu PWM để điều khiển servo đến vị trí mong muốn. Tệp này sử dụng tín hiệu đồng hồ được tạo trong tệp cuối cùng để tạo tín hiệu PWM cho servo với các chu kỳ nhiệm vụ khác nhau tùy thuộc vào vị trí mong muốn. Điều này cho phép chúng tôi xoay các servo điều khiển nắp của các thùng rác. Xem ảnh đính kèm để biết mã.
Bước 8: Tệp trên cùng của Servo

Mục đích của tệp này là biên dịch hai tệp cuối cùng thành một trình điều khiển servo chức năng. Nó sẽ mất một đồng hồ, một thiết lập lại và một vị trí làm đầu vào, sẽ xuất ra tín hiệu PWM servo. Nó sẽ sử dụng cả bộ chia đồng hồ và tệp tín hiệu servo làm thành phần và sẽ bao gồm một tín hiệu đồng hồ bên trong để chuyển đồng hồ đã sửa đổi từ bộ chia đồng hồ sang tệp tín hiệu servo. Xem ảnh tại
Bước 9: Tệp trên cùng




Đây là tệp quan trọng nhất của dự án vì nó kết hợp mọi thứ mà chúng tôi đã tạo ra cùng nhau. Nó sẽ lấy nút, ba công tắc và đồng hồ làm đầu vào. Nó sẽ cung cấp bảy cực âm, bốn cực dương và ba tín hiệu servo / LED làm đầu ra. Nó sẽ sử dụng flip flop, phân đoạn và tệp servo_top làm thành phần và sẽ có công tắc bên trong và tín hiệu servo bên trong.
Bước 10: Kiểm tra trong Vivado
Chạy Tổng hợp, thực hiện và ghi dòng bit trong Vivado. Nếu bạn gặp bất kỳ thông báo lỗi nào, hãy tìm vị trí lỗi và sau đó so sánh với mã đã cho. Xử lý bất kỳ lỗi nào cho đến khi tất cả các lần chạy này kết thúc thành công.
Bước 11: Xây dựng giới thiệu phần cứng
Trong bước này, bạn sẽ tạo phần cứng LED mà chúng tôi đã sử dụng trong nguyên mẫu của mình. Nếu sử dụng servos, dự án sẽ sẵn sàng hoạt động miễn là sử dụng đúng các chân. Nếu sử dụng đèn LED, hãy làm theo các bước dưới đây.
Bước 12: Chuẩn bị
Cắt dây thành sáu đoạn đều nhau. Dải các đầu của mỗi đoạn dây đủ để có thể xảy ra hiện tượng hàn. Tách đèn LED, điện trở và dây dẫn thành ba nhóm. Làm nóng mỏ hàn.
Bước 13: Hàn


Hàn từng điện trở trong số 68 ohm vào cực âm của đèn LED tương ứng của chúng. Hàn một dây vào mặt dương của đèn LED và một dây khác vào mặt của điện trở không được hàn với đèn LED. Bạn nên có ba trong số các cấu trúc LED được hình trên.
Bước 14: Chung kết

Đưa từng dây dương vào chân PMOD tương ứng và mỗi dây âm vào chân PMOD nối đất. Tùy chọn thêm các thùng các tông để đại diện cho thùng rác và giấu mớ hỗn độn hàn của bạn. Khi các dây được cắm chính xác và mã được tải lên bảng đúng cách mà không có lỗi, máy sẽ hoạt động như dự kiến. Nếu có gì sai, hãy quay lại các bước trước đó để khắc phục sự cố. Chúc bạn vui vẻ với "máy phân loại rác" mới của bạn.
Đề xuất:
CPE 133 Dự án cuối cùng từ thập phân sang nhị phân: 5 bước

Dự án cuối cùng CPE 133 Từ thập phân đến nhị phân: Số nhị phân là một trong những điều đầu tiên xuất hiện trong đầu khi nghĩ đến logic kỹ thuật số. Tuy nhiên, Số nhị phân có thể là một khái niệm khó đối với những người mới làm quen với nó. Dự án này sẽ giúp những người mới và có kinh nghiệm về số nhị phân mas
Máy phát điện thủy điện hết TRASH?!?!: 11 bước

Máy phát điện thủy điện Hết TRASH?!?!: Sản phẩm cuối cùng sẽ trông giống như thế này, nơi các cọc kim loại sẽ đi vào lòng đất ở sông, cấu trúc quả trứng sẽ hoạt động như một cái quạt, bị đẩy bởi nước, khiến khu vườn thanh để quay, làm cho bánh răng quay. Tỷ số truyền m
Robot PhantomX Pincher - Apple Sorter: 6 bước

PhantomX Pincher Robot - Apple Sorter: Yêu cầu an toàn đối với thực phẩm ngày càng tăng. Cả người tiêu dùng và các cơ quan chức năng ngày càng đòi hỏi thực phẩm chúng ta ăn phải có chất lượng cao và có tính bảo mật cao. Nếu sự cố xảy ra trong quá trình sản xuất thực phẩm, nguồn gốc của lỗi m
Máy đếm nhịp CPE 133: 3 bước

Máy đếm nhịp CPE 133: Đối với dự án cuối cùng của chúng tôi tại Cal Poly, chúng tôi đã tạo ra một thiết bị giữ nhịp độ gọi là máy đếm nhịp, chúng tôi chọn dự án này vì sở thích âm nhạc và thiết kế kỹ thuật số. Chúng tôi đã sử dụng các phòng thí nghiệm trước đây trong CPE 133 để giúp thiết kế mã của chúng tôi và các hướng dẫn trực tuyến để hỗ trợ
Arduino Skittle Sorter: 11 bước (có hình ảnh)

Arduino Skittle Sorter: Những người yêu thích kẹo kén chọn ở khắp mọi nơi thường thấy mình lãng phí thời gian quý báu để phân loại kẹo của họ. Nghe có vẻ quen thuộc không? Bạn đã bao giờ muốn chế tạo một cỗ máy có thể phân loại Skittles cho mình chưa? Hướng dẫn này sẽ cho bạn thấy chính xác h