Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Καλωδίωση και ρύθμιση
- Βήμα 2: Δοκιμή πληκτρολογίου
- Βήμα 3: Προεπισκόπηση μετατροπής PS/2 σε USB
- Βήμα 4: Τεχνική επεξήγηση
- Βήμα 5: Μεταφόρτωση του τελικού σκίτσου
- Βήμα 6: Ενημέρωση του υλικολογισμικού
- Βήμα 7: Απολαύστε ……
Βίντεο: Προσαρμογέας Arduino PS/2 σε USB: 7 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Θέλατε ποτέ να χρησιμοποιήσετε το παλιό σας πληκτρολόγιο PS/2 με φορητό υπολογιστή ή νέο επιτραπέζιο υπολογιστή και διαπιστώσατε ότι δεν διαθέτουν πλέον θύρες PS/2; Και στη συνέχεια, αντί να αγοράσετε έναν φθηνό προσαρμογέα PS/2 σε USB, όπως θα έκανε ένας κανονικός άνθρωπος, ήθελε να χρησιμοποιήσει το Arduino σας ως προσαρμογέα PS/2 σε USB. Τότε ήρθατε στο σωστό μέρος:)
Δίκαιη προειδοποίηση πριν μπούμε σε αυτό. Όταν χρησιμοποιείτε το UNO/Mega ως συσκευή USB-HID (Δεν περιορίζεται στο πληκτρολόγιο, μπορεί ακόμη και να είναι ποντίκι, joystick κ.λπ.) θα χάσετε προσωρινά τις λειτουργίες του ως Arduino. Με αυτό εννοώ ότι δεν μπορείτε να χρησιμοποιήσετε τις σειριακές επικοινωνίες και δεν μπορείτε να το επαναπρογραμματίσετε μέσω USB. Αυτό συμβαίνει επειδή θα γράψουμε υπερβολικά το υλικολογισμικό στο τσιπ διεπαφής USB του (μικρός άντρας κοντά στη θύρα USB Atmega8U2 και 16U2 ανάλογα με την αναθεώρηση). Αλλά μην ανησυχείτε ότι δεν μπορείτε πραγματικά να φτιάξετε το UNO/Mega σας κάνοντάς το αυτό είναι πάντα αναστρέψιμο.
Επίσης τυχαία, αν έχετε Arduino που διαθέτει ήδη δυνατότητα USB-HID (Arduino Pro Micro ή Leonardo, κλπ. Κάντε αναζήτηση στο Google), μπορείτε να ξεχάσετε αυτό το διδακτικό που υπήρχε ποτέ, πηγαίνετε απευθείας εδώ για να σωθείτε από έναν κόσμο προβλημάτων. αστεϊσμός!
Προμήθειες
-
Σκεύη, εξαρτήματα
- Arduino UNO ή Mega
- PS/2 Πληκτρολόγιο
- Προαιρετικά, ένα πρόσθετο Arduino ή οποιοδήποτε είδος προγραμματιστή USB (USBasp, κλπ) μπορεί να είναι χρήσιμο.
-
Λογισμικό
- Atmel FLIP
- PS2KeyAdvanced βιβλιοθήκη για Arduino IDE
Βήμα 1: Καλωδίωση και ρύθμιση
Ανάλογα με την κατάσταση, μπορείτε είτε να βρείτε μια πλακέτα ξεμπλοκαρίσματος είτε να σώσετε μια παλιά θύρα από μια μητρική πλακέτα (η 2η προσπάθειά μου) ή αν αισθάνεστε ιδιαίτερα κακοδιάθετη, μπορείτε ακόμη και να κόψετε το μοβ γρύλο εντελώς και να εκθέσετε τα 4 σύρματα (1η μου προσπάθεια) και συνδέστε τα στο UNO.
Πληκτρολόγιο _Arduino
+5V (VCC) _+5V
GROUND_GND
ΡΟΛΟΙ _ PIN 2 **
ΔΕΔΟΜΕΝΑ _ PIN3*
*Μπορείτε να αλλάξετε την καρφίτσα DATA σε ό, τι θέλετε αλλά θυμηθείτε να ενημερώσετε το σκίτσο.
** Το ρολόι πρέπει να είναι συνδεδεμένο με έναν ακροδέκτη διακοπής στο Arduino, ο οποίος μπορεί να είναι μόνο PIN 2 ή 3 (θυμηθείτε να ενημερώσετε το σκίτσο) σε UNO. Για περισσότερες πληροφορίες και διαφορετικές ρυθμίσεις του πίνακα, μπορείτε να ελέγξετε την ενότητα σχολίων των παραδειγμάτων βιβλιοθήκης PS2KeyAdvanced.
Βήμα 2: Δοκιμή πληκτρολογίου
Πριν πάτε στο χέρι, βεβαιωθείτε ότι όλα λειτουργούν στο πληκτρολόγιο και τη βιβλιοθήκη.
Εδώ έχω επισυνάψει μια τροποποιημένη έκδοση του SimpleTest.ino από παραδείγματα βιβλιοθήκης PS2KeyAdvanced με ενημερωμένες καρφίτσες ρολογιού και δεδομένων και επίσης μια αναπαράσταση "make" και "break". Ακολουθεί κάποια εξήγηση για την έξοδο.
- Αυτό το σύστημα "δημιουργίας" και "θραύσης" scancode και "Code" που είναι ο απομονωμένος (c & 0xFF) φάκελος είτε με το πάτημα πλήκτρου είτε με την απελευθέρωση πλήκτρου παίζει σημαντικό ρόλο στη μετατροπή PS/2 σε USB και σας συνιστώ να μελετήσετε τα άλλα 2 παραδείγματα που συνοδεύουν τη βιβλιοθήκη για καλύτερη κατανόηση εάν σχεδιάζετε να βελτιώσετε ή να αλλάξετε (επανατοποθέτηση κλειδιών σε διαφορετικές διατάξεις) το τελικό σκίτσο. Επίσης, μπορείτε να λάβετε μια πλήρη λίστα PS/2 scancodes από τη βιβλιοθήκη ανοίγοντας είτε αρχεία 'PS2KeyAdvanced.h' είτε 'PS2KeyCode.h' από '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \'
- Το "Status Bits" αναφέρεται σε πλήκτρα τροποποίησης (Ctrl, Alt, Windows, Shift/Caps) και θα δείτε ότι με κάθε επιπλέον κλειδί τροποποίησης, αυτή η τιμή αλλάζει ενώ το κύριο "Κωδικός" του κανονικού (μη τροποποιητή) κλειδιού είναι αμετάβλητο. Αλλά στο τελευταίο σκίτσο αγνόησα αυτήν τη μέθοδο και εφάρμοσα αυτά τα πλήκτρα τροποποίησης ως απλά πατήματα πλήκτρων (Θα δείτε ότι αυτά τα πλήκτρα τροποποίησης έχουν επίσης "make" και "break" scancode ανεξάρτητα από τα κανονικά κλειδιά, ανεξάρτητα από το αν πατηθούν ή όχι πολλά πλήκτρα.) επειδή διευκολύνει τα πράγματα με το πρωτόκολλο USB-HID.
Βήμα 3: Προεπισκόπηση μετατροπής PS/2 σε USB
Πριν από την ενημέρωση του Atmega8U2 ή 16U2 (UNO Rev3) για να προσδιορίσουμε το Arduino ως πληκτρολόγιο USB, πρέπει να βεβαιωθούμε ότι όλα τα στοιχεία μετατροπής λειτουργούν σωστά και ότι το τελευταίο τελικό σκίτσο έχει μεταφορτωθεί ή διαφορετικά θα είναι μεγάλος πόνος να συνεχίσουμε να γράφουμε υλικολογισμικό ξανά και ξανά μεταξύ των αρχικών και των δεκαεξαδικών αρχείων πληκτρολογίου USB μόνο για να μπορείτε να ανεβάσετε το σωστό σκίτσο. Αυτό ισχύει ιδιαίτερα εάν δεν έχετε εξωτερικό προγραμματιστή όπως USBasp ή άλλο Arduino για χρήση ως ISP. Έτσι, εδώ θα ανεβάσουμε μια έκδοση 'DEBUG' του τελικού σκίτσου με μια αναγνώσιμη έξοδο από τον άνθρωπο (μέσω της σειριακής οθόνης) για να δοκιμάσουμε τα πράγματα.
Η έξοδος που βλέπετε θα διαμορφωθεί ως εξής όταν απελευθερώνεται κάθε κλειδί, 00 00 00 00 00 00 00 00
Ακολουθεί μια βασική εξήγηση για την αναμενόμενη παραγωγή,
Για κάθε νέο πλήκτρο τροποποίησης πολλαπλών τροποποιήσεων θα πρέπει να λάβετε μια νέα γραμμή με διαφορετικές τιμές για 'xx'. Τέλος, όταν απελευθερώνετε όλα τα κλειδιά τροποποίησης, το 'xx' πρέπει να γίνει 00
xx 00 00 00 00 00 00 00 00
Για κάθε νέο πολλαπλό κανονικό πάτημα πλήκτρων (για παράδειγμα θα πατήσουμε τόσο το υποθετικό πλήκτρο a, το πλήκτρο b και το πλήκτρο c με τιμές 'xx', 'yy' και 'zz' με αυτή τη σειρά) θα πρέπει να έχετε συνεχή (όχι υποχρεωτική) νέες γραμμές όπως αυτή,
00 00 xx yy zz 00 00 00
όταν αφήνετε μόνο το κλειδί b, η έξοδος πρέπει να αλλάξει σε,
00 00 xx 00 zz 00 00 00
και αν πατήσετε το νέο πλήκτρο d με τιμή 'nn' χωρίς να αφήσετε το κλειδί a ή b, η έξοδός σας θα αλλάξει σε,
00 00 xx nn zz 00 00 00
και τέλος να επιστρέψω σε αυτό όταν απελευθερωθεί κάθε κλειδί,
00 00 00 00 00 00 00 00
και τέλος αν πατήσετε είτε Caps Lock, Num Lock είτε Scroll Lock θα πρέπει να πάρετε κάτι τέτοιο με πολλές γραμμές ταυτόχρονα,
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Εάν όλα συμβούν εδώ, μπορείτε να συνεχίσετε!
Βήμα 4: Τεχνική επεξήγηση
Αν σας αρέσει μπορείτε να παραλείψετε αυτό το βήμα. Αυτό είναι απλώς μια εξήγηση για τα προηγούμενα αποτελέσματα. Ο πίνακας εξόδου 8 byte που είδατε διαμορφώνεται σύμφωνα με το παραπάνω σχήμα 1. Μπορείτε να μάθετε πολύ περισσότερα για αυτό και επίσης πώς γράφεται το byte κατάστασης των κλειδιών τροποποιητών από αυτό το wiki για USB-HID. Βασικά αυτό που κάνει ο κωδικός μου είναι κάθε φορά που πατάτε ένα νέο κλειδί (το πρωτόκολλο PS/2 αναφέρεται σε αυτό ως "make") περνάει από τα τελευταία 6 byte του πίνακα που χρησιμοποιούνται για κανονικές πιέσεις πλήκτρων και συμπληρώνει το πρώτο βρίσκει κενό byte με το σχετικό 'HID scancode' (Εμφανίζεται όπως στο σχήμα 2 Επίσης, μπορείτε να βρείτε μια πλήρη λίστα από το συνημμένο PDF) για το ληφθέν 'scancode PS/2'. Και τέλος όταν κυκλοφορήσει το σχετικό κλειδί (το πρωτόκολλο PS/2 αναφέρεται σε αυτό ως "break") ο κώδικας θα κυκλώσει τον τρέχοντα πίνακα byte και θα διαγράψει μόνο το σχετικό byte.
Αν ακολουθήσατε μέχρι εδώ και επίσης αν διαβάσετε τη σελίδα wiki θα δείτε ότι υπάρχει ένα μικρό πρόβλημα σε αυτήν τη μέθοδο, κανονικά όταν απελευθερώνεται το κλειδί, στο πρωτόκολλο HID τα υπόλοιπα byte τακτοποιούνται εκ νέου για να απαλλαγούν από τα κενά bytes μεταξύ των υπόλοιπων μη κενών byte. Αλλά για κάποιο λόγο, ανεξάρτητα από τους πολλούς τρόπους που προσπάθησα, δεν κατάφερα να λειτουργήσει όπως έπρεπε χωρίς να καθαρίσω κατά λάθος τα ανεπιθύμητα byte και για τα πατημένα πλήκτρα. Εάν μπορείτε να το βελτιώσετε για να λειτουργήσει, αφήστε ένα σχόλιο. Παρόλο που στο τέλος της ημέρας αυτό το πρόβλημα δεν επηρεάζει τη λειτουργικότητα του πληκτρολογίου, αρκεί το Arduino να καταγράφει ακόμα κάθε πατημένο πλήκτρο ανεξάρτητα από τη σειρά που έχει πατηθεί (Αυτό δεν επηρεάζει τίποτα στην πρακτική χρήση).
Βήμα 5: Μεταφόρτωση του τελικού σκίτσου
Έτσι, πριν ενημερώσετε τελικά το υλικολογισμικό του Atmega8U2 ή 16U2 (UNO Rev3) για να προσδιορίσετε το Arduino μας ως πληκτρολόγιο USB, πρέπει να ανεβάσουμε το Τελικό Σκίτσο. Αφού το ανεβάσετε, αν πάτε στη σειριακή οθόνη θα δείτε ότι εκτυπώνει σκουπίδια με κάθε νέο πλήκτρο πατημένο, αυτό είναι καλός οιωνός ότι όλα λειτουργούν όπως πρέπει και μπορούμε να προχωρήσουμε στο τελικό βήμα. ΝΑΙ !!!
Βήμα 6: Ενημέρωση του υλικολογισμικού
Τέλος, μπορείτε να ενημερώσετε το υλικολογισμικό του Arduino για να το καταχωρίσετε ως πληκτρολόγιο USB. Γι 'αυτό δεν πρόκειται να μπω σε πολλές λεπτομέρειες, καθώς θα γίνει πολύ διδακτικό.
- Ακολουθήστε αυτόν τον οδηγό από το arduino.cc σχετικά με την "Ενημέρωση των Atmega8U2 και 16U2 σε Uno ή Mega2560 χρησιμοποιώντας DFU" αλλά αντί για τη χρήση του "Arduino-usbserial-uno.hex" χρησιμοποιήστε το προσαρτημένο "Arduino-πληκτρολόγιο-0.3.hex"
- Στο FLIP θυμηθείτε να επιλέξετε τη συσκευή προορισμού ως Atmega8U2 ή 16U2 ανάλογα με εσάς Arduino και, από το μέσο επικοινωνίας, επιλέξτε USB και τέλος Φορτώστε το σωστό εξάγωνο αρχείο πριν επιλέξετε εκτέλεση.
- Αν αντιμετωπίσετε σφάλμα προγράμματος οδήγησης, μεταβείτε στη διαχείριση συσκευών των Windows και επιλέξτε για αναζήτηση του άγνωστου προγράμματος οδήγησης μέσα στον κατάλογο εγκατάστασης του FLIP '\ Program Files (x86) Atmel \'
- Εάν αντιμετωπίσατε σφάλματα κατά την ενημέρωση του υλικολογισμικού από το FLIP πολλές φορές, κλείστε το FLIP και εκτελέστε τις "Επαναφορά προτιμήσεων" από το μενού "Έναρξη / FLIP \" και, στη συνέχεια, επανεκκινήστε το FLIP και κάντε τα βήματα διαμόρφωσης πριν προσπαθήσετε ξανά, αυτό συνήθως λειτουργεί για μένα.
- Εάν θέλετε να επαναφέρετε το Arduino στην αρχική του κατάσταση, απλώς ακολουθήστε τον παραπάνω οδηγό arduino.cc χωρίς να χρησιμοποιήσετε αυτό το εξάγωνο αρχείο.
Βήμα 7: Απολαύστε ……
Τώρα απολαύστε το νέο πληκτρολόγιο PS/2 σε USB…. ΥΣΤΕΡΟΓΡΑΦΟ. Αυτό το Instructable γράφτηκε πλήρως από ένα εξωτερικό πληκτρολόγιο PS/2 συνδεδεμένο στο φορητό υπολογιστή μου μέσω του Arduino:)
Συνιστάται:
Προσαρμογέας Arduino Nano σε Arduino Uno: 6 βήματα (με εικόνες)
Arduino Nano to Arduino Uno Adapter: Το Arduino Nano είναι ένα ωραίο, μικρό και φθηνό μέλος της οικογένειας Arduino. Βασίζεται στο τσιπ Atmega328, που το καθιστά τόσο ισχυρό όσο ο μεγαλύτερος αδελφός του Arduino Uno, αλλά μπορεί να αποκτηθεί με λιγότερα χρήματα. Στο Ebay τώρα οι κινεζικές εκδόσεις μπορούν να
Προσαρμογέας USB ZX Spectrum για Raspberry Pi RetroPie Δημιουργεί: 5 βήματα (με εικόνες)
Προσαρμογέας ZX Spectrum USB για Raspberry Pi RetroPie Builds: Το RetroPie είναι μια ειδική διανομή Linux που έχει σχεδιαστεί ειδικά για την εξομοίωση συστημάτων ρετρό βιντεοπαιχνιδιών σε Raspberry Pis και άλλους υπολογιστές ενός πίνακα. I'veθελα να κάνω all-out σε μια κατασκευή RetroPie εδώ και λίγο καιρό και όταν είδα αυτό το repro
Προσαρμογέας πληκτρολογίου Apple M0110 Crossover: 3 βήματα (με εικόνες)
Προσαρμογέας διασταυρώσεων πληκτρολογίου Apple M0110: Το πληκτρολόγιο Apple M0110 διατίθεται αρχικά με Modular Connector. Ουσιαστικά είναι ένα καλώδιο 4P4C, όπως θα βρείτε σε ένα " παλιό timey " ακουστικά τηλεφώνου, αλλά αντί να περάσετε από πάνω, το αρχικό καλώδιο της Apple είναι ίσιο. Ποιός νοιάζεται?
Προσαρμογέας ήχου DIY Bluetooth - BluFi: 9 βήματα (με εικόνες)
Προσαρμογέας ήχου DIY Bluetooth - BluFi: Δεν υπάρχει ούτε ένα audiophile ούτε ένας παίκτης που να μην αισθάνεται την ανάγκη ασύρματων ακουστικών, ηχείων κλπ. Ή απλώς, ασύρματης μετάδοσης ήχου. Μου αρέσει επίσης η ταλαιπωρία των ενσύρματων ακουστικών μου, ενώ προσπαθώ να παρακολουθώ από απόσταση ένα
Προσαρμογέας Arduino Atari: 8 βήματα (με εικόνες)
Arduino Atari Adapter: Πρόσφατα ενδιαφέρομαι όλο και περισσότερο για την vintage τεχνολογία υπολογιστών. Ένα από τα πιο ενδιαφέροντα και επιδραστικά κλασικά κομμάτια της τεχνολογίας είναι το Atari 2600 που κυκλοφόρησε για πρώτη φορά το 1977. Δυστυχώς, δεν είχα ποτέ την ευκαιρία να το παίξω ως κι