Taula de continguts:

FPGA Cyclone IV Controls DueProLogic Càmera Raspberry Pi: 5 passos
FPGA Cyclone IV Controls DueProLogic Càmera Raspberry Pi: 5 passos

Vídeo: FPGA Cyclone IV Controls DueProLogic Càmera Raspberry Pi: 5 passos

Vídeo: FPGA Cyclone IV Controls DueProLogic Càmera Raspberry Pi: 5 passos
Vídeo: Image Processing with Terasic FPGA-Boards 2024, De novembre
Anonim
FPGA Cyclone IV DueProLogic Controls Càmera Raspberry Pi
FPGA Cyclone IV DueProLogic Controls Càmera Raspberry Pi

Tot i que el FPGA DueProLogic està dissenyat oficialment per a Arduino, farem que el FPGA i el Raspberry Pi 4B siguin comunicables.

En aquest tutorial s’implementen tres tasques:

(A) Premeu simultàniament els dos botons polsadors de FPGA per capgirar l'angle de la càmera RPi.

(B) Raspberry Pi 4B controla el circuit LED extern de FPGA.

(C) Reprodueix en directe la càmera Raspberry Pi al navegador mitjançant WiFi

Pas 1: Construir un circuit electrònic

Pas 2: Editeu el codi de Verilog

Editeu el codi de Verilog
Editeu el codi de Verilog
Editeu el codi de Verilog
Editeu el codi de Verilog

Quan compreu el FPGA DueProLogic, haureu de rebre un DVD. Després d'obrir "Projects_HDL", hauríeu de veure el fitxer de codi HDL original. Després de configurar el planificador de pins, afegiu el codi ressaltat tal com es mostra a la secció 2A, 2B, 2C i 2D.

2A: per activar els polsadors, heu d’utilitzar aquest codi

// Interruptors de botó

fil d'entrada UBA,

fil d'entrada UBB

Per comunicar-vos amb Raspberry Pi, cal afegir-los.

reg sel_envia; // activa Raspberry pi

reg rece; // rebut de raspberry pi

2B: per assignar valors als ports, heu d'editar el codi en conseqüència

assigna XIO_1 [3] = start_stop_cntrl;

assigna XIO_2 [2] = rece; // sortida ALTA o BAIXA en circuit LED

assign XIO_2 [3] = ~ UBA; //polsador

assigna XIO_2 [4] = UBB; //polsador

assign XIO_2 [5] = sel_send; // FPGA envia senyal a raspberry pi

assign sel_read = XIO_5 [1]; // FPGA rep senyal de raspberry pi

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

assigna LEDExt = XIO_5 [5];

2C: si es premen dos botons simultàniament, l'FPGA envia una sortida ALTA a Raspberry Pi.

sempre @ (sel_send o UBB o UBA) // envia a RPi

començar

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

sel_send = 1'b1;

en cas contrari

sel_send = 1'b0;

final

2D: el FPGA llegeix el senyal de Raspberry Pi amb una freqüència de rellotge de 66 MHz. El port XIO_2 [2] està enllaçat amb "rece".

sempre @ (sel_read) // llegeix pi

començar

if (sel_read == 1'b1)

rece = 1'b0;

en cas contrari

rece = 1'b1;

final

Pas 3: pengeu el codi de Verilog

Pengeu el codi de Verilog
Pengeu el codi de Verilog

A continuació, pengeu el fitxer pof compilat a l'FPGA. Si no es detecta cap maquinari automàticament, feu clic a "Configuració de maquinari" per corregir-lo manualment

Pas 4: pengeu el codi Raspberry Pi

Les línies ressaltades permeten comunicar FPGA amb Raspberry Pi.

El codi complet de Raspberry Pi per a aquest projecte,

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

si (A == 1):

camera.rotació = 0

GPIO.output (18, GPIO. LOW) #envia a FPGA

si (A == 0):

càmera.rotació = 180

GPIO.output (18, GPIO. HIGH) #envia a FPGA

Pas 5: ho provem

Image
Image

Obriu el navegador i escriviu la vostra adreça IP, per exemple. 192.168.xx.xxx:8000.

Al cap i a la fi, el sistema hauria de funcionar.

Recomanat: