תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
למרות ה- FPGA DueProLogic מיועד באופן רשמי עבור Arduino, אנו הולכים להפוך את ה- FPGA ו- Raspberry Pi 4B לתקשורת.
שלוש משימות מיושמות במדריך זה:
(א) במקביל לחץ על שני כפתורי הלחיצה ב- FPGA כדי להפוך את הזווית של מצלמת RPi.
(ב) Raspberry Pi 4B שולט במעגל ה- LED החיצוני של FPGA.
(ג) שידור חי את מצלמת הפטל פיי בדפדפן באמצעות WiFi
שלב 1: בנה מעגל אלקטרוני
שלב 2: ערוך את קוד Verilog
כאשר אתה קונה את FPGA DueProLogic, אתה אמור לקבל DVD. לאחר פתיחת "Projects_HDL", אתה אמור לראות את קובץ קוד ה- HDL המקורי. לאחר הגדרת מתכנן הסיכות, הוסף את הקוד המודגש כפי שמוצג בסעיף 2A, 2B, 2C ו- 2D.
2A: כדי להפעיל לחצני לחיצה, עליך להשתמש בקוד זה
// מתגי לחצנים
חוט קלט UBA,
כבל קלט UBB
כדי לתקשר עם Raspberry Pi, עליך להוסיף אלה.
reg sel_send; // הפעל פאי פטל
reg rece; // התקבל מפאי פטל
2B: כדי להקצות ערכים ליציאות, עליך לערוך את הקוד בהתאם
הקצה XIO_1 [3] = start_stop_cntrl;
הקצה XIO_2 [2] = קבלה; // פלט גבוה או נמוך במעגל 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] מקושרת ל'קבלה '.
תמיד @(sel_read) // לקרוא pi
התחל
אם (sel_read == 1'b1)
rece = 1'b0;
אַחֵר
rece = 1'b1;
סוֹף
שלב 3: העלה קוד Verilog
לאחר מכן העלה את קובץ ה- pof המורכב ל- FPGA. אם לא זוהתה חומרה אוטומטית, לחץ על "התקנת חומרה" כדי לתקן אותה באופן ידני
שלב 4: העלה קוד Raspberry Pi
הקווים המודגשים מאפשרים ל- FPGA לתקשר עם Raspberry Pi.
קוד ה- Raspberry Pi המלא לפרויקט זה, https://roywchpi.blogspot.com 2020/06/12-fpga-cycl…
A = GPIO.input (pin) #read FPGAprint (A);
אם (A == 1):
camera.rotation = 0
פלט GPIO.out (18, GPIO. LOW) #שלח ל- FPGA
אם (A == 0):
camera.rotation = 180
פלט GPIO.out (18, GPIO. HIGH) #שלח ל- FPGA
שלב 5: בוא ננסה
פתח את הדפדפן והקלד את כתובת ה- IP שלך למשל 192.168.xx.xxx:8000.
אחרי הכל, המערכת צריכה לעבוד!