Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Несмотря на то, что FPGA DueProLogic официально разработана для Arduino, мы собираемся сделать FPGA и Raspberry Pi 4B совместимыми.
В этом руководстве реализованы три задачи:
(A) Одновременно нажмите две кнопки на FPGA, чтобы изменить угол обзора камеры RPi.
(B) Raspberry Pi 4B управляет внешней светодиодной схемой FPGA.
(C) Прямая трансляция с камеры Raspberry Pi в браузере через Wi-Fi
Шаг 1: Создайте электронную схему
Шаг 2: отредактируйте код 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
Затем загрузите скомпилированный файл 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: Давайте попробуем
Откройте браузер и введите свой IP-адрес, например 192.168.xx.xxx:8000.
Ведь система должна работать!