Πίνακας περιεχομένων:
- Βήμα 1: Μέρη
- Βήμα 2: Διαδικασία
- Βήμα 3: Προγραμματισμός
- Βήμα 4: Αντιμετώπιση προβλημάτων και τροποποίηση
- Βήμα 5: Υλικό
Βίντεο: Ανιχνευτής διάθεσης σκύλου (Raspberry Pi): 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αυτό το Instructable έχει σχεδιαστεί για να λαμβάνει τους ήχους που κάνει ένας σκύλος και να καθορίζει εάν πρέπει να πλησιάσουν ή όχι με ενδεικτικές λυχνίες LED. Οι περισσότεροι ιδιοκτήτες σκύλων γνωρίζουν τα κατοικίδια ζώα τους και μπορούν να διαβάσουν τα σήματα που δίνουν, οπότε αυτό το Instructable απευθύνεται κυρίως σε ξένους που μπορεί να έρθουν σε επαφή με το σκυλί σας.
Βήμα 1: Μέρη
Θα χρειαστείτε:
- Raspberry Pi
- Κόκκινες/πράσινες λυχνίες LED (X2)
- Οθόνη
- Πληκτρολόγιο/ποντίκι με USB
- WiFi Dongle
- Εξωτερικό μικρόφωνο USB
- Αντίσταση 330 ohm (X2)
Προαιρετικά ανταλλακτικά
- Εξωτερικό τροφοδοτικό Raspberry Pi
- Κολλάρο σκύλου
Βήμα 2: Διαδικασία
Το πρώτο βήμα για να ξεκινήσετε αυτό το έργο είναι να παρατηρήσετε τις συμπεριφορές και τα πρότυπα που σχετίζονται με το σκυλί σας. Μπορείτε να κάνετε κλικ ΕΔΩ για έναν απλό οδηγό για το τι πρέπει να αναζητήσετε. Στην περίπτωσή μου, ο σκύλος μου ουρλιάζει κάθε φορά που είναι ενθουσιασμένος ή χαρούμενος που βλέπει κάποιον και γαβγίζει κατά διαστήματα όταν είναι νευρικός ή επιδεινωμένος. Στα επόμενα βήματα θα εξηγήσω πώς να τροποποιήσω το πρόγραμμά μου για να προσαρμόσω τις συμπεριφορές του σκύλου σας.
Βήμα 3: Προγραμματισμός
Παρακάτω είναι το πρόγραμμα Python που χρησιμοποίησα για τον σκύλο μου. Στο επόμενο βήμα θα εξηγήσω πώς να τροποποιήσετε το πρόγραμμα για τη συμπεριφορά του σκύλου σας. Μην εκτελείτε το πρόγραμμα ακόμα καθώς δεν θα λειτουργήσει μέχρι να κάνετε το επόμενο βήμα.
#!/usr/bin/pythonimport pyaudio εισαγωγή sys εισαγωγή νήματος από το χρόνο εισαγωγής ύπνου από τον πίνακα εισαγωγής πίνακα εισαγωγής RPi. GPIO ως GPIO
φλοιός = 0
ουρλιαχτό = Λάθος κράτημα = 0 φλοιόςΜήκος = 5 καθυστέρηση = 0 αναμονή = 2 σημαία = 0 κόκκινο = 7 πράσινα = 5 έξοδα Σημαία = Λάθος
def toggleLightRed (γ):
GPIO.setmode (GPIO. BOARD) GPIO.setup (κόκκινο, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (πράσινο, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")
def main ():
παγκόσμιος φλοιός παγκόσμιος ουρλιαχτός παγκόσμιος κρατήστε παγκόσμιος φλοιόςΜήκος παγκόσμια καθυστέρηση παγκόσμια σημαία παγκόσμια κόκκινη παγκόσμια πράσινη
κομμάτι = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channel = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (red, GPIO. OUT) GPIO.setup (green, GPIO. OUT) try: print "Detection initialized" while True: try: data = stream.read (κομμάτι) εκτός από το IOError ως ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> threshold: delay = 0 κράτημα = κράτημα+1 δοκιμή: data = stream.read (chunk) εκτός IOError as ex: if ex [1]! = Pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) if hold> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (green) GPIO.cleanup () elif hold> 0 and hold
αν _name_ == '_main_':
κύριος()
Βήμα 4: Αντιμετώπιση προβλημάτων και τροποποίηση
Ρύθμιση
Πριν να εκτελέσετε το πρόγραμμα, θα χρειαστεί να πληκτρολογήσετε τα ακόλουθα στο τερματικό για να εγκαταστήσετε το PyAudio:
sudo apt-get intall python-pyaudio
Μετά από αυτό μπορείτε να δοκιμάσετε να εκτελέσετε το πρόγραμμα για να βεβαιωθείτε ότι λειτουργεί σωστά.
Αντιμετώπιση προβλημάτων
Ενδέχεται να αντιμετωπίσετε το ακόλουθο σφάλμα:
IOError: [Η είσοδος Errno ξεχείλισε] -9981
Για να το διορθώσετε, απλώς αυξήστε τον αριθμό που έχει εκχωρηθεί στο μεταβλητό κομμάτι έως ότου το σφάλμα δεν εμφανίζεται πλέον.
Τροποποίηση
Η μεταβλητή φλούδαΜήκος υπαγορεύει τον αριθμό των βρόχων του προγράμματος πριν ένας θόρυβος δεν θεωρείται πλέον ως φλοιός, αλλά ως ουρλιάζοντας. Εάν τα σκυλιά σας ουρλιάζουν αλλά το κάνουν μόνο για μια μικρή έκρηξη, θα πρέπει να μειώσετε αυτόν τον αριθμό.
Οι μεταβλητές κόκκινο και πράσινο αναφέρονται στις θύρες εξόδου που θα χρησιμοποιηθούν για τις ενδείξεις LED. Αυτά μπορούν να αλλάξουν ανάλογα με τις ανάγκες σας.
Παρόλο που δεν χρησιμοποιώ τη μεταβλητή καθυστέρηση ενεργά στο πρόγραμμά μου, μπορεί να παρατηρηθεί ότι υποδεικνύει τη συχνότητα γαβγίσματος ή ουρλιαχτού.
Η μεταβλητή κράτηση αναφέρεται στο πόσες φορές το πρόγραμμα κάνει βρόχους όπου το επίπεδο θορύβου είναι πάνω από το κατώφλι και χρησιμοποιείται για να προσδιορίσει εάν λαμβάνει χώρα ουρλιαχτό. Αυτή η μεταβλητή δεν πρέπει να τροποποιηθεί με οποιονδήποτε τρόπο, καθώς ανιχνεύονται ουρλιαχτά μέσω του χειρισμού της μεταβλητής barkLength.
Η μεταβλητή κατωφλίου μπορεί να μειωθεί εάν ο φλοιός δεν είναι πολύ δυνατός ή ανυψωθεί εάν υπάρχει θόρυβος στο παρασκήνιο που θα μπορούσε να παρερμηνευτεί ως θόρυβος που προέρχεται από το σκύλο.
Βήμα 5: Υλικό
Σε αυτό το σημείο θα πρέπει να έχετε ένα πλήρως λειτουργικό πρόγραμμα που εμφανίζει στην οθόνη τι θα κάνει το υλικό. Αυτό το σημείο στο έργο είναι εκεί που πρέπει να αποφασίσετε εάν πρόκειται για ένα σταθερό μικρόφωνο που είναι τοποθετημένο σε ένα μέρος (π.χ. ένα μέρος στο σπίτι όπου ο σκύλος συχνάζει ή έρχεται σε επαφή με επισκέπτες) ή εάν το έργο θα ελαχιστοποιηθεί και προσαρτημένο στο κολάρο του σκύλου για να παρέχει άμεση ανατροφοδότηση στο άτομο που αλληλεπιδρά με τον σκύλο.
Ακίνητος
Το πιο εύκολο πράγμα που πρέπει να κάνετε είναι να αφήσετε τα πάντα σε ένα σανίδι, καθώς δεν θα υπάρχει κίνηση που θα μπορούσε να αποσπάσει τα καλώδια. Συνδέστε τις καθόδους των κόκκινων LED στην καρφίτσα γείωσης στο Raspberry Pi και τις ανόδους είτε μέσω αντίστασης 330 ohm είτε απευθείας στην ακίδα 7 του Raspberry Pi. Κάντε το ίδιο με τις πράσινες λυχνίες LED, αλλά συνδέστε τις ανόδους στο pin 5. Εκτελέστε το πρόγραμμα και θα πρέπει να έχετε ολοκληρώσει το έργο μόλις τροποποιήσετε τον κώδικα στις ανάγκες σας.
Μη Στατικό
Θα συνιστούσα να συμπληρώσετε πρώτα τη στατική έκδοση για να διασφαλίσετε ότι όλα λειτουργούν και στη συνέχεια να προχωρήσετε από εκεί κολλώντας τα πάντα, έτσι ώστε κανένα καλώδιο να μην αποσυνδέεται από την κίνηση του σκύλου.
Συνδέστε τις λυχνίες LED στο κολάρο έτσι ώστε να είναι και οι δύο σε μια άνετη θέση και να είναι σε θέση να τις δει κάποιος όταν πλησιάζει.
Στη συνέχεια, συνδέστε το εξωτερικό τροφοδοτικό, όπως αυτό που βλέπετε ΕΔΩ, στο βατόμουρο pi και στερεώστε το στο γιακά με τρόπο που βολεύει τον σκύλο.
Μόλις εξασφαλιστούν όλα στη θέση τους, προχωρήστε και εκτελέστε το πρόγραμμα, συνδέστε το κολάρο στο σκύλο και τελειώσατε!
Συνιστάται:
Ένας λαμπτήρας διάθεσης LED 1 $ με ATtiny13 και WS2812: 7 βήματα
Ένας λαμπτήρας διάθεσης LED 1 $ με ATtiny13 και WS2812: Αυτός είναι ένας λαμπτήρας διάθεσης χαμηλού κόστους με τέσσερις λειτουργίες. Σπινθήρα ουράνιου τόξου. Μια σπίθα φωτός κινείται προς τα πάνω κάθε φορά και αλλάζει σταδιακά το χρώμα. Λάμψη ουράνιου τόξου. Μια σταθερή λάμψη που αλλάζει σταδιακά το χρώμα.3. Προσομοίωση φωτιάς κεριών.4. Ανενεργό. Μπορείτε
Λάμπα απόστασης LED απόστασης σκύλου: 5 βήματα (με εικόνες)
LED Distance Indicator Dog Harness: Συνήθως παίρνω τον σκύλο μου Rusio για έναν περίπατο όταν δύει ο ήλιος για να μπορεί να παίζει χωρίς να ζεσταίνεται πολύ. Το πρόβλημα είναι ότι όταν βγαίνει από το λουρί μερικές φορές ενθουσιάζεται πολύ και τρέχει πιο μακριά από όσο θα έπρεπε και με χαμηλό φωτισμό και τα άλλα σκυλιά
Υπενθύμιση σίτισης σκύλου: 5 βήματα
Υπενθύμιση σίτισης σκύλου: Εάν έχετε επίσης ένα σκυλί στο σπίτι σας, μπορεί να χρειαστείτε αυτό το μηχάνημα για να σας υπενθυμίσει να ταΐσετε το σκυλί σας ή να το χρησιμοποιήσετε για να σας υπενθυμίσει ότι πότε πρέπει να περπατήσετε το σκυλί σας. Αυτό το μηχάνημα είναι πολύ μικρό και είναι εύκολο να το μεταφέρουν όλοι και είναι πολύ
Αμαξίδιο σκύλου: 4 βήματα
Αμαξίδιο σκύλου: Γεια σας σήμερα θα σας δείξω πώς να φτιάξετε μια καρέκλα για το σκυλί σας. Πήρα αυτήν την ιδέα ψάχνοντας στο διαδίκτυο για να δω τρόπους με τους οποίους οι άνθρωποι μπορούν να απολαύσουν εκεί τα μεγαλύτερα σκυλιά περισσότερο. Δεν χρειαζόμουν πραγματικά γιατί ο σκύλος μου είναι 2, αλλά ο θείος σκύλος μου που είναι 8
Λουρί τρίποδας λουριού σκύλου: 3 βήματα
Λουρί για τρίποδα για λουρί σκύλου: Προσπαθώ να βρω ή να φτιάξω ένα λουράκι για το τρίποδο μου, ώστε να είναι εύκολο να το μεταφέρω χωρίς τσάντα ή να το κρατάω στο χέρι. Έψαχνα μέσα στην ντουλάπα μου για οποιοδήποτε σχοινί, αλλά βρήκα ένα λουρί σκύλου που δεν χρησιμοποιήσαμε πια. Αυτό το λουρί σκύλου είναι περίπου 5 πόδια