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

Αυτόματη παρακολούθηση Water Blaster: 9 Βήματα
Αυτόματη παρακολούθηση Water Blaster: 9 Βήματα

Βίντεο: Αυτόματη παρακολούθηση Water Blaster: 9 Βήματα

Βίντεο: Αυτόματη παρακολούθηση Water Blaster: 9 Βήματα
Βίντεο: ΣΟΚ: ΒΡΗΚΑ ΚΑΡΧΑΡΙΑ😱😱 2024, Ιούλιος
Anonim
Αυτόματη παρακολούθηση Water Blaster
Αυτόματη παρακολούθηση Water Blaster

Το ελάφι που τρώει τριαντάφυλλα με παρακίνησε να φτιάξω έναν εκτοξευτή νερού που εντοπίζει στόχους για να αποτρέψει τους αδηφάγους κυνηγούς… Αυτός ο εκτοξευτήρας νερού χρησιμοποιεί ανίχνευση κίνησης που βασίζεται σε βίντεο για να στοχεύσει ένα σερβο και να προκαλέσει σύντομες εκρήξεις νερού στο στόχο. Πυροβολεί μόνο αφού ένας στοχευμένος στόχος είναι ακίνητος για μερικά δευτερόλεπτα (η καθυστέρηση μπορεί να ρυθμιστεί στον κώδικα). Δεν με νοιάζει αν τα ελάφια περνούν μόνο, αλλά αν σταματήσουν για ένα σνακ, sploosh!

Εδώ είναι ένα βίντεο με τη δοκιμή του υδροβολικού:

Το νερό είναι ένα αυτόνομο κουτί που μπορεί να συνδεθεί εξ αποστάσεως (μέσω wi-fi/VNC) από οποιονδήποτε υπολογιστή στο δίκτυό σας για να παρακολουθείτε τι κάνει. Λαμβάνει μια φωτογραφία κάθε φορά που ενεργοποιείται, ώστε να μπορείτε αργότερα να δείτε τι ανατινάχθηκε.

Χρησιμοποίησα ένα Raspberry Pi, NoIR cam, IR illuminator, στάνταρ γραμμικό σερβο, και μια βαλβίδα νερού για να δημιουργήσω αυτήν την ημέρα/νύχτα, στόχευση ανιχνευτή νερού. Ο κώδικας είναι γραμμένος σε Python και δανείζεται σε μεγάλο βαθμό από δείγματα κώδικα επεξεργασίας εικόνας cv2 του Adrian Rosebrock. Μπορείτε να δείτε τη συγγραφή του στη διεύθυνση:

www.pyimagesearch.com/2015/06/01/home-surv…

Δεδομένου ότι ακολουθώ σχετικά μεγάλους στόχους εδάφους (ελάφια), το πρόβλημά μου είναι κάπως απλοποιημένο. Απαιτώ μόνο οριζόντια στόχευση για να μπορέσω να ξεφύγω με τη χρήση μόνο ενός σερβο. Το να περιμένω το ελάφι να σταθεί ακίνητο με βοηθά να εξαλείψω πολλά ψεύτικα ερεθίσματα. Αυτή είναι η προσπάθειά μου για rev-0 και έχω βρει μερικά πράγματα που θα τροποποιούσα αν έχτιζα ένα άλλο. Έχω σημειώσει αυτά τα πράγματα στη λεπτομερή σύνταξη που ακολουθεί.

Βήμα 1: Ο κώδικας

Ο υδροβολέας χρησιμοποιεί το Raspberry Pi 3 για επεξεργασία. Για λήψη βίντεο, χρησιμοποιείται κάμερα NoIR Raspberry Pi μαζί με φωτιστικό IR για νυχτερινό βίντεο. Το πακέτο OpenCV/cv2 Python χρησιμοποιείται για τη λήψη και επεξεργασία πληροφοριών εικόνας και τον υπολογισμό συντεταγμένων στόχου. Η βιβλιοθήκη pigpio χρησιμοποιείται για τον έλεγχο του gpio για σταθερή σερβο λειτουργία. Η χρήση του κανονικού πακέτου RPi. GPIO είχε ως αποτέλεσμα ένα τρεμάμενο σερβο. ΣΗΜΕΙΩΣΗ: Όταν χρησιμοποιείτε τη βιβλιοθήκη pigpio, πρέπει να εκτελέσετε τον δαίμονα pigpio. Προσθέστε το στο αρχείο εκκίνησης Pi /etc/rc.local για το libpigo lib και τη διεπαφή κάμερας Raspberry Pi:

/etc/rc.local# Ρύθμιση/dev/video0 για σύνδεση με Raspberry Pi ενσωματωμένη κάμερα interfacemodprobe bcm2835-v4l2# Εκκίνηση του δαίμονα pigpio για τη βιβλιοθήκη ελέγχου Raspberry Pi IOpigpiod

Ανατρέξτε στη διεύθυνση https://pypi.python.org/pypi/pigpi για περισσότερες λεπτομέρειες.

Ο πηγαίος κώδικας ονομάζεται: water_blaster.py και επισυνάπτεται παρακάτω.

Αποποίηση ευθυνών: Είμαι νέος στην κωδικοποίηση Python, οπότε μην το αντιμετωπίζετε ως οποιοδήποτε υπέροχο μοντέλο στυλ κωδικοποίησης Python!

Ο βασικός αλγόριθμος έχει ως εξής:

  • Πιάστε ένα αρχικό πλαίσιο αναφοράς βίντεο. Αυτό θα χρησιμοποιηθεί για σύγκριση με τον εντοπισμό κίνησης.
  • Πιάσε άλλο πλαίσιο.
  • Μετατρέψτε το πλαίσιο σε γκρι κλίμακα, μεγεθύνετε, θολώστε το.
  • Υπολογίστε τη διαφορά από το πλαίσιο αναφοράς
  • Φιλτράρετε τις μικρές διαφορές, λάβετε συντεταγμένες της μεγαλύτερης διαφοράς.
  • Ρυθμίστε ένα χρονόμετρο. Εάν η συντεταγμένη -στόχος δεν αλλάξει για μερικά δευτερόλεπτα, τότε τραβήξτε μια φωτογραφία του τι πρόκειται να πυροβολήσουμε και ενεργοποιήστε τη βαλβίδα νερού για μια έκρηξη νερού. Σκουπίστε το σερβο μπροστά και πίσω μερικούς βαθμούς για έκρηξη "κυνηγετικού όπλου".
  • Εάν λάβουμε τρεις ενεργοποιήσεις πολύ γρήγορα, απενεργοποιήστε τη λήψη, σταματήστε λίγο και, στη συνέχεια, ενημερώστε το πλαίσιο αναφοράς, καθώς ενδέχεται να φωτογραφίζουμε σε σκιά ή φως βεράντας που μόλις ενεργοποιήθηκε…
  • Κάθε λίγα λεπτά ενημερώνετε το πλαίσιο αναφοράς για να λαμβάνετε υπόψη τις αλλαγές χαμηλής συχνότητας (ανατέλλει/δύει ο ήλιος, μεταφέρεται συννεφιά κ.λπ.)

Χρησιμοποιώ μόνο έναν οριζόντιο μηχανισμό στόχευσης, αλλά πολλές βάσεις σερβο/κλίσης σερβο είναι διαθέσιμες στο EBay και θα ήταν εύκολο να προσθέσετε ένα άλλο σερβο για τον έλεγχο της κάθετης στόχευσης εάν θέλετε πιο ακριβή στόχευση.

Ρύθμισα το Raspberry Pi να λειτουργεί ως διακομιστής VNC και μετά συνδέομαι σε αυτό μέσω VNC από το φορητό υπολογιστή μου για να ξεκινήσω το πρόγραμμα και να παρακολουθώ το βίντεο και τα αρχεία καταγραφής. cd στον κατάλογο όπου αποθηκεύετε το water_blaster.py και εκτελέστε τον πληκτρολογώντας:

./python water_blaster.py

Θα ανοίξει ένα παράθυρο παρακολούθησης βίντεο, θα ξεκινήσει ένα αρχείο καταγραφής με το όνομα ./log_ για κάθε λήψη.

Ακολουθούν μερικές σημειώσεις σχετικά με τη ρύθμιση του VNC στο Raspberry Pi:

Την πρώτη φορά που εγκατέστησα το Raspberry Pi, χρησιμοποίησα μια εξωτερική οθόνη/πληκτρολόγιο/ποντίκι για να ρυθμίσω τα πράγματα. Εκεί ενεργοποίησα τον διακομιστή VNC στη διαμόρφωση RasPi (Λογότυπο Raspberry / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Στη συνέχεια, όταν ξεκινά, σας επιτρέπει να συνδεθείτε στην οθόνη του: 0 μέσω προγράμματος -πελάτη VNC (με τα ίδια διαπιστευτήρια με το προεπιλεγμένο χρήστη "pi").

Σε λειτουργία χωρίς κεφαλή, είναι προεπιλεγμένη σε μια πολύ μικρή οθόνη ανάλυσης (καθώς δεν ανιχνεύει καμία οθόνη), για να την αναγκάσετε σε κάποια μεγαλύτερη ανάλυση, προσθέστε αυτήν τη διεύθυνση /boot/config.txt και κάντε επανεκκίνηση:

# Χρησιμοποιήστε εάν έχετε οθόνη# hdmi_ignore_edid = 0xa5000080hdmi_group = 2# 1400x1050 w/ 60Hz# hdmi_mode = 42# 1356x768 w/ 60Hzhdmi_mode = 39

Εδώ είναι μερικές περισσότερες πληροφορίες:

Βήμα 2: Τα Ηλεκτρονικά

Οι απαιτήσεις ηλεκτρονικών υδάτων είναι ελάχιστες χρησιμοποιώντας το Raspberry Pi 3 gpio για να οδηγήσετε σερβο, βαλβίδα νερού και φωτιστικό IR μέσω διακριτών ρυθμιστικών τρανζίστορ (χτισμένο σε μια μικρή πλακέτα πρωτο). Μια τυπική κάμερα NoIR συνδέεται απευθείας στο Raspberry Pi.

Το όνομα του σχηματικού είναι: water_blaster_schematic.pdf και επισυνάπτεται παρακάτω.

Χρησιμοποίησα μια ειδική παροχή 5v/2.5A για το Raspberry Pi και μια παροχή 12v/1A για την οδήγηση του φωτιστικού IR και της βαλβίδας νερού. Η τροφοδοσία 12v οδηγεί επίσης έναν ρυθμιστή 5v για να τροφοδοτήσει το σερβο 5v. Αυτό έγινε για να διατηρηθεί η "θορυβώδης" ισχύς ελέγχου κινητήρα απομονωμένη από την τροφοδοσία Raspberry Pi 5v. Η τροφοδοσία 12v/1A αποδείχθηκε ότι ήταν ακριβώς στο όριο της (στην πραγματικότητα λίγο παραπάνω όταν πρόσθεσα τον ανεμιστήρα). Ο κωδικός απενεργοποιεί τον φωτιστικό IR πριν από την τροφοδοσία του ρελέ της βαλβίδας νερού για να διατηρήσει την τρέχουσα έλξη εντός εμβέλειας … Θα ήταν καλύτερα να χρησιμοποιούσατε παροχή 1,5Α. Βεβαιωθείτε ότι έχετε συνδέσει τους ακροδέκτες γείωσης όλων των τροφοδοτικών μαζί.

Η μονάδα κάμερας είναι μια τυπική έκδοση NoIR που συνδέεται απευθείας στο Raspberry Pi. Είναι μια κάμερα Raspberry Pi με το φίλτρο IR που έχει ήδη αφαιρεθεί, επιτρέποντάς της να χρησιμοποιηθεί με έναν φωτισμό IR για λήψη νυχτερινών βίντεο.

Το σερβο που χρησιμοποιείται είναι ένα τυπικού μεγέθους γραμμικό σερβο 5V με ροπή 3-4 kg-cm.

Το IR illuminator ήταν ένα δαχτυλίδι χαμηλού κόστους 48 led που βρήκα στο EBay για περίπου 4 $. Δεν είναι πολύ ισχυρό και μπορεί να φωτίζει μόνο σε περίπου 15 πόδια. Εάν έχετε επιπλέον προϋπολογισμό, η απόκτηση ενός ισχυρότερου φωτισμού θα ήταν μια καλή βελτίωση.

Πρόσθεσα έναν "διακόπτη εντοπισμού σφαλμάτων" στο gpio23. Ο κωδικός ελέγχει την κατάσταση του διακόπτη και αν πατηθεί θα απενεργοποιήσει το ρελέ της βαλβίδας νερού για δοκιμές ξηρής φωτιάς. Νόμιζα ότι θα έκανα περισσότερα με αυτόν τον διακόπτη, αλλά δεν κατέληξα να τον χρησιμοποιήσω καθόλου. Θα το αφαιρέσω και τον κωδικό που το αναζητά…

Βήμα 3: Κατασκευή: Κάμερα και IR Illuminator

Κατασκευή: Κάμερα και IR Illuminator
Κατασκευή: Κάμερα και IR Illuminator

Χρησιμοποίησα ένα πλαστικό κουτί πυρομαχικών Harbor Freight ως περίβλημα. Κυρίως χρειάστηκα κάτι ανθεκτικό στο νερό καθώς πολύ σπρέι/απορροή νερού είναι αναπόφευκτο. Υπάρχουν πολλές τρύπες/περικοπές, αλλά καλύπτονται από τέντες, διαφανές πλαστικό ή ανοίγονται κάτω από προεξοχές για να ρίξουν νερό. Εκ των υστέρων, θα έπρεπε να είχα χρησιμοποιήσει ένα μεταλλικό κουτί με ψύκτρες εσωτερικά προσαρτημένες στα εξαρτήματα υψηλής ισχύος. Με αυτόν τον τρόπο πιστεύω ότι θα μπορούσα να αποφύγω την προσθήκη ανεμιστήρα. Το πλαστικό κουτί ήταν πολύ μονωτικό και επέτρεψε στην εσωτερική θερμοκρασία να ανέβει πάρα πολύ.

Ένα μικρό παράθυρο κόπηκε στο τέλος για να φανεί η κάμερα και ο φωτισμός IR τοποθετήθηκε μέσα σε μια παλιά πλαστική θήκη φακών που είχα τοποθετήσει γύρω.

Βήμα 4: Κατασκευή: Σωληνώσεις νερού

Κατασκευή: Σωληνώσεις νερού
Κατασκευή: Σωληνώσεις νερού
Κατασκευή: Σωληνώσεις νερού
Κατασκευή: Σωληνώσεις νερού

Η είσοδος νερού διοχετεύεται σε μια βαλβίδα νερού 12v που είναι συνδεδεμένη με ένα βινυλικό σωλήνα ¼”ID x 3/8” OD. Αυτό με τη σειρά του συνδέεται με ένα bar”συρματοπλεγμένο σωλήνα για να προσαρμόζεται ctor ολισθαίνοντα συνδετήρας PVC και είναι κολλημένο σε ένα καπάκι νερού C” PVC με μια τρύπα 1/16”που ανοίγεται για το ρεύμα νερού. Wantedθελα να κρατήσω το ρελέ της βαλβίδας νερού μακριά από τις καιρικές συνθήκες, ώστε να τοποθετηθεί μέσα στο κουτί. Υπάρχει ο κίνδυνος να πάρω διαρροή, αλλά έχω ανοίξει τρύπες αποστράγγισης στο κάτω μέρος του κιβωτίου και έχω τοποθετήσει τα ηλεκτρονικά ψηλά για να ελαχιστοποιήσω την πιθανότητα ζημιάς νερού στα ηλεκτρονικά, αν συμβεί αυτό. Ένα λιγότερο αισθητικά ευχάριστο, αλλά ασφαλέστερο σχέδιο θα ήταν να τοποθετήσετε τη βαλβίδα στο εξωτερικό και να τρέξετε τα καλώδια ρελέ 12v στο εσωτερικό. Ο διαφανής πλαστικός δίσκος πάνω από το σερβο ήταν ένας βολικός τρόπος για να τοποθετήσετε το άκρο του εύκαμπτου σωλήνα και εμποδίζει το νερό να στάζει κάτω από το σερβο. Ο ανεμιστήρας ήταν μια επόμενη σκέψη καθώς το κουτί ζεστάθηκε πάρα πολύ. Έφτιαξα μια μικρή τέντα πάνω του για να μην στάζει νερό μέσα.

Βήμα 5: Κατασκευή: Στόχος Servo

Κατασκευή: Στόχος Servo
Κατασκευή: Στόχος Servo

Μια τρύπα κόβεται στο πάνω μέρος του κουτιού και το σερβο στόχου τοποθετείται και σφραγίζεται με πυρίτιο για να διατηρείται η διαρροή.

Βήμα 6: Κατασκευή: Τοποθέτηση τροφοδοτικών, ανεμιστήρα, Raspberry Pi και Proto-board

Κατασκευή: Τοποθέτηση των τροφοδοτικών, ανεμιστήρα, Raspberry Pi και Proto-board
Κατασκευή: Τοποθέτηση των τροφοδοτικών, ανεμιστήρα, Raspberry Pi και Proto-board

Τα δύο τροφοδοτικά (5v και 12v) είναι ενσύρματα σε ένα μόνο καλώδιο τροφοδοσίας που βγαίνει στο πλάι του κουτιού. Το Raspberry Pi και ένας πίνακας proto είναι τοποθετημένοι στο πλάι του κουτιού κοντά στην κορυφή. Προσέξτε τις οπές αποστράγγισης που ανοίγονται στο κάτω μέρος και τις οπές εξαερισμού που ανοίγονται κατά μήκος του άνω άκρου. Ο ανεμιστήρας είναι τοποθετημένος απέναντι από το Raspberry Pi. Δεν υπάρχει διακόπτης ενεργοποίησης/απενεργοποίησης καθώς δεν θέλω να ενθαρρύνω το κλείσιμο του Raspberry Pi χωρίς επίσημη εντολή "sudo shutdown now" (δηλαδή δεν θέλω να απενεργοποιηθεί πολύ εύκολα η τροφοδοσία).

Βήμα 7: Κατασκευή: ο πίνακας Proto

Κατασκευή: το Proto Board
Κατασκευή: το Proto Board

Ο πίνακας proto περιέχει έναν ρυθμιστή 5v, καπάκι φίλτρου, τρανζίστορ ισχύος (που κινούν τη σερβο και τη βαλβίδα νερού) και έναν διακόπτη εντοπισμού σφαλμάτων.

Βήμα 8: Κατασκευή: Κάμερα Raspberry Pi

Κατασκευή: Κάμερα Raspberry Pi
Κατασκευή: Κάμερα Raspberry Pi

Η κάμερα Raspberry Pi συνδέεται απευθείας με το Raspberry Pi μέσω του καλωδίου κορδέλας και είναι τοποθετημένη στην διαφανή πλαστική πλάκα που καλύπτει την εγκοπή προβολής στο μπροστινό μέρος του κουτιού.

Βήμα 9: Λίστα μερών

Το έργο κατέληξε να κοστίζει περίπου $ 120. Το μεγαλύτερο μέρος του κόστους του έργου είναι το Raspberry Pi, η κάμερα, το σερβο και τα τροφοδοτικά. Βρήκα τα περισσότερα από τα εξαρτήματα στο EBay ή το Amazon και τα υδραυλικά μέρη στο τοπικό κατάστημα υλικού.

  • Raspberry Pi 3 (Amazon) $ 38
  • Κάμερα NoIR (EBay) $ 30
  • 5v Analog Servo (ροπή 4kg-cm) (EBay) $ 10
  • 5v/2.4A Τροφοδοτικό τοίχου (EBay) 8 $
  • 12v ½”Βαλβίδα νερού (EBay) 5 $
  • Tubing, Pipe-Couplers (Osh) $ 5
  • Πλαστικό κιβώτιο πυρομαχικών (Harbor Freight) $ 5
  • 12v/1.5A Τροφοδοτικό τοίχου (EBay) 5 $
  • IR Illuminator (EBay) 4 $
  • Διάφορα Εξαρτήματα (Αντιστάσεις, Διακόπτες, Δίοδο) 2 $
  • CPU Fan (EBay) 2 $
  • Proto Board, Standoffs, Screws (EBay) $ 2
  • (2) Τρανζίστορ ισχύος (2n5296) (EBay) $ 1
  • 5v Ρυθμιστής (LM7805) (EBay) $ 1
  • Clear Plastic 3/32”(Πατήστε Διάφορα πλαστικά δοχεία) $ 1
  • Καλώδιο τροφοδοσίας (Osh) $ 1

Καταστήματα/ιστότοποι από όπου αγόρασα αντικείμενα:

  • Ιστότοπος Alice1101983 EBay:
  • Ιστοσελίδα 2bevoque EBay:
  • Harbor Freight
  • Υλικό Προμήθειας Οπωρώνων
  • Αμαζόνα
  • Πατήστε Πλαστικά

Συνιστάται: