Πίνακας περιεχομένων:

FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 βήματα
FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 βήματα

Βίντεο: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 βήματα

Βίντεο: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 βήματα
Βίντεο: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, Νοέμβριος
Anonim
FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera
FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera

Παρά το γεγονός ότι το FPGA DueProLogic έχει σχεδιαστεί επίσημα για το Arduino, θα κάνουμε το FPGA και το Raspberry Pi 4B επικοινωνιακά.

Τρεις εργασίες υλοποιούνται σε αυτό το σεμινάριο:

(Α) Πατήστε ταυτόχρονα τα δύο κουμπιά στο FPGA για να αναστρέψετε τη γωνία της κάμερας RPi.

(Β) Το Raspberry Pi 4B ελέγχει το εξωτερικό κύκλωμα LED του FPGA.

(Γ) Ζωντανή ροή της κάμερας Raspberry Pi στο πρόγραμμα περιήγησης μέσω WiFi

Βήμα 1: Δημιουργία ηλεκτρονικού κυκλώματος

Βήμα 2: Επεξεργασία κώδικα Verilog

Επεξεργασία κώδικα Verilog
Επεξεργασία κώδικα Verilog
Επεξεργασία κώδικα Verilog
Επεξεργασία κώδικα Verilog

Όταν αγοράζετε το FPGA DueProLogic, θα πρέπει να λάβετε ένα DVD. Αφού ανοίξετε το "Projects_HDL", θα πρέπει να δείτε το αρχικό αρχείο κώδικα HDL. Αφού ρυθμίσετε τον προγραμματιστή καρφιτσών, προσθέστε τον επισημασμένο κώδικα όπως φαίνεται στην ενότητα 2Α, 2Β, 2Γ και 2Δ.

2Α: Για να ενεργοποιήσετε τα κουμπιά, πρέπει να χρησιμοποιήσετε αυτόν τον κωδικό

// Διακόπτες κουμπιού ώθησης

καλώδιο εισόδου UBA,

καλώδιο εισόδου UBB

Για να επικοινωνήσετε με το Raspberry Pi, πρέπει να τα προσθέσετε.

reg sel_send; // ενεργοποιήστε το Raspberry pi

reg rece? // ελήφθη από βατόμουρο πι

2Β: Για να εκχωρήσετε τιμές στις θύρες, θα πρέπει να επεξεργαστείτε τον κώδικα ανάλογα

εκχώρηση XIO_1 [3] = start_stop_cntrl;

εκχώρηση XIO_2 [2] = παραλαβή; // έξοδος HIGH ή LOW στο κύκλωμα LED

εκχώρηση XIO_2 [3] = ~ UBA; // κουμπί

εκχώρηση XIO_2 [4] = UBB; // κουμπί

εκχώρηση XIO_2 [5] = sel_send; // Το FPGA στέλνει σήμα στο raspberry pi

εκχώρηση sel_read = XIO_5 [1]; // Το FPGA λαμβάνει σήμα από το raspberry pi

εκχώρηση 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] συνδέεται με το "rece".

πάντα @(sel_read) // διαβάστε pi

να αρχίσει

εάν (sel_read == 1'b1)

Rece = 1'b0;

αλλού

Rece = 1'b1;

τέλος

Βήμα 3: Μεταφόρτωση κώδικα Verilog

Μεταφόρτωση κώδικα Verilog
Μεταφόρτωση κώδικα Verilog

Στη συνέχεια, ανεβάστε το μεταγλωττισμένο αρχείο pof στο FPGA. Εάν δεν ανιχνεύεται αυτόματα κανένα υλικό, κάντε κλικ στην επιλογή "Ρύθμιση υλικού" για να το διορθώσετε με μη αυτόματο τρόπο

Βήμα 4: Ανεβάστε το Raspberry Pi Code

Οι επισημασμένες γραμμές επιτρέπουν στο FPGA να επικοινωνεί με το Raspberry Pi.

Ο πλήρης κώδικας Raspberry Pi για αυτό το έργο,

A = GPIO.input (pin) #read 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.

Μετά από όλα, το σύστημα πρέπει να λειτουργήσει!

Συνιστάται: