Indholdsfortegnelse:

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

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

Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 trin
Video: I used the "easy button" to fix this broken A2000 2024, November
Anonim
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera
FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera

På trods af at FPGA DueProLogic officielt er designet til Arduino, vil vi gøre FPGA og Raspberry Pi 4B kommunikerbare.

Tre opgaver implementeres i denne vejledning:

(A) Tryk samtidigt på de to trykknapper på FPGA for at vende RPi -kameraets vinkel.

(B) Raspberry Pi 4B styrer det eksterne LED -kredsløb for FPGA.

(C) Live stream Raspberry Pi -kameraet i browseren via WiFi

Trin 1: Byg elektronisk kredsløb

Trin 2: Rediger Verilog -kode

Rediger Verilog -kode
Rediger Verilog -kode
Rediger Verilog -kode
Rediger Verilog -kode

Når du køber FPGA DueProLogic, skal du modtage en dvd. Når du har åbnet "Projects_HDL", skal du se den originale HDL -kodefil. Når du har konfigureret stiften, skal du tilføje den fremhævede kode som vist i afsnit 2A, 2B, 2C og 2D.

2A: For at aktivere trykknapper skal du bruge denne kode

// Trykknapper

input wire UBA,

input ledning UBB

For at kommunikere med Raspberry Pi skal du tilføje disse.

reg sel_send; // aktiver Raspberry pi

reg rece; // modtaget fra hindbær pi

2B: For at tildele værdier til portene, skal du redigere koden i overensstemmelse hermed

tildele XIO_1 [3] = start_stop_cntrl;

tildele XIO_2 [2] = modtager; // output HIGH eller LOW i LED -kredsløb

tildele XIO_2 [3] = ~ UBA; //trykknap

tildele XIO_2 [4] = UBB; //trykknap

tildele XIO_2 [5] = sel_send; // FPGA sender signal til hindbær pi

tildel sel_read = XIO_5 [1]; // FPGA modtager signal fra hindbær pi

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

tildele LEDExt = XIO_5 [5];

2C: Hvis der trykkes på to trykknapper samtidigt, sender FPGA HIGH -output til Raspberry Pi.

altid @(sel_send eller UBB eller UBA) // send til RPi

begynde

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

sel_send = 1'b1;

andet

sel_send = 1'b0;

ende

2D: FPGA læser signal fra Raspberry Pi med urfrekvensen på 66MHz. Porten XIO_2 [2] er knyttet til 'rece'.

altid @(sel_read) // læs pi

begynde

hvis (sel_read == 1'b1)

modt = 1'b0;

andet

modt = 1'b1;

ende

Trin 3: Upload Verilog -kode

Upload Verilog -kode
Upload Verilog -kode

Upload derefter den kompilerede pof -fil til FPGA. Hvis der ikke registreres nogen hardware automatisk, skal du klikke på "Hardwareopsætning" for at rette den manuelt

Trin 4: Upload Raspberry Pi -kode

De fremhævede linjer gør det muligt for FPGA at kommunikere med Raspberry Pi.

Den fulde Raspberry Pi-kode til dette projekt,

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

hvis (A == 1):

kamera.rotation = 0

GPIO.output (18, GPIO. LOW) #send til FPGA

hvis (A == 0):

kamera.rotation = 180

GPIO.output (18, GPIO. HIGH) #send til FPGA

Trin 5: Lad os prøve det

Image
Image

Åbn din browser og indtast din IP -adresse f.eks. 192.168.xx.xxx:8000.

Trods alt skulle systemet fungere!

Anbefalede: