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

CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο: 9 βήματα (με εικόνες)
CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο: 9 βήματα (με εικόνες)

Βίντεο: CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο: 9 βήματα (με εικόνες)

Βίντεο: CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο: 9 βήματα (με εικόνες)
Βίντεο: CribSenseSetup 2024, Νοέμβριος
Anonim
CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο
CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο
CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο
CribSense: ένα Baby Monitor χωρίς επαφή, βασισμένο σε βίντεο

Το CribSense είναι ένα μόνιτορ μωρού που βασίζεται σε βίντεο και μπορείτε να το φτιάξετε μόνοι σας χωρίς να σπάσετε την τράπεζα

Το CribSense είναι μια υλοποίηση C ++ του Video Magnification που έχει ρυθμιστεί για εκτέλεση σε Raspberry Pi 3 Model B. Κατά τη διάρκεια ενός Σαββατοκύριακου, μπορείτε να ρυθμίσετε τη δική σας οθόνη βρεφικής κούνιας που θα σας ειδοποιεί αν σταματήσει να κινείται το βρέφος σας. Ως μπόνους, όλο το λογισμικό είναι δωρεάν για μη εμπορικούς σκοπούς και είναι εύκολα επεκτάσιμο.

Το πλήρες αποθετήριο που περιέχει αρχεία προέλευσης και τεκμηρίωση μπορείτε να το βρείτε στη διεύθυνση

Ενώ πιστεύουμε ότι το CribSense είναι αρκετά διασκεδαστικό, είναι σημαντικό να θυμόμαστε ότι αυτό δεν είναι στην πραγματικότητα μια πιστοποιημένη, ανόθευτη συσκευή ασφαλείας. Δηλαδή, πρέπει να διαμορφωθεί σωστά και να έχει ένα καλά ελεγχόμενο περιβάλλον για να λειτουργήσει. Για παράδειγμα, εάν δεν έχει βαθμονομηθεί καλά και/ή το περιβάλλον στο βίντεο δεν ευνοεί τη μεγέθυνση βίντεο, ενδέχεται να μην μπορείτε να το χρησιμοποιήσετε. Το κάναμε ως ένα διασκεδαστικό έργο για να δούμε πόσο καλά θα μπορούσαμε να έχουμε υπολογιστικά βαρύ λογισμικό όπως η μεγέθυνση βίντεο που εκτελείται σε υπολογιστικά περιορισμένο υλικό όπως ένα Raspberry Pi. Κάθε πραγματικό προϊόν θα απαιτούσε πολύ περισσότερες δοκιμές από ό, τι κάναμε. Έτσι, εάν χρησιμοποιείτε αυτό το έργο, πάρτε το για αυτό που είναι: μια σύντομη εξερεύνηση μεγέθυνσης βίντεο σε ένα Pi.

Τι θα χρειαστείτε:

Raspberry Pi + Camera + Configuration Tools:

  • Raspberry Pi 3 Μοντέλο Β
  • Τροφοδοτικό 5V 2.5A Micro USB
  • Raspberry Pi NoIR Camera Module V2
  • Κάρτα MicroSD (χρησιμοποιήσαμε κάρτα κλάσης 10 16 GB)
  • Flex Cable για κάμερα Raspberry Pi (12 ")
  • Ηχεία με είσοδο 3,5 mm
  • Οθόνη HDMI
  • Πληκτρολόγιο USB
  • USB ποντίκι
  • [προαιρετικό] pύκτης Raspberry Pi (αν ανησυχείτε για τη θερμότητα, μπορείτε να κολλήσετε ένα από αυτά στο Pi σας)

Κύκλωμα IR LED για λειτουργία σε συνθήκες χαμηλού φωτισμού:

  • [3x] Δίοδοι 1N4001
  • Αντίσταση 1 Ohm, 1W
  • LED 1W IR
  • 2 καλώδια για τη σύνδεση του LED στο Pi
  • Συγκολλητικό σίδερο

Σασί:

  • Πρόσβαση σε έναν 3D εκτυπωτή (ελάχιστος όγκος κατασκευής = 9,9 "L x 7,8" W x 5,9 "H) για εκτύπωση του σασί μας. Ωστόσο, μη διστάσετε να φτιάξετε το δικό σας.
  • Κόλλα (κάθε τύπος κόλλας θα λειτουργήσει, αλλά συνιστάται θερμή κόλλα για πρωτότυπο).

Βήμα 1: Προαπαιτούμενα

Πριν ξεκινήσετε τον οδηγό βήμα προς βήμα, θα πρέπει να έχετε ήδη εγκαταστήσει την πιο πρόσφατη έκδοση του Raspbian στην κάρτα SD και να έχετε εξασφαλίσει ότι το Pi σας είναι λειτουργικό. Θα χρειαστεί επίσης να ενεργοποιήσετε τη μονάδα κάμερας για να έχετε πρόσβαση στην κάμερα.

Βήμα 2: Εγκατάσταση του Λογισμικού CribSense

Το CribSense εξαρτάται από την αυτόματη διαμόρφωση, το libtool, το OpenCV και το libcanberra, καθώς και κοινά εργαλεία λογισμικού.

  • Το autoconf και το libtool χρησιμοποιούνται για την αυτόματη διαμόρφωση makefiles και τη δημιουργία σεναρίων για το CribSense σε πολλές πλατφόρμες (όπως Linux, OSX και το Raspberry Pi).
  • Το OpenCV είναι ένα ισχυρό πακέτο όρασης υπολογιστή που χρησιμοποιείται για την επεξεργασία εικόνας και αποτελεί τη βάση του κώδικα μεγέθυνσης βίντεο και ανίχνευσης κίνησης. Έχει μεγάλη υποστήριξη, είναι εύκολο στη χρήση και έχει καλή απόδοση.
  • Το libcanberra είναι μια απλή βιβλιοθήκη για την αναπαραγωγή ήχων εκδηλώσεων. Χρησιμοποιείται για την αναπαραγωγή του ήχου συναγερμού για το CribSense.

Επισκεφθείτε τις μεμονωμένες σελίδες τους για να λάβετε πλήρεις λεπτομέρειες.

Εγκαταστήστε τα ανοίγοντας ένα τερματικό στο Pi σας και τρέχοντας:

sudo apt-get install git build-essential autoconf libtool libopencv-dev libcanberra-dev

Στη συνέχεια, πρέπει να ρυθμίσετε το πρόγραμμα οδήγησης κάμερας σε αυτόματη φόρτωση προσθέτοντας bcm2835-v4l2 στο `/etc/modules-load.d/modules.conf`. Το modules.conf θα πρέπει να μοιάζει με αυτό:

# /etc /modules: μονάδες πυρήνα για φόρτωση κατά την εκκίνηση.

# # Το αρχείο περιέχει τα ονόματα των μονάδων πυρήνα που πρέπει να φορτωθούν # κατά την εκκίνηση, ένα ανά γραμμή. Οι γραμμές που ξεκινούν με "#" αγνοούνται. i2c-dev bcm2835-v4l2

Μόλις το αρχείο έχει επεξεργαστεί, πρέπει να κάνετε επανεκκίνηση του Pi σας. Αυτό το πρόγραμμα οδήγησης χρησιμοποιείται από το CribSense για να τραβήξει απευθείας καρέ από τη φωτογραφική μηχανή NoIR.

Στη συνέχεια, μπορείτε να κλωνοποιήσετε το αποθετήριο εκτελώντας:

git clone

Στη συνέχεια, μεταβείτε στο αποθετήριο και δημιουργήστε το λογισμικό εκτελώντας

cd CribSense

./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug make sudo make install sudo systemctl daemon-reload

Συγχαρητήρια, έχετε εγκαταστήσει όλο το απαραίτητο λογισμικό!

Διαμόρφωση

Το CribSense μπορεί να προσαρμοστεί μέσω ενός απλού αρχείου διαμόρφωσης INI. Μετά την εκτέλεση `make install`, το αρχείο διαμόρφωσης βρίσκεται στη διεύθυνση /etc/cribsense/config.ini. Μπορείτε να δείτε και να επεξεργαστείτε αυτές τις παραμέτρους εκτελώντας

sudo nano /etc/cribsense/config.ini

Μια σύντομη εξήγηση για κάθε παράμετρο δίνεται στην προεπιλεγμένη διαμόρφωση, αλλά περισσότερες λεπτομέρειες είναι διαθέσιμες στη διεύθυνση https://lukehsiao.github.io/CribSense/setup/config/. Θα συζητήσουμε επίσης τη βαθμονόμηση και τη διαμόρφωση στο τέλος αυτού του οδηγού.

Εκτέλεση CribSense

Το CribSense σχεδιάστηκε για να λειτουργεί κατά την εκκίνηση χρησιμοποιώντας μια υπηρεσία systemd. Ενώ είστε συνδεδεμένοι στο Raspberry Pi με το πληκτρολόγιο και το ποντίκι σας, θα πρέπει να βεβαιωθείτε ότι οι παράμετροι διαμόρφωσης λειτουργούν για την κούνια σας. Mayσως χρειαστεί να ρυθμίσετε ξανά αυτές τις παραμέτρους εάν τις μετακινήσετε.

Ενώ συντονίζετε τις παραμέτρους, μπορείτε να εκτελέσετε cribsense κατά βούληση από τη γραμμή εντολών εκτελώντας

cribsense --config /etc/cribsense/config.ini

Μόλις είστε ικανοποιημένοι, μπορείτε να ενεργοποιήσετε την αυτόματη εκτέλεση εκτελώντας

sudo systemctl ενεργοποιήστε το cribsense

Μπορείτε να σταματήσετε την αυτόματη εκτέλεση του cribsense τρέχοντας

sudo systemctl απενεργοποιήστε το cribsense

Επισκόπηση λογισμικού

Το λογισμικό CribSense είναι η καρδιά και η ψυχή αυτού του έργου. Είδαμε μερικά από τα υπέροχα demos της μεγέθυνσης βίντεο από το MIT και θέλαμε να δοκιμάσουμε και να τρέξουμε έναν παρόμοιο αλγόριθμο σε ένα Raspberry Pi. Αυτό απαιτούσε πάνω από 10 φορές επιτάχυνση από το έργο του tbl3rd στην υλοποίηση μεγέθυνσης βίντεο C ++ για να εκτελεστεί σε πραγματικό χρόνο στο Pi. Οι απαιτούμενες βελτιστοποιήσεις καθοδήγησαν τον σχεδιασμό του λογισμικού μας.

Σε υψηλό επίπεδο, το CribSense κάνει επανειλημμένα κύκλους μέσω ενός μηχανήματος κατάστασης λογισμικού. Πρώτον, διαιρεί κάθε πλαίσιο βίντεο 640x480 σε κλίμακα του γκρι σε 3 οριζόντιες ενότητες (640x160) για καλύτερη τοποθεσία cache. Στη συνέχεια, μεγεθύνει κάθε ζώνη σε ξεχωριστό νήμα και παρακολουθεί την κίνηση που φαίνεται στο πλαίσιο. Μετά την παρακολούθηση της κίνησης για αρκετά δευτερόλεπτα, καθορίζει την κύρια περιοχή κίνησης και περνάει το πλαίσιο σε αυτήν. Αυτό μειώνει τον συνολικό αριθμό εικονοστοιχείων που χρειάζεται να επεξεργαστεί ο αλγόριθμος. Στη συνέχεια, το CribSense παρακολουθεί την ποσότητα κίνησης στο περικομμένο ρεύμα και ηχεί συναγερμός εάν δεν γίνει αντιληπτή καμία κίνηση για διαμορφώσιμο χρονικό διάστημα. Σε τακτά χρονικά διαστήματα, το CribSense θα ανοίγει ξανά την προβολή του για να παρακολουθεί το πλήρες πλαίσιο σε περίπτωση που το βρέφος έχει μετακινηθεί και ξανακοπεί γύρω από τη νέα κύρια περιοχή κίνησης.

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

Βελτιστοποιήσεις όπως η πολλαπλή σπείρωση, η προσαρμοστική περικοπή και οι βελτιστοποιήσεις μεταγλωττιστή μας έδωσαν περίπου 3x, 3x και 1,2x επιτάχυνση, αντίστοιχα. Αυτό μας επέτρεψε να επιτύχουμε την επιτάχυνση 10 φορές που απαιτείται για να τρέξουμε σε πραγματικό χρόνο στο Pi.

Πλήρεις λεπτομέρειες μπορείτε να βρείτε στη σελίδα Αρχιτεκτονική λογισμικού του αποθετηρίου CribSense.

Εάν ενδιαφέρεστε για μεγέθυνση βίντεο, επισκεφθείτε τη σελίδα του MIT.

Βήμα 3: Προετοιμασία του υλικού σας: Συνδέστε την κάμερα

Προετοιμασία του υλικού σας: Συνδέστε την κάμερα
Προετοιμασία του υλικού σας: Συνδέστε την κάμερα

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

Συνοψίζοντας, θα δείτε μια καρτέλα push/pull στο πίσω μέρος της κάμερας που μπορείτε να τραβήξετε έξω για να αφήσετε το εύκαμπτο καλώδιο. Αντικαταστήστε το κοντό καλώδιο με το μακρύτερο και σπρώξτε ξανά τη γλωττίδα.

Θα παρατηρήσετε ότι έχουμε ένα καλώδιο 24 "στις φωτογραφίες μας. Wasταν πολύ μεγάλο. Το καλώδιο 12" στη λίστα υλικών έχει πολύ πιο λογικό μήκος.

Βήμα 4: Προετοιμασία του υλικού σας: IR LED

Προετοιμασία του υλικού σας: IR LED
Προετοιμασία του υλικού σας: IR LED
Προετοιμασία του υλικού σας: IR LED
Προετοιμασία του υλικού σας: IR LED
Προετοιμασία του υλικού σας: IR LED
Προετοιμασία του υλικού σας: IR LED

Το CribSense είναι σχετικά εύκολο στην κατασκευή του και αποτελείται σε μεγάλο βαθμό από εμπορικά διαθέσιμα εξαρτήματα. Όπως φαίνεται στο παραπάνω σχήμα, υπάρχουν 5 κύρια εξαρτήματα υλικού, μόνο 2 από τα οποία είναι προσαρμοσμένα. Αυτή η σελίδα θα αναλύσει τον τρόπο κατασκευής του κυκλώματος IR LED και η επόμενη σελίδα θα μάθει πώς να κατασκευάσετε το πλαίσιο.

Για αυτό το μέρος, πρέπει να πάρετε το κολλητήρι σας, τα καλώδια, τις διόδους, το LED LED και την αντίσταση. Θα κατασκευάσουμε το κύκλωμα που φαίνεται στο 2ο σχήμα. Εάν είστε νέοι στη συγκόλληση, εδώ είναι ένας ωραίος οδηγός που θα σας προλάβει. Ενώ αυτός ο οδηγός συζητά τη συγκόλληση μέσω οπών, μπορείτε να χρησιμοποιήσετε τις ίδιες βασικές τεχνικές για να συνδέσετε αυτά τα εξαρτήματα μεταξύ τους, όπως φαίνεται στο 3ο σχήμα.

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

Σε παλαιότερες εκδόσεις του Pi, η μέγιστη ισχύς εξόδου αυτών των ακίδων ήταν 50mA. Το Raspberry Pi B+ το αύξησε στα 500mA. Ωστόσο, χρησιμοποιούμε απλώς τους ακροδέκτες ισχύος 5V για απλότητα, οι οποίοι μπορούν να παρέχουν έως και 1.5Α. Σύμφωνα με τις μετρήσεις μας, η μπροστινή τάση του IR LED είναι περίπου 1,7 ~ 1,9V. Παρόλο που το IR LED μπορεί να αντλήσει 500mA χωρίς να καταστραφεί, μειώνουμε το ρεύμα σε περίπου 200mA για να μειώσουμε τη θερμότητα και τη συνολική κατανάλωση ενέργειας. Τα πειραματικά αποτελέσματα δείχνουν επίσης ότι το LED IR είναι αρκετά φωτεινό με 200mA ρεύματος εισόδου. Για να γεφυρώσουμε το χάσμα μεταξύ 5V και 1.9V, χρησιμοποιούμε τρεις διόδους 1N4001 και μια αντίσταση 1 Ohm σε σειρά με το LED IR. Η πτώση τάσης πάνω στο σύρμα, τις διόδους και την αντίσταση είναι περίπου 0,2V, 0,9V (για κάθε μία) και 0,2V, αντίστοιχα. Έτσι, η τάση πάνω από το LED IR είναι 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V. Η διάχυση θερμότητας πάνω από το LED είναι 0,18W και 0,2W πάνω από την αντίσταση, όλα πολύ καλά μέσα στις μέγιστες βαθμολογίες τους.

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

Κατά τη συγκόλληση στα καλώδια, βεβαιωθείτε ότι τα καλώδια έχουν μήκος τουλάχιστον 12 ίντσες και έχουν κεφαλίδες καρφιτσών που μπορούν να γλιστρήσουν πάνω από τα GPIO του Pi.

Βήμα 5: Προετοιμασία του υλικού σας: Πλαίσιο

Προετοιμασία του υλικού σας: Πλαίσιο
Προετοιμασία του υλικού σας: Πλαίσιο
Προετοιμασία του υλικού σας: Πλαίσιο
Προετοιμασία του υλικού σας: Πλαίσιο
Προετοιμασία του υλικού σας: Πλαίσιο
Προετοιμασία του υλικού σας: Πλαίσιο

Αρχεία πηγής:

  • Υπόθεση STL
  • Υπόθεση Makerbot
  • Εξώφυλλο STL
  • Εξώφυλλο Makerbot

Χρησιμοποιήσαμε ένα απλό τρισδιάστατο πλαίσιο εκτύπωσης για να στεγάσουμε το Pi, την κάμερα και το LED. Η χρήση του σασί μας είναι προαιρετική, αν και συνιστάται για να αποτρέψετε τα μικρά παιδιά να αγγίζουν εκτεθειμένα ηλεκτρονικά κυκλώματα. Κάθε κούνια είναι διαφορετική, οπότε το σασί μας δεν περιλαμβάνει βραχίονα στήριξης. Πολλές επιλογές τοποθέτησης θα μπορούσαν να περιλαμβάνουν:

  • Δεσμοί καλωδίων
  • 3M διπλό κλείδωμα
  • Velcro
  • Ταινία-κασέτα

Εάν έχετε πρόσβαση σε ένα MakerBot Replicator (5ης γενιάς), μπορείτε απλά να κατεβάσετε τα αρχεία.makerbot για τη θήκη και να καλύψετε το MakerBot Replicator και να εκτυπώσετε. Χρειάζονται περίπου 6 ώρες για την εκτύπωση της θήκης και 3 ώρες για την εκτύπωση του εξωφύλλου. Εάν χρησιμοποιείτε διαφορετικό τύπο εκτυπωτή 3D, συνεχίστε να διαβάζετε.

Απαιτείται ελάχιστος όγκος κατασκευής 9,9 "(L) x 7,8" (W) x 5,9 "(H) για την εκτύπωση του CribSense. Εάν δεν έχετε πρόσβαση σε έναν εκτυπωτή 3D με αυτόν τον όγκο δημιουργίας, μπορείτε να χρησιμοποιήσετε μια online τρισδιάστατη εκτύπωση υπηρεσία (όπως Shapeways ή Sculpteo) για εκτύπωση CribSense. Η ελάχιστη ανάλυση εκτύπωσης είναι 0,015 ". Εάν χρησιμοποιείτε τρισδιάστατο εκτυπωτή συντηγμένου νήματος, αυτό σημαίνει ότι η διάμετρος του ακροφυσίου σας πρέπει να είναι 0,015 "ή μικρότερη. Οι εκτυπωτές με χαμηλότερη ανάλυση εκτύπωσης (μεγαλύτερες διάμετροι ακροφυσίου) ενδέχεται να λειτουργούν, αλλά το Raspberry Pi ενδέχεται να μην ταιριάζει στο πλαίσιο. Προτείνουμε το PLA (πολυγαλακτικό οξύ) ως το προτιμώμενο υλικό εκτύπωσης. Άλλα πλαστικά ενδέχεται να λειτουργήσουν, αλλά το Raspberry Pi ενδέχεται να μην ταιριάζει στην περίπτωση που ο συντελεστής θερμικής διαστολής του επιλεγμένου πλαστικού είναι μεγαλύτερος από αυτόν του PLA. Εάν ο τρισδιάστατος εκτυπωτής σας διαθέτει θερμαινόμενη πλάκα κατασκευής, κλείστε τη θερμάστρα πριν προχωρήσετε.

Ο προσανατολισμός του μοντέλου στην πλάκα κατασκευής του εκτυπωτή σας είναι κρίσιμος για μια επιτυχημένη εκτύπωση. Αυτά τα μοντέλα σχεδιάστηκαν προσεκτικά, ώστε να μην χρειάζεται να εκτυπώνονται με υλικό υποστήριξης, εξοικονομώντας έτσι πλαστικό και βελτιώνοντας την ποιότητα εκτύπωσης. Πριν προχωρήσετε, κατεβάστε τα αρχεία 3D για τη θήκη και το κάλυμμα. Κατά την εκτύπωση αυτών των μοντέλων, ο λαιμός του CribSense πρέπει να βρίσκεται επίπεδη στην πλάκα κατασκευής. Αυτό εξασφαλίζει ότι όλες οι γωνίες προεξοχής στα μοντέλα δεν υπερβαίνουν τους 45 μοίρες, εξαλείφοντας έτσι την απαίτηση για υλικό στήριξης. Για οδηγίες σχετικά με τον προσανατολισμό τρισδιάστατων μοντέλων στον όγκο κατασκευής του εκτυπωτή σας, ανατρέξτε στο εγχειρίδιο οδηγιών που συνοδεύει τον τρισδιάστατο εκτυπωτή σας. Παραδείγματα για τον προσανατολισμό κατασκευής της θήκης και του καλύμματος φαίνονται παραπάνω.

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

Βήμα 6: Προετοιμασία υλικού: Συναρμολόγηση

Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση
Προετοιμασία του υλικού σας: Συναρμολόγηση

Μόλις έχετε έτοιμο όλο το υλικό, μπορείτε να ξεκινήσετε τη συναρμολόγηση. Σε αυτή τη διαδικασία μπορεί να χρησιμοποιηθεί οποιαδήποτε κόλλα, αλλά προτείνουμε θερμή κόλλα για δύο βασικούς λόγους. Η ζεστή κόλλα στεγνώνει γρήγορα, οπότε δεν χρειάζεται να περιμένετε πολύ για να στεγνώσει η κόλλα. Επιπλέον, η θερμή κόλλα αφαιρείται εάν κάνετε λάθος. Για να αφαιρέσετε την αποξηραμένη θερμή κόλλα, βυθίστε την καυτή κόλλα σε τρίψιμο (ισοπροπυλική) αλκοόλη. Προτείνουμε συγκέντρωση 90% ή υψηλότερη, αλλά η συγκέντρωση 70% εξακολουθεί να λειτουργεί. Το μούλιασμα της αποξηραμένης θερμής κόλλας σε ισοπροπυλική αλκοόλη θα αποδυναμώσει τον δεσμό μεταξύ της κόλλας και της υποκείμενης επιφάνειας, επιτρέποντάς σας να ξεκολλήσετε καθαρά την κόλλα. Όταν εμποτίζετε την κόλλα σε ισοπροπυλική αλκοόλη, το Raspberry Pi πρέπει να απενεργοποιηθεί και να αποσυνδεθεί. Φροντίστε να αφήσετε τα πάντα να στεγνώσουν πριν εφαρμόσετε ξανά ζεστή κόλλα και ξεκινήσετε το Raspberry Pi.

Όλες οι εικόνες για αυτά τα βήματα είναι στη σειρά και ακολουθούν μαζί με τα βήματα κειμένου.

  1. Τοποθετήστε το Raspberry Pi στο πλαίσιο. Θα χρειαστεί να το λυγίσετε λίγο για να εισάγετε τη θύρα ήχου, αλλά μόλις μπει, η υποδοχή ήχου θα τη διατηρήσει στη θέση της. Μόλις είναι στη θέση του, βεβαιωθείτε ότι εξακολουθείτε να έχετε πρόσβαση σε όλες τις θύρες (π.χ. μπορείτε να συνδέσετε το καλώδιο τροφοδοσίας).
  2. Στη συνέχεια, χρησιμοποιήστε ζεστή κόλλα για να κολλήσετε το Pi στη θέση του και συνδέστε την κάμερα στο Pi. Υπάρχουν επίσης οπές βιδών, αν προτιμάτε να τις χρησιμοποιήσετε.
  3. Τώρα, κολλήστε το LED και την κάμερα στο μπροστινό κάλυμμα (εικόνα). Ξεκινήστε κολλώντας θερμά τη φωτογραφική μηχανή NoIR στην οπή της κάμερας. Βεβαιωθείτε ότι η κάμερα είναι άνετη και ευθυγραμμισμένη με το πλαίσιο. Μην χρησιμοποιείτε πολύ κόλλα. Διαφορετικά, δεν θα μπορείτε να τοποθετήσετε την κάμερα στην κύρια θήκη. Βεβαιωθείτε ότι έχετε ενεργοποιήσει το Pi και ρίξτε μια ματιά στην κάμερα (`raspistill -v`, για παράδειγμα) για να βεβαιωθείτε ότι έχει καλή γωνία και έχει καλό οπτικό πεδίο. Εάν δεν είναι, αφαιρέστε τη θερμή κόλλα και τοποθετήστε την ξανά.
  4. Στη συνέχεια, κολλήστε το LED IR στην τρύπα στο λαιμό του καλύμματος. Ο λαιμός είναι υπό γωνία 45 μοιρών για το πλευρικό φως της κούνιας, το οποίο έχει ως αποτέλεσμα περισσότερες σκιές σε συνθήκες χαμηλού φωτισμού. Αυτό προσθέτει περισσότερη αντίθεση στην εικόνα, καθιστώντας ευκολότερο τον εντοπισμό κίνησης.
  5. Συνδέστε τα καλώδια IR IR στις ακίδες κεφαλίδας του Raspberry Pi όπως φαίνεται στη σχηματική εικόνα.
  6. Συσκευάστε τα καλώδια στο πλαίσιο με τρόπο που δεν τα τσαλακώνει ή τα τεντώνει. Καταλήξαμε να διπλώσουμε το στυλ ακορντεόν του καλωδίου επειδή το εύκαμπτο καλώδιο της κάμερας ήταν πολύ μεγάλο.
  7. Με τα πάντα τοποθετημένα, ζεστή κόλλα στις άκρες όπου συναντώνται τα δύο κομμάτια, σφραγίζοντάς τα στη θέση τους.

Βήμα 7: Βαθμονόμηση

Image
Image
Βαθμονόμηση
Βαθμονόμηση

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

Εδώ είναι ένα δείγμα του αρχείου διαμόρφωσης:

[io]; Διαμόρφωση εισόδου/εξόδου

? input = path_to_file; Αρχείο εισαγωγής για χρήση input_fps = 15; fps εισόδου (40 max, 15 συνιστάται αν χρησιμοποιείτε κάμερα) full_fps = 4,5. fps στα οποία μπορούν να υποβληθούν σε επεξεργασία τα πλήρη πλαίσια crop_fps = 15. fps στα οποία μπορούν να υποβληθούν σε επεξεργασία τα περικομμένα πλαίσια κάμερα = 0. Κάμερα για χρήση πλάτος = 640? Πλάτος του ύψους εισόδου βίντεο = 480; Heψος του χρόνου εισόδου βίντεο_στο_ συναγερμό = 10; Πόσα δευτερόλεπτα να περιμένετε χωρίς κίνηση πριν από το ξυπνητήρι. [περικοπή]? Adaptive Cropping Settings crop = true; Αν θα περικόψετε ή όχι frames_to_settle = 10; # καρέ για αναμονή μετά την επαναφορά πριν από την επεξεργασία roi_update_interval = 800; # καρέ μεταξύ επανυπολογισμού ROI_window ROI = 50; # καρέ για παρακολούθηση πριν επιλέξετε ROI [κίνηση]. Ρυθμίσεις ανίχνευσης κίνησης erode_dim = 4; διάσταση του πυρήνα διάβρωσης dilate_dim = 60; διάσταση του διασταλμένου πυρήνα diff_threshold = 8; abs διαφορά που απαιτείται πριν από την αναγνώριση της διάρκειας αλλαγής = 1; # καρέ για να διατηρήσετε την κίνηση πριν επισημάνετε το πραγματικό pixel_threshold = 5; # εικονοστοιχεία που πρέπει να διαφέρουν από τη σήμανση ως κίνηση show_diff = false; εμφανίζει τη διαφορά μεταξύ 3 καρέ [μεγέθυνση]. Ρυθμίσεις μεγέθυνσης βίντεο ενισχύουν = 25; Η % ενίσχυση επιθυμητή χαμηλή αποκοπή = 0,5. Η χαμηλή συχνότητα του bandpass. high-cutoff = 1,0; Η υψηλή συχνότητα του bandpass. κατώφλι = 50; Το όριο φάσης ως % του pi. show_magnification = false? Εμφάνιση των πλαισίων εξόδου κάθε μεγέθυνσης [debug] print_times = false; Εκτύπωση χρόνων ανάλυσης

Η βαθμονόμηση του αλγορίθμου είναι μια επαναληπτική προσπάθεια, χωρίς ακριβή λύση. Σας ενθαρρύνουμε να πειραματιστείτε με διάφορες τιμές, συνδυάζοντάς τες με τις λειτουργίες εντοπισμού σφαλμάτων, για να βρείτε τον συνδυασμό παραμέτρων που ταιριάζουν περισσότερο στο περιβάλλον σας. Πριν ξεκινήσετε τη βαθμονόμηση, βεβαιωθείτε ότι το show_diff και το show_magnification έχουν οριστεί σε true.

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

Οι παράμετροι ανίχνευσης κίνησης βοηθούν στην αντιστάθμιση του θορύβου. Κατά την ανίχνευση περιοχών κίνησης, το erode_dim και το dilate_dim χρησιμοποιούνται για τη μεγέθυνση των διαστάσεων των πυρήνων OpenCV που χρησιμοποιούνται για τη διάβρωση και τη διαστολή της κίνησης, έτσι ώστε ο θόρυβος πρώτα να διαβρωθεί, στη συνέχεια το υπόλοιπο σήμα κίνησης να διαστέλλεται σημαντικά για να γίνουν εμφανείς οι περιοχές κίνησης. Αυτές οι παράμετροι μπορεί επίσης να χρειαστεί να συντονιστούν εάν η κούνια σας βρίσκεται σε πολύ υψηλή αντίθεση. Γενικά, θα χρειαστείτε υψηλότερο erode_dim για ρυθμίσεις υψηλής αντίθεσης και χαμηλότερο erode_dim για χαμηλή αντίθεση.

Εάν εκτελείτε το CribSense με show_diff = true και παρατηρείτε ότι πάρα πολύ από την έξοδο του συσσωρευτή είναι λευκό ή αν κάποιο εντελώς άσχετο μέρος του βίντεο ανιχνεύεται ως κίνηση (π.χ. μια λυχνία που τρεμοπαίζει), αυξήστε το erode_dim μέχρι μόνο το μέρος του βίντεο που αντιστοιχεί στο μωρό σας είναι το μεγαλύτερο τμήμα του λευκού. Το πρώτο σχήμα δείχνει ένα παράδειγμα όπου η διάσταση διάβρωσης είναι πολύ χαμηλή για το μέγεθος της κίνησης στο πλαίσιο, ενώ το επόμενο δείχνει ένα καλά βαθμονομημένο πλαίσιο.

Μόλις έχει βαθμονομηθεί, βεβαιωθείτε ότι το pixel_threshold έχει οριστεί σε μια τιμή τέτοια ώστε το "Pixel Movement" να αναφέρει μόνο τις κορυφαίες τιμές της κίνησης των pixel και όχι όλες (πράγμα που σημαίνει ότι πρέπει να διακόψετε τον θόρυβο). Στην ιδανική περίπτωση, θα δείτε έξοδο όπως αυτή στο τερματικό σας, όπου υπάρχει ένα σαφές περιοδικό μοτίβο που αντιστοιχεί στην κίνηση:

[info] Pixel Movement: 0 [info] Εκτίμηση κίνησης: 1.219812 Hz

[info] Pixel Movement: 0 [info] Motion Εκτίμηση: 1.219812 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 44 [info] Εκτίμηση κίνησης: 1.219812 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 1.219812 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 161 [πληροφορίες] Εκτίμηση κίνησης: 1.219812 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 121 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 86 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [info] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [info] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Pixel Movem ent: 0 [info] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Εκτίμηση: 0.841416 Hz [info] Pixel Movement: 97 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 74 [info] Motion Εκτίμηση: 0.839298 Hz [info] Pixel Κίνηση: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 60 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση pixel: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 48 [πληροφορίες] Κίνηση Εκτίμηση: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 38 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 29 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 28 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [info] Κίνηση εικονοστοιχείων: 22 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [info] Εκτίμηση κίνησης: 0.839298 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 0 [πληροφορίες] Εκτίμηση κίνησης: 0.839298 Hz

Εάν η έξοδός σας μοιάζει περισσότερο με αυτήν:

[info] Κίνηση εικονοστοιχείων: 921 [πληροφορίες] Εκτίμηση κίνησης: 1.352046 Hz

[info] Pixel Movement: 736 [info] Motion Εκτίμηση: 1.352046 Hz [info] Pixel Movement: 666 [info] Motion Εκτίμηση: 1.352046 Hz [info] Pixel Movement: 663 [info] Motion Εκτίμηση: 1.352046 Hz [info] Pixel Movement: 1196 [info] Εκτίμηση κίνησης: 1.352046 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 1235 [πληροφορίες] Εκτίμηση κίνησης: 1.352046 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 1187 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 1115 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 959 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 744 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 611 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [info] Pixel Movement: 468 [info] Motion Εκτίμηση: 1.456389 Hz [info] Pixel Movement: 371 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 307 [info] Motion Εκτίμηση: 1.456389 Hz [info] Pixel Movement: 270 [info] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 234 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 197 [πληροφορίες] Εκτίμηση κίνησης: 1.456389 Hz [info] Pixel Movement: 179 [info] Motion Εκτίμηση: 1.456389 Hz [info] Pixel Movement: 164 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 239 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 733 [info] Motion Εκτίμηση: 1.456389 Hz [info] Pixel Movement: 686 [info] Motion Εκτίμηση: 1.229389 Hz [info] Pixel Movement: 667 [info] Motion Εκτίμηση: 1.229389 Hz [info] Pixel Movement: 607 [info] Εκτίμηση κίνησης: 1.229389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 544 [πληροφορίες] Εκτίμηση κίνησης: 1.229389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 499 [πληροφορίες] Εκτίμηση κίνησης: 1.229389 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 434 [πληροφορίες] Εκτίμηση κίνησης: 1.229389 Hz [info] Pixel Movement: 396 [info] Motion Εκτίμηση: 1.229389 Hz [info] Pixel Movement: 375 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 389 [info] Motion Εκτίμηση: 1.229389 Hz [info] Pixel Movement: 305 [info] Motion Εκτίμηση: 1.312346 Hz [info] Pixel Movement: 269 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 1382 [info] Motion E stimate: 1.312346 Hz [info] Pixel Movement: 1086 [info] Motion Εκτίμηση: 1.312346 Hz [info] Pixel Movement: 1049 [info] Εκτίμηση κίνησης: 1.312346 Hz [info] Pixel Movement: 811 [info] Motion Εκτίμηση: 1.312346 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 601 [πληροφορίες] Εκτίμηση κίνησης: 1.312346 Hz [πληροφορίες] Κίνηση εικονοστοιχείων: 456 [πληροφορίες] Εκτίμηση κίνησης: 1.312346 Hz

Προσαρμόστε το pixel_threshold και το diff_threshold έως ότου εμφανιστούν μόνο οι κορυφές και η κίνηση pixel είναι 0 διαφορετικά.

Βήμα 8: Επίδειξη

Image
Image

Εδώ είναι μια μικρή επίδειξη για το πώς λειτουργεί το CribSense. Θα πρέπει να φανταστείτε ότι αυτό είναι προσαρτημένο στο πλάι μιας κούνιας.

Όταν τοποθετείτε το CribSense πάνω από το κρεβατάκι σας, θα πρέπει να βελτιστοποιήσετε την απόσταση μεταξύ βρέφους και κάμερας. Στην ιδανική περίπτωση, το στήθος του βρέφους σας θα γεμίσει λιγότερο από το 1/3 του πλαισίου. Το παιδί δεν πρέπει να είναι πολύ μακριά, αλλιώς το βίντεο χαμηλής ανάλυσης θα δυσκολευτεί να βρει αρκετές λεπτομέρειες για μεγέθυνση. Εάν η κάμερα είναι πολύ κοντά, η κάμερα μπορεί να μην μπορεί να δει το παιδί σας εάν κυλήσει ή μετακινηθεί έξω από το κάδρο. Ομοίως, εάν το παιδί βρίσκεται κάτω από μια «τεντωμένη» κουβέρτα, όπου υπάρχει περιορισμένη επαφή μεταξύ της κουβέρτας και του στήθους του παιδιού, μπορεί να είναι δύσκολο να εντοπιστεί η κίνηση. Βάλτε τα καλά!

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

Με περισσότερη δουλειά, πιστεύουμε ότι κάποιος θα μπορούσε να βελτιώσει το λογισμικό μας, έτσι ώστε η βαθμονόμηση να είναι μια πολύ πιο ομαλή διαδικασία. Στο μέλλον, θα μπορούσαν επίσης να προστεθούν πρόσθετες δυνατότητες, όπως ειδοποιήσεις push.

Βήμα 9: Αντιμετώπιση προβλημάτων

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

Ακολουθούν μερικές συμβουλές αντιμετώπισης προβλημάτων που έχουμε συγκεντρώσει κατά τη δημιουργία του CribSense.

Δεν παίζει ξυπνητήρι

  • Λειτουργούν τα ηχεία σας;
  • Μπορείτε να παίξετε άλλους ήχους από το Pi εκτός του συναγερμού CribSense;
  • Αν το Pi σας προσπαθεί να παίξει ήχο μέσω HDMI και όχι μέσω θύρας ήχου; Ελέγξτε τη σελίδα Διαμόρφωση ήχου Raspberry Pi για να βεβαιωθείτε ότι έχετε επιλέξει τη σωστή έξοδο.
  • Το λογισμικό CribSense ανιχνεύει κίνηση; Εάν το CribSense εκτελείται στο παρασκήνιο, μπορείτε να το ελέγξετε με το journalctl -f σε ένα τερματικό.
  • Εάν το CribSense ανιχνεύει πολλή κίνηση, ίσως χρειαστεί να βαθμονομήσετε το CribSense.

Το LED IR δεν λειτουργεί

  • Μπορείτε να δείτε ένα αχνό κόκκινο χρώμα όταν κοιτάτε το LED IR; Ένας ελαφρώς κόκκινος δακτύλιος πρέπει να είναι ορατός όταν η λυχνία LED είναι αναμμένη.
  • Ελέγξτε την πολικότητα των συνδέσεων. Εάν αντιστραφούν +5V και GND, δεν θα λειτουργήσει.
  • Συνδέστε το LED σε τροφοδοτικό με όριο τάσης/ρεύματος 5V/0.5A. Κανονικά, θα πρέπει να καταναλώνει 0,2Α στα 5V. Εάν δεν το κάνει, η λυχνία LED μπορεί να δυσλειτουργεί.

Το CribSense ανιχνεύει κίνηση ακόμα κι αν δεν υπάρχει βρέφος

  • Έχετε βαθμονομήσει σωστά το CribSense;
  • Θυμηθείτε, το CribSense αναζητά απλώς αλλαγές στις τιμές των εικονοστοιχείων

    • Υπάρχουν σκιές που κινούνται μέσα στο κάδρο;
    • Υπάρχει τρεμόπαιγμα ή αλλαγή φωτισμού;
    • Είναι το CribSense τοποθετημένο σε σταθερή επιφάνεια (δηλαδή κάτι που δεν θα κουνηθεί αν οι άνθρωποι περπατούν δίπλα του);
    • Υπάρχουν άλλες πηγές κίνησης στο πλαίσιο (καθρέφτες που τραβούν αντανακλάσεις κλπ);

Το CribSense ΔΕΝ ανιχνεύει κίνηση ακόμα κι αν υπάρχει κίνηση

  • Έχετε βαθμονομήσει σωστά το CribSense;
  • Υπάρχει κάτι στην κάμερα;
  • Μπορείτε να συνδεθείτε καθόλου με την κάμερα από το Raspberry Pi; Ελέγξτε εκτελώντας το raspistill -v σε ένα τερματικό για να ανοίξετε την κάμερα στο Pi για μερικά δευτερόλεπτα.
  • Εάν κοιτάξετε το sudo systemctl status cribsense, τρέχει πραγματικά το CribSense;
  • Βρίσκεται το μωρό σας κάτω από μια κουβέρτα που είναι «τεντωμένη» έτσι ώστε να μην έρχεται σε επαφή με το παιδί; Εάν υπάρχουν σημαντικά κενά αέρα μεταξύ της κουβέρτας και του παιδιού, η κουβέρτα μπορεί να καλύψει την κίνηση.
  • Μπορείτε να δείτε την κίνηση εάν ενισχύσετε περισσότερο το βίντεο;
  • Μπορείτε να δείτε την κίνηση εάν συντονίσετε τις διακοπές χαμηλής και υψηλής συχνότητας;
  • Εάν αυτό συμβαίνει μόνο σε συνθήκες χαμηλού φωτισμού, βεβαιωθήκατε ότι η βαθμονόμησή σας λειτουργεί σε συνθήκες χαμηλού φωτισμού;

Το CribSense δεν δημιουργεί

Εγκαταστήσατε όλες τις εξαρτήσεις;

Δεν μπορώ να εκτελέσω κοινή λογική από τη γραμμή εντολών

  • Κατά λάθος γράψατε κάτι κατά λάθος.
  • Υπάρχει παρωδία στο /usr /bin;
  • Ποια διαδρομή παρέχεται εάν εκτελέσετε "ποια μυρωδιά";

Συνιστάται: