Καλησπέρα, σήμερα πήρα την ιδέα να δημιουργήσω μια συσκευή για αντιγραφή ηλεκτρονικό όπως μνήμη αφής ή ibuttom. Επίσης γνωστό ως "χάπια". Τέτοια πλήκτρα, αν και ήδη αρκετά ξεπερασμένα, αντικαταστάθηκαν από άχρηστη Rfid, αλλά εξακολουθούν να χρησιμοποιούνται συχνά για ενδοσυνεννόηση ή συναγερμούς διαρρήξεων. Η βάση της συσκευής μας θα εξυπηρετήσει Arduino Uno. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη κάρτα συμβατή με Arduino. Για να μπορέσετε να χρησιμοποιήσετε τη συσκευή μας αυτόνομα, χωρίς υπολογιστή, χρειάζεστε τροφοδοσία από 6 έως 12 βολτ. Για να υποδείξετε την κατάσταση της συσκευής, θα χρησιμοποιήσουμε την οθόνη γραφικών WG12864B. Χρειαζόμαστε επίσης μια περίπτωση, στην περίπτωση αυτή το κουτί από την κασέτα Sega είναι τέλεια.
Για την υλοποίηση αυτής της ιδέας θα χρειαστείτε:
- Arduino UNO (Ή συμβατό συμβούλιο Arduino)
- γραφική οθόνη WG12864B
- Αντίσταση 100 Ohm 0,25 W
- Τροφοδοσία ρεύματος 6 - 12 V
- Αντίσταση 2,2 KOhm 0,25 W
- Αντίσταση 10 KOhm 0,25 W
- Κουτί από την κασέτα της κονσόλας SEGA
- ηλεκτρική ταινία
- σύνδεση καλωδίων
- Κουμπί
- Ένα μικρό κομμάτι από ανοξείδωτο χάλυβα
- μεταλλικό ψαλίδι
- μαχαίρι χαρτικής
- συγκολλητικό σίδερο
- Κόλλα, κολοφώνιο
- Ταινία διπλής όψης
Βήμα 1 Λίγο για τα ίδια τα πλήκτρα Ibuttom.
Για να καταστεί σαφές το iButton είναι απλώς ένα τσιπ γεμάτο σε μια στρογγυλή θήκη από ανοξείδωτο ατσάλι. Διάμετρος θήκης 16,3 mm. Η θήκη από ανοξείδωτο ατσάλι είναι ανθεκτική στις κρούσεις, τη βρωμιά και την υγρασία Το πρότυπο στέγασης ονομάζεται iButton MicroCan. Διατίθεται σε δύο τυπικά πάχη: 3.1 mm (έκδοση F3) και 5.9 mm (έκδοση F5). Ο μικροκυκλώνας λαμβάνει ισχύ από τη γραμμή δεδομένων της κύριας συσκευής. Η διάμετρος του καλύμματος είναι η ίδια για όλες τις εκδόσεις. Επομένως, το ίδιο κύπελλο ανάγνωσης είναι κατάλληλο για όλους. Δομικό διάγραμμα των κλειδιών:
Τα πλήκτρα είναι επανεγγράψιμα και όχι. Για να κάνετε ένα αντίγραφο, θα χρειαστείτε, αντίστοιχα, να επανεγγράψετε. Υπάρχουν 3 εκδόσεις ετικετών: RW1990, TM08v2 και TM-08 VZT F. Διαφέρουν στο εσωτερικό του μικροκυκλώματος. Το πιο συνηθισμένο RW1990. Μπορούν να αγοραστούν στο aliexpress ή σε κατάστημα λιανικής πώλησης συναγερμού πυρκαγιάς.
Βήμα 2 Οθόνη.
Θα χρησιμοποιήσουμε μια οθόνη υγρών κρυστάλλων, μια ανάλυση 128 με 64 pixels. Οι περισσότεροι από αυτούς δουλεύουν σε μάρκες ks0107 / ks0108, επομένως δεν πρέπει να υπάρχει πρόβλημα συμβατότητας. Όλες αυτές οι οθόνες μπορούν να χωριστούν σε 4 τύπους. Διαφορετική σύνδεση:
Είναι καλύτερο να πάρει το WG12864B3 V2.0, μπορεί να βρεθεί εύκολα σε κινεζικά και ρωσικά καταστήματα. Μπορεί να υπάρχουν διάφοροι τύποι οπίσθιου φωτισμού, αλλά αυτό δεν επηρεάζει τη λειτουργικότητα με οποιονδήποτε τρόπο.Υπάρχουν επίσης δύο επιλογές σύνδεσης: παράλληλες και σειριακές. Όταν επιλέγουμε έναν παράλληλο τύπο, χρειαζόμαστε 13 ελεύθερες ακίδες Arduino. Επιλέξτε διαδοχικά. Συμπεριλαμβάνονται μόνο 3 συμπεράσματα. Και μην ξεχάσετε τη διατροφή:
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) -10
5 (R / W) - 11
6 (Ε) - 13
15 (PSB) - GND
19 (BLA) - μέσω αντιστάσεως 100 Ohm - + 5V
20 (BLK) - GND
Η φωτεινότητα της οθόνης ρυθμίζεται από ένα ποτενσιόμετρο που βρίσκεται στην πλακέτα με την οθόνη. Εάν είναι - η ικανότητα προσαρμογής της φωτεινότητας απουσιάζει, αλλά αυτό συμβαίνει σπάνια:
Για τη μείωση της τάσης για τον οπίσθιο φωτισμό της οθόνης χρησιμοποιείται αντίσταση 100 Ω. Το εισάγουμε στο τμήμα του καλωδίου που τροφοδοτεί τον οπίσθιο φωτισμό:
Βήμα 3 Στέγαση και κύπελλο ανάγνωσης.
Για να μην έχουμε "dzhigurdy" και όλα φαίνονται φυσιολογικά, θα ξεκινήσουμε την κατασκευή της υπόθεσης. Οποιοδήποτε πλαστικό κουτί που ταιριάζει με το Arduino Uno και την οθόνη είναι τέλειο. Η καλύτερη λύση είναι ένα κιβώτιο φυσίγγης.
Κόψτε το κουτί βρόχου και αφαιρέστε την μεμβράνη:
Παίρνουμε ένα κοπικό μαχαίρι και αρχίζουμε να κόβουμε τις κουλοχέρηδες. Κατ 'αρχάς, κόψτε το μεγαλύτερο στην κορυφή του κουτιού, μεγέθους 37x69. Απαιτείται για την οθόνη.
Κολλήστε την κολλητική ταινία διπλής όψης μέσα στο κιβώτιο:
Τώρα είμαστε μπερδεμένοι από ένα ευανάγνωστο κύπελλο. Μπορείτε να αγοράσετε και να χρησιμοποιήσετε το έτοιμο. Αυτή είναι η ευκολότερη επιλογή. Θα σας δείξω πώς να φτιάξω αυτό το κύπελλο. Κόβουμε δύο ορθογώνια από ανοξείδωτο χάλυβα: 20x20 mm και 20x8 mm:
Κάνουμε μια μικρή υποδοχή στο κάτω μέρος της οθόνης και εισάγουμε ένα μεγαλύτερο ορθογώνιο εκεί:
Και λυγίστε τις άκρες:
Και στην πίσω πλευρά, κάνουμε επίσης να στερεώσουμε την αρνητική πλάκα επαφής:
Για το συν, κάνουμε επίσης μια υποδοχή και εισάγουμε μια θετική επαφή σε αυτό:
Από μέσα, οι επαφές μοιάζουν με αυτό:
Στην προηγουμένως επικολλημένη ταινία στερεώνουμε την οθόνη:
Εκτός αυτού θα πρέπει να είναι έτσι:
Μέσα στο πλαίσιο, κάτω από την οθόνη, τοποθετούμε το Arduino:
Θυμηθείτε να κάνετε υποδοχές για τις υποδοχές USB και τροφοδοσίας:
Για να αλλάξετε τις λειτουργίες μεταξύ ανάγνωσης και γραφής, εξάγετε το κουμπί:
Βήμα 4 Επίλυση του θέματος της διατροφής.
Προκειμένου να λειτουργήσει η συσκευή μας, θα την παράσχουμε. Για το σκοπό αυτό χρειαζόμαστε τροφοδοσία ρεύματος. Η τάση πρέπει να είναι μεταξύ 6 βολτ και 12. Το βύσμα στο άκρο πρέπει να ταιριάζει στην υποδοχή Arduino:
Μπορείτε να κάνετε χωρίς τροφοδοσία. Μπορείτε να τροφοδοτήσετε τη συσκευή από έναν υπολογιστή USB. Αν θέλετε, μπορείτε να πάρετε ένα διαμέρισμα για 4 μπαταρίες μεγέθους AAA και να το τοποθετήσετε. Στη συνέχεια, η έξοδος του πείρου πρέπει να συνδεθεί με το Vin της πλακέτας Arduino.
Βήμα 5 Όλα μαζί.
Ο δίσκος ανάγνωσης συνδέεται σύμφωνα με το σχήμα:
Συνδέουμε τη θετική επαφή του μπολ με τον ακροδέκτη 7, τραβώντας τον μέσω της αντίστασης 2,2K σε VCC. Συνδέουμε το κουμπί στην ακίδα 6, τραβώντας μια αντίσταση 10K στο GND.
Βήμα 6 Μέρος λογισμικού.
Κάντε λήψη και εγκαταστήστε το ID του Arduino με το
Για να εργαστείτε με τη μνήμη αφής, χρησιμοποιείται η βιβλιοθήκη One Wire. Πρέπει επίσης να το κατεβάσετε και να το εγκαταστήσετε στο IDE του Arduino:
Εκκινήστε την οθόνη χρησιμοποιώντας τη βιβλιοθήκη U8glib:
Χωρίς βιβλιοθήκες, η σύνταξη ενός σκίτσου και η φόρτωσή του στο Arduino θα αποτύχει. Λειτουργούμε με τους εξής τρόπους: Αποσυμπιέστε τα αρχεία που έχετε λάβει και μετακινήστε αυτά τα αρχεία σε ένα φάκελο που ονομάζεται "βιβλιοθήκες". Μπορεί να βρεθεί με την εγκατάσταση του περιβάλλοντος προγραμματισμού.
Κάντε λήψη του αρχείου με το σκίτσο:
Αποσυσκευάστε το αρχείο, ανοίξτε το σκίτσο στο Arduino Ide και συμπληρώστε το σε Arduino.
Βήμα 7 Η διαδικασία αντιγραφής κλειδιών.
Όταν ενεργοποιείτε τη συσκευή μας, η οθόνη θα διαβάζει "Ανάγνωση" και το πλήκτρο γενικής χρήσης. Αυτό το κλειδί γράφεται στο σκίτσο. Τον βρήκα στο Διαδίκτυο. Προσωπικά, δεν έλεγξα πόσο καθολική είναι. Εάν συμβεί αυτό, η συσκευή μας είναι έτοιμη για χρήση:
Εφαρμόζουμε το κλειδί που θα αντιγραφεί. Αυτό το κλειδί πρέπει να εμφανίζεται στην οθόνη. Για παράδειγμα, πήρα ένα από αυτά που έχω:
Τώρα πιέζετε το κουμπί, η επιγραφή στην οθόνη θα πρέπει να αλλάξει σε "Write". Θα εμφανιστεί επίσης το πλήκτρο, το οποίο θα καταγραφεί:
Βάζουμε ένα δισκίο στο οποίο θα γράψουμε ένα κενό και περιμένουμε έως ότου η επιγραφή στην οθόνη αλλάξει πάλι σε "Read". Αν συμβεί αυτό - η εγγραφή ήταν επιτυχής. Για να ελέγξετε, τοποθετήστε ξανά το κενό, η συσκευή θα πρέπει να το διαβάσει και να εμφανίσει το κλειδί.
Εάν θέλετε να γράψετε ένα κλειδί καθολικής χρήσης, ακριβώς στην αρχή, πατήστε το κουμπί, όταν η επιγραφή έχει αλλάξει σε "Write", επισυνάψτε ένα κενό.
Η συσκευή στέλνει επίσης πληροφορίες σχετικά με τα κλειδιά και τις διαδικασίες ανάγνωσης και αντιγραφής μέσω της σειριακής θύρας.Μπορείτε να ανοίξετε το τερματικό Arduino Ide ή οποιοδήποτε άλλο πρόγραμμα τερματικού και να παρακολουθήσετε τη διαδικασία αντιγραφής σε αυτό.
Το γενικό κλειδί που έχει καταγραφεί στο σκίτσο μπορεί να αλλάξει. Για να το κάνετε αυτό, ανοίξτε το σκίτσο και επεξεργαστείτε τη γραμμή:
byte ReadID [8] = {0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F}.
Αλλά αυτό δεν είναι τόσο απλό. Το τελευταίο byte είναι το άθροισμα ελέγχου κλειδιού ή ο έλεγχος αποφυγής κυκλοφορίας (Cyclic Redundancy Check - CRC). Στην περίπτωση αυτή, είναι 2F. Χωρίς αυτό το ποσό, οι αναγνώστες δεν αποδέχονται το κλειδί. Το CRC υπολογίζεται με ειδικό αλγόριθμο. Μπορείτε να βρείτε και να υπολογίσετε αυτόν τον αλγόριθμο μόνοι σας, αλλά χρησιμοποιήστε τη συσκευή μας. Το πρώτο byte είναι οικογενειακός κώδικας, πρέπει πάντα να είναι 01. Στη συνέχεια, γράφει τα bytes στη συμβολοσειρά που θέλουμε να γράψουμε ως καθολικό κλειδί. Συμπληρώστε το σκίτσο. Γράφουμε αυτό το κλειδί στο δίσκο και προσπαθούμε να το διαβάσουμε ξανά, ανοίγοντας το παράθυρο του τερματικού. Στο τερματικό, θα δούμε το κλειδί μας στο τέλος της CRC. Αυτό είναι το επιθυμητό άθροισμα ελέγχου. Τώρα επεξεργαστείτε ξανά το σκίτσο. Αντί το τελευταίο byte στην ίδια γραμμή, γράψτε το byte που λάβατε κατά την ανάγνωση μετά το CRC. Πάλι, συμπληρώστε το σκίτσο και γράψτε ένα νέο κλειδί στο δίσκο. Ανοίξτε το παράθυρο τερματικού, προσπαθήστε να διαβάσετε το κλειδί μας. Το τελευταίο byte του κλειδιού πρέπει να ταιριάζει με το byte που έχει γραφτεί μετά το CRC.