Mundarija:

FPGA siklon IV DueProLogic Raspberry Pi kamerasini boshqaradi: 5 qadam
FPGA siklon IV DueProLogic Raspberry Pi kamerasini boshqaradi: 5 qadam

Video: FPGA siklon IV DueProLogic Raspberry Pi kamerasini boshqaradi: 5 qadam

Video: FPGA siklon IV DueProLogic Raspberry Pi kamerasini boshqaradi: 5 qadam
Video: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Noyabr
Anonim
FPGA sikloni IV DueProLogic Raspberry Pi kamerasini boshqaradi
FPGA sikloni IV DueProLogic Raspberry Pi kamerasini boshqaradi

FPGA DueProLogic rasman Arduino uchun ishlab chiqilganiga qaramay, biz FPGA va Raspberry Pi 4B ni muloqotga aylantirmoqchimiz.

Bu darslikda uchta vazifa bajarilgan:

(A) RPi kamerasining burchagini o'zgartirish uchun bir vaqtning o'zida FPGA -dagi ikkita tugmani bosing.

(B) Raspberry Pi 4B FPGA tashqi LED sxemasini boshqaradi.

(C) WiFi orqali brauzerda Raspberry Pi kamerasini jonli efirga uzatish

1 -qadam: Elektron sxemani yarating

2 -qadam: Verilog kodini tahrirlang

Verilog kodini tahrirlash
Verilog kodini tahrirlash
Verilog kodini tahrirlash
Verilog kodini tahrirlash

FPGA DueProLogic -ni sotib olganingizda, sizga DVD kerak. "Projects_HDL" ni ochganingizdan so'ng, siz asl HDL kodli faylni ko'rishingiz kerak. PIN -planerni o'rnatganingizdan so'ng, 2A, 2B, 2C va 2D bo'limlarida ko'rsatilganidek, ajratilgan kodni qo'shing.

2A: Tugmachalarni faollashtirish uchun siz ushbu kodni ishlatishingiz kerak

// Tugma tugmachalari

kirish sim UBA,

kirish sim UBB

Raspberry Pi bilan muloqot qilish uchun siz ularni qo'shishingiz kerak.

reg sel_send; // Raspberry pi -ni faollashtiring

reg qabul qilish; // malina pi dan olingan

2B: Portlarga qiymatlarni belgilash uchun siz kodni mos ravishda tahrir qilishingiz kerak

tayinlash XIO_1 [3] = start_stop_cntrl;

tayinlash XIO_2 [2] = qabul qilish; // LED zanjirida HIGH yoki LOW chiqish

tayinlash XIO_2 [3] = ~ UBA; // tugmani bosing

tayinlash XIO_2 [4] = UBB; // tugmachani bosing

tayinlash XIO_2 [5] = sel_send; // FPGA malina pi ga signal yuboradi

belgilash sel_read = XIO_5 [1]; // FPGA malina pi dan signal oladi

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

LEDExt = XIO_5 [5] ni belgilang;

2C: Agar bir vaqtning o'zida ikkita tugma bosilsa, FPGA Raspberry Pi -ga yuqori chiqishni yuboradi.

har doim @(sel_send yoki UBB yoki UBA) // RPi ga yuboring

boshlash

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

sel_send = 1'b1;

boshqa

sel_send = 1'b0;

oxiri

2D: FPGA Raspberry Pi signalini 66 MGts chastotali o'qiydi. XIO_2 [2] porti "qabul" ga ulangan.

har doim @(sel_read) // pi ni o'qing

boshlash

agar (sel_read == 1'b1)

qabul = 1'b0;

boshqa

qabul = 1'b1;

oxiri

3 -qadam: Verilog kodini yuklang

Verilog kodini yuklang
Verilog kodini yuklang

Keyin tuzilgan pof faylini FPGA -ga yuklang. Agar hech qanday apparat avtomatik ravishda aniqlanmasa, uni qo'lda tuzatish uchun "Uskuna sozlamalari" ni bosing

4 -qadam: Raspberry Pi kodini yuklang

Ajratilgan chiziqlar FPGA -ga Raspberry Pi bilan aloqa o'rnatishga imkon beradi.

Ushbu loyihaning to'liq Raspberry Pi kodi,

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

agar (A == 1):

kamera. aylanish = 0

GPIO.output (18, GPIO. LOW) #FPGA -ga yuborish

agar (A == 0):

kamera.rats = 180

GPIO.output (18, GPIO. HIGH) #FPGA -ga yuborish

5 -qadam: Keling, sinab ko'ramiz

Image
Image

Brauzerni oching va IP manzilingizni kiriting, masalan. 192.168.xx.xxx:8000.

Axir, tizim ishlashi kerak!

Tavsiya: