Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
A pesar de que la FPGA DueProLogic está diseñada oficialmente para Arduino, vamos a hacer que la FPGA y la Raspberry Pi 4B sean comunicables.
En este tutorial se implementan tres tareas:
(A) Presione simultáneamente los dos botones en FPGA para cambiar el ángulo de la cámara RPi.
(B) Raspberry Pi 4B controla el circuito LED externo de FPGA.
(C) Transmita en vivo la cámara Raspberry Pi en el navegador a través de WiFi
Paso 1: Construya el circuito electrónico
Paso 2: editar el código de Verilog
Cuando compre FPGA DueProLogic, debería recibir un DVD. Después de abrir "Projects_HDL", debería ver el archivo de código HDL original. Después de configurar el planificador de pines, agregue el código resaltado como se muestra en la sección 2A, 2B, 2C y 2D.
2A: Para activar los pulsadores, debe utilizar este código
// Interruptores de botón pulsador
cable de entrada UBA,
cable de entrada UBB
Para comunicarse con Raspberry Pi, debe agregar estos.
reg sel_send; // activar Raspberry pi
reg rece; // recibido de raspberry pi
2B: para asignar valores a los puertos, debe editar el código en consecuencia
asignar XIO_1 [3] = start_stop_cntrl;
asignar XIO_2 [2] = rece; // salida ALTA o BAJA en circuito LED
asignar XIO_2 [3] = ~ UBA; //presionar el botón
asignar XIO_2 [4] = UBB; //presionar el botón
asignar XIO_2 [5] = sel_send; // FPGA envía señal a raspberry pi
asignar sel_read = XIO_5 [1]; // FPGA recibe señal de raspberry pi
asignar c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
asignar LEDExt = XIO_5 [5];
2C: Si se presionan dos botones simultáneamente, la FPGA envía una salida ALTA a Raspberry Pi.
always @ (sel_send o UBB o UBA) // enviar a RPi
empezar
si (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
demás
sel_send = 1'b0;
fin
2D: La FPGA lee la señal de Raspberry Pi con una frecuencia de reloj de 66MHz. El puerto XIO_2 [2] está vinculado a 'rece'.
always @ (sel_read) // leer pi
empezar
si (sel_read == 1'b1)
rece = 1'b0;
demás
rece = 1'b1;
fin
Paso 3: Cargue el código de Verilog
Luego cargue el archivo pof compilado a la FPGA. Si no se detecta hardware automáticamente, haga clic en "Configuración de hardware" para corregirlo manualmente
Paso 4: Cargue el código Raspberry Pi
Las líneas resaltadas permiten que la FPGA se comunique con Raspberry Pi.
El código completo de Raspberry Pi para este proyecto,
A = GPIO.input (pin) #read FPGAprint (A);
si (A == 1):
camera.rotation = 0
GPIO.output (18, GPIO. LOW) # enviar a FPGA
si (A == 0):
camera.rotation = 180
GPIO.output (18, GPIO. HIGH) # enviar a FPGA
Paso 5: ¡Probémoslo
Abra su navegador y escriba su dirección IP, p. Ej. 192.168.xx.xxx:8000.
Después de todo, ¡el sistema debería funcionar!