Table des matières:

FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes
FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes

Vidéo: FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes

Vidéo: FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes
Vidéo: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Novembre
Anonim
FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi
FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi

Bien que le FPGA DueProLogic soit officiellement conçu pour Arduino, nous allons rendre le FPGA et le Raspberry Pi 4B communicables.

Trois tâches sont mises en œuvre dans ce tutoriel:

(A) Appuyez simultanément sur les deux boutons poussoirs du FPGA pour inverser l'angle de la caméra RPi.

(B) Raspberry Pi 4B contrôle le circuit LED externe du FPGA.

(C) Diffusez en direct la caméra Raspberry Pi sur le navigateur via WiFi

Étape 1: Construire un circuit électronique

Étape 2: Modifier le code Verilog

Modifier le code Verilog
Modifier le code Verilog
Modifier le code Verilog
Modifier le code Verilog

Lorsque vous achetez le FPGA DueProLogic, vous devriez recevoir un DVD. Après avoir ouvert "Projects_HDL", vous devriez voir le fichier de code HDL d'origine. Après avoir configuré le planificateur de broches, ajoutez le code en surbrillance comme indiqué dans les sections 2A, 2B, 2C et 2D.

2A: Pour activer les boutons poussoirs, vous devez utiliser ce code

//Commutateurs à bouton-poussoir

fil d'entrée UBA,

fil d'entrée UBB

Pour communiquer avec Raspberry Pi, vous devez les ajouter.

reg sel_send; //activer Raspberry pi

reg rece; //reçu de raspberry pi

2B: Pour attribuer des valeurs aux ports, vous devez modifier le code en conséquence

assigner XIO_1[3] = start_stop_cntrl;

assigner XIO_2[2] = rece; //sortie HAUT ou BAS dans le circuit LED

assigner XIO_2[3] = ~UBA; // bouton poussoir

affecter XIO_2[4] = UBB; // bouton poussoir

assigner XIO_2[5] = sel_send; // Le FPGA envoie un signal au raspberry pi

assigner sel_read= XIO_5[1]; //Le FPGA reçoit le signal de Raspberry Pi

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

affecter LEDExt = XIO_5[5];

2C: Si deux boutons poussoirs sont enfoncés simultanément, le FPGA envoie une sortie HAUTE au Raspberry Pi.

toujours @(sel_send ou UBB ou UBA) //envoyer à RPi

commencer

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

sel_send = 1'b1;

autre

sel_send = 1'b0;

finir

2D: Le FPGA lit le signal de Raspberry Pi avec la fréquence d'horloge de 66MHz. Le port XIO_2[2] est lié à 'rece'.

toujours @(sel_read) //lire pi

commencer

si (sel_read == 1'b1)

rece = 1'b0;

autre

rece = 1'b1;

finir

Étape 3: Télécharger le code Verilog

Télécharger le code Verilog
Télécharger le code Verilog

Téléchargez ensuite le fichier pof compilé sur le FPGA. Si aucun matériel n'est détecté automatiquement, cliquez sur "Hardware Setup" pour le corriger manuellement

Étape 4: Téléchargez le code Raspberry Pi

Les lignes en surbrillance permettent au FPGA de communiquer avec Raspberry Pi.

Le code Raspberry Pi complet pour ce projet,

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

si(A==1):

camera.rotation = 0

GPIO.output (18, GPIO. LOW) #envoyer au FPGA

si(A==0):

camera.rotation = 180

GPIO.output (18, GPIO. HIGH) # envoyer au FPGA

Étape 5: Essayons-le

Image
Image

Ouvrez votre navigateur et saisissez votre adresse IP, par ex. 192.168.xx.xxx:8000.

Après tout, le système devrait fonctionner !

Conseillé: