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

Προγραμματιζόμενο πληκτρολόγιο: 5 βήματα (με εικόνες)
Προγραμματιζόμενο πληκτρολόγιο: 5 βήματα (με εικόνες)

Βίντεο: Προγραμματιζόμενο πληκτρολόγιο: 5 βήματα (με εικόνες)

Βίντεο: Προγραμματιζόμενο πληκτρολόγιο: 5 βήματα (με εικόνες)
Βίντεο: Αλλαγή γλώσσας πληκτρολόγησης στα Windows με ένα πλήκτρο και όχι συνδυασμό 2024, Νοέμβριος
Anonim
Προγραμματιζόμενο πληκτρολόγιο
Προγραμματιζόμενο πληκτρολόγιο
Προγραμματιζόμενο πληκτρολόγιο
Προγραμματιζόμενο πληκτρολόγιο

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

Αυτό το πληκτρολόγιο εντοπίζεται ως πληκτρολόγιο σε όλα τα μεγάλα λειτουργικά συστήματα, δεν απαιτούνται πρόσθετα προγράμματα οδήγησης.

Προμήθειες

  • Περιστροφικός κωδικοποιητής.
  • Πολλά (εξαρτάται από τις ανάγκες σας) κουμπιά.
  • Arduino Pro Micro, Arduino Leonardo ή οποιαδήποτε άλλη πλακέτα dev με το Atmega32U4 MCU.
  • Σύρμα, συγκόλληση, κολλητήρι κ.λπ.
  • (Προαιρετικό) Κάποια βαριά βάση για να μην γλιστράει το πληκτρολόγιο, χρησιμοποιώ παλιό σκληρό δίσκο 3,5 ιντσών

Βήμα 1: Ηλεκτρικό κύκλωμα

Ηλεκτρικό κύκλωμα
Ηλεκτρικό κύκλωμα

Επέλεξα να χρησιμοποιήσω τον πίνακα Arduino Pro Micro dev με Atmega32U4 MCU που διαθέτει 18 ψηφιακές ακίδες που μπορούν να χρησιμοποιηθούν.

Οι καρφίτσες για τη σύνδεση κουμπιών και περιστροφικού κωδικοποιητή επιλέχθηκαν χωρίς ιδιαίτερη σειρά στο μυαλό, αλλά πρέπει να σημειωθούν ορισμένα πράγματα:

  1. Όλοι οι ακροδέκτες με δυνατότητα ανάγνωσης έχουν εσωτερικά pull-ups που επιτρέπουν τον μετριασμό των εξωτερικών αντιστάσεων έλξης. Φυσικά, ο κώδικας πρέπει να ενημερώνεται ανάλογα, επειδή αναμένει ότι η κατάσταση του πείρου θα πάει από χαμηλή σε υψηλή όταν πατηθούν τα κουμπιά.
  2. Στο παράδειγμα της βιβλιοθήκης encoder.h σημειώθηκε ότι η καλύτερη απόδοση του κωδικοποιητή επιτυγχάνεται όταν και οι δύο ακίδες που είναι συνδεδεμένες στο MCU διακόπτουν τις ικανές ακίδες. Οι περισσότερες αναλογικές ακίδες του Atmega32U4 δεν έχουν δυνατότητα διακοπής.
  3. Οι ακριβείς τιμές αντίστασης πτυσσόμενων δεν έχουν μεγάλη σημασία, οτιδήποτε από 1 kΩ έως 100 kΩ θα λειτουργήσει καλά. Μεγαλύτερες τιμές αντίστασης επιτρέπουν μικρότερη διάχυση ισχύος, αλλά έχουν ως αποτέλεσμα βραδύτερη απόκριση ακίδων στις αλλαγές τάσης. Απλώς επιλέξτε όποιες αντιστάσεις έχετε περισσότερο.
  4. Οι μηχανικοί κωδικοποιητές δεν είναι τα πιο αξιόπιστα πράγματα λόγω της φθοράς και της αναπήδησης της επαφής. Αυτός είναι ο λόγος για τον οποίο απαιτείται μια καλή λύση κατάργησης. Οι επιλεγμένες τιμές πυκνωτή και οι χρόνοι καθυστέρησης στον κώδικα πιθανότατα δεν θα σας προσφέρουν τα καλύτερα αποτελέσματα. Απαιτείται λοιπόν λίγο πειραματισμός. Or μεταβείτε σε κάτι σαν οπτικό κωδικοποιητή, αλλά η τιμή του είναι σημαντικά υψηλότερη.

Βήμα 2: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Wantedθελα να κάνω το πληκτρολόγιο όσο το δυνατόν πιο καθαρό, έτσι συγκολλούσα όλα τα εξαρτήματα στο πίσω μέρος του πρωτοτύπου. Σκέφτηκα ότι το πληκτρολόγιο θα ήταν πιο εργονομικό αν χρησιμοποιηθεί ανυψωμένο σε μικρή γωνία. Αυτός είναι ο λόγος για τον οποίο κόλλησα το Arduino Pro Micro σε ξεχωριστή πλακέτα και συνέδεσα όλες τις ψηφιακές ακίδες με σύρμα για να πιέσω τα κουμπιά. Είναι πιο βολικό να συνδέσετε το καλώδιο USB με αυτόν τον τρόπο.

Βρήκα τον παλιό σκληρό δίσκο 3,5 ιντσών να χρησιμοποιηθεί ως βάση για το πληκτρολόγιο, είναι αρκετά βαρύς και αποτρέπει την ολίσθηση του πίνακα κατά μήκος του γραφείου κατά τη λειτουργία (τα αντιολισθητικά μαξιλαράκια βοηθούν επίσης). Επίσης διαθέτει βολικές οπές βιδών 3 mm στις οποίες βίδωσα ορειχάλκινες προεξοχές και σταθεροποίησε τον πίνακα σε μικρή γωνία.

Βήμα 3: Προγραμματισμός

Ο κωδικός είναι γραμμένος με το Arduino IDE. Θα χρειαστεί να εγκαταστήσετε 2 βιβλιοθήκες:

  • Κωδικοποιητής από τον Paul Stoffregen
  • Πληκτρολόγιο από Arduino

Για να μεταγλωττίσετε το Atmega32U4 πρέπει επίσης να εγκαταστήσετε το αρχείο πλακέτας Arduino Pro Micro, το Sparkfun έχει υπέροχο σεμινάριο πώς να το κάνετε αυτό.

Ένα πράγμα που πρέπει να σημειώσετε εκ των προτέρων είναι να είστε προσεκτικοί ώστε να μην αφήσετε "κλειδιά πατημένα" στον κωδικό σας. Αυτό συνέβη σε μένα και ο MCU έκανε συνεχώς ανεπιθύμητη αλληλογραφία σε συνδυασμό πλήκτρων τύπου. Ο μόνος τρόπος που γνωρίζω πώς να το διορθώσω αυτό είναι να ξαναγράψω τον boot-loader σε MCU. Εάν καταλήξετε όπως εγώ, μπορείτε να ακολουθήσετε αυτόν τον οδηγό για να κάψετε boot-loader, θα χρειαστείτε έναν άλλο πίνακα arduino για να χρησιμοποιήσετε ως προγραμματιστή.

Στον κύριο βρόχο, το MCU διαβάζει πρώτα κάθε κατάσταση κουμπιού, εάν ανιχνευτεί αλλαγή κατάστασης από LOW σε HIGH, εκτελείται η λειτουργία keyboard_shortcut (i). Η μεταβλητή i είναι ένα αναγνωριστικό του πατημένου κουμπιού, ο αριθμός πλήρους κουμπιού καθορίζεται από ALL_BUTTONS (στην περίπτωσή μου 15). Όταν εκτελείται, το keyboard_shortcut (i) στέλνει CTRL+SHIFT και στη συνέχεια ένα γράμμα που αντιστοιχεί στο id του κουμπιού: 1-> A, 2-> B, 3-> C κ.λπ. Μερικοί συνδυασμοί όπως CTRL+SHIFT+N παραλείπονται επειδή είναι χρησιμοποιείται ήδη από προεπιλογή στα Windows 10 (σε αυτήν την περίπτωση για τη δημιουργία νέου φακέλου). Ακολουθεί η λίστα με όλες τις προεπιλεγμένες συντομεύσεις των Windows. Μετά από σύντομη καθυστέρηση, το MCU στέλνει σήμα για να απελευθερώσει όλα τα πλήκτρα και η λειτουργία εξέρχεται πίσω στον κύριο βρόχο.

Αφού ελεγχθούν όλα τα κουμπιά, το MCU ελέγχει αν έχει αλλάξει η θέση του περιστροφικού κωδικοποιητή και αν αλλάξει, το keyboard_shortcut (i) εκτελείται με μοναδικό αναγνωριστικό.

Κουμπί κωδικοποίησης πατήστε αντιστρέφει τον κωδικοποιητή ΚουμπίΑυτή μεταβλητή. Όταν περιστρέφεται ο κωδικοποιητής, αποστέλλεται διαφορετική συντόμευση στον υπολογιστή, ανάλογα με την κατεύθυνση περιστροφής και την τιμή του κωδικοποιητήButtonFlag.

Εάν το debugFlag έχει οριστεί σε 1, τα μηνύματα εντοπισμού σφαλμάτων αποστέλλονται μέσω UART στη σειριακή οθόνη.

Βήμα 4: Διαμόρφωση συντομεύσεων

Διαμόρφωση συντομεύσεων
Διαμόρφωση συντομεύσεων
Διαμόρφωση συντομεύσεων
Διαμόρφωση συντομεύσεων

Αυτό που κάνει κάθε συντόμευση εξαρτάται από εσάς, όλοι έχουμε διαφορετικές προτιμήσεις. Θα δώσω τις συντομεύσεις που διαμόρφωσα για τον εαυτό μου ως παράδειγμα. Χρησιμοποιώ Linux Mint 19.3 με διαχειριστή επιφάνειας εργασίας xfce4, οπότε τα παραδείγματά μου αφορούν κυρίως σενάρια bash, αλλά θα δείξω μερικά βασικά παραδείγματα και για τα Windows 10.

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

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

Άλλα σενάρια:

  • 2nd_display_control.sh - ενεργοποιεί/απενεργοποιεί τη δεύτερη οθόνη.
  • moon_lamp.sh - ενεργοποιεί/απενεργοποιεί το Moon Lamp μου.
  • pc_load.sh - δημιουργεί συννεφάκι ειδοποιήσεων με την τρέχουσα χρήση και τις θερμοκρασίες της CPU και της GPU.
  • shutdown.sh - προετοιμάζει το κλείσιμο του υπολογιστή με 1 λεπτό καθυστέρηση και δημιουργεί μια φούσκα ειδοποιήσεων στην οποία εμφανίζεται ο υπολειπόμενος χρόνος.
  • spec_vpn.sh - συνδέεται με συγκεκριμένο διακομιστή OpenVPN ή εάν υπάρχει ήδη σύνδεση, αποσυνδέεται από το διακομιστή.
  • shortcut_controll.sh - λαμβάνει την εντολή (συν, πλην, καρτέλα, κλείσιμο) ως επιχείρημα, ανιχνεύει ποιο παράθυρο είναι τώρα εστιασμένο και αν συγκεκριμένη εφαρμογή βρεθεί ενεργή εκτελεί ενέργεια ελέγχου. Για παράδειγμα, για να ανοίξετε μια νέα καρτέλα στον εκλεκτό επεξεργαστή κειμένου, η προεπιλεγμένη συντόμευση είναι "CTRL+N" και στο τερματικό xfce - "CTRL+T", οπότε αυτό το σενάριο επιτρέπει να ανοίξετε νέα καρτέλα σε υψηλά και τερματικά με το ίδιο κουμπί.

Η πρώτη λειτουργία του περιστροφικού κωδικοποιητή είναι να ελέγχει την ένταση, η δεύτερη λειτουργία είναι να ελέγχει το ενεργό ζουμ παραθύρου μέσω του shortcut_controll.sh.

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

Μερικά απλά παραδείγματα σύνταξης AHK:

;Ελεγχος έντασης

^+t:: Αποστολή {Volume_Up}

ΕΠΙΣΤΡΟΦΗ

^+v:: Αποστολή {Volume_Down}

ΕΠΙΣΤΡΟΦΗ

Κλείσιμο ενεργού παραθύρου

^+h:: WinGetTitle, Title, A

PostMessage, 0x112, 0xF060,,, %Title %

ΕΠΙΣΤΡΟΦΗ

;Κλείσιμο υπολογιστή

^+b:: Εκτέλεση τερματισμού λειτουργίας

Βήμα 5: Βελτιώσεις

Βελτιώσεις
Βελτιώσεις

Μερικές πιθανές βελτιώσεις:

  • Κουμπιά καλύτερης ποιότητας.
  • Το πρωτότυπο PCB κάμπτεται πολύ όταν πατάτε τα κουμπιά.
  • Ο φωτισμός RGB αλλάζει χρώμα ανάλογα με τη λειτουργία που έχει οριστεί ο περιστροφικός κωδικοποιητής.
  • Περισσότερα κουμπιά (χρησιμοποιήστε IO expander IC).
  • Καλύτερος περιστροφικός κωδικοποιητής (ή καλύτερη λύση απεμπλοκής).

Συνιστάται: