CPE 133 Trash Sorter: 14 bước
CPE 133 Trash Sorter: 14 bước

Video: CPE 133 Trash Sorter: 14 bước

Video: CPE 133 Trash Sorter: 14 bước
Video: Get Tax Ready! Solving Source Doc Gathering Issues 2025, Tháng Giêng
Anonim
CPE 133 Trash Sorter
CPE 133 Trash Sorter

Đố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

Vật liệu
Vật liệu
Vật liệu
Vật liệu
Vật liệu
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

Bắt đầu mã hóa
Bắt đầu mã hóa
Bắt đầu mã hóa
Bắt đầu mã hóa
Bắt đầu mã hóa
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

Tệp Ràng buộc
Tệp Ràng buộc
Tệp Ràng buộc
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 Flip Flop
Tệp Flip 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 phân đoạn
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ồ

Tệp phân chia đồng hồ
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
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

Tệp trên cùng của Servo
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

Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu
Tệp hàng đầu

Đâ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
Hàn
Hàn
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

Finale
Finale

Đư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.