Innehållsförteckning:

FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 steg
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 steg

Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 steg

Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 steg
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, November
Anonim
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera

Trots att FPGA DueProLogic är officiellt utformad för Arduino, kommer vi att göra FPGA och Raspberry Pi 4B överförbara.

Tre uppgifter implementeras i den här självstudien:

(A) Tryck samtidigt på de två tryckknapparna på FPGA för att vända RPi -kamerans vinkel.

(B) Raspberry Pi 4B styr den externa LED -kretsen för FPGA.

(C) Livestreama Raspberry Pi -kameran i webbläsaren via WiFi

Steg 1: Bygg en elektronisk krets

Steg 2: Redigera Verilog -kod

Redigera Verilog -koden
Redigera Verilog -koden
Redigera Verilog -koden
Redigera Verilog -koden

När du köper FPGA DueProLogic bör du få en DVD. När du har öppnat "Projects_HDL" bör du se den ursprungliga HDL -kodfilen. När du har konfigurerat stiftplaneraren lägger du till den markerade koden enligt avsnitt 2A, 2B, 2C och 2D.

2A: För att aktivera tryckknappar måste du använda den här koden

// Tryckknappsbrytare

ingångstråd UBA,

ingångskabel UBB

För att kommunicera med Raspberry Pi måste du lägga till dessa.

reg sel_send; // aktivera hallon pi

reg mott; // mottagen från hallon pi

2B: För att tilldela portarna värden, bör du redigera koden i enlighet därmed

tilldela XIO_1 [3] = start_stop_cntrl;

tilldela XIO_2 [2] = mottagning; // utmatning HÖG eller LÅG i LED -krets

tilldela XIO_2 [3] = ~ UBA; // tryckknapp

tilldela XIO_2 [4] = UBB; // tryckknapp

tilldela XIO_2 [5] = sel_send; // FPGA skickar signal till hallon pi

tilldela sel_read = XIO_5 [1]; // FPGA tar emot signal från hallon pi

tilldela c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17

tilldela LEDExt = XIO_5 [5];

2C: Om två tryckknappar trycks in samtidigt skickar FPGA HIGH -utmatningen till Raspberry Pi.

alltid @(sel_send eller UBB eller UBA) // skicka till RPi

Börja

om (UBB == 1'b0 && UBA == 1'b0)

sel_send = 1'b1;

annan

sel_send = 1'b0;

slutet

2D: FPGA läser signal från Raspberry Pi med klockfrekvensen 66MHz. Porten XIO_2 [2] är länkad till "rece".

alltid @(sel_read) // läs pi

Börja

om (sel_read == 1'b1)

mott = 1'b0;

annan

mott = 1'b1;

slutet

Steg 3: Ladda upp Verilog -kod

Ladda upp Verilog -koden
Ladda upp Verilog -koden

Ladda sedan upp den kompilerade pof -filen till FPGA. Om ingen maskinvara upptäcks automatiskt klickar du på "Hardware Setup" för att korrigera den manuellt

Steg 4: Ladda upp Raspberry Pi -kod

De markerade linjerna gör att FPGA kan kommunicera med Raspberry Pi.

Hela Raspberry Pi-koden för detta projekt, https://roywchpi.blogspot.com 2020/06/12-fpga-cycl…

A = GPIO.input (pin) #read FPGAprint (A);

om (A == 1):

kamera.rotation = 0

GPIO.output (18, GPIO. LOW) #skicka till FPGA

om (A == 0):

kamera.rotation = 180

GPIO.output (18, GPIO. HIGH) #skicka till FPGA

Steg 5: Låt oss prova

Image
Image

Öppna din webbläsare och skriv din IP -adress t.ex. 192.168.xx.xxx:8000.

Systemet borde ju fungera!

Rekommenderad: