Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Nepaisant to, kad „FPGA DueProLogic“yra oficialiai sukurta „Arduino“, mes ketiname padaryti FPGA ir „Raspberry Pi 4B“tinkamus naudoti.
Šioje pamokoje įgyvendinamos trys užduotys:
(A) Vienu metu paspauskite du FPGA mygtukus, kad pakeistumėte RPi kameros kampą.
(B) „Raspberry Pi 4B“valdo išorinę FPGA šviesos diodų grandinę.
(C) Tiesiogiai transliuokite „Raspberry Pi“kamerą naršyklėje per „WiFi“
1 žingsnis: sukurkite elektroninę grandinę
2 veiksmas: redaguokite „Verilog“kodą
Pirkdami FPGA DueProLogic, turėtumėte gauti DVD. Atidarę „Projects_HDL“, turėtumėte pamatyti originalų HDL kodo failą. Nustatę smeigtukų planavimo priemonę, pridėkite paryškintą kodą, kaip parodyta 2A, 2B, 2C ir 2D skyriuose.
2A: Norėdami suaktyvinti mygtukus, turite naudoti šį kodą
// Mygtukiniai jungikliai
įvesties laidas UBA,
įvesties laidas UBB
Norėdami bendrauti su „Raspberry Pi“, turite juos pridėti.
reg sel_send; // aktyvuoti Raspberry pi
reg rece; // gautas iš aviečių pi
2B: Jei norite prievadams priskirti reikšmes, turite atitinkamai redaguoti kodą
priskirti XIO_1 [3] = start_stop_cntrl;
priskirti XIO_2 [2] = rece; // išėjimas HIGH arba LOW LED grandinėje
priskirti XIO_2 [3] = ~ UBA; // paspausti mygtuką
priskirti XIO_2 [4] = UBB; // paspausti mygtuką
priskirti XIO_2 [5] = sel_send; // FPGA siunčia signalą į aviečių pi
priskirti sel_read = XIO_5 [1]; // FPGA gauna signalą iš aviečių pi
priskirti c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
priskirti LEDExt = XIO_5 [5];
2C: Jei vienu metu paspaudžiami du mygtukai, FPGA siunčia HIGH išvestį į Raspberry Pi.
visada @(sel_send arba UBB arba UBA) // siųsti RPi
pradėti
jei (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
Kitas
sel_send = 1'b0;
galas
2D: FPGA nuskaito „Raspberry Pi“signalą, kurio laikrodžio dažnis yra 66 MHz. Prievadas XIO_2 [2] yra susietas su „rece“.
visada @(sel_read) // skaityti pi
pradėti
if (sel_read == 1'b1)
rece = 1'b0;
Kitas
rece = 1'b1;
galas
3 veiksmas: įkelkite „Verilog“kodą
Tada įkelkite surinktą pof failą į FPGA. Jei aparatinė įranga neaptinkama automatiškai, spustelėkite „Aparatūros sąranka“, kad ją pataisytumėte rankiniu būdu
4 veiksmas: įkelkite „Raspberry Pi“kodą
Pažymėtos linijos leidžia FPGA bendrauti su „Raspberry Pi“.
Visas šio projekto „Raspberry Pi“kodas,
A = GPIO.input (pin) #read FPGAprint (A);
jei (A == 1):
kamera.sukimas = 0
GPIO. output (18, GPIO. LOW) #siunčiama į FPGA
jei (A == 0):
kamera.sukimas = 180
GPIO. output (18, GPIO. HIGH) #siunčia į FPGA
5 žingsnis: Pabandykime
Atidarykite naršyklę ir įveskite savo IP adresą, pvz. 192.168.xx.xxx:8000.
Juk sistema turėtų veikti!