Διαφήμιση
Κρύψτε το στο σαλόνι σας και γελάστε καθώς το κουτί TiVo φαίνεται ότι κατέχεται από έναν δαίμονα που απαιτεί να παρακολουθήσει κανάλια τυροπωλείων. Είτε ο απώτερος στόχος σας είναι να απενεργοποιήσετε κάθε τηλεόραση στη γειτονιά ή να δημιουργήσετε μια καθολική Τηλεχειριστήριο Siri, αυτό το έργο χρησιμεύει ως ένα εξαιρετικό σημείο εκκίνησης για να μάθετε τα βασικά του ελέγχου IR και δέκτες.
Σε αυτήν τη «φάρσα», θα φτιάχνουμε μια συσκευή που θα καταγράφει και θα αναπαράγει μια σειρά απομακρυσμένων εντολών IR. Θα λειτουργεί με οποιαδήποτε συσκευή που χρησιμοποιεί τηλεχειριστήριο υπερύθρων ή ακόμα και συνδυασμό συσκευών ταυτόχρονα - καταγράφοντας έως και 10 πατήματα πλήκτρων.
Συστατικά
Ακολουθεί μια λίστα με τα πράγματα που θα χρειαστείτε για αυτό το έργο:
- Σύρματα Arduino και patch
- Δέκτης υπερύθρων, όπως το TSOP382 - αλλά θα πρέπει να μπορείτε να βρείτε έναν συμβατό σε παλιά ηλεκτρονικά. Έβγαλα το δικό μου από έναν εφεδρικό ελεγκτή φωτισμού RGB. Συνήθως έχουν 3 πόδια και είναι μαύρο, με τη μία πλευρά να μοιάζει με LED που έχει τεμαχιστεί στο μισό και έχει κολλήσει. Είμαι σίγουρος ότι υπάρχει μια τεχνική λέξη για αυτό.
- LED πομπού IR, όπως το TIL38 - και πάλι, αυτά είναι αρκετά κοινά, αλλά αγόρασα ένα νέο υψηλής ισχύος από το Maplin. μοιάζουν με οποιοδήποτε άλλο LED, οπότε φροντίστε να μην τα αναμιγνύετε στο κιτ ηλεκτρονικών σας!
- Κατάλληλη αντίσταση για το IR LED σας - χρησιμοποιήστε το Αριθμομηχανή LED δεδομένης της τάσης τροφοδοσίας (5 V από το Arduino) και της τάσης προς τα εμπρός και του ρεύματος από το φύλλο δεδομένων LED (συνήθως περίπου 1,2 V @ 20 mA). Αυτό βγήκε ως 220 ohms στην περίπτωσή μου.
- Πλήκτρο και 10 χιλ. Αντίσταση και 100 ohm αντιστάσεις.
- Κατεβάστε το Απομακρυσμένη βιβλιοθήκη IR από τον Ken Shirriff από το Github και τοποθετήστε το στο δικό σας Arduino / Βιβλιοθήκες ντοσιέ. Υπάρχει επίσης κάποιο παράδειγμα κώδικα που θα χρησιμοποιήσουμε, ο οποίος θα πρέπει να είναι προσβάσιμος από το Arduino Άνοιγμα -> Βιβλιοθήκες μενού.
Καλωδίωση
Αντιμετωπίστε αυτό το κύκλωμα σε τρία μέρη - ο διακόπτης είναι λίγο τρελός, αλλά όλα τα άλλα είναι εύκολο. Θυμηθείτε ότι το κοντό πόδι του LED με την επίπεδη όψη είναι η κάθοδος (αρνητική ή γείωση). το μακρύ πόδι είναι η άνοδος (θετική).
Λήψη σημάτων
Προχωρήστε και ανοίξτε το βιβλιοθήκες / IRremote / IRrecvDemo παράδειγμα κώδικα. Βεβαιωθείτε ότι το RECV_ Καρφίτσα έχει ρυθμιστεί σωστά, μεταγλωττίστε και ανεβάστε και, στη συνέχεια, ανοίξτε την Σειριακή κονσόλα στα 9600 baud. Πιάστε οποιοδήποτε τηλεχειριστήριο που έχετε, στοχεύστε το στο δέκτη σας και ξεκινήστε να πατάτε κουμπιά. Διαφορετικά κουμπιά θα παράγουν διαφορετικούς κωδικούς. Μερικοί θα δείξουν ένα μακρύ πάτημα με τον αρχικό κωδικό τότε FFFFFF, ενώ διαφορετικά τηλεχειριστήρια μπορεί απλά να επαναλάβουν τον κωδικό ξανά.
Για μια πιο λεπτομερή προβολή των δεδομένων που λαμβάνονται, ρίξτε μια ματιά στο IRrecvDump Αντίθετα, το οποίο θα υποδεικνύει τόσο τον τύπο του λαμβανόμενου σήματος (32-bit NEC σε αυτήν την περίπτωση), όσο και τις αρχικές τιμές. Χρήσιμες πληροφορίες, αλλά στις περισσότερες περιπτώσεις θα θέλατε απλώς τις αποκωδικοποιημένες τιμές.
Επανάληψη σήματος
Δεν θα γράφουμε τη φάρσα μας σήμερα από το μηδέν, οπότε προχωρήστε και δείτε το IRκαταγραφή παράδειγμα. Η πολυπλοκότητα του κώδικα αυξάνεται πολύ εδώ, αλλά είναι κυρίως το να χειριστούμε διαφορετικούς τύπους κωδικών υπερύθρων - ουσιαστικά, αυτό που συμβαίνει μέσα στο βρόχο:
- Ελέγξτε εάν πατάτε το κουμπί, επαναλάβετε το τρέχον αποθηκευμένο σήμα εάν είναι και επαναλάβετε κάθε 50 ms μέχρι να πιέσετε.
- Εάν δεν πατηθεί και ανιχνευτεί σήμα, καταγράψτε το.
Ο μεγαλύτερος περιορισμός αυτού του παραδείγματος είναι ότι λειτουργεί μόνο με έναν κωδικό τη φορά, οπότε αν πατήσετε άλλο κουμπί απομακρυσμένου, θα αντικαταστήσει το τελευταίο. Το κουμπί απλώς αναπαράγει το τελευταίο σήμα που έλαβε. Μεταγλώττιση και εκτέλεση του κώδικα, ώστε να μπορείτε να ξεκινήσετε με αυτόν τον βασικό επαναλήπτη σήματος. Για την αναπαραγωγή ενός μόνο σήματος, λειτουργεί καλά, αλλά αυτό είναι λίγο πρακτική χρήση σε μια φάρσα ή με άλλο τρόπο.
Η φάρσα!
Ας το τροποποιήσουμε ελαφρώς για να εγγράψουμε 10 ή περισσότερα άτακτα σήματα. Μπορείτε να βρείτε το πλήρης τροποποιημένος κωδικός εδώ, αλλά εδώ είναι μια περίληψη των αλλαγών που έκανα σε περίπτωση που θέλετε να προγραμματίσετε αυτό για τον εαυτό σας:
- Ορίστε 3 νέες συστοιχίες μεγέθους 10 για την αποθήκευση ενός συνόλου σημάτων κάθε φορά που ανιχνεύεται και έναν ακέραιο για την αποθήκευση του μεγέθους αυτών των συστοιχιών.
- Αποθηκεύστε ένα ευρετήριο του πού βρισκόμαστε αυτήν τη στιγμή σε αυτόν τον πίνακα. Αυξήστε τον δείκτη κάθε φορά που εντοπίζεται ένα σήμα - αλλά μην αυξάνετε εάν το σήμα είναι κωδικός επανάληψης.
- Μια δυαδική τιμή που σταματά να καταγράφεται περισσότερο όταν φτάσουμε στο μέγιστο.
- Ένα boolean για να δείξει αν είμαστε σε λειτουργία αναπαραγωγής ή όχι, αντί να πρέπει να κρατήσετε πατημένο το κουμπί. τροποποίησε επίσης τη λογική των κουμπιών για εναλλαγή.
Σημειώστε ότι η ενδεικτική λυχνία LED στο Arduino (ακίδα 13) θα ενεργοποιηθεί μόλις γεμίσει η μνήμη. Αυτήν τη στιγμή, πρέπει να καταγράψετε 10 πατήματα κουμπιών - όχι λιγότερο - και η λειτουργία αναπαραγωγής θα περιμένει 1 δευτερόλεπτο μεταξύ κάθε επανάληψης κουμπιού. Εδώ είναι σε δράση:
Μπορείτε είτε να παίξετε κάνοντας περισσότερες φάρσες IR, είτε να θεωρήσετε αυτό ένα καλό ξεκίνημα σε ένα πιο επικό έργο αυτοματισμού σπιτιού Οδηγός οικιακού αυτοματισμού με Raspberry Pi και ArduinoΗ αγορά οικιακού αυτοματισμού πλημμυρίζει ακριβά καταναλωτικά συστήματα, ασυμβίβαστα μεταξύ τους και δαπανηρή εγκατάσταση. Εάν έχετε ένα Raspberry Pi και ένα Arduino, μπορείτε βασικά να επιτύχετε το ίδιο πράγμα στο ... Διαβάστε περισσότερα ; και μην ξεχάσετε να δείτε όλα τα άλλα Έργα Arduino. Μοιραστείτε τις δημιουργίες σας (ή προβλήματα) στα σχόλια και δείξτε την εκτίμησή σας για αυτό το άρθρο, κοινοποιώντας το στα αγαπημένα σας κοινωνικά δίκτυα!
Πιστωτική εικόνα: Ντα Γκάουτι
Ο James έχει πτυχίο Τεχνητής Νοημοσύνης και είναι πιστοποιημένο με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής του MakeUseOf και περνά τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Δημιουργεί υπολογιστές από τότε που ήταν παιδί.