Sadržaj:

FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru: 5 koraka
FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru: 5 koraka

Video: FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru: 5 koraka

Video: FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru: 5 koraka
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Novembar
Anonim
FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru
FPGA Cyclone IV DueProLogic kontroliše Raspberry Pi kameru

Unatoč tome što je FPGA DueProLogic službeno dizajniran za Arduino, učinit ćemo FPGA i Raspberry Pi 4B prenosivim.

U ovom su vodiču implementirana tri zadatka:

(A) Istovremeno pritisnite dva tastera na FPGA da biste okrenuli ugao kamere RPi.

(B) Raspberry Pi 4B kontrolira vanjsko LED kolo FPGA.

(C) Prijenos uživo Raspberry Pi kamere na pregledniku putem WiFi -a

Korak 1: Izgradite elektroničko kolo

Korak 2: Uredite Verilog kôd

Uredite Verilog kod
Uredite Verilog kod
Uredite Verilog kod
Uredite Verilog kod

Kada kupujete FPGA DueProLogic, trebali biste dobiti DVD. Nakon što otvorite "Projects_HDL", trebali biste vidjeti originalnu datoteku HDL koda. Nakon što postavite pin planere, dodajte označeni kôd kao što je prikazano u odjeljcima 2A, 2B, 2C i 2D.

2A: Da biste aktivirali dugmad, morate koristiti ovaj kôd

// Prekidači na dugme

ulazna žica UBA,

ulazna žica UBB

Da biste komunicirali s Raspberry Pi, morate ih dodati.

reg sel_send; // aktiviranje Raspberry pi

reg rece; // primljeno od maline pi

2B: Da biste portovima dodijelili vrijednosti, morate prema tome urediti kôd

dodijeli XIO_1 [3] = start_stop_cntrl;

dodijeli XIO_2 [2] = rece; // izlaz HIGH ili LOW u LED krug

dodijeli XIO_2 [3] = ~ UBA; // pritisnuti dugme

dodijeliti XIO_2 [4] = UBB; // pritisnuti dugme

dodijeli XIO_2 [5] = sel_send; // FPGA šalje signal malini pi

dodijeli sel_read = XIO_5 [1]; // FPGA prima signal od maline pi

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

dodijeli LEDExt = XIO_5 [5];

2C: Ako se istovremeno pritisnu dva tastera, FPGA šalje HIGH izlaz na Raspberry Pi.

uvijek @(sel_send ili UBB ili UBA) // šalje u RPi

početi

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

sel_send = 1'b1;

else

sel_send = 1'b0;

kraj

2D: FPGA čita signal iz Raspberry Pi -a sa taktom frekvencije 66MHz. Port XIO_2 [2] je povezan s 'rece'.

uvijek @(sel_read) // čitaj pi

početi

if (sel_read == 1'b1)

rece = 1'b0;

else

rece = 1'b1;

kraj

Korak 3: Postavite Verilog kôd

Otpremite Verilog kod
Otpremite Verilog kod

Zatim otpremite kompajliranu pof datoteku na FPGA. Ako se automatski ne otkrije hardver, kliknite "Hardware Setup" da biste ga ručno ispravili

Korak 4: Otpremite Raspberry Pi kod

Istaknute linije omogućavaju FPGA komunikaciju sa Raspberry Pi.

Cijeli Raspberry Pi kod za ovaj projekt,

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

ako (A == 1):

camera.rotation = 0

GPIO.izlaz (18, GPIO. LOW) #pošaljite na FPGA

ako (A == 0):

camera.rotation = 180

GPIO.izlaz (18, GPIO. HIGH) #pošaljite na FPGA

Korak 5: Pokušajmo

Image
Image

Otvorite pregledač i upišite svoju IP adresu, npr. 192.168.xx.xxx:8000.

Na kraju krajeva, sistem bi trebao funkcionirati!

Preporučuje se: