Spisu treści:

FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: 5 kroków
FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: 5 kroków

Wideo: FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: 5 kroków

Wideo: FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: 5 kroków
Wideo: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Listopad
Anonim
FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi
FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi

Pomimo tego, że FPGA DueProLogic jest oficjalnie zaprojektowane dla Arduino, zamierzamy sprawić, by FPGA i Raspberry Pi 4B były komunikowalne.

W tym samouczku zaimplementowano trzy zadania:

(A) Jednocześnie naciśnij dwa przyciski na FPGA, aby zmienić kąt kamery RPi.

(B) Raspberry Pi 4B steruje zewnętrznym obwodem LED FPGA.

(C) Transmisja na żywo z kamery Raspberry Pi w przeglądarce przez Wi-Fi

Krok 1: Zbuduj obwód elektroniczny

Krok 2: Edytuj kod Verilog

Edytuj kod Verilog
Edytuj kod Verilog
Edytuj kod Verilog
Edytuj kod Verilog

Kupując FPGA DueProLogic, powinieneś otrzymać płytę DVD. Po otwarciu „Projects_HDL” powinieneś zobaczyć oryginalny plik kodu HDL. Po skonfigurowaniu planera pinów dodaj podświetlony kod, jak pokazano w sekcji 2A, 2B, 2C i 2D.

2A: Aby aktywować przyciski, musisz użyć tego kodu

//Przełączniki przyciskowe

przewód wejściowy UBA,

przewód wejściowy UBB

Aby komunikować się z Raspberry Pi, musisz je dodać.

reg sel_send; //aktywuj Raspberry Pi

rejestracja; //otrzymane z pi malinowego

2B: Aby przypisać wartości do portów, należy odpowiednio edytować kod

przypisz XIO_1[3] = start_stop_cntrl;

przypisz XIO_2[2] = odbierz; //wyjście HIGH lub LOW w obwodzie LED

przypisz XIO_2 [3] = ~UBA; //naciśnij przycisk

przypisz XIO_2 [4] = UBB; //naciśnij przycisk

przypisz XIO_2[5] = sel_send; // FPGA wysyła sygnał do raspberry pi

przypisz sel_read= XIO_5[1]; //FPGA odbiera sygnał z raspberry pi

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

przypisz LEDExt = XIO_5[5];

2C: Jeśli dwa przyciski zostaną wciśnięte jednocześnie, FPGA wysyła sygnał wyjściowy HIGH do Raspberry Pi.

zawsze @(sel_send lub UBB lub UBA) //wyślij do RPi

rozpocząć

jeśli (UBB == 1'b0 && UBA == 1'b0)

sel_send = 1'b1;

w przeciwnym razie

sel_send = 1'b0;

kończyć się

2D: Układ FPGA odczytuje sygnał z Raspberry Pi o częstotliwości taktowania 66MHz. Port XIO_2[2] jest połączony z 'rece'.

zawsze @(sel_read) //odczytaj pi

rozpocząć

jeśli (sel_read == 1'b1)

rece = 1'b0;

w przeciwnym razie

rece = 1'b1;

kończyć się

Krok 3: Prześlij kod Verilog

Prześlij kod Veriloga
Prześlij kod Veriloga

Następnie prześlij skompilowany plik pof do FPGA. Jeśli żaden sprzęt nie zostanie wykryty automatycznie, kliknij „Konfiguracja sprzętu”, aby poprawić go ręcznie

Krok 4: Prześlij kod Raspberry Pi

Podświetlone linie umożliwiają komunikację FPGA z Raspberry Pi.

Pełny kod Raspberry Pi dla tego projektu,

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

jeśli(A==1):

obrót kamery = 0

GPIO.output(18, GPIO. LOW) #wyślij do FPGA

jeśli(A==0):

obrót kamery = 180

GPIO.output(18, GPIO. HIGH) #wyślij do FPGA

Krok 5: Spróbujmy

Image
Image

Otwórz przeglądarkę i wpisz swój adres IP, np. 192.168.xx.xxx:8000.

W końcu system powinien działać!

Zalecana: