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

Τηλεχειριστήριο ATtiny85 RF: 3 βήματα
Τηλεχειριστήριο ATtiny85 RF: 3 βήματα

Βίντεο: Τηλεχειριστήριο ATtiny85 RF: 3 βήματα

Βίντεο: Τηλεχειριστήριο ATtiny85 RF: 3 βήματα
Βίντεο: 433Mhz Transmitter | 433Mhz RF Transmitter And Receiver | Radio Frequency Transmitter And Receiver | 2024, Ιούλιος
Anonim
Τηλεχειριστήριο ATtiny85 RF
Τηλεχειριστήριο ATtiny85 RF

ΣΗΜΕΙΩΣΗ: Το "Εικονικό παιχνίδι κρυψίματος και αναζήτησης" με οδηγίες, δείχνει πώς να χρησιμοποιείτε αυτόν τον τύπο τηλεχειριστηρίου με μια μονάδα RXC6 που αποκωδικοποιεί αυτόματα το μήνυμα.

Όπως ανέφερα σε προηγούμενο Instructable, άρχισα πρόσφατα να παίζω με μερικές μάρκες ATtiny85. Το αρχικό έργο που είχα στο μυαλό μου ήταν να φτιάξω ένα τηλεχειριστήριο RF που θα μπορούσε να λειτουργήσει με μπαταρία νομισμάτων. Χρειάστηκε να πάω με ένα ακατέργαστο τσιπ γιατί κανένα από τα Arduinos που έχω δεν μπορεί να καλύψει τόσο την ανάγκη για πολύ χαμηλή ισχύ όσο και σχετικά μικρό μέγεθος. Ένα τροποποιημένο LilyPad ήρθε κοντά, αλλά το τσιπ είναι μια καλύτερη απάντηση. Η ιδέα δεν ήταν τόσο να αντιγράψετε ένα υπάρχον τηλεχειριστήριο όσο να δείξετε πώς μπορείτε να δημιουργήσετε το δικό σας σετ πομπού και δέκτη. Εκτός από ένα διασκεδαστικό πρόγραμμα εκμάθησης, σας επιτρέπει επίσης να δημιουργήσετε τον δικό σας «μυστικό» συνδυασμό κώδικα. Έβαλα το "μυστικό" σε εισαγωγικά επειδή είναι πολύ εύκολο να σπάσω αυτούς τους απλούς κωδικούς.

Βήμα 1: Μορφή μηνύματος RF

Μορφή μηνύματος RF
Μορφή μηνύματος RF

Για αυτό το έργο επέλεξα να αντιγράψω τα σήματα για έναν από τους ασύρματους διακόπτες μου Etekcity RF (ανατρέξτε στο Instructable μου σε αυτές τις ενότητες). Το έκανα επειδή ήμουν σε θέση να επαληθεύσω ότι ο πομπός μου λειτουργεί με τον δέκτη Etekcity και ότι ο δέκτης μου λειτουργεί με το τηλεχειριστήριο Etekcity. Επίσης, τυχαίνει να γνωρίζω ακριβώς ποιοι είναι οι σωστοί κωδικοί και μορφή για αυτές τις συσκευές επειδή τους είχα καταγράψει προηγουμένως. Ανατρέξτε στην ενότητα "Arduino RF Sensor Decoder" Instructable για το σκίτσο λήψης κώδικα.

Οι κωδικοί και οι μορφές για τα καταστήματα Etekcity είναι πολύ τυπικοί για φθηνές συσκευές RF. Έχω φθηνές συσκευές ασφαλείας που χρησιμοποιούν πολύ παρόμοιες μορφές με μερικές μόνο παραλλαγές χρονισμού. Το μήκος του μηνύματος είναι ένα βολικό 24 bit με ένα bit μεγάλης εκκίνησης και ένα bit bit short. Μπορείτε εύκολα να τροποποιήσετε τον κώδικα για να προσθέσετε περισσότερα byte δεδομένων και να αλλάξετε το χρονικό διάστημα των bit συγχρονισμού και δεδομένων. Και πάλι, αυτό το σκίτσο είναι απλώς ένα αρχικό πρότυπο.

Βήμα 2: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Ο πομπός λειτουργεί με μια μπαταρία νομισμάτων (2032), οπότε η χαμηλή κατανάλωση ενέργειας είναι το κλειδί. Τα περισσότερα από αυτά επιτυγχάνονται στο λογισμικό, αλλά βοηθάται από το γεγονός ότι το ATtiny85 κανονικά λειτουργεί με εσωτερικό ρολόι 1 MHz. Ο κανόνας είναι ότι οι χαμηλότερες συχνότητες ρολογιού απαιτούν λιγότερη ισχύ και το 1-MHz είναι ιδανικό για τη λογική του πομπού.

Η πραγματική μονάδα πομπού RF που μου αρέσει να χρησιμοποιώ είναι ένα FS1000A που είναι συνήθως διαθέσιμο. Έρχεται σε εκδόσεις 433-MHz και 315-MHz. Το λογισμικό δεν ενδιαφέρει ποιο θα χρησιμοποιήσετε, αλλά πρέπει να βεβαιωθείτε ότι η πλακέτα δέκτη λειτουργεί στην ίδια συχνότητα. Τα περισσότερα από τα έργα μου χρησιμοποιούν συσκευές 433-MHz επειδή αυτό χρησιμοποιείται από τις διάφορες ανέξοδες ασύρματες συσκευές που έχω συσσωρεύσει. Η διάταξη της πλακέτας πομπού που φαίνεται στην εικόνα ταιριάζει όμορφα σε ένα παλιό μπουκάλι χάπι. Δεν είναι όμορφο αλλά αρκετά καλό για μια απόδειξη της ιδέας.

Ο δέκτης βρίσκεται σε ένα breadboard χωρίς κόλληση επειδή ο μόνος σκοπός του είναι να δείξει πώς να λαμβάνει σήματα και πώς να ενεργοποιεί/απενεργοποιεί κάτι με βάση τους κωδικούς που λαμβάνονται. Χρησιμοποιεί μια λυχνία LED για να υποδείξει την κατάσταση ενεργοποίησης/απενεργοποίησης, αλλά μπορείτε να την αντικαταστήσετε με πρόγραμμα οδήγησης ρελέ, κλπ. Οποιοδήποτε Arduino μπορεί να χρησιμοποιηθεί για τον δέκτη, επειδή δεν χρειάζεται να εξαντληθεί η μπαταρία του. Εάν το μέγεθος εξακολουθεί να λαμβάνεται υπόψη, μπορείτε να χρησιμοποιήσετε ένα άλλο τσιπ ATtiny85. Το κλειδί είναι ότι το ATtiny85 πρέπει να λειτουργεί στα 8-MHz στο δέκτη. Ανατρέξτε στο προηγούμενο ATtiny85 Instructable για ένα απλό σκίτσο που επαληθεύει ότι έχετε αλλάξει με επιτυχία το εσωτερικό ρολόι σε 8-MHz. Στο τέλος της οδηγίας μου για την αποκωδικοποίηση αισθητήρα, συμπεριλαμβάνω μια έκδοση Arduino Nano του λογισμικού δέκτη. Είναι πανομοιότυπο με την έκδοση ATtiny85 που περιλαμβάνεται εδώ εκτός από μερικές διαφορές στο μητρώο τσιπ.

Όπως περιέγραψα στις προηγούμενες οδηγίες μου RF, προτιμώ να χρησιμοποιώ δέκτη όπως το κοινό RXB6. Είναι ένας δέκτης υπερ-ετεροδυνίου που λειτουργεί πολύ καλύτερα από τους υπερ-αναγεννητικούς δέκτες που συνήθως συνοδεύονται από τους πομπούς FS1000A.

Τόσο οι μονάδες πομπού όσο και οι δέκτες λειτουργούν καλύτερα με τις κατάλληλες κεραίες αλλά συχνά δεν παρέχονται. Μπορείτε να τα αγοράσετε (λάβετε τη σωστή συχνότητα) ή μπορείτε να φτιάξετε τα δικά σας. Στα 433-MHz, το σωστό μήκος είναι περίπου 16 cm για ευθεία κεραία. Για να φτιάξετε ένα κουλουριασμένο, πάρτε περίπου 16 εκατοστά μονωμένο, συμπαγές σύρμα πυρήνα και τυλίξτε το γύρω από κάτι σαν ένα κορμό τρυπανιού 5/32 ιντσών σε ένα στρώμα. Αφαιρέστε τη μόνωση από ένα σύντομο ευθύγραμμο τμήμα στο ένα άκρο και συνδέστε την στην πλακέτα πομπού/δέκτη. Διαπίστωσα ότι το σύρμα από ένα καλώδιο θραύσης Ethernet λειτουργεί καλά για κεραίες. Ο πίνακας πομπών έχει συνήθως ένα μέρος για να κολλήσει την κεραία, αλλά η πλακέτα δέκτη μπορεί να έχει μόνο ακίδες (όπως το RXB6). Απλά βεβαιωθείτε ότι η σύνδεση είναι ασφαλής αν δεν την κολλήσετε.

Βήμα 3: Λογισμικό

Το λογισμικό πομπού χρησιμοποιεί κοινές τεχνικές για να θέσει το τσιπ σε κατάσταση αναστολής λειτουργίας. Σε αυτήν τη λειτουργία αντλεί λιγότερο από 0,2ua ρεύματος. Οι είσοδοι του διακόπτη (D1-D4) έχουν ενεργοποιημένες τις εσωτερικές αντιστάσεις έλξης, αλλά δεν βγάζουν ρεύμα μέχρι να πατηθεί ένας διακόπτης. Οι είσοδοι είναι διαμορφωμένες για διακοπή διακοπής (IOC). Όταν πατηθεί ένας διακόπτης, δημιουργείται μια διακοπή και αναγκάζει το τσιπ να ξυπνήσει. Ο χειριστής διακοπών εκτελεί περίπου 48 δευτερόλεπτα καθυστέρησης για να επιτρέψει την απενεργοποίηση του διακόπτη. Στη συνέχεια γίνεται έλεγχος για να καθοριστεί ποιος διακόπτης πατήθηκε και καλείται η κατάλληλη ρουτίνα. Το μεταδιδόμενο μήνυμα επαναλαμβάνεται αρκετές φορές (επέλεξα 5 φορές). Αυτό είναι τυπικό για τους εμπορικούς πομπούς επειδή υπάρχει τόσο μεγάλη κίνηση RF στα 433-MHz και 315-MHz εκεί έξω. Τα επαναλαμβανόμενα μηνύματα συμβάλλουν στη διασφάλιση ότι τουλάχιστον ένας περνάει στον δέκτη.

Οι χρόνοι συγχρονισμού και δυαδικών ψηφίων ορίζονται στο μπροστινό μέρος του λογισμικού πομπού, αλλά τα byte δεδομένων είναι ενσωματωμένα σε κάθε μία από τις τέσσερις ρουτίνες κουμπιών. Είναι προφανή και εύκολο να αλλάξουν και η προσθήκη byte για να δημιουργήσετε ένα μεγαλύτερο μήνυμα είναι επίσης εύκολη. Όλοι οι ίδιοι ορισμοί περιλαμβάνονται στο λογισμικό δέκτη καθώς και οι ορισμοί byte δεδομένων. Εάν προσθέσετε bytes δεδομένων στο μήνυμά σας, θα πρέπει να αλλάξετε τον ορισμό για "Msg_Length" και να προσθέσετε byte στη μεταβλητή "RF_Message". Θα πρέπει επίσης να προσθέσετε κώδικα στο "RF_Message" check in "loop" για να επαληθεύσετε τη σωστή λήψη των επιπλέον byte και να ορίσετε αυτά τα byte.

Συνιστάται: