Sommario:

FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: 5 passaggi
FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: 5 passaggi

Video: FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: 5 passaggi

Video: FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: 5 passaggi
Video: Ahtlatl FPGA: Servo Control 2024, Dicembre
Anonim
FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi
FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi

Nonostante l'FPGA DueProLogic sia ufficialmente progettato per Arduino, renderemo comunicabili l'FPGA e il Raspberry Pi 4B.

Tre attività sono implementate in questo tutorial:

(A) Premere contemporaneamente i due pulsanti sull'FPGA per capovolgere l'angolo della telecamera RPi.

(B) Raspberry Pi 4B controlla il circuito LED esterno dell'FPGA.

(C) Trasmetti in live streaming la fotocamera Raspberry Pi sul browser tramite WiFi

Passaggio 1: costruire il circuito elettronico

Passaggio 2: modifica il codice Verilog

Modifica codice Verilog
Modifica codice Verilog
Modifica codice Verilog
Modifica codice Verilog

Quando acquisti l'FPGA DueProLogic, dovresti ricevere un DVD. Dopo aver aperto "Projects_HDL", dovresti vedere il file di codice HDL originale. Dopo aver impostato il pianificatore di pin, aggiungi il codice evidenziato come mostrato nella sezione 2A, 2B, 2C e 2D.

2A: Per attivare i pulsanti, devi usare questo codice

//Interruttori a pulsante

filo di ingresso UBA,

cavo di ingresso UBB

Per comunicare con Raspberry Pi, devi aggiungerli.

reg sel_send; //attiva Raspberry pi

registrazione registrazione; //ricevuto da lampone pi

2B: Per assegnare valori alle porte, è necessario modificare il codice di conseguenza

assegna XIO_1[3] = start_stop_cntrl;

assegna XIO_2[2] = rece; //uscita ALTA o BASSA nel circuito LED

assegna XIO_2[3] = ~UBA; //premi il bottone

assegnare XIO_2[4] = UBB; //premi il bottone

assegna XIO_2[5] = sel_send; // FPGA invia il segnale a lampone pi

assegna sel_read= XIO_5[1]; //FPGA riceve il segnale da raspberry pi

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

assegnare LEDExt = XIO_5[5];

2C: se due pulsanti vengono premuti contemporaneamente, l'FPGA invia l'output HIGH a Raspberry Pi.

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

inizio

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

sel_send = 1'b1;

altro

sel_send = 1'b0;

fine

2D: l'FPGA legge il segnale dal Raspberry Pi con la frequenza di clock di 66 MHz. La porta XIO_2[2] è collegata a 'rece'.

sempre @(sel_read) //leggi pi

inizio

if (sel_read == 1'b1)

rice = 1'b0;

altro

rice = 1'b1;

fine

Passaggio 3: carica il codice Verilog

Carica il codice Verilog
Carica il codice Verilog

Quindi caricare il file pof compilato sull'FPGA. Se non viene rilevato alcun hardware automaticamente, fare clic su "Configurazione hardware" per correggerlo manualmente

Passaggio 4: carica il codice Raspberry Pi

Le linee evidenziate consentono all'FPGA di comunicare con Raspberry Pi.

Il codice Raspberry Pi completo per questo progetto,

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

se(A==1):

camera.rotation = 0

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

se(A==0):

camera.rotation = 180

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

Passaggio 5: proviamolo

Image
Image

Apri il browser e digita il tuo indirizzo IP, ad es. 192.168.xx.xxx:8000.

Dopotutto, il sistema dovrebbe funzionare!

Consigliato: