Índice:

FPGA Cyclone IV DueProLogic controla a câmera Raspberry Pi: 5 etapas
FPGA Cyclone IV DueProLogic controla a câmera Raspberry Pi: 5 etapas

Vídeo: FPGA Cyclone IV DueProLogic controla a câmera Raspberry Pi: 5 etapas

Vídeo: FPGA Cyclone IV DueProLogic controla a câmera Raspberry Pi: 5 etapas
Vídeo: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Novembro
Anonim
FPGA Cyclone IV DueProLogic Controla Câmera Raspberry Pi
FPGA Cyclone IV DueProLogic Controla Câmera Raspberry Pi

Apesar do FPGA DueProLogic ser oficialmente projetado para o Arduino, vamos tornar o FPGA e o Raspberry Pi 4B comunicáveis.

Três tarefas são implementadas neste tutorial:

(A) Pressione simultaneamente os dois botões no FPGA para inverter o ângulo da câmera RPi.

(B) Raspberry Pi 4B controla o circuito de LED externo do FPGA.

(C) Transmissão ao vivo da câmera Raspberry Pi no navegador via WiFi

Etapa 1: construir o circuito eletrônico

Etapa 2: editar o código Verilog

Editar Código Verilog
Editar Código Verilog
Editar Código Verilog
Editar Código Verilog

Ao comprar o FPGA DueProLogic, você receberá um DVD. Depois de abrir "Projects_HDL", você deve ver o arquivo de código HDL original. Depois de configurar o planejador de pinos, adicione o código realçado conforme mostrado nas seções 2A, 2B, 2C e 2D.

2A: Para ativar os botões, você deve usar este código

// Botões de pressão

fio de entrada UBA,

fio de entrada UBB

Para se comunicar com o Raspberry Pi, você precisa adicioná-los.

reg sel_send; // ativa o Raspberry pi

reg rece; // recebido de raspberry pi

2B: Para atribuir valores às portas, você deve editar o código de acordo

atribuir XIO_1 [3] = start_stop_cntrl;

atribuir XIO_2 [2] = recebimento; // saída HIGH ou LOW no circuito de LED

atribuir XIO_2 [3] = ~ UBA; //botão de apertar

atribuir XIO_2 [4] = UBB; //botão de apertar

atribuir XIO_2 [5] = sel_send; // FPGA envia sinal para raspberry pi

atribuir sel_read = XIO_5 [1]; // FPGA recebe sinal do raspberry pi

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

atribuir LEDExt = XIO_5 [5];

2C: Se dois botões forem pressionados simultaneamente, o FPGA enviará a saída ALTA para o Raspberry Pi.

sempre @ (sel_send ou UBB ou UBA) // enviar para RPi

começar

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

sel_send = 1'b1;

outro

sel_send = 1'b0;

fim

2D: O FPGA lê o sinal do Raspberry Pi com a frequência de clock de 66MHz. A porta XIO_2 [2] está vinculada a 'rece'.

sempre @ (sel_read) // ler pi

começar

if (sel_read == 1'b1)

rece = 1'b0;

outro

rece = 1'b1;

fim

Etapa 3: fazer upload do código Verilog

Carregar código Verilog
Carregar código Verilog

Em seguida, carregue o arquivo pof compilado para o FPGA. Se nenhum hardware for detectado automaticamente, clique em "Configuração de hardware" para corrigi-lo manualmente

Etapa 4: faça upload do código Raspberry Pi

As linhas destacadas permitem que o FPGA se comunique com o Raspberry Pi.

O código Raspberry Pi completo para este projeto,

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

if (A == 1):

camera.rotation = 0

GPIO.output (18, GPIO. LOW) #enviar para FPGA

if (A == 0):

camera.rotation = 180

GPIO.output (18, GPIO. HIGH) #enviar para FPGA

Etapa 5: vamos tentar

Image
Image

Abra seu navegador e digite seu endereço IP, por exemplo 192.168.xx.xxx:8000.

Afinal, o sistema deve funcionar!

Recomendado: