Mục lục:

FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi: 5 bước
FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi: 5 bước

Video: FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi: 5 bước

Video: FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi: 5 bước
Video: Play SNES & NES Cartridges On A Raspberry Pi? WHAT?! 2024, Tháng mười một
Anonim
FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi
FPGA Cyclone IV DueProLogic Controls Máy ảnh Raspberry Pi

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

Chỉnh sửa mã Verilog
Chỉnh sửa mã Verilog
Chỉnh sửa mã Verilog
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

Tải lên mã xác minh
Tải lên mã xác minh

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ử

Image
Image

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!

Đề xuất: