Innholdsfortegnelse:

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

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

Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi -kamera: 5 trinn
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

Til tross for at FPGA DueProLogic er offisielt designet for Arduino, skal vi gjøre FPGA og Raspberry Pi 4B kommuniserbare.

Tre oppgaver er implementert i denne opplæringen:

(A) Trykk samtidig på de to trykknappene på FPGA for å snu vinkelen på RPi -kameraet.

(B) Raspberry Pi 4B styrer den eksterne LED -kretsen til FPGA.

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

Trinn 1: Bygg elektronisk krets

Trinn 2: Rediger Verilog -koden

Rediger Verilog -koden
Rediger Verilog -koden
Rediger Verilog -koden
Rediger Verilog -koden

Når du kjøper FPGA DueProLogic, bør du motta en DVD. Etter at du har åpnet "Projects_HDL", bør du se den originale HDL -kodefilen. Etter at du har konfigurert pin -planleggeren, legger du til den uthevede koden som vist i seksjon 2A, 2B, 2C og 2D.

2A: For å aktivere trykknapper må du bruke denne koden

// Trykknappbrytere

inngangskabel UBA,

inngangskabel UBB

For å kommunisere med Raspberry Pi må du legge til disse.

reg sel_send; // aktiver Raspberry pi

reg mott; // mottatt fra bringebær pi

2B: For å tilordne verdier til portene, bør du redigere koden tilsvarende

tilordne XIO_1 [3] = start_stop_cntrl;

tilordne XIO_2 [2] = mottak; // utgang HØY eller LAV i LED -krets

tilordne XIO_2 [3] = ~ UBA; // trykknapp

tilordne XIO_2 [4] = UBB; // trykknapp

tilordne XIO_2 [5] = sel_send; // FPGA sender signal til bringebær pi

tilordne sel_read = XIO_5 [1]; // FPGA mottar signal fra bringebær pi

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

tilordne LEDExt = XIO_5 [5];

2C: Hvis du trykker på to trykknapper samtidig, sender FPGA HØY utgang til Raspberry Pi.

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

begynne

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

sel_send = 1'b1;

ellers

sel_send = 1'b0;

slutt

2D: FPGA leser signal fra Raspberry Pi med klokkefrekvensen 66MHz. Porten XIO_2 [2] er koblet til "mottak".

alltid @(sel_read) // les pi

begynne

hvis (sel_read == 1'b1)

mott = 1'b0;

ellers

mott = 1'b1;

slutt

Trinn 3: Last opp Verilog -kode

Last opp Verilog -koden
Last opp Verilog -koden

Last deretter opp den kompilerte pof -filen til FPGA. Hvis ingen maskinvare oppdages automatisk, klikker du på "Maskinvareoppsett" for å korrigere det manuelt

Trinn 4: Last opp Raspberry Pi -kode

De markerte linjene gjør at FPGA kan kommunisere med Raspberry Pi.

Hele Raspberry Pi-koden for dette prosjektet, https://roywchpi.blogspot.com 2020/06/12-fpga-cycl…

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

hvis (A == 1):

kamera. rotasjon = 0

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

hvis (A == 0):

kamera. rotasjon = 180

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

Trinn 5: La oss prøve det

Image
Image

Åpne nettleseren din og skriv inn IP -adressen din f.eks. 192.168.xx.xxx:8000.

Tross alt burde systemet fungere!

Anbefalt: