Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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
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
Abra seu navegador e digite seu endereço IP, por exemplo 192.168.xx.xxx:8000.
Afinal, o sistema deve funcionar!