Πίνακας περιεχομένων:
- Βήμα 1: Λίστα μερών
- Βήμα 2: Ρύθμιση του Raspberry Pi
- Βήμα 3: Raspberry Pi και Camera Mount
- Βήμα 4: Συναρμολόγηση φανών
- Βήμα 5: Καλωδίωση (Μέρος 1)
- Βήμα 6: Χτίζοντας το Περιβάλλον
- Βήμα 7: Ολοκλήρωση του πλαισίου PVC
- Βήμα 8: Καλωδίωση (Μέρος 2)
- Βήμα 9: Τέλειωσε
- Βήμα 10: Επιπλέον (Φωτογραφίες)
Βίντεο: Αναλυτής μοτίβου κυκλοφορίας με χρήση ανίχνευσης ζωντανών αντικειμένων: 11 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Στον σημερινό κόσμο, τα φανάρια είναι απαραίτητα για έναν ασφαλή δρόμο. Ωστόσο, πολλές φορές, τα φανάρια μπορεί να είναι ενοχλητικά σε καταστάσεις όπου κάποιος πλησιάζει το φως ακριβώς όταν γίνεται κόκκινο. Αυτό χάνει χρόνο, ειδικά αν το φως εμποδίζει ένα μόνο όχημα να περάσει από τη διασταύρωση όταν δεν υπάρχει κανένας άλλος στο δρόμο. Η καινοτομία μου είναι ένα έξυπνο φανάρι που χρησιμοποιεί ζωντανή ανίχνευση αντικειμένων από μια κάμερα για να μετρήσει τον αριθμό των αυτοκινήτων σε κάθε δρόμο. Το υλικό που θα χρησιμοποιήσω για αυτό το έργο είναι ένα Raspberry Pi 3, μια μονάδα κάμερας και διάφορα ηλεκτρονικά υλικά για το ίδιο το φως. Χρησιμοποιώντας το OpenCV στο Raspberry Pi, οι πληροφορίες που συλλέγονται θα εκτελούνται μέσω κώδικα που ελέγχει τα LED μέσω του GPIO. Ανάλογα με αυτούς τους αριθμούς, το φανάρι θα αλλάξει, αφήνοντας τα αυτοκίνητα να περάσουν στην πιο βέλτιστη σειρά. Σε αυτή την περίπτωση, η λωρίδα με τα περισσότερα αυτοκίνητα θα διαπεράσει, έτσι ώστε η λωρίδα με λιγότερα αυτοκίνητα να βρίσκεται σε ρελαντί, μειώνοντας την ατμοσφαιρική ρύπανση. Αυτό θα εξαλείψει καταστάσεις όταν πολλά αυτοκίνητα σταματούν ενώ δεν υπάρχουν αυτοκίνητα στο δρόμο που διασταυρώνεται. Αυτό όχι μόνο εξοικονομεί χρόνο για όλους, αλλά εξοικονομεί και το περιβάλλον. Ο χρόνος που οι άνθρωποι σταματούν στο σήμα στάσης με τον κινητήρα στο ρελαντί αυξάνει την ατμοσφαιρική ρύπανση, οπότε δημιουργώντας ένα έξυπνο φανάρι, είμαι σε θέση να βελτιστοποιήσω τα μοτίβα φωτισμού έτσι ώστε τα αυτοκίνητα να περνούν τον λιγότερο δυνατό χρόνο με το όχημά τους σταματημένο Το Τελικά, αυτό το σύστημα φωτεινών σηματοδοτών θα μπορούσε να εφαρμοστεί σε πόλεις, προάστια ή ακόμα και αγροτικές περιοχές, ώστε να είναι πιο αποτελεσματικό για τους ανθρώπους και θα μειώσει την ατμοσφαιρική ρύπανση.
Βήμα 1: Λίστα μερών
Υλικά:
Raspberry Pi 3 Model B v1.2
Κάμερα Raspberry Pi v2.1
Τροφοδοσία 5V/1A micro USB
Οθόνη HDMI, πληκτρολόγιο, κάρτα SD ποντικιού με Raspbian Jessie
Raspberry Pi GPIO breakout καλώδιο
Κόκκινες, κίτρινες, πράσινες λυχνίες LED (2 από κάθε χρώμα)
Θηλυκές συνδέσεις για Raspberry Pi (7 μοναδικά χρώματα)
Ποικιλία καλωδίων 24 μετρητών (διαφορετικά χρώματα) + σωλήνες θερμοσυρρίκνωσης
Ξύλινο πάνελ ή πλατφόρμα 2’x2’
Βίδες ξύλου
Μαύρη επιφάνεια (χαρτόνι, σανίδα αφρού, αφίσα κλπ.)
Λευκή (ή οποιοδήποτε άλλο χρώμα εκτός από τη μαύρη) ταινία για σήμανση δρόμων
Μαύρη βαφή ψεκασμού (για PVC)
Pipe”σωλήνας PVC με αρθρώσεις αγκώνα 90 μοιρών (2), υποδοχή T (1), θηλυκό προσαρμογέα (2)
Εργαλεία
Συγκολλητικό σίδερο
Τρισδιάστατος εκτυπωτής
Τρυπάνι με διάφορα τρυπάνια
Breadboard
Θερμικό όπλο
Βήμα 2: Ρύθμιση του Raspberry Pi
Φορτώστε την κάρτα SD στο Raspberry Pi και ξεκινήστε.
Ακολουθήστε αυτόν τον οδηγό για να εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες OpenCV. Βεβαιωθείτε ότι έχετε χρόνο να κάνετε αυτό το βήμα, καθώς η εγκατάσταση της βιβλιοθήκης OpenCV μπορεί να διαρκέσει μερικές ώρες. Φροντίστε επίσης να εγκαταστήσετε και να ρυθμίσετε τη φωτογραφική σας μηχανή εδώ.
Θα πρέπει επίσης να εγκαταστήσετε pip:
picamera
gpiozero
RPi. GPIO
Εδώ είναι ο οριστικός κωδικός:
από το picamera.array import PiRGBArray
από την εισαγωγή picamera PiCamera
εισαγωγή picamera.array
εισαγωγή numpy ως np
χρόνο εισαγωγής
εισαγωγή cv2
εισαγωγή RPi. GPIO ως GPIO
χρόνο εισαγωγής
GPIO.setmode (GPIO. BCM)
για i in (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
ακατέργαστο = PiRGBArray (έκκεντρο, μέγεθος = (480, 480))
ώρα. ύπνος (0,1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
μετρητής = 0
για πλαίσιο στο cam.capture_continuous (raw, format = "bgr", use_video_port = True):
πλαίσιο = πλαίσιο.συστοιχία
hsv = cv2.cvtColor (πλαίσιο, cv2. COLOR_BGR2HSV)
μάσκα = cv2.inRange (hsv, colorLower, colorUpper)
μάσκα = cv2.blur (μάσκα, (3, 3))
μάσκα = cv2.dilate (μάσκα, Καμία, επαναλήψεις = 5)
μάσκα = cv2.erode (μάσκα, Καμία, επαναλήψεις = 1)
μάσκα = cv2.dilate (μάσκα, Καμία, επαναλήψεις = 3)
εγώ, thresh = cv2.threshold (μάσκα, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]
κέντρο = Κανένα
vert = 0
horiz = 0
αν len (cnts)> 0:
για c σε cnts:
(x, y), ακτίνα = cv2.minEnclosingCircle (c)
κέντρο = (int (x), int (y))
ακτίνα = int (ακτίνα)
cv2. κύκλος (πλαίσιο, κέντρο, ακτίνα, (0, 255, 0), 2)
x = int (x)
y = int (y)
αν 180 <x <300:
αν y> 300:
vert = vert +1
elif y <180:
vert = vert +1
αλλού:
vert = vert
αν 180 <y <300:
αν x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
αλλού:
horiz = horiz
αν vert! = initvert:
εκτύπωση "Αυτοκίνητα σε κάθετη λωρίδα:" + str (vert)
initvert = vert
εκτύπωση "Αυτοκίνητα σε οριζόντια λωρίδα:" + str (horizon)
inithoriz = ορίζοντας
Τυπώνω '----------------------------'
if horiz! = inithoriz:
εκτύπωση "Αυτοκίνητα σε κάθετη λωρίδα:" + str (vert)
initvert = vert
εκτύπωση "Αυτοκίνητα σε οριζόντια λωρίδα:" + str (horizon)
inithoriz = ορίζοντας
Τυπώνω '----------------------------'
αν vert <horiz:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
αν horiz <vert:
GPIO.output (16, GPIO. HIGHT)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Πλαίσιο", πλαίσιο)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", thresh)
raw.truncate (0)
εάν cv2.waitKey (1) & 0xFF == ord ('q'):
Διακοπή
cv2.destroyAllWindows ()
GPIO.cleanup ()
Βήμα 3: Raspberry Pi και Camera Mount
Τρισδιάστατη εκτύπωση της θήκης και της κάμερας για τοποθέτηση και συναρμολόγηση.
Βήμα 4: Συναρμολόγηση φανών
Δοκιμάστε το φανάρι με ένα breadboard. Κάθε αντίθετο σύνολο LED μοιράζεται μια άνοδο και όλα έχουν μια κοινή κάθοδο (γείωση). Θα πρέπει να υπάρχουν συνολικά 7 καλώδια εισόδου: 1 για κάθε ζεύγος LEDS (6) + 1 καλώδιο γείωσης. Συγκολλήστε και συναρμολογήστε τα φανάρια.
Βήμα 5: Καλωδίωση (Μέρος 1)
Συγκολλήστε τις θηλυκές καρφίτσες κεφαλίδας σε περίπου 5 πόδια σύρμα. Αυτές είναι οι πλευρές που αυτά τα καλώδια θα περάσουν αργότερα από τους σωλήνες PVC. Φροντίστε να μπορείτε να διακρίνετε τα διαφορετικά σετ φώτων (2 x 3 χρώματα και 1 γείωση). Σε αυτή την περίπτωση, σημάδεψα τα άκρα ενός άλλου σετ κόκκινων, κίτρινων και μπλε καλωδίων με αιχμηρό άκρο, ώστε να ξέρω ποιο είναι ποιο.
Βήμα 6: Χτίζοντας το Περιβάλλον
Χτίζοντας το περιβάλλον Κάντε μια τετράγωνη ξύλινη παλέτα 2 ποδιών σαν αυτή. Τα παλιοσίδερα είναι ωραία καθώς θα καλυφθούν. Τρυπήστε μια τρύπα που ταιριάζει ακριβώς στον προσαρμογέα σας. Τρυπήστε βίδες στις πλευρές της παλέτας για να στερεώσετε τον σωλήνα PVC στη θέση του. Κόψτε τη μαύρη σανίδα αφρού για να ταιριάζει με την ξύλινη παλέτα από κάτω. Τρυπήστε μια τρύπα που ταιριάζει γύρω από το σωλήνα PVC. Επαναλάβετε στην απέναντι γωνία. Σημειώστε τους δρόμους με κάποια λευκή ταινία.
Βήμα 7: Ολοκλήρωση του πλαισίου PVC
Στον επάνω σωλήνα, ανοίξτε μια τρύπα που μπορεί να χωρέσει μια δέσμη καλωδίων. Μια τραχιά τρύπα είναι καλή αρκεί να έχετε πρόσβαση στο εσωτερικό των σωλήνων. Περάστε τα καλώδια μέσω των σωλήνων PVC και των αρθρώσεων των αγκώνων για δοκιμαστική εφαρμογή. Μόλις οριστικοποιηθούν όλα, βάψτε το PVC με λίγο μαύρο χρώμα σπρέι για να καθαρίσετε την εμφάνιση του κύριου πλαισίου. Κόψτε ένα μικρό κενό σε έναν από τους σωλήνες PVC για να χωρέσει μια άρθρωση Τ. Προσθέστε έναν σωλήνα PVC σε αυτήν την ένωση t για να κρεμάσει το φανάρι. Η διάμετρος θα μπορούσε να είναι η ίδια με το κύριο πλαίσιο (1/2 ), αν και εάν χρησιμοποιείτε λεπτότερο σωλήνα, βεβαιωθείτε ότι τα 7 καλώδια μπορούν να περάσουν. Τρυπήστε μια τρύπα μέσω αυτού του σωλήνα για να κρεμάσει το φανάρι.
Βήμα 8: Καλωδίωση (Μέρος 2)
Συνδέστε ξανά τα πάντα όπως δοκιμάστηκε προηγουμένως. Ελέγξτε ξανά το φανάρι και την καλωδίωση με ένα breadboard για να επιβεβαιώσετε ότι έχουν πραγματοποιηθεί όλες οι συνδέσεις. Συγκολλήστε το φανάρι στα καλώδια που περνούν μέσω του βραχίονα άρθρωσης Τ. Τυλίξτε τα εκτεθειμένα καλώδια με ηλεκτρική ταινία για να αποφύγετε τυχόν σορτς και για καθαρότερη εμφάνιση.
Βήμα 9: Τέλειωσε
Για να εκτελέσετε τον κώδικα, φροντίστε να ορίσετε την πηγή σας ως pr/.profile και cd στην τοποθεσία του έργου σας.
Βήμα 10: Επιπλέον (Φωτογραφίες)
Συνιστάται:
Προγραμματισμός με αντικείμενο: Δημιουργία εκμάθησης αντικειμένων/μέθοδος διδασκαλίας/τεχνική με τη χρήση Shape Puncher: 5 βήματα
Αντικειμενικός Προγραμματισμός: Δημιουργία Αντικειμένων Μάθησης/Διδακτικής Μέθοδος/Τεχνικής Χρήσης Shape Puncher: Μέθοδος εκμάθησης/διδασκαλίας για μαθητές που είναι νέοι στον αντικειμενοστραφή προγραμματισμό. Αυτός είναι ένας τρόπος για να τους επιτρέψετε να οπτικοποιήσουν και να δουν τη διαδικασία δημιουργίας αντικειμένων από κλάσεις.Μέρη:1. EkTools μεγάλη διάτρηση 2 ιντσών. τα στερεά σχήματα είναι καλύτερα.2. Κομμάτι χαρτί ή γ
Μετρητής αντικειμένων με χρήση IR: 9 βήματα (με εικόνες)
Μετρητής αντικειμένων με χρήση IR: Σε αυτό το μικρό έργο, θα δημιουργήσουμε έναν εντελώς αυτόματο μετρητή αντικειμένων με απλή εμφάνιση τμήματος. Αυτό το έργο είναι μάλλον απλό και ενσωματώνει μόνο απλά ηλεκτρονικά. Αυτό το κύκλωμα βασίζεται στο υπέρυθρο για την ανίχνευση αντικειμένων, για να μάθετε περισσότερα
Σήμα κυκλοφορίας με χρήση αισθητήρα Arduino και υπερήχων: 4 βήματα
Σήμα κυκλοφορίας χρησιμοποιώντας Arduino και υπερηχητικό αισθητήρα: Με την εποχή των έξυπνων τεχνολογιών, όλα γίνονται πιο έξυπνα και το έξυπνο σύστημα μεταφορών είναι ένας από τους τομείς που πρόκειται να έχει τεράστιο αντίκτυπο στη ζωή μας. Αρχικά δημοσιευμένο στη διεύθυνση: https://highvoltages.co/tutorial/arduino-tutorial/traffic-sig
Εμφάνιση ζωντανών ενδείξεων αισθητήρα Arduino σε οθόνη LCD Nokia 5110: 4 βήματα (με εικόνες)
Εμφάνιση Live Arduino Sensor Readers σε Nokia 5110 LCD: Αν έχετε δουλέψει ποτέ με arduino, πιθανότατα θέλετε να εμφανίζει αναγνώσεις αισθητήρων. Η χρήση της σειριακής οθόνης είναι απολύτως εντάξει, αλλά το να είσαι ο arduino badass που γίνεσαι γρήγορα, πιθανότατα θα ήθελε να εμφανίζει τις ενδείξεις σε κάτι πιο θλιβερό
Ένας σηματοδότης μοτίβου με φωνητικό έλεγχο, τύπου Μπράιγ: 4 βήματα (με εικόνες)
Ένας σηματοδότης μοτίβου με φωνητικό έλεγχο, τύπου Μπράιγ: «Ο Λόρδος Βετινάρι στάθηκε στο παράθυρό του και παρακολουθούσε τον πύργο του σηματοφόρου στην άλλη πλευρά του ποταμού. Και τα οκτώ από τα μεγάλα παντζούρια που βλέπουν προς το μέρος του αναβοσβήνουν με μανία - μαύρο, άσπρο, μαύρο, άσπρο, μαύρο, άσπρο … Πληροφορίες έφτασαν στο