Tabla de contenido:

FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: 5 pasos
FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: 5 pasos

Video: FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: 5 pasos

Video: FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: 5 pasos
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Noviembre
Anonim
FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi
FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi

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

Editar código de Verilog
Editar código de Verilog
Editar código de Verilog
Editar 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

Cargar código Verilog
Cargar código 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

Image
Image

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!

Recomendado: