Cuprins:

FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași
FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași

Video: FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași

Video: FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Noiembrie
Anonim
FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi
FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi

În ciuda faptului că FPGA DueProLogic este proiectat oficial pentru Arduino, vom face FPGA și Raspberry Pi 4B comunicabile.

Trei activități sunt implementate în acest tutorial:

(A) Apăsați simultan cele două butoane de pe FPGA pentru a roti unghiul camerei RPi.

(B) Raspberry Pi 4B controlează circuitul LED extern al FPGA.

(C) Transmite în direct camera Raspberry Pi pe browser prin WiFi

Pasul 1: Construiți un circuit electronic

Pasul 2: Editați codul Verilog

Editați codul Verilog
Editați codul Verilog
Editați codul Verilog
Editați codul Verilog

Când cumpărați FPGA DueProLogic, ar trebui să primiți un DVD. După ce deschideți „Projects_HDL”, ar trebui să vedeți fișierul de cod HDL original. După ce configurați planificatorul de pin, adăugați codul evidențiat așa cum se arată în secțiunile 2A, 2B, 2C și 2D.

2A: Pentru a activa butoanele, trebuie să utilizați acest cod

// Comutatoare cu buton

cablu de intrare UBA,

cablu de intrare UBB

Pentru a comunica cu Raspberry Pi, trebuie să le adăugați.

reg sel_send; // activați Raspberry pi

reg rece; // primit de la zmeura pi

2B: Pentru a atribui valori porturilor, ar trebui să editați codul în consecință

atribui XIO_1 [3] = start_stop_cntrl;

assign XIO_2 [2] = rece; // ieșire HIGH sau LOW în circuit LED

atribui XIO_2 [3] = ~ UBA; //apasa butonul

atribui XIO_2 [4] = UBB; //apasa butonul

assign XIO_2 [5] = sel_send; // FPGA trimite semnal la raspberry pi

atribui sel_read = XIO_5 [1]; // FPGA primește semnal de la raspberry pi

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

atribui LEDExt = XIO_5 [5];

2C: Dacă sunt apăsate simultan două butoane, FPGA trimite ieșire HIGH la Raspberry Pi.

întotdeauna @ (sel_send sau UBB sau UBA) // trimite la RPi

începe

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

sel_send = 1'b1;

altceva

sel_send = 1'b0;

Sfârșit

2D: FPGA citește semnalul de la Raspberry Pi cu frecvența de ceas de 66 MHz. Portul XIO_2 [2] este legat de „rece”.

mereu @ (sel_read) // citește pi

începe

if (sel_read == 1'b1)

rece = 1'b0;

altceva

rece = 1'b1;

Sfârșit

Pasul 3: Încărcați codul Verilog

Încărcați codul Verilog
Încărcați codul Verilog

Apoi încărcați fișierul pof compilat pe FPGA. Dacă nu se detectează automat nicio componentă hardware, faceți clic pe „Configurare hardware” pentru a o corecta manual

Pasul 4: încărcați codul Raspberry Pi

Liniile evidențiate permit comunicarea FPGA cu Raspberry Pi.

Codul complet Raspberry Pi pentru acest proiect,

A = GPIO.input (pin) #citește FPGAprint (A);

dacă (A == 1):

camera.rotatie = 0

GPIO.output (18, GPIO. LOW) #send către FPGA

dacă (A == 0):

camera.rotatie = 180

GPIO.output (18, GPIO. HIGH) #trimite către FPGA

Pasul 5: Să încercăm

Image
Image

Deschideți browserul și tastați adresa IP de ex. 192.168.xx.xxx:8000.

La urma urmei, sistemul ar trebui să funcționeze!

Recomandat: