Съдържание:

FPGA Cyclone IV DueProLogic контролира Raspberry Pi камера: 5 стъпки
FPGA Cyclone IV DueProLogic контролира Raspberry Pi камера: 5 стъпки

Видео: FPGA Cyclone IV DueProLogic контролира Raspberry Pi камера: 5 стъпки

Видео: FPGA Cyclone IV DueProLogic контролира Raspberry Pi камера: 5 стъпки
Видео: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Ноември
Anonim
FPGA Cyclone IV DueProLogic контролира Raspberry Pi камерата
FPGA Cyclone IV DueProLogic контролира Raspberry Pi камерата

Въпреки че FPGA DueProLogic е официално проектиран за Arduino, ние ще направим FPGA и Raspberry Pi 4B комуникативни.

В този урок са изпълнени три задачи:

(A) Едновременно натиснете двата бутона на FPGA, за да обърнете ъгъла на RPi камерата.

(B) Raspberry Pi 4B контролира външната LED верига на FPGA.

(В) Предавайте на живо Raspberry Pi камерата в браузъра чрез WiFi

Стъпка 1: Изградете електронна схема

Стъпка 2: Редактирайте Verilog кода

Редактиране на Verilog кода
Редактиране на Verilog кода
Редактиране на Verilog кода
Редактиране на Verilog кода

Когато купувате FPGA DueProLogic, трябва да получите DVD. След като отворите „Projects_HDL“, трябва да видите оригиналния файл с HDL код. След като настроите щифтовия планировчик, добавете маркирания код, както е показано в раздел 2A, 2B, 2C и 2D.

2A: За да активирате бутоните, трябва да използвате този код

// Превключватели с бутони

входен проводник UBA,

входен проводник UBB

За да комуникирате с Raspberry Pi, трябва да ги добавите.

reg sel_send; // активиране на Raspberry pi

reg rece; // получено от малиново пи

2B: За да присвоите стойности на портовете, трябва да редактирате кода съответно

задайте XIO_1 [3] = start_stop_cntrl;

задайте XIO_2 [2] = rece; // изход HIGH или LOW в LED верига

присвояване на XIO_2 [3] = ~ UBA; //Натисни бутона

задайте XIO_2 [4] = UBB; //Натисни бутона

присвояване на XIO_2 [5] = sel_send; // FPGA изпраща сигнал към малиново пи

присвояване на sel_read = XIO_5 [1]; // FPGA получава сигнал от малиново пи

присвояване c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17

присвояване на LEDExt = XIO_5 [5];

2C: Ако се натиснат два бутона едновременно, FPGA изпраща HIGH изход към Raspberry Pi.

винаги @(sel_send или UBB или UBA) // изпращам до RPi

започнете

ако (UBB == 1'b0 && UBA == 1'b0)

sel_send = 1'b1;

иначе

sel_send = 1'b0;

край

2D: FPGA чете сигнал от Raspberry Pi с тактова честота 66MHz. Портът XIO_2 [2] е свързан с „rece“.

винаги @(sel_read) // четене на pi

започнете

ако (sel_read == 1'b1)

rece = 1'b0;

иначе

rece = 1'b1;

край

Стъпка 3: Качете Verilog код

Качете Verilog код
Качете Verilog код

След това качете компилирания pof файл във FPGA. Ако хардуер не се открие автоматично, щракнете върху „Настройка на хардуера“, за да го коригирате ръчно

Стъпка 4: Качете Raspberry Pi код

Откроените линии позволяват на FPGA да комуникира с Raspberry Pi.

Пълният код на Raspberry Pi за този проект,

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

ако (A == 1):

camera.rotation = 0

GPIO.output (18, GPIO. LOW) #send to FPGA

ако (A == 0):

camera.rotation = 180

GPIO.output (18, GPIO. HIGH) #send to FPGA

Стъпка 5: Нека опитаме

Image
Image

Отворете браузъра си и въведете вашия IP адрес, напр. 192.168.xx.xxx:8000.

В края на краищата системата трябва да работи!

Препоръчано: