Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Mặc dù FPGA DueProLogic được thiết kế chính thức cho Arduino, chúng tôi sẽ làm cho FPGA và Raspberry Pi 4B có thể giao tiếp được.
Ba nhiệm vụ được thực hiện trong hướng dẫn này:
(A) Nhấn đồng thời hai nút ấn trên FPGA để lật góc máy ảnh RPi.
(B) Raspberry Pi 4B điều khiển mạch LED bên ngoài của FPGA.
(C) Phát trực tiếp Camera Raspberry Pi trên Trình duyệt qua WiFi
Bước 1: Xây dựng vi mạch điện tử
Bước 2: Chỉnh sửa mã Verilog
Khi bạn mua FPGA DueProLogic, bạn sẽ nhận được một đĩa DVD. Sau khi bạn mở "Projects_HDL", bạn sẽ thấy tệp mã HDL gốc. Sau khi bạn thiết lập kế hoạch ghim, hãy thêm mã được đánh dấu như được hiển thị trong phần 2A, 2B, 2C và 2D.
2A: Để kích hoạt các nút nhấn, bạn phải sử dụng mã này
// Công tắc nút nhấn
dây đầu vào UBA,
dây đầu vào UBB
Để giao tiếp với Raspberry Pi, bạn cần thêm những thứ này.
reg sel_send; // kích hoạt Raspberry pi
reg thu; // nhận được từ raspberry pi
2B: Để gán giá trị cho các cổng, bạn nên chỉnh sửa mã cho phù hợp
gán XIO_1 [3] = start_stop_cntrl;
gán XIO_2 [2] = Collect; // xuất ra CAO hoặc THẤP trong mạch LED
gán XIO_2 [3] = ~ UBA; // nút nhấn
gán XIO_2 [4] = UBB; // nút nhấn
gán XIO_2 [5] = sel_send; // FPGA gửi tín hiệu đến raspberry pi
gán sel_read = XIO_5 [1]; // FPGA nhận tín hiệu từ raspberry pi
gán c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
gán LEDExt = XIO_5 [5];
2C: Nếu hai nút nhấn được nhấn đồng thời, FPGA sẽ gửi đầu ra CAO đến Raspberry Pi.
always @ (sel_send hoặc UBB hoặc UBA) // gửi tới RPi
bắt đầu
nếu (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
khác
sel_send = 1'b0;
kết thúc
2D: FPGA đọc tín hiệu từ Raspberry Pi với xung nhịp 66MHz. Cổng XIO_2 [2] được liên kết với 'receiver'.
always @ (sel_read) // đọc số pi
bắt đầu
if (sel_read == 1'b1)
thu = 1'b0;
khác
thu = 1'b1;
kết thúc
Bước 3: Tải lên mã Verilog
Sau đó tải tệp pof đã biên dịch lên FPGA. Nếu không có phần cứng nào được phát hiện tự động, hãy nhấp vào "Thiết lập phần cứng" để sửa nó theo cách thủ công
Bước 4: Tải lên mã Raspberry Pi
Các dòng được đánh dấu cho phép FPGA giao tiếp với Raspberry Pi.
Mã Raspberry Pi đầy đủ cho dự án này,
A = GPIO.input (pin) #read FPGAprint (A);
nếu (A == 1):
camera.rotation = 0
GPIO.output (18, GPIO. LOW) #send to FPGA
nếu (A == 0):
camera.rotation = 180
GPIO.output (18, GPIO. HIGH) #send to FPGA
Bước 5: Hãy dùng thử
Mở trình duyệt của bạn và nhập địa chỉ IP của bạn, ví dụ: 192.168.xx.xxx:8000.
Rốt cuộc, hệ thống sẽ hoạt động!