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

Hummingbird Detector/Picture Taker: 12 βήματα (με εικόνες)
Hummingbird Detector/Picture Taker: 12 βήματα (με εικόνες)

Βίντεο: Hummingbird Detector/Picture Taker: 12 βήματα (με εικόνες)

Βίντεο: Hummingbird Detector/Picture Taker: 12 βήματα (με εικόνες)
Βίντεο: KOSPET TANK T2 - распаковка и знакомство с брутальными бронированными смарт часами🔥 2024, Ιούλιος
Anonim
Ανιχνευτής/λήψης εικόνων κολιμπρί
Ανιχνευτής/λήψης εικόνων κολιμπρί

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

Πάντα σκόπευα να χρησιμοποιήσω έναν μικροελεγκτή για να το κάνω αυτό. Ο μικροελεγκτής θα μπορεί να οδηγεί το κλείστρο της κάμερας υπό έλεγχο λογισμικού. Αλλά ο αισθητήρας για την ανίχνευση ενός μικροσκοπικού κολιμπρί ήταν άλλο πράγμα. Θα μπορούσα να είχα χρησιμοποιήσει έναν αισθητήρα κίνησης αλλά ήθελα να δοκιμάσω κάτι μοναδικό. Αποφάσισα να χρησιμοποιήσω τον ήχο ως έναυσμα.

Βήμα 1: Επιλέγοντας έναν μικροελεγκτή

Επιλογή μικροελεγκτή
Επιλογή μικροελεγκτή

Ο μικροελεγκτής που επέλεξα ήταν ένας PJRC Teensy. Το Teensy χρησιμοποιεί έναν μικροελεγκτή ARM, συγκεκριμένα, έναν ARM Cortex M4. Το Cortex M4 περιέχει το υλικό για την εκτέλεση ενός FFT (Fast Fourier Transform) που θα έκανε την ανίχνευση. Το PJRC πωλεί επίσης μια πλακέτα ήχου που σας επιτρέπει να χρησιμοποιήσετε το Teensy για αναπαραγωγή μουσικής καθώς και εγγραφή ήχου με εξωτερική είσοδο ή, ένα μικρό μικρόφωνο που μπορείτε να προσθέσετε στον πίνακα. Το σχέδιό μου ήταν να κάνω τον Teensy να εκτελέσει ένα FFT στον ήχο από το μικρόφωνο.

Βήμα 2: FFT;

FFT
FFT

Ο FFT είναι ένας μαθηματικός τύπος/αλγόριθμος που μετατρέπει ένα σήμα από τον τομέα χρόνου στον τομέα συχνοτήτων. Αυτό σημαίνει ότι παίρνει τον ηχητικό δείγμα από το μικρόφωνο και τον μετατρέπει σε μεγέθη των συχνοτήτων που υπάρχουν στο αρχικό κύμα. Βλέπετε, κάθε αυθαίρετο, συνεχές κύμα μπορεί να κατασκευαστεί από μια σειρά ημιτονοειδών ή συνημιτόνων κύματα που είναι ακέραιοι πολλαπλάσιοι κάποιας συχνότητας βάσης. Ένα FFT κάνει το αντίθετο: παίρνει ένα αυθαίρετο κύμα και το μετατρέπει στα μεγέθη των κυμάτων που, αν αθροίζονται μαζί, θα δημιουργούσαν το αρχικό αυθαίρετο κύμα. Ένας ακόμη πιο απλός τρόπος για να το πω αυτό είναι, σχεδίασα να χρησιμοποιήσω λογισμικό και υλικό FFT στο Teensy για να καθορίσω αν «ακούει» το κτύπημα του φτερού ενός κολιμπρί με τη συχνότητα που εμφανίζονται τα πτερύγια των πτερύγων. Αν «ακούσει» κολιμπρί, θα στείλω μια εντολή σε μια κάμερα να τραβήξει μια φωτογραφία.

Δούλεψε! Λοιπόν, πώς το έκανα, πώς θα μπορούσατε να το κάνετε και πώς θα μπορούσατε να το κάνετε ακόμα καλύτερο;

Βήμα 3: Πώς είναι ο ήχος ενός αιωρούμενου κολιμπρί;

Πώς ακούγεται ένα αιωρούμενο κολίβριο
Πώς ακούγεται ένα αιωρούμενο κολίβριο

Πρώτα απ 'όλα, έπρεπε να καταλάβω ποια συχνότητα θα άκουγα τα πτερύγια των φτερών του κολιμπρί. Για να το προσδιορίσω, χρησιμοποίησα το iPhone μου. Τοποθέτησα το iPhone σε τρίποδο και του έβαλα να εγγράψει βίντεο σε αργή κίνηση ακριβώς μπροστά από τον τροφοδότη κολιμπρί στο κατάστρωμα μας. Μετά από ένα χρονικό διάστημα αφαίρεσα την κάμερα και κατέβασα το βίντεο. Στη συνέχεια παρακολούθησα το βίντεο ψάχνοντας ένα κολιμπρί μπροστά από τον τροφοδότη. Όταν βρήκα μια καλή ακολουθία, μέτρησα τον αριθμό των μεμονωμένων πλαισίων που χρειάστηκαν για το κολιμπρί να κτυπήσει τα φτερά του από μία θέση μέχρι την ίδια θέση. Η αργή κίνηση στο iPhone είναι περίπου 240 καρέ ανά δευτερόλεπτο. Παρατήρησα ένα κολιμπρί να αιωρείται μπροστά από τον τροφοδότη και μέτρησα 5 καρέ για να μετακινήσει τα φτερά του από την μπροστινή θέση στην πίσω θέση και μετά να επιστρέψει στην μπροστινή θέση. Αυτό είναι 5 καρέ από τα 240. Θυμηθείτε, ακούμε έναν ήχο σε κάθε κτύπημα των πτερυγίων του κολιμπρί (ένα στο μπροστινό κτύπημα και ένα στο πίσω κτύπημα). Για 5 καρέ για έναν κύκλο ή περίοδο, μπορούμε να υπολογίσουμε τη συχνότητα ως μία διαιρούμενη με την περίοδο δηλαδή 1 / (5/240) ή 48 Hz. Αυτό σημαίνει ότι όταν αυτό το κολιμπρί αιωρείται, ο ήχος που ακούμε πρέπει να είναι διπλάσιος ή περίπου 96 Hz. Η συχνότητα είναι πιθανώς μεγαλύτερη όταν πετούν και δεν αιωρούνται. Μπορεί επίσης να επηρεαστεί από τη μάζα τους, αλλά νομίζω ότι μπορούμε να υποθέσουμε ότι τα περισσότερα πτηνά του ίδιου είδους έχουν περίπου την ίδια μάζα.

Βήμα 4: Fourier Series and the Teensy

Σειρά Fourier and the Teensy
Σειρά Fourier and the Teensy

Το Teensy (χρησιμοποίησα ένα Teensy 3.2) είναι κατασκευασμένο από την PJRC (www.pjrc.com). Το FFT θα υπολογιστεί σε δείγμα ήχου. Για να αποκτήσει τον ήχο, το PJRC πουλά μια κάρτα προσαρμογέα ήχου για την Teensy (TEENSY3_AUDIO - $ 14,25). Πωλούν επίσης ένα μικρό μικρόφωνο που μπορεί να κολληθεί στην πλακέτα προσαρμογέα ήχου (MICROPHONE - $ 1,25). Ο πίνακας προσαρμογέα ήχου χρησιμοποιεί ένα τσιπ (SGTL5000) με το οποίο μπορεί να μιλήσει ο Teensy μέσω σειριακού διαύλου (I2S). Το Teensy χρησιμοποιεί το SGTL5000 για να δειγματίσει τον ήχο από το μικρόφωνο και να το ψηφιοποιήσει, δηλαδή να δημιουργήσει ένα σύνολο αριθμών που αντιπροσωπεύουν τον ήχο που ακούει το μικρόφωνο.

Ένα FFT είναι απλώς μια γρήγορη έκδοση αυτού που ονομάζεται Discrete Fourier Transform (DFT). Ένα DFT μπορεί να εκτελεστεί σε έναν αυθαίρετο αριθμό δειγμάτων, ωστόσο, ένα FFT πρέπει να έχει τα δείγματα αποθηκευμένα σε σύνολα που είναι δυαδικά πολλαπλάσια. Το υλικό Teensy μπορεί να εκτελέσει ένα FFT σε ένα σύνολο 1024 δειγμάτων (1024 = 2^10), οπότε αυτό θα χρησιμοποιήσουμε.

Ένα FFT παράγει συνήθως, ως έξοδο, τα μεγέθη ΚΑΙ τις σχέσεις φάσης μεταξύ των διαφόρων κυμάτων που αντιπροσωπεύονται. Για αυτήν την εφαρμογή δεν μας απασχολούν οι σχέσεις φάσης, αλλά μας ενδιαφέρουν τα μεγέθη και η συχνότητά τους.

Η πλακέτα ήχου Teensy δοκιμάζει ήχο σε συχνότητα 44, 100 Hz. Έτσι, 1024 δείγματα σε αυτή τη συχνότητα αντιπροσωπεύουν ένα χρονικό διάστημα 1024/44100 ή περίπου 23,2 χιλιοστά του δευτερολέπτου. Σε αυτήν την περίπτωση, το FFT θα παράγει ως έξοδο, μεγέθη που είναι ακέραια πολλαπλάσια της περιόδου δείγματος των 43 Hz (και πάλι, 1/0.0232 ισούται με περίπου 43 Hz). Θα θέλαμε να αναζητήσουμε μεγέθη που είναι περίπου διπλάσια αυτής της συχνότητας: 86 Hz. Δεν είναι ακριβώς η συχνότητα των υπολογιζόμενων πτερυγίων κολιμπρί μας, αλλά, είναι αρκετά κοντά όπως θα δούμε.

Βήμα 5: Χρήση δεδομένων Fourier

Χρήση δεδομένων Fourier
Χρήση δεδομένων Fourier

Οι βιβλιοθήκες που παρέχει το PJRC για το Teensy θα επεξεργαστεί τα δείγματα και θα επιστρέψει μια σειρά τιμών μεγέθους. Θα αναφερθούμε σε κάθε μέγεθος στον πίνακα που επιστρέφεται ως κάδος. Ο πρώτος κάδος (στο μηδέν μετατόπισης στον πίνακα δεδομένων που επιστρέφουμε) είναι η μετατόπιση DC του κύματος. Μπορούμε να αγνοήσουμε με ασφάλεια αυτήν την τιμή. Ο δεύτερος κάδος (στην αντιστάθμιση 1) θα αντιπροσωπεύει το μέγεθος του στοιχείου 43 Hz. Αυτή είναι η βασική μας περίοδος. Ο επόμενος κάδος (στην αντιστάθμιση 2) θα αντιπροσωπεύει το μέγεθος του στοιχείου 86 Hz και ούτω καθεξής. Κάθε επόμενος κάδος είναι ένα ακέραιο πολλαπλάσιο της βασικής περιόδου (43 Hz).

Τώρα εδώ είναι που γίνεται λίγο περίεργο. Εάν χρησιμοποιούσαμε ένα FFT για να αναλύσουμε έναν τέλειο ήχο 43 Hz, τότε ο FFT θα επέστρεφε τον πρώτο κάδο σε μεγάλο μέγεθος και όλοι οι υπόλοιποι κάδοι θα ήταν ίσοι με το μηδέν (και πάλι, σε έναν τέλειο κόσμο). Εάν ο ήχος που καταγράψαμε και αναλύσαμε ήταν 86 Hz, τότε ο κάδος στην μετατόπιση ένα θα ήταν μηδέν και ο κάδος στην μετατόπιση 2 (ο δεύτερος αρμονικός) θα είχε μεγάλο μέγεθος και οι υπόλοιποι κάδοι θα ήταν μηδέν, και ούτω καθεξής. Αλλά αν καταγράφαμε τον ήχο ενός κολιμπρί και ήταν 96 Hz (όπως μέτρησα στο ένα πουλί μου), τότε το offset 2 bin @ 86 Hz θα είχε ένα μέγεθος ελαφρώς χαμηλότερης τιμής (από το τέλειο κύμα 86 Hz) και οι κάδοι γύρω του (ένας χαμηλότερος και μερικοί υψηλότερος) θα έχουν ο καθένας μια φθίνουσα μη μηδενική τιμή.

Εάν το μέγεθος δείγματος για το FFT μας ήταν μεγαλύτερο από 1024 ή εάν η συχνότητα δειγματοληψίας ήχου ήταν χαμηλότερη, θα μπορούσαμε να κάνουμε την ανάλυση των κάδων μας καλύτερη (δηλαδή μικρότερη). Αλλά ακόμα και αν αλλάξουμε αυτά τα πράγματα για να κάνουμε τους κάδους FFT μας 1 Hz πολλαπλάσια της βασικής περιόδου, θα εξακολουθήσουμε να αντιμετωπίζουμε αυτήν την «διαρροή» κάδου. Αυτό συμβαίνει γιατί δεν θα είχαμε ποτέ μια συχνότητα πτέρυγας που προσγειώθηκε, πάντα και ακριβώς, σε έναν μόνο κάδο. Αυτό σημαίνει ότι δεν μπορούμε απλώς να βασίσουμε τον εντοπισμό ενός κολιμπρί στην τιμή στον κάδο μετατόπισης 2 και να αγνοήσουμε τα υπόλοιπα. Χρειαζόμαστε έναν τρόπο ανάλυσης των δεδομένων σε μερικούς κάδους για να προσπαθήσουμε να τα κατανοήσουμε. Περισσότερα για αυτό αργότερα.

Βήμα 6: Ξεκινήστε την κατασκευή

Ξεκινήστε την Κατασκευή
Ξεκινήστε την Κατασκευή
Ξεκινήστε την Κατασκευή
Ξεκινήστε την Κατασκευή

Για το πρωτότυπο ανιχνευτή κολιμπρί, χρησιμοποίησα πολύ μακριές καρφίτσες αρσενικού αρσενικού που κολλήθηκαν στις καρφίτσες στο Teensy. Το έκανα αυτό για να μπορέσω να συνδέσω το Teensy σε ένα μικρό ψωμί χωρίς συγκόλληση. Το έκανα επειδή υπέθεσα ότι θα έκανα πολλές αλλαγές στο πρωτότυπο και με το breadboard, θα μπορούσα να αλλάξω αυτό και απλά να κάνω άλματα καλωδίων όπου χρειαζόμουν. Συγκόλλησα θηλυκές λωρίδες στην κάτω πλευρά της πλακέτας ήχου που της επιτρέπει να συνδέεται πάνω από το Teensy. Το μικρόφωνο είναι κολλημένο στην επάνω πλευρά της πλακέτας ήχου (δείτε εικόνες). Περισσότερες λεπτομέρειες σχετικά με τη συναρμολόγηση μπορείτε να βρείτε στον ιστότοπο του PJRC:

(https://www.pjrc.com/store/teensy3_audio.html).

Βήμα 7: Υλικό για να τραβήξετε μια εικόνα

Υλικό για να τραβήξετε μια εικόνα
Υλικό για να τραβήξετε μια εικόνα
Υλικό για να τραβήξετε μια εικόνα
Υλικό για να τραβήξετε μια εικόνα

Έχω (η γυναίκα μου έχει) μια ψηφιακή φωτογραφική μηχανή Canon Rebel. Υπάρχει μια υποδοχή στην κάμερα που σας επιτρέπει να συνδέσετε ένα χειροκίνητο τηλεχειριστήριο κλείστρου. Αγόρασα ένα χειροκίνητο τηλεχειριστήριο από την B&H Photo. Το καλώδιο έχει τη σωστή υποδοχή για να χωρέσει την κάμερα στο ένα άκρο και έχει μήκος περίπου 6 πόδια. Έκοψα το καλώδιο στο τέλος κοντά στο κουτί ελέγχου κουμπιών και έβγαλα πίσω τα καλώδια και τα κόλλησα σε τρεις καρφίτσες κεφαλίδας που μπορούσα να συνδέσω στο ψωμί. Υπάρχει ένα γυμνό καλώδιο που είναι γειωμένο και δύο άλλα σήματα: το άκρο είναι σκανδάλη (ροζ) και το δαχτυλίδι (λευκό) είναι εστιασμένο (δείτε τις εικόνες). Συντομεύοντας το άκρο ή/και το δακτύλιο στο έδαφος λειτουργεί το κλείστρο και η εστίαση στην κάμερα.

Χρησιμοποιώντας ένα καλώδιο βραχυκυκλωτήρα έτρεξα ένα κοινό έδαφος από το Teensy σε μια περιοχή όπου θα μπορούσα να το χρησιμοποιήσω στο breadboard. Συνδέω επίσης την άνοδο ενός LED στην ακίδα 2 στο Teensy και την κάθοδο του LED σε μια αντίσταση (100-220 ohms) στη γείωση. Συνδέω επίσης τον ακροδέκτη 2 του Teensy σε μια αντίσταση 10K και την άλλη πλευρά του αντιστάτη συνδέω με τη βάση ενός τρανζίστορ NPN (ένα 2N3904 που βρίσκεται παντού). Συνδέω τον εκπομπό του τρανζίστορ στη γείωση και τον συλλέκτη συνδέω με τα λευκά και ροζ καλώδια από το καλώδιο που πηγαίνει στην κάμερα. Το γυμνό σύρμα, πάλι, συνδέθηκε με τη γείωση. Κάθε φορά που ανάβει το LED από το Teensy, το τρανζίστορ NPN θα ανάβει επίσης και θα ενεργοποιεί την κάμερα (και την εστίαση). Δείτε το σχηματικό.

Βήμα 8: Σχεδιασμός συστήματος

Σχεδιασμός συστήματος
Σχεδιασμός συστήματος

Επειδή οι συχνότητες ανατροπής των πτερυγίων του Κολίβρου πιθανότατα δεν ξεπερνούν τις μερικές εκατοντάδες Hz, τότε δεν χρειάζεται πραγματικά να ηχογραφήσουμε συχνότητες ήχου πάνω από, ας πούμε, μερικές εκατοντάδες Hz. Αυτό που χρειαζόμαστε είναι ένας τρόπος φιλτραρίσματος μόνο των συχνοτήτων που θέλουμε. Ένα φίλτρο ζώνης ή ακόμα και φίλτρο χαμηλής διέλευσης θα ήταν υπέροχο. Παραδοσιακά θα εφαρμόζαμε ένα φίλτρο στο υλικό χρησιμοποιώντας OpAmps ή φίλτρα μεταγωγής πυκνωτή. Αλλά χάρη στην ψηφιακή επεξεργασία σήματος και τις βιβλιοθήκες λογισμικού της Teensy, μπορούμε να χρησιμοποιήσουμε ένα ψηφιακό φίλτρο (δεν χρειάζεται συγκόλληση… μόνο λογισμικό).

Το PJRC διαθέτει ένα εξαιρετικό GUI που σας επιτρέπει να μεταφέρετε και να αποθέτετε το ηχοσύστημά σας για την Teensy και την πλακέτα ήχου. Μπορείτε να το βρείτε εδώ:

www.pjrc.com/teensy/gui/

Αποφάσισα να χρησιμοποιήσω ένα από τα διπλά τετραγωνικά φίλτρα που παρέχονται από το PJRC για να περιορίσω τις συχνότητες ήχου από το μικρόφωνο (φίλτρο). Έχω καταρρεύσει τρία τέτοια φίλτρα και τα έθεσα για λειτουργία bandpass στα 100 Hz. Αυτό το φίλτρο θα επιτρέψει στις συχνότητες του συστήματος λίγο πάνω και λίγο κάτω από τη συχνότητα που μας ενδιαφέρει.

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

Αφού κάνετε όλη αυτή την κατασκευή μπλοκ, κάντε κλικ στο Εξαγωγή. Αυτό εμφανίζει ένα παράθυρο διαλόγου όπου μπορείτε να αντιγράψετε τον κώδικα που δημιουργήθηκε από το μπλοκ διάγραμμα και να τον επικολλήσετε στην εφαρμογή Teensy. Αν κοιτάξετε τον κώδικα, μπορείτε να δείτε ότι είναι μια υπόθεση κάθε χειριστηρίου μαζί με τις "συνδέσεις" μεταξύ των στοιχείων.

Βήμα 9: Κωδικός

Κώδικας
Κώδικας

Θα χρειαζόταν πολύς χώρος σε αυτό το Instructable για να εξεταστεί λεπτομερώς το λογισμικό. Αυτό που θα προσπαθήσω να κάνω είναι να επισημάνω μερικά από τα βασικά κομμάτια κώδικα. Αλλά αυτή δεν είναι μια πολύ μεγάλη εφαρμογή ούτως ή άλλως. Το PJRC διαθέτει ένα εξαιρετικό σεμινάριο βίντεο σχετικά με τη χρήση του Teensy και τις βιβλιοθήκες/εργαλεία ήχου (https://www.youtube.com/embed/wqt55OAabVs).

Ξεκίνησα με κάποιο παράδειγμα κώδικα FFT από το PJRC. Επικόλλησα ό, τι πήρα από το εργαλείο σχεδιασμού του ηχοσυστήματος στην κορυφή του κώδικα. Εάν κοιτάξετε τον κώδικα μετά από αυτό, θα δείτε κάποια προετοιμασία και στη συνέχεια το σύστημα αρχίζει να ψηφιοποιεί τον ήχο από το μικρόφωνο. Το λογισμικό εισέρχεται στον βρόχο «για πάντα» () και περιμένει τα δεδομένα FFT να είναι διαθέσιμα χρησιμοποιώντας μια κλήση στη συνάρτηση fft1024_1.available (). Όταν είναι διαθέσιμα δεδομένα FFT, παίρνω ένα αντίγραφο των δεδομένων και το επεξεργάζομαι. Σημειώστε ότι, συλλαμβάνω δεδομένα μόνο εάν το μεγαλύτερο μέγεθος κάδου είναι πάνω από μια καθορισμένη τιμή. Αυτή η τιμή είναι ο τρόπος με τον οποίο ορίζω την ευαισθησία του συστήματος. Εάν οι κάδοι είναι πάνω από την καθορισμένη τιμή, τότε κανονικοποιώ το κύμα και το μεταφέρω σε έναν προσωρινό πίνακα για επεξεργασία, διαφορετικά, το αγνοώ και περιμένω άλλο FFT. Πρέπει να αναφέρω ότι χρησιμοποιώ επίσης τη λειτουργία ελέγχου κέρδους μικροφώνου για να προσαρμόσω την ευαισθησία του κυκλώματος (sgtl5000_1.micGain (50)).

Η κανονικοποίηση του κύματος σημαίνει απλώς ότι ρυθμίζω όλους τους κάδους έτσι ώστε ο κάδος με τη μεγαλύτερη τιμή να είναι ίσος με έναν. Όλοι οι άλλοι κάδοι κλιμακώνονται με την ίδια αναλογία. Αυτό διευκολύνει την ανάλυση των δεδομένων.

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

Ο άλλος αλγόριθμος χρησιμοποιεί μια σταθερή συστοιχία τιμών που αντιπροσωπεύουν ένα κανονικοποιημένο FFT. Αυτά τα δεδομένα είναι τα αποτελέσματα μιας πραγματικής (βέλτιστης) υπογραφής κολιμπρί. Αυτό το αποκαλώ φράκτη. Συγκρίνω τα δεδομένα αντιστάθμισης με τα κανονικοποιημένα δεδομένα FFT για να δω εάν οι αντίστοιχοι κάδοι βρίσκονται σε απόσταση 20% μεταξύ τους. Επέλεξα το 20% αλλά, αυτή η τιμή θα μπορούσε να προσαρμοστεί εύκολα.

Μετράω επίσης πόσες φορές οι μεμονωμένοι αλγόριθμοι πιστεύουν ότι έχουν αντιστοιχία, δηλαδή, νομίζουν ότι ακούν κολιμπρί. Χρησιμοποιώ αυτήν την καταμέτρηση ως μέρος του προσδιορισμού του κολιμπρί γιατί μπορεί να συμβεί ψευδής ενεργοποίηση. Για παράδειγμα, όταν οποιοσδήποτε ήχος είναι δυνατός ή περιέχει τη συχνότητα των πτερυγίων των πτηνών, όπως το χτύπημα των χεριών, μπορεί να έχετε μια σκανδάλη. Αλλά αν η καταμέτρηση είναι πάνω από έναν συγκεκριμένο αριθμό (έναν αριθμό που επιλέγω) λέω ότι είναι κολιμπρί. Όταν συμβεί αυτό, ανοίγω τη λυχνία LED για να δείξω ότι έχουμε ένα χτύπημα και αυτό το ίδιο κύκλωμα ενεργοποιεί την κάμερα μέσω του τρανζίστορ NPN. Στο λογισμικό έθεσα τον χρόνο ενεργοποίησης της κάμερας στα 2 δευτερόλεπτα (την ώρα που είναι αναμμένο το LED και το τρανζίστορ).

Βήμα 10: Τοποθέτηση

Βάση
Βάση

Μπορείτε να δείτε στην εικόνα πώς (άδοξα) τοποθέτησα τα ηλεκτρονικά. Είχα το Teensy συνδεδεμένο σε ένα breadboard το οποίο ήταν κολλημένο σε μια πλακέτα μεταφοράς μαζί με ένα άλλο (αχρησιμοποίητο) συμβατό με Arduino (νομίζω ότι ένα Arduino Zero). Έδεσα το σύρμα ολόκληρο σε ένα μεταλλικό στύλο τέντας στο κατάστρωμα μου (πρόσθεσα επίσης ανακούφιση από πίεση στο καλώδιο που τρέχει στην κάμερα). Ο στύλος ήταν ακριβώς δίπλα στον τροφοδότη κολιμπρί. Τροφοδοτούσα τα ηλεκτρονικά με ένα μικρό τούβλο LiPo που μπορείτε να χρησιμοποιήσετε για να φορτίσετε ένα νεκρό κινητό τηλέφωνο. Το τούβλο τροφοδοσίας είχε μια υποδοχή USB πάνω του, την οποία χρησιμοποιούσα για να μεταφέρω το ρεύμα στο Teensy. Έτρεξα το καλώδιο απομακρυσμένης σκανδάλης στην Κάμερα και το συνδέσα. Wasμουν έτοιμος για κάποια δράση πουλιών!

Βήμα 11: Αποτελέσματα

Αποτελέσματα
Αποτελέσματα

Έστησα την κάμερα σε ένα τρίποδο κοντά στον τροφοδότη. Είχα την κάμερα εστιασμένη στο μπροστινό άκρο του τροφοδότη και την έβαλα σε Sport Mode, η οποία τραβά πολλές γρήγορες φωτογραφίες όταν πατάτε το κλείστρο. Με τον χρόνο κλεισίματος 2 δευτερολέπτων τράβηξα περίπου 5 φωτογραφίες ανά συμβάν ενεργοποίησης.

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

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

Βήμα 12: Τελικές σκέψεις

Τελικές σκέψεις
Τελικές σκέψεις

Αυτό ήταν ένα διασκεδαστικό έργο και, λειτουργεί. Αλλά, όπως τα περισσότερα πράγματα, υπάρχουν πολλά περιθώρια βελτίωσης. Το φίλτρο θα μπορούσε σίγουρα να είναι διαφορετικό (όπως ένα φίλτρο χαμηλής διέλευσης ή αλλαγές στη διάταξη και/ή τις παραμέτρους) και ίσως αυτό να το κάνει να λειτουργεί καλύτερα. Είμαι επίσης βέβαιος ότι υπάρχουν καλύτεροι αλγόριθμοι για δοκιμή. Θα δοκιμάσω κάποια από αυτά το καλοκαίρι.

Μου είπαν ότι υπάρχει κώδικας μηχανικής εκμάθησης ανοιχτού κώδικα εκεί έξω … ίσως το σύστημα να «εκπαιδευτεί» για να αναγνωρίζει κολιμπρί! Δεν είμαι σίγουρος ότι θα το δοκιμάσω αλλά, ίσως.

Ποια άλλα πράγματα θα μπορούσαν να προστεθούν σε αυτό το έργο; Εάν η κάμερα είχε σφραγίδα ημερομηνίας/ώρας, μπορείτε να προσθέσετε αυτές τις πληροφορίες στις εικόνες. Ένα άλλο πράγμα που μπορείτε να κάνετε είναι να ηχογραφήσετε τον ήχο και να τον αποθηκεύσετε σε κάρτα uSD (η κάρτα ήχου PJRC διαθέτει υποδοχή για ένα). Ο αποθηκευμένος ήχος μπορεί να χρησιμοποιηθεί για την εκπαίδευση ενός αλγορίθμου εκμάθησης.

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

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

Ευχαριστώ για την ανάγνωση!

Για να χρησιμοποιήσετε τον κώδικα που έχω δημοσιεύσει θα χρειαστείτε το Arduino IDE (https://www.arduino.cc/en/Main/Software). Θα χρειαστείτε επίσης τον κωδικό Teensyduino από το PJRC (https://www.pjrc.com/teensy/td_download.html).

Συνιστάται: