Оглавление:

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 - Push button & LED (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 управляет внешней светодиодной схемой FPGA.

(C) Прямая трансляция с камеры Raspberry Pi в браузере через Wi-Fi

Шаг 1: Создайте электронную схему

Шаг 2: отредактируйте код Verilog

Изменить код Verilog
Изменить код Verilog
Изменить код Verilog
Изменить код Verilog

При покупке FPGA DueProLogic вы получите DVD. После открытия «Projects_HDL» вы должны увидеть исходный файл кода HDL. После настройки планировщика контактов добавьте выделенный код, как показано в разделах 2A, 2B, 2C и 2D.

2A: Чтобы активировать кнопки, вы должны использовать этот код

// Кнопочные переключатели

входной провод UBA,

входной провод УББ

Чтобы общаться с Raspberry Pi, вам нужно добавить их.

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

reg rec; // получено от raspberry pi

2B: Чтобы присвоить значения портам, вы должны соответствующим образом отредактировать код

назначить XIO_1 [3] = start_stop_cntrl;

назначить XIO_2 [2] = получатель; // вывод HIGH или LOW в цепи светодиода

назначить XIO_2 [3] = ~ UBA; //нажать кнопку

присвоить XIO_2 [4] = UBB; //нажать кнопку

назначить XIO_2 [5] = sel_send; // FPGA отправляет сигнал на raspberry pi

назначить sel_read = XIO_5 [1]; // ПЛИС получает сигнал от raspberry pi

назначить c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17

назначить LEDExt = XIO_5 [5];

2C: При одновременном нажатии двух кнопок ПЛИС отправляет ВЫСОКИЙ выход на Raspberry Pi.

always @ (sel_send или UBB или UBA) // отправляем в RPi

начинать

если (UBB == 1'b0 && UBA == 1'b0)

sel_send = 1'b1;

еще

sel_send = 1'b0;

конец

2D: FPGA считывает сигнал с Raspberry Pi с тактовой частотой 66 МГц. Порт XIO_2 [2] связан с «приемом».

always @ (sel_read) // читаем пи

начинать

если (sel_read == 1'b1)

rec = 1'b0;

еще

rec = 1'b1;

конец

Шаг 3. Загрузите код Verilog

Загрузить код Verilog
Загрузить код Verilog

Затем загрузите скомпилированный файл pof в FPGA. Если оборудование не определяется автоматически, нажмите «Настройка оборудования», чтобы исправить это вручную.

Шаг 4: Загрузите код Raspberry Pi

Выделенные строки позволяют FPGA обмениваться данными с Raspberry Pi.

Полный код Raspberry Pi для этого проекта,

A = GPIO.input (pin) # читать FPGAprint (A);

если (A == 1):

camera.rotation = 0

GPIO.output (18, GPIO. LOW) # отправить на FPGA

если (A == 0):

camera.rotation = 180

GPIO.output (18, GPIO. HIGH) # отправить в FPGA

Шаг 5: Давайте попробуем

Image
Image

Откройте браузер и введите свой IP-адрес, например 192.168.xx.xxx:8000.

Ведь система должна работать!

Рекомендуемые: