Inhoudsopgave:

FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera - Ajarnpa
FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera - Ajarnpa

Video: FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera - Ajarnpa

Video: FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera - Ajarnpa
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, November
Anonim
FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera
FPGA Cyclone IV DueProLogic bestuurt Raspberry Pi-camera

Ondanks dat de FPGA DueProLogic officieel is ontworpen voor Arduino, gaan we de FPGA en Raspberry Pi 4B communiceerbaar maken.

In deze zelfstudie worden drie taken geïmplementeerd:

(A) Druk tegelijkertijd op de twee drukknoppen op FPGA om de hoek van de RPi-camera om te draaien.

(B) Raspberry Pi 4B bestuurt het externe LED-circuit van FPGA.

(C) Live stream de Raspberry Pi Camera op Browser via WiFi

Stap 1: Bouw een elektronisch circuit

Stap 2: Bewerk Verilog-code

Verilog-code bewerken
Verilog-code bewerken
Verilog-code bewerken
Verilog-code bewerken

Wanneer u de FPGA DueProLogic koopt, zou u een dvd moeten ontvangen. Nadat u "Projects_HDL" hebt geopend, zou u het originele HDL-codebestand moeten zien. Nadat u de pinplanner heeft ingesteld, voegt u de gemarkeerde code toe zoals weergegeven in sectie 2A, 2B, 2C en 2D.

2A: Om drukknoppen te activeren, moet je deze code gebruiken

// Drukknopschakelaars

ingangsdraad UBA,

ingangsdraad UBB

Om met Raspberry Pi te communiceren, moet je deze toevoegen.

reg sel_send; // activeer Raspberry pi

reg ontvangst; // ontvangen van frambozenpi

2B: Om waarden aan de poorten toe te kennen, moet u de code dienovereenkomstig bewerken

toewijzen XIO_1[3] = start_stop_cntrl;

toewijzen XIO_2[2] = rece; //uitgang HOOG of LAAG in LED-circuit

toewijzen XIO_2[3] = ~UBA; //druk op de knop

toewijzen XIO_2[4] = UBB; //druk op de knop

toewijzen XIO_2[5] = sel_send; // FPGA stuurt signaal naar Raspberry Pi

toewijzen sel_read= XIO_5[1]; //FPGA ontvangt signaal van Raspberry Pi

wijs c_enable = XIO_5[2] toe; //XIO_5 -- UB57 -- D17

wijs LEDExt = XIO_5[5] toe;

2C: Als twee drukknoppen tegelijkertijd worden ingedrukt, stuurt de FPGA HOGE output naar Raspberry Pi.

altijd @(sel_send of UBB of UBA) //send to RPi

beginnen

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

sel_send = 1'b1;

anders

sel_send = 1'b0;

einde

2D: De FPGA leest het signaal van de Raspberry Pi met de klokfrequentie van 66MHz. De poort XIO_2[2] is gekoppeld aan 'rece'.

altijd @(sel_read) //lees pi

beginnen

if (sel_read == 1'b1)

rece = 1'b0;

anders

rece = 1'b1;

einde

Stap 3: Upload Verilog-code

Verilog-code uploaden
Verilog-code uploaden

Upload vervolgens het gecompileerde pof-bestand naar de FPGA. Als er geen hardware automatisch wordt gedetecteerd, klikt u op "Hardware Setup" om het handmatig te corrigeren

Stap 4: Upload Raspberry Pi-code

Door de gemarkeerde lijnen kan de FPGA communiceren met Raspberry Pi.

De volledige Raspberry Pi-code voor dit project,

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

als(A==1):

camera.rotatie = 0

GPIO.output (18, GPIO. LOW) #verzenden naar FPGA

als(A==0):

camera.rotatie = 180

GPIO.output (18, GPIO. HIGH) #verzenden naar FPGA

Stap 5: Laten we het proberen

Image
Image

Open uw browser en typ uw IP-adres, b.v. 192.168.xx.xxx:8000.

Het systeem moet immers werken!

Aanbevolen: