Inhaltsverzeichnis:

FPGA Cyclone IV DueProLogic steuert Raspberry Pi-Kamera - Gunook
FPGA Cyclone IV DueProLogic steuert Raspberry Pi-Kamera - Gunook
Anonim
FPGA Cyclone IV DueProLogic steuert Raspberry Pi-Kamera
FPGA Cyclone IV DueProLogic steuert Raspberry Pi-Kamera

Obwohl das FPGA DueProLogic offiziell für Arduino entwickelt wurde, werden wir das FPGA und den Raspberry Pi 4B kommunikationsfähig machen.

In diesem Tutorial werden drei Aufgaben implementiert:

(A) Drücken Sie gleichzeitig die beiden Drucktasten am FPGA, um den Winkel der RPi-Kamera umzudrehen.

(B) Raspberry Pi 4B steuert die externe LED-Schaltung des FPGA.

(C) Live-Stream der Raspberry Pi-Kamera im Browser über WLAN

Schritt 1: Elektronische Schaltung aufbauen

Schritt 2: Verilog-Code bearbeiten

Verilog-Code bearbeiten
Verilog-Code bearbeiten
Verilog-Code bearbeiten
Verilog-Code bearbeiten

Beim Kauf des FPGA DueProLogic sollten Sie eine DVD erhalten. Nachdem Sie "Projects_HDL" geöffnet haben, sollten Sie die ursprüngliche HDL-Codedatei sehen. Nachdem Sie den Pinplaner eingerichtet haben, fügen Sie den hervorgehobenen Code wie in Abschnitt 2A, 2B, 2C und 2D gezeigt hinzu.

2A: Um Drucktasten zu aktivieren, müssen Sie diesen Code verwenden

//Druckknopfschalter

Eingangsleitung UBA,

Eingangsleitung UBB

Um mit Raspberry Pi zu kommunizieren, müssen Sie diese hinzufügen.

reg sel_send; // Raspberry Pi aktivieren

regrece; //erhalten von Himbeere pi

2B: Um den Ports Werte zuzuweisen, sollten Sie den Code entsprechend bearbeiten

zuweisen XIO_1[3] = start_stop_cntrl;

zuweisen XIO_2[2] = rece; // Ausgang HIGH oder LOW in LED-Schaltung

zuweisen XIO_2[3] = ~UBA; //Druckknopf

zuweisen XIO_2[4] = UBB; //Druckknopf

zuweisen XIO_2[5] = sel_send; // FPGA sendet Signal an Himbeer-Pi

zuweisen sel_read= XIO_5[1]; //FPGA empfängt Signal von Himbeer-Pi

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

zuweisen LEDExt = XIO_5[5];

2C: Wenn zwei Taster gleichzeitig gedrückt werden, sendet das FPGA HIGH-Ausgang an Raspberry Pi.

immer @(sel_send oder UBB oder UBA) //sende an RPi

Start

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

sel_send = 1'b1;

anders

sel_send = 1'b0;

Ende

2D: Das FPGA liest das Signal vom Raspberry Pi mit der Taktfrequenz von 66MHz. Der Port XIO_2[2] ist mit 'rece' verknüpft.

immer @(sel_read) //lesen pi

Start

if (sel_read == 1'b1)

rece = 1'b0;

anders

rece = 1'b1;

Ende

Schritt 3: Verilog-Code hochladen

Verilog-Code hochladen
Verilog-Code hochladen

Laden Sie dann die kompilierte Pof-Datei auf das FPGA hoch. Wenn keine Hardware automatisch erkannt wird, klicken Sie auf "Hardware Setup", um dies manuell zu korrigieren

Schritt 4: Raspberry Pi-Code hochladen

Die hervorgehobenen Zeilen ermöglichen es dem FPGA, mit Raspberry Pi zu kommunizieren.

Der vollständige Raspberry Pi-Code für dieses Projekt,

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

wenn(A==1):

Kamera. Drehung = 0

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

wenn(A==0):

Kamera. Drehung = 180

GPIO.output(18, GPIO. HIGH) #an FPGA senden

Schritt 5: Versuchen wir es

Image
Image

Öffnen Sie Ihren Browser und geben Sie Ihre IP-Adresse ein, z. B. 192.168.xx.xxx:8000.

Schließlich soll das System funktionieren!

Empfohlen: