Σάρωση κωδικών πίνακα πλήκτρων πληκτρολογίου. Για το θέμα της αξιολόγησης των ψηφιακών σημάτων pamin. πληκτρολόγια. Πώς να σαρώσετε κωδικούς QR στο Android

Η πλειοψηφία μοντέρνα πληκτρολόγιαεξοπλισμένα με πλήκτρα πολυμέσων και τα ποντίκια έχουν ήδη από τρία έως επτά κουμπιά. Στο δίσκο που συνοδεύει το κιτ, και στην ιστοσελίδα του κατασκευαστή, προγράμματα οδήγησης και διάφορα χρήσιμα προγράμματαμόνο για Windows. Όλοι γνωρίζουν ότι το Linux φημίζεται για την ικανότητά του να προσαρμόζει το σύστημα για τον εαυτό του, αν, φυσικά, γνωρίζετε πού και τι να ρυθμίσετε. Το καθήκον μας είναι να διδάξουμε τον πιγκουίνο να δουλεύει με επιπλέον ψωμιά.

Ορισμός κώδικα σάρωσης κλειδιού

Ό,τι και να πατήσετε στο πληκτρολόγιό σας, ο διακομιστής Χ και ο πυρήνας, γενικά, δεν ενδιαφέρονται για το τι γράφεται ή σχεδιάζεται πάνω του. Τους ενδιαφέρει μόνο ο κώδικας σάρωσης κουμπιών και πρώτα τα X διαβάζουν τον πίνακα κωδικών κλειδιού του πυρήνα και μετά ο κωδικός κλειδιού συνδέεται με τον δικό του πίνακα κωδικών. Αν μέσα Προβλήματα WindowsΔεν υπάρχουν ρυθμίσεις για τα πλήκτρα πολυμέσων στην κονσόλα αυτή καθαυτή, τότε στο Linux πρέπει να διαμορφώσετε ξεχωριστά την αντίδραση στο πάτημα κουμπιών στην κονσόλα και στο X-Window.

Για να μάθετε τον κωδικό κλειδιού, θα πρέπει να χρησιμοποιήσετε το βοηθητικό πρόγραμμα xev που περιλαμβάνεται στον διακομιστή X. Μετά την εκκίνησή του, εμφανίζεται το παράθυρο Event Tester, τώρα πατάμε διαδοχικά τα πλήκτρα, θυμόμαστε τον εκδοθέν κωδικό:

$xev
...
Συμβάν KeyRelease, σειριακό 31, synthetic NO, παράθυρο 0x3e00001,
root 0x67, subw 0x0, time 279734676, (311.611), root:(1104.687),
κατάσταση 0x2000, κωδικός κλειδιού 236 (keysym 0x1008ff19, XF86Mail), ίδια_οθόνη ΝΑΙ,

Το XFilterEvent επιστρέφει: False
Συμβάν KeyRelease, σειριακό 31, synthetic NO, παράθυρο 0x2600001,
root 0x67, subw 0x0, time 265877259, (883.334), root:(886.358),
κατάσταση 0x0, keycode 161 (keysym 0x0, NoSymbol), same_screen YES,
Το XLookupString δίνει 0 byte:
Το XFilterEvent επιστρέφει: False

Η έξοδος μπορεί να είναι τεράστια καθώς παρακολουθείται κάθε κίνηση του ποντικιού καθώς περνάτε πάνω από το παράθυρο του Event Tester. Το κλειδί περιγράφεται από το μπλοκ KeyRelease, συγκεκριμένα, η τιμή του κωδικού κλειδιού είναι ακριβώς ο κωδικός σάρωσης που θέλουμε να μάθουμε. Στο παράδειγμα που φαίνεται, πατούνται δύο πλήκτρα. Ο κωδικός κλειδιού 236 αντιστοιχεί στον κωδικό κλειδιού για τον διακομιστή X που καθορίζεται στο keysym και στην ενέργεια XF86Mail, η οποία στο KDE εκκινεί τον προεπιλεγμένο πελάτη αλληλογραφίας. Για τον αριθμό κλειδιού 161, ο κωδικός και η ενέργεια δεν ορίζονται.

Είναι πιθανό να πατηθεί ένα πλήκτρο, αλλά να μην εκδοθεί ο κωδικός σάρωσής του. Αυτό σημαίνει ότι ο πυρήνας δεν μπορεί να βρει αντίστοιχη τιμή. Η έξοδος του dmesg θα πρέπει να μοιάζει με αυτό:

Χρησιμοποιήστε "setkeycodes 0xec να το κάνει γνωστό.

Δηλαδή, σας προσφέρεται να ορίσετε μόνοι σας τον κωδικό σάρωσης του κλειδιού χρησιμοποιώντας setkeycodes, ενώ η επιλογή της τιμής του keycode είναι πολύ απλή. Μετατρέψτε το ψηφίο που προκύπτει σε δεκαδικό αριθμό (οι περισσότεροι αριθμομηχανές μπορούν να το κάνουν αυτό) και προσθέστε 128. Σε αυτό το παράδειγμα, 0xec=236, δηλαδή, λαμβάνουμε τον κωδικό σάρωσης 364. Σε περίπτωση αμφιβολίας, η λίστα των ενεργοποιημένων και απενεργοποιημένων κωδικών σάρωσης μπορεί να είναι προβάλλονται εκτελώντας το βοηθητικό πρόγραμμα getkeycodes στην κονσόλα ή στα dumpkeys. Για παράδειγμα, εάν η έξοδος είναι "getkeycodes | grep<код клавиши>” δεν έδωσε τίποτα, επομένως αυτός ο κωδικός μπορεί να χρησιμοποιηθεί με ασφάλεια.

Το βοηθητικό πρόγραμμα XKeycaps (www.jwz.org/xkeycaps), το οποίο είναι μια γραφική διεπαφή του Xmodmap, μπορεί επίσης να βοηθήσει στον προσδιορισμό του κώδικα σάρωσης.

Το πρόγραμμα xev δεν λειτουργεί στην κονσόλα φυσικά. Για να μάθετε τον κώδικα σάρωσης που εκδίδεται από τον πυρήνα, χρησιμοποιήστε το βοηθητικό πρόγραμμα showkey ή getkeycodes:

$showkey
Το πληκτρολόγιο ήταν σε λειτουργία UNICODE
πατήστε οποιοδήποτε πλήκτρο (το πρόγραμμα θα τελειώσει 10 δευτερόλεπτα μετά το τελευταίο πάτημα του πλήκτρου)...
0xe0 0x6c 0xe0 0xec

Τα δύο πρώτα ψηφία αντιστοιχούν στο πατημένο πλήκτρο, το δεύτερο - στην απουσία πατήματος.

Διαμόρφωση δέσμευσης κωδικών σάρωσης στο X-Window

Έτσι, τώρα έχουμε κωδικούς σάρωσης, πρέπει να πούμε στον διακομιστή Χ τι πρέπει να κάνει πραγματικά όταν πατηθεί αυτό το πλήκτρο, δηλαδή να του δώσουμε ένα συμβολικό όνομα. Η λίστα των ονομάτων συμβόλων δίνεται στο αρχείο κεφαλίδας XF86keysym.h. Από προεπιλογή, τα αρχεία κεφαλίδας διακομιστή X δεν είναι εγκατεστημένα σε σύγχρονες διανομές. Για να το δείτε στο Ubuntu, πρέπει να εγκαταστήσετε το πακέτο x11proto-core-dev, μετά το οποίο αυτό το αρχείο θα βρίσκεται στον κατάλογο /usr/include/X11. Εναλλακτικά, μπορείτε να επικοινωνήσετε με τον διακομιστή X.Org CVS. Εμείς κοιτάμε:

$ cat /usr/include/X11/XF86keysym.h
/*
* Βρέθηκαν πλήκτρα σε ορισμένα πληκτρολόγια "Internet".
*/
#define XF86XK_Standby 0x1008FF10
#define XF86XK_AudioLower Volume 0x1008FF11
#define XF86XK_AudioRaiseVolume 0x1008FF13
#define XF86XK_AudioPlay 0x1008FF14
#define XF86XK_AudioStop 0x1008FF15
#define XF86XK_Mail 0x1008FF19

Εάν συγκρίνουμε την τελευταία γραμμή με την έξοδο xev, βλέπουμε ότι οι τιμές ταιριάζουν με το κλειδί με τον κωδικό κλειδιού 236 - keysym 0x1008ff19, XF86Mail (χωρίς επίθημα XK_). Θα βρείτε μια λίστα με όλες τις διαθέσιμες τιμές στη μορφή με την οποία πρέπει να χρησιμοποιηθούν στο /usr/share/X11/XKeysymDB.

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

$medit ~/. xmodmap

κωδικός κλειδιού 161 XF86 Αριθμομηχανή
κωδικός κλειδιού 174 XF86AudioLower Volume
κωδικός κλειδιού 176 XF86AudioRaise Volume
κωδικός κλειδιού 162 XF86Παύση ήχου

Και ούτω καθεξής, η αρχή, νομίζω, είναι σαφής. Επιπλέον, ο κωδικός κλειδιού μπορεί να εισαχθεί τόσο σε δεκαδική όσο και σε δεκαεξαδική μορφή. Σύμφωνα με τις παρατηρήσεις μου, οι κωδικοί των περισσότερων κλειδιών είναι τυποποιημένοι. Επομένως, εάν ρυθμίσετε μια αντίδραση σε ένα πάτημα πλήκτρων μία φορά και μεταφέρετε το αρχείο σε άλλον υπολογιστή, είναι πιθανό ότι σε άλλο πληκτρολόγιο η αντίδραση στο πάτημα ενός πλήκτρου που είναι επίσης υπογεγραμμένο θα είναι παρόμοια. Οι χρήστες επιτραπέζιου υπολογιστή Gnome με GDM μπορούν να γράψουν όλες αυτές τις γραμμές στο /etc/X11/Xmodmap σε όλο το σύστημα.

Σε άλλες περιπτώσεις, πρέπει να πούμε στον διακομιστή X να χρησιμοποιήσει το αρχείο που δημιουργήθηκε. Αυτό υλοποιείται διαφορετικά σε διαφορετικές διανομές, η κύρια ιδέα είναι να εκτελείται η εντολή /usr/bin/xmodmap $HOME/.Xmodmap όταν ο χρήστης συνδεθεί ή ξεκινήσει το X. Εδώ ο καθένας χορεύει όπως θέλει. Τα φόρουμ προτείνουν τη χρήση του αρχείου $HOME/.xsession (μπορεί να ονομάζεται .Xsession σε ορισμένες διανομές), .xprofile ή το αρχείο /etc/X11/Xsession του συστήματος. Και φοβάμαι ότι δεν είναι μόνο αυτό. πιθανές επιλογές. Ας δούμε πώς γίνεται στο KUbuntu:

$ sudo grep -iR xmodmap /etc

Ως αποτέλεσμα, βρίσκουμε το πιο περίεργο αρχείο /etc/X11/Xsession.d/80ubuntu-xmodmap με το ακόλουθο περιεχόμενο:

$ cat /etc/X11/Xsession.d/80ubuntu-xmodmap

/usr/bin/xmodmap /usr/share/apps/kxkb/ubuntu.xmodmap || αληθής

USRMODMAP="$HOME/.Xmodmap"

εάν [ -x /usr/bin/xmodmap ]; έπειτα
αν [ -f "$USRMODMAP" ]; έπειτα
/usr/bin/xmodmap "$USRMODMAP" || αληθής
fi
fi

Δηλαδή, φορτώνονται τα περιεχόμενα του αρχείου ubuntu.xmodmap και του αρχείου custom.Xmodmap, εάν υπάρχει. Ανοίγοντας το ubuntu.xmodmap σε ένα πρόγραμμα επεξεργασίας θα αποκαλυφθεί μια λίστα με κωδικούς-κλειδιά και αντιστοιχισμένα ονόματα συμβόλων. Από αυτό μπορούμε να συμπεράνουμε: εάν ένας προγραμματιστής αναφέρει ότι το κιτ διανομής του υποστηρίζει πληκτρολόγια πολυμέσων, τότε με μεγάλο βαθμό πιθανότητας μπορείτε να βρείτε ένα παρόμοιο αρχείο. Άλλες διανομές έχουν παρόμοιο σύστημα για την εκτέλεση προσαρμοσμένων αρχείων xmodmap.

Τώρα που τα συμβολικά ονόματα έχουν αντιστοιχιστεί στα πλήκτρα, μπορείτε να αντιστοιχίσετε τις επιθυμητές ενέργειες σε αυτά. Ορισμένα περιβάλλοντα παραθύρων όπως το KDE είναι σε θέση να επεξεργάζονται ενέργειες σε συμβολικά ονόματα. Έτσι, όταν πατήσετε το κουμπί XF86AudioPlay (QUESTION), ξεκινά η αναπαραγωγή της προεπιλεγμένης αναπαραγωγής. Για να ορίσετε τον επιθυμητό συνδυασμό, απλώς μεταβείτε στο "Κέντρο Ελέγχου KDE -> Τοπική και προσβασιμότητα -> Συντομεύσεις πληκτρολογίου" (στο KUbuntu, κοιτάξτε στο "Ρύθμιση συστήματος -> Πληκτρολόγιο και ποντίκι"). Υπάρχει ένα παρόμοιο στοιχείο μενού στο Gnome (μπορείτε απλώς να καλέσετε gnome-keyboard-bindings) και στο XFce. Επιπλέον, ορισμένα προγράμματα όπως το Amarok, το Konqueror, το MPD χειρίζονται επίσης πατήματα πλήκτρων. Σε άλλα περιβάλλοντα χωρίς
Τα εργαλεία διαμόρφωσης γραφικών θα απαιτούν πιθανότατα χειροκίνητη παρέμβαση στα αρχεία διαμόρφωσης. Για παράδειγμα, για να ξεκινήσει το IceWM το πρόγραμμα αναπαραγωγής XMMS πατώντας το πλήκτρο με το συμβολικό όνομα XF86AudioPlay και, στη συνέχεια, να το πατήσετε ξανά σε παύση, προσθέστε την ακόλουθη γραμμή στο αρχείο ~/.icewm που εμφανίζεται μετά την πρώτη εκκίνηση:

$ mcedit ~/.icewm

πλήκτρο XF86AudioPlay xmms --αναπαραγωγή-παύση

Στο Fluxbox, η συμβολοσειρά για την εκκίνηση του προγράμματος αναπαραγωγής θα μοιάζει με αυτό:

$ mcedit ~/.fluxbox/keys

Κανένα XF86AudioPlay: ExecCommand xmms --play-pause

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

Ρύθμιση της αντίδρασης στην κονσόλα

Στην κονσόλα, η διαδικασία είναι κάπως διαφορετική. Όπως θυμάστε, η έξοδος dmesg συνιστούσε την εκχώρηση κωδικών κλειδιών χρησιμοποιώντας την εντολή setkeycodes. Αλλά υπάρχουν διαφορές εδώ - δεν μπορούν να υπάρχουν περισσότερες από 128 εντολές πληκτρολογίου στην κονσόλα, θα πρέπει να επιλέξετε τιμές από 0 έως 127:

$setkeycodes 0xec 118

Μπορείτε να δείτε δωρεάν τιμές στο τρέχον αρχείο διάταξης πληκτρολογίου. Στο Ubuntu και σε όλες τις διανομές που βασίζονται στο Debian, αυτό είναι συνήθως /etc/console-setup/boottime.kmap.gz. Εάν δεν υπάρχουν προβλήματα με τα κλειδιά μετά την εκκίνηση, εισάγουμε αυτήν τη γραμμή σε ένα από τα σενάρια έναρξης, για παράδειγμα, στο /etc/init.d/rc.local.

Τώρα απομένει να ορίσετε την αντιστοιχία του κλειδιού και την ενέργεια που εκτελείται. Εδώ τα περιθώρια δημιουργικότητας είναι ακόμη μεγαλύτερα από ό,τι στο X. Στο keymaps(5), η διαδικασία για την αντιστοίχιση ενός κωδικού κλειδιού είναι η εξής:

( πεδιάδα | ) keycode keynumber = keysym

# Επαναφορά της κονσόλας όταν πατάτε το πλήκτρο με κωδικό 105
κωδικός κλειδιού 105 = Decr_Console
# Μετακινήστε την κονσόλα προς τα εμπρός όταν κάνετε κλικ και ένα κλειδί με κωδικό 106
alt keycode 106 = Incr_Console

Αλλά μπορείτε να δημιουργήσετε τις δικές σας επιλογές καθορίζοντας την εντολή σε μεταβλητές:

Κωδικός κλειδιού 120 = F100
string F100 = "/sbin/shutdown -h τώρα\n"

Με άλλα λόγια, με το πάτημα του πλήκτρου με τον κωδικό 120, θα εκτελεστεί η ενέργεια που καθορίζεται στη μεταβλητή F100. στην περίπτωσή μας, ο υπολογιστής έχει ρυθμιστεί να απενεργοποιείται. Αντί για F100, φυσικά, μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο όνομα.

Τώρα το εξίσου σημαντικό κομμάτι είναι πού να τα γράψετε όλα. Η τεκμηρίωση και οι πολυάριθμες συμβουλές προτείνουν τη χρήση του τρέχοντος αρχείου διάταξης κονσόλας (στην περίπτωσή μου, boottime.kmap.gz). Παρεμπιπτόντως, αυτό είναι το μόνο αρχείο περιγραφής διάταξης που είναι διαθέσιμο μετά την εγκατάσταση του KUbuntu. για να δείτε άλλες επιλογές, εγκαταστήστε το πακέτο δεδομένων κονσόλας. Μετά από αυτό, στο /usr/share/keymaps/i386/ μπορείτε να βρείτε αρκετούς υποκαταλόγους με αρχεία μέσα. Αλλά εάν πρέπει να μεταβείτε σε άλλη διάταξη (στο Ubuntu και σε ορισμένες άλλες διανομές, το αρχείο /etc/default/console-setup ή ~/.console-setup χρησιμοποιείται για αυτόν τον σκοπό), όλες οι ρυθμίσεις θα πρέπει να μεταφερθούν σε άλλο αρχείο, το οποίο είναι κάπως
άβολος. Αν πάλι αποφασίσετε να κάνετε αυτό το βήμα, χρησιμοποιήστε τις υπάρχουσες καταχωρήσεις ως πρότυπο, χωρίς να γράψετε τίποτα στην πρώτη θέση και μην ξεχάσετε να αφήσετε μια κενή γραμμή στο τέλος.

Λίγα λόγια για το laptop

Μέχρι που συνάντησα ένα φορητό υπολογιστή, του οποίου οι κωδικοί σάρωσης των κλειδιών δεν μπορούσαν να προσδιοριστούν. Επομένως, οι ρυθμίσεις εδώ δεν διαφέρουν από αυτές που περιγράφονται παραπάνω. Αν και υπάρχει μια τεχνική για την οποία θα ήθελα να μιλήσω. Βρίσκω τη λειτουργία αδρανοποίησης πολύ βολική στη χρήση, όταν ανοίγεις τον υπολογιστή, βρίσκεις τα πάντα στη θέση τους. Οι σύγχρονες διανομές το υποστηρίζουν γενικά, αν και η διαμόρφωση είναι γενικά απλή - απλώς εγκαταστήστε το πακέτο αδρανοποίησης και παρακάμψτε τις απαραίτητες παραμέτρους στο αρχείο διαμόρφωσης. Το μόνο πράγμα είναι ότι κάθε φορά που χρειάζεται να εκτελείτε το σενάριο /usr/sbin/hibernate για να μεταβείτε σε αυτήν τη λειτουργία, η οποία δεν είναι πάντα βολική. Θέλω απλώς να κλείσω το καπάκι του φορητού υπολογιστή και να το ενεργοποιήσω ξανά
φαγητό, ανακαλύψτε τα πάντα στη θέση τους.

Αυτό είναι πολύ εύκολο να το κάνετε χρησιμοποιώντας το acpid daemon, το οποίο είναι ένα είδος διεπαφής χρήστη που σας επιτρέπει να διαχειριστείτε τυχόν συμβάντα ACPI που είναι διαθέσιμα μέσω του /proc/acpi/event. Με αυτόν τον τρόπο, το acpid διαβάζει ένα σύνολο αρχείων διαμόρφωσης από τον κατάλογο /etc/acpi/events/. Εάν δεν υπάρχει πακέτο με τον δαίμονα στη διανομή, εγκαταστήστε το από το αποθετήριο. Μπορείτε να κατεβάσετε την πιο πρόσφατη έκδοση από το phobos.fs.tum.de/acpi. Μετά την εγκατάσταση, πρέπει να δημιουργήσετε δύο αρχεία στον κατάλογο /etc/acpi/events: το καπάκι και το power. Το πρώτο περιγράφει την απόκριση στο κλείσιμο του καπακιού, το δεύτερο - στο πάτημα του κουμπιού λειτουργίας.

$ sudo mcedit /etc/acpi/events/lid

συμβάν=κουμπί/καπάκι.*
action=/usr/sbin/hibernate

$ sudo mcedit /etc/acpi/events/power

συμβάν=κουμπί/τροφοδοσία.*
action=/sbin/shutdown -h τώρα

Αυτές είναι κάπως απλοποιημένες επιλογές, στο KUbuntu θα βρείτε πιο σύνθετα σενάρια. Μετά από αυτό, απαιτείται επανεκκίνηση του δαίμονα acpid:

$ sudo /etc/init.d/acpid επανεκκίνηση

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

Tuners

Εάν δεν σας αρέσει να ασχολείστε με τα αρχεία διαμόρφωσης, εδώ είναι μερικά προγράμματα που θα σας βοηθήσουν να προσαρμόσετε τον τρόπο λειτουργίας των πλήκτρων πολυμέσων. Για παράδειγμα, ο αρχικός σκοπός του προγράμματος Sven (sven.linux.kiev.ua) ήταν να ρυθμίσει πρόσθετα πλήκτρα στο πληκτρολόγιο πολυμέσων, αλλά ξεκινώντας από την έκδοση 0.4, μπορεί να διορθώσει λάθη πληκτρολόγησης και να αλλάξει τη διάταξη του πληκτρολογίου. Επιπλέον, ακόμα κι αν διαθέτετε κανονικό πληκτρολόγιο, με τη βοήθειά του μπορείτε να μιμηθείτε τα πλήκτρα πολυμέσων χρησιμοποιώντας αντ' αυτού συντομεύσεις πληκτρολογίου. Μπορείτε επίσης να αντιστοιχίσετε ενέργειες σε συγκεκριμένα κουμπιά του ποντικιού. Καταλαβαίνει περίπου 10.000 ρωσικές λέξεις και 9.500 αγγλικά. Εάν το πρόγραμμα δεν άλλαξε
η ίδια, τότε η διάταξη μπορεί να αλλάξει χειροκίνητα, χρησιμοποιώντας ένα ειδικά καθορισμένο πλήκτρο (Break by default). Με ένα ξεχωριστό πλήκτρο (Κλείδωμα κύλισης) μπορείτε να αλλάξετε τη κεφαλαία των λέξεων (πάνω, κάτω, το πρώτο γράμμα είναι πάνω, τα υπόλοιπα κάτω). Η ένδειξη διακόπτη διάταξης πληκτρολογίου θυμάται την κατάστασή της για κάθε παράθυρο, επομένως εάν κάνετε συχνά εναλλαγή μεταξύ εφαρμογών, δεν θα χρειάζεται πλέον να αλλάξετε τη διάταξη. Το πρόγραμμα έχει εξαιρετικές δυνατότητες και θα σας συμβούλευα να το ρίξετε μια ματιά. Όλες οι ρυθμίσεις γίνονται χρησιμοποιώντας πρόγραμμα γραφικών, χτισμένο σε βιβλιοθήκες GTK+. Το Sven έχει δοκιμαστεί σε Linux, αλλά καταρχήν θα πρέπει να λειτουργεί σε συστήματα *BSD. Διαχείριση παραθύρων για χρήση
άσχετος.

Οι δυνατότητες του KeyTouch (keytouch.sf.net) είναι κάπως πιο μέτριες, αυτό το βοηθητικό πρόγραμμα χρησιμοποιείται αποκλειστικά για τη διαμόρφωση πλήκτρων πολυμέσων. Αν και με τη βοήθειά του μπορείτε να αντιστοιχίσετε τη δική σας ενέργεια σε οποιοδήποτε κλειδί, το οποίο διαφέρει από τις προεπιλεγμένες ρυθμίσεις. Στον ιστότοπο του προγράμματος, εκτός από τους πηγαίους κώδικες και τα πακέτα για ορισμένες διανομές, μπορείτε να βρείτε έτοιμες ρυθμίσεις για πληκτρολόγια πολυμέσων από τους περισσότερους γνωστούς κατασκευαστές.

Ενα ακόμα ενδιαφέρουσα λύση- xbindkeys (hocwp.free.fr/xbindkeys/xbindkeys.html) - σας επιτρέπει να εκχωρήσετε οποιαδήποτε εντολή σε οποιοδήποτε κουμπί πληκτρολογίου και ποντικιού, συμπεριλαμβανομένων εντολών φλοιού. Όλες οι ρυθμίσεις γίνονται στο αρχείο ρυθμίσεων, το οποίο έχει απλή και κατανοητή μορφή.

Πιθανότατα στο τηλέφωνό σας ήδη εγκατεστημένο από προεπιλογήΣαρωτής κώδικα QR, μπορείτε εύκολα να σαρώσετε τον πρώτο κωδικό QR με αυτόν. Είναι πολύ εύκολο να γίνει αυτό. Απλώς ακολουθήστε τις οδηγίες μας.

1. Ανοίξτε το πρόγραμμα ανάγνωσης κωδικών QR στο τηλέφωνό σας.

2. Κρατήστε τη συσκευή πάνω από τον κωδικό QR έτσι ώστε να είναι ευδιάκριτα στην οθόνη του smartphone σας.

Εάν κρατάτε σωστά το smartphone σας πάνω από τον κωδικό QR, τότε θα συμβούν τα εξής:

  • Το τηλέφωνο σαρώνει αυτόματα τον κωδικό.
  • Σε ορισμένες εφαρμογές, πρέπει να κάνετε κλικ σε μια εικόνα για να σαρώσετε έναν κωδικό αντί για ένα κουμπί όπως θα κάνατε για να τραβήξετε μια φωτογραφία στο smartphone σας.

3. Πατήστε το υποδεικνυόμενο κουμπί εάν χρειάζεται.

Σούπερ! Το smartphone σας διαβάζει τον κωδικό και ακολουθεί τον συγκεκριμένο σύνδεσμο, κάτι που δεν συμβαίνει πάντα αμέσως. Στις περισσότερες συσκευές, αυτό μπορεί να διαρκέσει μερικά δευτερόλεπτα.

Θα αρχίσετε να βλέπετε κωδικούς QR παντού. Χρησιμοποιούνται για διδασκαλία, ενημέρωση, επεξήγηση και για πολλά άλλα πράγματα. Βρείτε τα και σαρώστε! Οι κωδικοί QR θα σας εξοικονομήσουν πολύ χρόνο και προσπάθεια.

Πώς να σαρώσετε κωδικούς QR στο Android

Και τώρα θα σας πούμε πώς να χρησιμοποιήσετε την εφαρμογή σαρωτή κωδικών QR στο Android.

Εν ολίγοις:
1. Ανοίξτε Play Store .
2. Αναζήτηση Αναγνώστης κωδικών QR .
3. Επιλέξτε Αναγνώστης κώδικα QR(μέσω Σάρωση).
4. Κάντε κλικ στο " Εγκαθιστώ".
5. Ανοίξτε το πρόγραμμα Ανάγνωση κωδικού QR.
7. Στρέψτε την κάμερα στον κωδικό QR.
8. Κάντε κλικ στο " ΕΝΤΑΞΕΙ".

Βήμα 1. Ανοίξτε το Play Store στο Android.Είναι ένα εικονίδιο σε μια εφαρμογή ή αρχική οθόνη.

Βήμα 2 Εισαγάγετε το πρόγραμμα ανάγνωσης κωδικών QR στη μηχανή αναζήτησης.Θα εμφανιστεί μια λίστα εφαρμογών για την ανάγνωση του κωδικού QR.

  • Αυτό το άρθρο εξηγεί πώς να χρησιμοποιήσετε το πρόγραμμα ανάγνωσης κωδικών QR, αλλά μπορείτε να επιλέξετε την εφαρμογή που σας αρέσει. Απλώς φροντίστε να διαβάσετε για την εφαρμογή πριν τη λήψη.
  • Τα βήματα θα πρέπει να είναι τα ίδια για όλες τις εφαρμογές ανάγνωσης κώδικα QR.

Βήμα 3Κάντε κλικ στο πρόγραμμα ανάγνωσης κωδικών QR που αναπτύχθηκε από τη Scan.Το όνομα του προγραμματιστή αναγράφεται κάτω από κάθε εφαρμογή. Ίσως χρειαστεί να κάνετε κύλιση προς τα κάτω στη σελίδα για να βρείτε την εφαρμογή που δημιουργήθηκε από το Scan.

Βήμα 4Κάντε κλικ στην Εγκατάσταση.Θα εμφανιστεί ένα αναδυόμενο παράθυρο που σας ζητά να παραχωρήσετε άδεια πρόσβασης σε πληροφορίες στο Android σας.

Βήμα 5Κάντε κλικ στο "Αποδοχή".Το QR Code Reader θα εγκατασταθεί τώρα στη συσκευή σας Android.

    • Όταν γίνει λήψη της εφαρμογής, το κουμπί "Εγκατάσταση" θα αλλάξει σε "Άνοιγμα" και θα έχετε ένα νέο εικονίδιο στην εφαρμογή.

Βήμα 6Ανοίξτε το πρόγραμμα ανάγνωσης κωδικών QR.Είναι ένα εικονίδιο που μοιάζει με κωδικό QR στην εφαρμογή. Θα ανοίξει μια εφαρμογή που μοιάζει με τυπική οθόνη κάμερας.

Βήμα 7Ευθυγραμμίστε τον κωδικό QR στο πλαίσιο της κάμερας.Λίγο σαν τον τρόπο που τραβάτε φωτογραφίες, μόνο που δεν χρειάζεται να πατήσετε κανένα κουμπί. Όταν ο σαρωτής γραμμωτού κώδικα διαβάσει τον κώδικα, θα εμφανιστεί ένα αναδυόμενο παράθυρο με τη διεύθυνση URL στον κώδικα.


Βήμα 8Κάντε κλικ στο OK για να ανοίξετε τον ιστότοπο.Αυτό εκκινεί το προεπιλεγμένο πρόγραμμα περιήγησης ιστού και πλοηγείται στη διεύθυνση URL στον κώδικα QR.

Η επόμενη τυπική συσκευή υπολογιστή, φαινομενικά απλή, αλλά μερικές φορές προκαλεί προβλήματα στον ερευνητή, είναι το πληκτρολόγιο.

Σε γενικές γραμμές, η συσκευή είναι απλή. Ειδικά κανένα από τα παλιά μοντέλα δεν είναι συνδεδεμένο στη θύρα PS / 2. Όπως δείχνουν πολλά πειραματικά δεδομένα, το τσιπ ελέγχου Claudia σαρώνει πατήματα πλήκτρων και τα μεταδίδει σε σειριακό κώδικα στη θύρα. Η συχνότητα ρολογιού αυτής της μετάδοσης είναι πολλαπλάσιο (στη συντριπτική πλειονότητα των περιπτώσεων) 6,3 ή 10 kHz. Αν και ο συγγραφέας συνάντησε μερικά αντίγραφα τα πιο πρόσφατα χρόνια, η συχνότητα ρολογιού των οποίων ήταν στην περιοχή των 20 kHz.

Όλα τα πληκτρολόγια, όταν πατάτε παρατεταμένα οποιοδήποτε πλήκτρο, αρχίζουν (μετά από μια παύση) να επαναλαμβάνουν τη μετάδοση του κωδικού του πλήκτρου «στο άπειρο». Στην κανονική λειτουργία, αυτό συνήθως προκαλεί υπερχείλιση του buffer του ελεγκτή και συντριβή μετά από λίγα δευτερόλεπτα. Εμφανίζεται ηχητικό σήμασύστημα "ηχείο" - "τρίξιμο". Η ουσία της δοκιμαστικής λειτουργίας (η πιο συνηθισμένη) είναι να μπλοκάρει την εντολή υπερχείλισης buffer, η οποία επιτρέπει, όταν πατηθεί το πλήκτρο, να παρέχει μια ατελείωτη μετάδοση του επιλεγμένου χαρακτήρα μέσω του καλωδίου "clave".

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

10101010 (55) κλειδί "+". = »

01010101 (AA) σε τυπικούς πίνακες - δεν ισχύει

Ο γενικός πίνακας των κωδικών σάρωσης φαίνεται στον Πίνακα 14.1

Πίνακας 14.1- Κωδικοί σάρωσης πληκτρολογίου

Κλειδί

Σάρωση κώδικα

Κλειδί

Σάρωση κώδικα

Κλειδί

Σάρωση κώδικα

Κλειδί

Σάρωση κώδικα

Έτσι, κατά την εφαρμογή της λειτουργίας δοκιμής και, για παράδειγμα, ενός βάρους που τοποθετείται στο πλήκτρο "+", μια άπειρη ακολουθία πακέτων παλμών θα υπάρχει στο καλώδιο "clave". Σε αυτήν την περίπτωση, η περίοδος επανάληψης του παλμού στο πακέτο (δηλαδή η συχνότητα ρολογιού) θα είναι ίση με 6,10 ή 20 kHz και ο ρυθμός επανάληψης του πακέτου θα είναι πολύ χαμηλότερος. Η μορφή δεδομένων φαίνεται στο σχήμα 14.1

Δύο γραμμές χρησιμοποιούνται για την ανταλλαγή δεδομένων στο καλώδιο του πληκτρολογίου - KBData και KBSync. Κατά τη μετάδοση κωδικών σάρωσης, το πληκτρολόγιο ορίζει το επόμενο bit δεδομένων στη γραμμή KBData και επιβεβαιώνει τη μετάδοση μεταφέροντας το σήμα από το "1" στο "0" στη γραμμή KBSync.

Ο ελεγκτής μπορεί να σηματοδοτήσει την απροθυμία του για μετάδοση/λήψη δεδομένων με χαμηλό επίπεδο στη γραμμή KBSync. Τον υπόλοιπο χρόνο, όταν δεν υπάρχουν δεδομένα για μετάδοση, και οι δύο γραμμές έχουν υψηλό επίπεδο σήματος.



Όπως προκύπτει από τα παραπάνω, στο φάσμα PEMIN του καλωδίου του πληκτρολογίου θα πρέπει να περιμένουμε στοιχεία συχνότητας με συχνότητα ρολογιού 1/76,04·10 -6 =13,15 kHz. Επιπλέον, λόγω της παρουσίας δύο σημάτων μετατόπισης φάσης με διαφορετικές (αλλά πολλαπλές!) περιόδους, οι ζυγές και περιττές συνιστώσες συχνότητας θα διαφέρουν ως προς το πλάτος.

Όπως αναμενόταν, η γραμμή δεδομένων συγχρονισμού PEMIN δεν είναι καταρχήν ενημερωτική. Αλλά η διάκριση ενός PAMIN από ένα άλλο δεν είναι καθόλου εύκολο. Ένα καλώδιο, τα σήματα είναι σύγχρονα ...

Πρακτικά ο μόνος τρόπος- επιλέξτε έναν κωδικό σάρωσης με τον ελάχιστο αριθμό λογικών "1" στη συσκευασία. Αυτά είναι τα κλειδιά "F3" και F9 "(03 και 01 στον εξαγωνικό κωδικό). Ο κωδικός "00" δεν χρησιμοποιείται.

Ο παλμογράφος του κωδικού σάρωσης "F3" φαίνεται παρακάτω.


Αυστηρά "από άποψη ενέργειας", εάν μετρήσετε όλες τις συνιστώσες συχνότητας του PEMIN με τον κωδικό "=" και, για παράδειγμα, τον κωδικό "F9", τότε η διαφορά στις ενδείξεις του δέκτη σε ΚΑΘΕ από τις συνιστώσες συχνότητας είναι το αληθινό μέρος πληροφοριών της ενέργειας PEMIN. Και αυτό είναι το μέγιστο. Η δουλειά είναι μάλλον περίπλοκη και κουραστική, αν δεν είναι δυνατό να την εμπιστευτείς στη «μηχανή». Τα ίδια τα συστατικά του PEMIN για τέτοια χαμηλές συχνότητεςδεν εντοπίζονται εύκολα. Έτσι και οι διαφορές για να «πιάσεις»...



Στην πράξη, το SI, στη συντριπτική πλειοψηφία των περιπτώσεων, απλά μετρά τα επίπεδα του PEMIN (χωρίς να αφαιρέσει τίποτα) και υπολογίζει την παράμετρο ασφαλείας. Είναι δυνατό και έτσι, «με περιθώριο», αλλά ο ειδικός είναι υποχρεωμένος να γνωρίζει την πραγματική κατάσταση των πραγμάτων.

Συμπερασματικά, το θέμα είναι το "pinout" των υποδοχών πληκτρολογίου AT και PS / 2.


Οι «εικόνες» στον δέκτη φαίνονται πολύ μακριά από το να είναι τόσο «κλασικές», ωστόσο, είναι αρκετά αναγνωρίσιμες. Ακολουθούν παραδείγματα



Το φάσμα δείχνει σαφώς μια αύξηση στο πλάτος των συστατικών με φθίνουσα συχνότητα.

Υπάρχουν επίσης χαρακτηριστικά των μετρήσεων "clave" σε αυτήν την περιοχή συχνότητας (από δεκάδες kHz και περισσότερο). Το γεγονός είναι ότι το πληκτρολόγιο, στη συνηθισμένη του θέση, βρίσκεται όχι μακριά από μπλοκ συστήματος. Και στο επάνω μέρος του SB υπάρχει ένα τροφοδοτικό μεταγωγής - η πιο ισχυρή πηγή PEMIN τόσο για τα εξαρτήματα "E" και "H". Στο «φως» ενός τέτοιου θεατρικού προβολέα, το να βλέπεις το θαμπό «φως» του πληκτρολογίου είναι ιδιαίτερη τέχνη! Ως εκ τούτου, προτείνω την ακόλουθη προσέγγιση. Απομακρύνετε το «claudia» από το SB όσο το δυνατόν περισσότερο. Καλύτερα - σε καλώδιο επέκτασης PS / 2. Εμπορικά 2-2,5 μέτρα.

Τοποθετήστε την κεραία έτσι ώστε όσο το δυνατόν λιγότερο να κατευθύνεται προς αυτήν από το SB (το σήμα, με εύρος ζώνης δέκτη μεγαλύτερο από 10 kHz, είναι ένα συνεχές φάσμα). Και τώρα, κοντά στην έτσι προσανατολισμένη, σταθερή κεραία, αρχίστε να στρίβετε το "clave" και το καλώδιο του (όχι το αντίστροφο!). Τότε θα έχετε πολύ περισσότερες πιθανότητες να ανιχνεύσετε τα σήματα PEMIN του πληκτρολογίου, να δείτε τα εξαρτήματα PEMIN στην οθόνη του αναλυτή με τα μάτια σας.

Όλα τα παραπάνω αναφέρονταν στο πληκτρολόγιο με διεπαφή PS / 2. Τώρα όμως αντικαθίστανται μαζικά από πληκτρολόγια USB.

Γενικά, αυτή η διεπαφή εξετάστηκε με επαρκείς λεπτομέρειες μαζί με τους εκτυπωτές. Ωστόσο, θα ήταν χρήσιμο να δοθεί κάποιος «προσδιορισμός στόχου» σχετικά με το πληκτρολόγιο.

Ας θυμηθούμε την κατασκευή πακέτων για τη διεπαφή USB, δεδομένου ότι το πληκτρολόγιο συνδέεται αυστηρά με χαμηλή ταχύτητα (δηλαδή, στην πραγματικότητα, μέσω της διεπαφής USB 1.0).

Το μέγιστο μέγεθος του ωφέλιμου φορτίου DATA (ωφέλιμο φορτίο) για συσκευές χαμηλής ταχύτητας είναι 8 byte. Δηλαδή, αυτό ακριβώς απαιτεί ο κώδικας σάρωσης πληκτρολογίου.

Η προβολή του σήματος (δηλαδή των δεδομένων) στη γραμμή USB δεν ήταν τόσο εύκολη υπόθεση. Ωστόσο, αυτό ακριβώς αποκαλύφθηκε στο καλώδιο ενός τυπικού «clave» USB του μοντέλου GENIUS KB-06XE, συγκεκριμένα στη γραμμή «data +» (wire) (Εικόνα 14.10)


Αυτοί οι δύο παλμογράφοι αλλάζουν ο ένας τον άλλον με μια απροσδιόριστη (χαοτική) συχνότητα και οι «εικόνες» των σημάτων δεν εξαρτώνται από το πατημένο πλήκτρο του πληκτρολογίου (ή κανένα πάτημα). Δεν εντοπίστηκαν άλλες αλλαγές στο "μεταβλητό" μέρος του πακέτου (πλαίσιο).

Η συχνότητα επανάληψης αυτών των πακέτων σταθεροποιείται άκαμπτα (Εικ. 14.11) και η διάρκεια καθενός είναι (βλέπεται στους παλμογράφους) περίπου 34 ± 1 μs.


Τα πακέτα ακολουθούν κάθε 4 ms. Ωστόσο, πρέπει να σημειωθεί ότι το τέλος κάθε πακέτου «τρέμει» συνέχεια, και είναι αξιοσημείωτο, το κλασικό «jitter». Ως εκ τούτου, η φασματική εικόνα είναι κάπως θολή και γίνεται σαφής μόνο μετά από αρκετά μεγάλο μέσο όρο.


Επιπλέον, θα πρέπει να ληφθεί υπόψη ότι, λόγω διαφορετικών περιόδων επανάληψης παλμών και διαφορετικής διάρκειας παλμού, το φάσμα έχει τον χαρακτήρα ενός μείγματος ενός συνεχούς και ενός φάσματος γραμμής. Ωστόσο, η λοβώδης φύση του φάσματος, φυσική για μια άπειρη ακολουθία πακέτων και πολλαπλάσια στα «πέταλα» της μέσης διάρκειας πακέτου, διατηρείται πολύ καθαρά. Μόνο τα «μηδενικά» της συνάρτησης εξομαλύνονται από το jitter και τη μη επαναλαμβανόμενη περίοδο των επιμέρους παλμών. Ωστόσο, η ίδια η εικόνα είναι αρκετά χαρακτηριστική. Με λεπτότερη ανάλυση συχνότητας, το φάσμα αρχίζει να αναλύεται σε «γραμμές» που καθορίζονται από το ρυθμό επανάληψης του πακέτου (250 Hz) (Εικ. 14.13) που είναι υπεύθυνο για τη μεταφορά δεδομένων απέτυχε. Ωστόσο, μπορεί να υποστηριχθεί ότι το καλώδιο πληκτρολογίου PEMIN θα εξακολουθεί να είναι έτσι και κανένα άλλο. Είναι σαφές σε ποιες συχνότητες να το ψάξετε, είναι ξεκάθαρο ότι θα είναι συνεχές (σε κάθε περίπτωση, με ανάλυση συχνότητας του δέκτη άνω των 0,3 kHz). Και είναι σαφές ποια τιμή πρέπει να αντικατασταθεί στους υπολογισμούς ως τιμή ρολογιού (η ελάχιστη περίοδος παλμών σε ένα πακέτο στο πείραμα ήταν 1,322 μs). Η μέτρηση αυτού, με οποιοδήποτε SI, η ύπαρξη παλμογράφου, τουλάχιστον με ζώνη 200 MHz, είναι μια ασήμαντη εργασία. Λειτουργία δοκιμής, στην πραγματικότητα - οποιαδήποτε, μπορείτε να πατήσετε τα πλήκτρα (οποιοδήποτε), δεν μπορείτε να πατήσετε τίποτα. Τα πακέτα στη διεπαφή μεταφέρονται με τον ίδιο τρόπο. Και, ως πρώτη προσέγγιση, τα θεωρούμε κατατοπιστικά (μέχρι να αποδειχθεί το αντίθετο).

Τα δεδομένα παλμογράφημα και φάσματα ελήφθησαν χρησιμοποιώντας έναν παλμογράφο AKIP-4108/2 συνδεδεμένο στον ίδιο υπολογιστή στον οποίο πραγματοποιήθηκαν οι μετρήσεις (πρέπει να σημειωθεί ότι αυτή είναι μια πολύ λειτουργική επανάληψη της ανάπτυξης της τεχνολογίας PICO από τη δική μας. Όχι χειρότερη από την Κινέζικα :)) .

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

Για άλλες λειτουργίες της διεπαφής USB, χρειάζεται ήδη ένας παλμογράφος με εύρος ζώνης πολλών GHz.

Το πώς ακριβώς να μετρηθεί το συνεχές φάσμα και, ταυτόχρονα, να παραμείνει στο πλαίσιο του υπάρχοντος NMD είναι μια ξεχωριστή κουβέντα και όχι για ανοιχτή συζήτηση, δυστυχώς... Ωστόσο, σε επόμενες δημοσιεύσεις θα πρέπει να επιστρέψουμε σε αυτό, εκεί δεν είναι πουθενά. Προσπαθώ να μείνω εντός ορίων...

Με παρακίνησε να δουλέψω σε μια συσκευή αυτού του είδους το γεγονός ότι οι περισσότερες από τις εύκολες στην αναπαραγωγή συσκευές Gamemort δεν επέτρεπαν την εφαρμογή επαρκούς αριθμού κουμπιών ελέγχου. Η θύρα παιχνιδιών υπολογιστή σχεδιάστηκε αρχικά για το πολύ τέσσερα κουμπιά. Όλα τα είδη επεκτάσεων δεν έχουν επίσης την επιθυμητή ευελιξία. Για παράδειγμα, η επέκταση CH Flightstick Pro, η οποία είναι δημοφιλής μεταξύ των ανθρώπων που το κάνουν μόνοι σας, σας επιτρέπει να εφαρμόσετε έως και 14 κουμπιά, αλλά δεν μπορείτε να χρησιμοποιήσετε δύο κουμπιά ταυτόχρονα - σχετικά με το να πετάτε σε τέτοιες συσκευές σε παιχνίδια στα οποία πρέπει να "γυρίζετε το κεφάλι σας" συνεχώς - στα ίδια πουλιά, μπορείτε να ξεχάσετε. Ορισμένες επεκτάσεις χρησιμοποιούν αποκλειστικά μια ψηφιακή διεπαφή - τα δεδομένα στα πατημένα κουμπιά και η εκτροπή της λαβής μεταδίδονται μέσω των ψηφιακών γραμμών της θύρας παιχνιδιού, οι οποίες αρχικά προορίζονταν για τη μετάδοση δεδομένων στα τέσσερα "τυπικά" κουμπιά. Θεωρώ ακόμη και τέτοιες επεκτάσεις κάπως περιττές. Ναι, και η μετατροπή των αναλογικών δεδομένων σε ψηφιακά περιπλέκει τη σχεδίαση του joystick. Επιπλέον, δεν θα θέλει κάθε παιχνίδι να καταλάβει τι είδους τέρας "κόλλησε" σε αυτό. Και το clave - εδώ είναι, με όλη του την ομορφιά των 102 κλειδιών! Επιπλέον, οι συνδρομητές του RU.GAME.FLIGHT έβαλαν λάδι στη φωτιά, ρωτώντας κατά καιρούς «πώς μπορώ να δαμάσω την Claudia και να διασχίσω τη χαρά;» και φεύγοντας χωρίς τίποτα.

Εν ολίγοις, το καθήκον της συσκευής είναι να «κάθεται» στο λεωφορείο μεταξύ του πληκτρολογίου και του υπολογιστή και να προσομοιώνει τα πλήκτρα στο πληκτρολόγιο, σύμφωνα με τα κουμπιά που πατάτε στη συσκευή.

Έτσι, κάθισα για ανάπτυξη. Πριν από αυτό, είχα εμπειρία με διάφορους μικροεπεξεργαστές και μικροελεγκτές. Γενικά - δάχτυλα από αυτί σε αυτί. Και αφελώς σκέφτηκα ότι τώρα θα πάρω τις αποβάθρες, θα κάνω RTFM και σε μια εβδομάδα θα είμαι πάνω σε ένα άσπρο άλογο. Το όλο εμπόδιο αποδείχθηκε ότι δεν μπορούσα να βρω τεκμηρίωση σχετικά με το πρωτόκολλο μεταφοράς δεδομένων μεταξύ του πληκτρολογίου και του ελεγκτή είτε στο Διαδίκτυο είτε στα σχετικά συνέδρια Fido. Έπρεπε να πάρω έναν παλμογράφο και να χρειαστώ αρκετές εβδομάδες για να αναλύσω τις προσωρινές καλύβες και να προσπαθήσω να τις επαναλάβω. Επομένως, οι περισσότερες από τις παρακάτω πληροφορίες είναι το αποτέλεσμα των συμπερασμάτων μου και δεν τεκμηριώνονται. Αν κάνω λάθος σε κάτι, θα χαρώ να ακούσω σχόλια στο rashpilστο ukrτελεία καθαρά.

Βασικές αρχές μετάδοσης δεδομένων

Όλα τα παρακάτω ισχύουν για τα πληκτρολόγια PS / 2 και AT, τα οποία διαφέρουν μόνο στη σχεδίαση της υποδοχής (μπορούν να συνδεθούν μέσω προσαρμογέα).

Μεταξύ του πληκτρολογίου και του ελεγκτή που βρίσκεται στη μητρική πλακέτα του υπολογιστή (εφεξής θα αναφέρεται απλώς ως "ελεγκτής"), πραγματοποιείται αμφίδρομη ανταλλαγή δεδομένων. Ο ελεγκτής εκπέμπει διάφορες εντολές (για παράδειγμα, αλλαγή της κατάστασης των LED ή της ταχύτητας αυτόματης επανάληψης). Το πληκτρολόγιο μεταδίδει κωδικούς σάρωσης πατημένων πλήκτρων (κωδικός σάρωσης - σύμβολοκλειδιά, που δεν πρέπει να συγχέονται με τους κωδικούς ASCII).

Σάρωση κωδικών

Κλειδί Σάρωση κώδικα Κλειδί Σάρωση κώδικα Κλειδί Σάρωση κώδικα Κλειδί Σάρωση κώδικα
1 16 2 3 26 4 25
5 6 36 7 3D 8
9 46 0 45 - + 55
backspace 66 Αυτί 0D Q 15 W
μι 24 R 2D Τ 2C Υ 35
U 3C Εγώ 43 Ο 44 Π
[ 54 ] Εισαγω Ctrl(L) 14
ΕΝΑ 1C μικρό ρε 23 φά
σολ 34 H 33 J κ 42
μεγάλο ; 4C " 52 `
Shift(L) 12 \ 61 Ζ Χ 22
ντο 21 V σι 32 Ν 31
Μ , 41 . 49 /
Shift(R) 59 Alt(L) 11 Χώρος 29 καπάκι 58
Esc 76 F1 05 F2 06 F3 04
F4 0C F5 03 F6 F7 83
F8 F9 01 F10 09 F11 78
F12 07 κλείδωμα κύλισης * 7C Num Lock 77
7 6C 8 75 9 -
4 5 73 6 74 +
1 69 2 72 3 0 70
. 71 Alr(R) Ε0-11 Ctrl(R) Ε0-14 Εκτύπωση οθόνης E0-12-E0-7C
Εισάγετε Ε0-70 Διαγράφω Ε0-71 Αριστερά Ε0-6Β Σπίτι E0-6C
τέλος Ε0-69 Πάνω Ε0-75 Κάτω Ε0-72 Σελίδα προς τα πάνω E0-7D
PageDown Ε0-7Α σωστά Ε0-74 Εισαγω Ε0-5Α / Ε0-4Α

Σημείωση: Το πληκτρολόγιο AT έχει στην πραγματικότητα τρία διαφορετικά σετ κωδικών σάρωσης. Έδωσα μόνο τις τιμές για το σύνολο 2 - την προεπιλεγμένη.

Όταν πατηθεί ένα πλήκτρο, το πληκτρολόγιο στέλνει τον κωδικό σάρωσης αυτού του πλήκτρου στον ελεγκτή. Όταν απελευθερωθεί - πρώτα το πρόθεμα 0F0h και, στη συνέχεια, ο κωδικός σάρωσης του κλειδιού που απελευθερώθηκε.

Οι συνδυασμοί πλήκτρων με Shift, Alt και Ctrl μεταδίδονται ως ακολουθία δύο κωδικών σάρωσης. Από την άποψη του ελεγκτή, αυτά τα πλήκτρα δεν διαφέρουν από όλα τα άλλα. Με τον ίδιο τρόπο, οι λειτουργίες Num Lock και Caps Lock δεν διαφέρουν σε επίπεδο υλικού - διαφέρουν σε επίπεδο λογισμικού από το πρόγραμμα που εξυπηρετεί τις διακοπές από το πληκτρολόγιο.

Εν συντομία, θέλω να σταθώ στην εφαρμογή της λειτουργίας αυτόματης επανάληψης. Κατά κανόνα, οι λειτουργίες αυτόματης επανάληψης εκχωρούνται στο ίδιο το πληκτρολόγιο - μετά από ένα ορισμένο χρονικό διάστημα, εάν το πλήκτρο δεν απελευθερωθεί, το πληκτρολόγιο στέλνει έναν άλλον ακριβώς τον ίδιο κωδικό σάρωσης. Εάν αυτή τη στιγμή πατηθεί ένα ακόμη πλήκτρο, τότε ένας άλλος κωδικός σάρωσης θα «πετάξει» στον ελεγκτή και θα θεωρηθεί ότι έχει πατηθεί μόνο ένα πλήκτρο. Στα παιχνίδια, αυτό το πρόβλημα επιλύεται με στοιχειώδη τρόπο - το πλήκτρο θεωρείται πατημένο μέχρι να φτάσει ο αντίστοιχος κωδικός σάρωσης με το πρόθεμα 0F0h. Επομένως, δεν εφάρμοσα κατ' αρχήν λειτουργίες αυτόματης επανάληψης.

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

Περιγραφή του πρωτοκόλλου ανταλλαγής

Η ανταλλαγή δεδομένων μεταξύ του πληκτρολογίου και του ελεγκτή πραγματοποιείται ασύγχρονα χρησιμοποιώντας ένα σειριακό πρωτόκολλο. Η ουσία της ασύγχρονης μετάδοσης είναι ότι τα δεδομένα μεταδίδονται μόνο όταν υπάρχει κάτι για μετάδοση - ένα πλήκτρο στο πληκτρολόγιο πατιέται / απελευθερώνεται και πρέπει να εκδοθεί ο αντίστοιχος κωδικός σάρωσης ή ο ελεγκτής πρέπει να εκδώσει μια εντολή στο πληκτρολόγιο.

Δύο γραμμές χρησιμοποιούνται για την ανταλλαγή δεδομένων - KBData και KBSync. Κατά τη μετάδοση κωδικών σάρωσης, το πληκτρολόγιο ορίζει το επόμενο bit δεδομένων στη γραμμή KBData και επιβεβαιώνει τη μετάδοση μεταφέροντας το σήμα από το "1" στο "0" στη γραμμή KBSync. Κατά τη λήψη δεδομένων από τον ελεγκτή, το πληκτρολόγιο διαβάζει το bit δεδομένων από τη γραμμή KBData και εκδίδει μια επιβεβαίωση λήψης μεταφέροντας το σήμα από το "1" στο "0" στη γραμμή KBSync. Ο ελεγκτής μπορεί να σηματοδοτήσει την απροθυμία του για μετάδοση/λήψη δεδομένων με χαμηλό επίπεδο στη γραμμή KBSync. Τον υπόλοιπο χρόνο, όταν δεν υπάρχουν δεδομένα για μετάδοση, και οι δύο γραμμές έχουν υψηλό επίπεδο σήματος. Ο ρυθμός επανάληψης παλμών της γραμμής KBSync είναι περίπου 10-25KHz.

Τα δεδομένα μεταδίδονται με την ακόλουθη σειρά: ένα bit έναρξης - "0", οκτώ bit δεδομένων, bit ισοτιμίας (άθροισμα όλων των bit +1), ένα bit τερματισμού - "1". Μετά τη λήψη κάθε byte δεδομένων, ο ελεγκτής ορίζει ένα χαμηλό επίπεδο στη γραμμή KBSync, σηματοδοτώντας έτσι ότι είναι απασχολημένος με την επεξεργασία των δεδομένων που λαμβάνονται και δεν είναι έτοιμος να λάβει τα επόμενα. Αυτό μπορεί να θεωρηθεί ως αναγνώριση αποδοχής. Το πληκτρολόγιο αναγνωρίζει κάθε byte της λαμβανόμενης εντολής εκδίδοντας τον κωδικό 0FAh. Εάν παρουσιαστεί σφάλμα κατά τη μετάδοση, ο ελεγκτής μπορεί να απαιτήσει να επαναληφθεί η μετάδοση του τελευταίου byte εκδίδοντας την εντολή 0FEh. Το πληκτρολόγιο συμπεριφέρεται διαφορετικά - απλώς αγνοεί τα σφάλματα. Δεν βλέπω τίποτα μοιραίο σε αυτό - εάν το σύστημά σας παρουσιάζει συχνές διακοπές λειτουργίας, τότε δεν έχει θέση στην επιφάνεια εργασίας.

Πιθανότατα, οι εξηγήσεις μου ήταν πολύ συγκεχυμένες, οπότε θα προσπαθήσω να τις επεξηγήσω με μερικά χρονικά διαγράμματα.

Γενική προβολή μετάδοσης δεδομένων από το πληκτρολόγιο (S1 - bit έναρξης, S2 - bit διακοπής, D0-D7 - δεδομένα, P - bit ισοτιμίας, W - επεξεργασία ληφθέντων δεδομένων)

Ένα παράδειγμα μετάδοσης byte 74h είναι το πλήκτρο "6" στο numppad. Σε αυτό το παράδειγμα, όταν το πληκτρολόγιο ξεκινά μια μετάδοση, ο ελεγκτής σηματοδοτεί ότι δεν είναι έτοιμος να λάβει δεδομένα και το πληκτρολόγιο περιμένει να απελευθερωθεί η γραμμή KBSync.

Υλοποίηση υλικού

Τώρα θα πάω απευθείας στην περιγραφή της υλοποίησης της συσκευής στο υλικό.

Η συσκευή περιλαμβάνεται στο κενό μεταξύ των σημάτων KBSync και KBData και περνά σήματα από / προς το πληκτρολόγιο μέσω της ίδιας, μετράει την κατάσταση των τεσσάρων κουμπιών και εκδίδει τους αντίστοιχους κωδικούς σάρωσης, προσομοιώνοντας έτσι τη λειτουργία του πληκτρολογίου.

Η βάση της συσκευής είναι ένας μικροελεγκτής μονού τσιπ AT89C2051. Ο μικροελεγκτής AT89C2051 της Atmel ανήκει στην οικογένεια MCS-51 ( εγχώριο ανάλογο- MK-51). Η κύρια διαφορά μεταξύ του AT89C2051 και του i8051 είναι η χαμηλότερη κατανάλωση ενέργειας, ο αριθμός των γραμμών I/O μειώθηκε σε 15 και η αδυναμία χρήσης εξωτερικής μνήμης. Περισσότερο λεπτομερείς πληροφορίεςγια τα AT89C2051 και i8051 μπορείτε να βρείτε στις www.atmel.com και www.intel.com. Αντί για AT89C2051, μπορείτε να χρησιμοποιήσετε AT89C51, i8051 (KP1816BE51) ή i8031 (KP1816BE31) με εξωτερική ROM. Αλλά οι δύο τελευταίες επιλογές, λόγω της αυξημένης κατανάλωσης ενέργειας, μπορεί να οδηγήσουν στην καύση της ασφάλειας του ελεγκτή πληκτρολογίου.

Στους μικροελεγκτές Atmel, μετά την κύρια ονομασία, υποδεικνύεται η μέγιστη συχνότητα της γεννήτριας ρολογιού σε megahertz. Σας συμβουλεύω να εγκαταστήσετε έναν μικροελεγκτή σχεδιασμένο για συχνότητα 24 MHz και χαλαζία με υψηλότερη συχνότητα - 16-20 MHz.

διάγραμμα κυκλώματος. (R1-R4 - 47K; R5 - 10K; C1, C2 - 18pF; C3 - 1uF; D1 - AT89C2051; BQ1 - χαλαζίας 12-24MHz)

Η γραμμή P1.4 χρησιμοποιείται ως έξοδος ενεργοποίησης ψηφοφορίας κουμπιού. Αυτή είναι μια ρεζέρβα για μελλοντικές επεκτάσεις - οι γραμμές P1.4-P1.7 θα χρησιμοποιηθούν για την έκδοση της διεύθυνσης της γραμμής για ψηφοφορία πατημένων κουμπιών (έως 16 γραμμές των 4 κουμπιών η καθεμία). Το "0" στη γραμμή P1.0-P1.3 σημαίνει ότι πατιέται το αντίστοιχο κουμπί.

Τα στοιχεία C3 και R5 εφαρμόζουν ένα κύκλωμα για τη δημιουργία σήματος επαναφοράς όταν εφαρμόζεται ισχύς.

Οι γραμμές KBData από το πληκτρολόγιο και τον ελεγκτή τροφοδοτούνται στις εισόδους P3.2 (INT0) και P3.3 (INT1). Έτσι, μια προσπάθεια έναρξης μεταφοράς δεδομένων από το πληκτρολόγιο ή τον ελεγκτή προκαλεί την αντίστοιχη διακοπή. Οι ρουτίνες για την εξυπηρέτηση αυτών των διακοπών απλώς εκπέμπουν τα σήματα που αντιστοιχούν στη μεταφορά ενός byte μέσω του μικροελεγκτή. Σε μια στιγμή που ο μικροελεγκτής δεν είναι απασχολημένος με τη μετάδοση δεδομένων, οι γραμμές P1.0-P1.4 μετρώνται, τα δεδομένα που λαμβάνονται υποβάλλονται σε επεξεργασία και οι αντίστοιχοι κωδικοί σάρωσης εκδίδονται στον ελεγκτή. Σε αυτήν την έκδοση, δίνεται προτεραιότητα στα δεδομένα που μεταδίδονται από την ίδια τη συσκευή. Επομένως, τα δεδομένα από το πληκτρολόγιο μπορεί μερικές φορές να χαθούν.

Ολοκληρώνοντας αυτήν την ενότητα, θα δώσω το pinout των υποδοχών πληκτρολογίου AT και PS / 2.

Το σήμα -KBRset είναι ένα προαιρετικό σήμα. Ορισμένοι ελεγκτές μπορεί να το χρησιμοποιήσουν για να επαναφέρουν το πληκτρολόγιο.

Κείμενο υλικολογισμικού

Παρέχω τον πηγαίο κώδικα για το υλικολογισμικό για τον μικροελεγκτή AT89C2051 με την ελπίδα ότι ένας περίεργος αναγνώστης μπορεί να με διορθώσει ή να προσαρμόσει το πρόγραμμα ώστε να λειτουργεί με διαφορετικό τύπο μικροελεγκτή.

org 0 sjmp start org 3 jmp from_keyboard ; INT0 org 13h jmp to_keyboard ; Κίνηση έναρξης INT1 a,#5 ; ρύθμιση τύπου διακοπής mov tcon,a ; INT0 και INT1 στο μπροστινό μέρος - mov a,#0 ; μετάβαση από το "1" στο "0" mov ip,a mov a,#85h mov δηλαδή,a mov a,#0ffh ; Στη διεύθυνση 06h αποθηκεύεται η τελευταία κίνηση 6,a. επεξεργασμένος κωδικός clr p1.4 ; ενεργοποίηση βρόχου ψηφοφορίας mov a,p1 ; η κατάσταση των κουμπιών διαβάζεται και a,#15 ; - Junior τέσσερα bit της θύρας P1. D0 - επάνω; D1 - δεξιά? D2 - κάτω; D3 - αριστερά mov dptr,#hat_table ; ανάγνωση δεδομένων σχετικά με τέσσερα κουμπιά movc a,@a+dptr ; Επέκταση σε οκτώ κατευθύνσεις. D0 - επάνω; D1 - δεξιά. D2 - κάτω; D3 - αριστερά. D4 - δεξιά επάνω. D5 - δεξιά προς τα κάτω. D6 - αριστερά προς τα κάτω. D7 - αριστερά προς τα πάνω mov r2,a ; αποθήκευση δεδομένων mov r0,a xrl a,6 ; εάν τα νέα δεδομένα είναι ίδια με το βρόχο jz. λήφθηκε στον προηγούμενο κύκλο - επαναλάβετε τη δημοσκόπηση mov r1,#8 ; βρόχος για οκτώ bit loop3 jnb acc.7,loop2 ; "1" - υπήρξε μια αλλαγή push acc mov a,r1 mov dptr,#key_table-1 ; εξαγάγετε τον αντίστοιχο κωδικό σάρωσης movc a,@a+dptr push acc mov a,r0 ; καταχωρήστε R0 - ένα σημάδι πίεσης / απελευθέρωσης του rlc a ; μιμούμενο κλειδί mov r0,a ; "1" - "κλειδί" κυκλοφόρησε pop acc mov acc.7,c ; εάν D7=1 - ο κωδικός σάρωσης θα προηγείται από 0f0h κλήσης αποστολή_κλειδιού ; κωδικός σάρωσης εξόδου pop acc sjmp loop2a loop2 push acc mov a,r0 rlc a mov r0, a pop acc loop2a rl a djnz 1,loop3 mov 6,r2 sjmp loop send_key mov π.χ.,#80h ; διακόπτει απενεργοποιημένη κλήση send2comp ; αποστολή κωδικού σάρωσης mov π.χ.,#85h ; interrupts enabled ret send2comp jnb acc.7,send ; εάν είναι απαραίτητο, 0f0h push acc mov a,#0f0h acall αποστολή pop acc clr acc.7 mov b,#200 l9 nop djnz b,l9 αποστολή ώθηση 1 push 0 clr p3.3 ; P3.3 - KBData mov b,#6 ; set start bit l10 nop djnz b,l10 clr p3,5 mov b,#15 l2 nop djnz b,l2 setb p3,5 mov b,#6 l3 nop djnz b,l3 mov r0,#8 ; mov r1,#1 byte_loop xrl 1h,a rrc a mov p3.3,c mov b,#6 l6 nop djnz b,l6 clr p3.5 mov b,#15 l4 nop djnz b, l4 setb p3.5 mov b ,#6 l5 nop djnz b,l5 djnz r0,byte_loop mov a,r1 mov c,acc.0 mov p3.3,c ; ισοτιμία εξόδου mov b,#6 l8 nop djnz b,l8 clr p3,5 mov b,#15 l12 nop djnz b,l12 setb p3,5 mov b,#6 l13 nop djnz b,l13 setb p3,3 ; bit διακοπής εξόδου mov b,#6 l7 nop djnz b,l7 clr p3,5 mov b,#15 l11 nop djnz b,l11 setb p3,5 mov b,#200 l14 nop djnz b,l14 setb p3,5 pop 0 pop 1 ret from_keyboard ; στείλτε ένα byte στον ελεγκτή mov π.χ.,#80h push psw push acc push b mov b,#2 in6 jnb p3. 4,in8 djnz b,in6 sjmp in7 in8 mov b,#10 in1 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in1 in2 mov a,p3 rl a orl a,#11010111b mov p3,a jb p3.4,in2 djnz b,in1 in3 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in3 mov p3,#0ffh in4 jb p3.5,in4 in5 jnb p3 .3,in7 clr p3.4 jnb p3.5,in5 in7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov δηλαδή,#85h reti to_keyboard ; αποστολή ενός byte στην κίνηση του πληκτρολογίου π.χ., #80h push psw push acc push b mov b,#5 out61 jb p3.5, out7 djnz b, out61 setb p3.4 setb p3.2 out62 jnb p3.5, out62 out6 mov c ,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out6 out8 mov b,#10 out1 mov c,p3.4 mov p3.5,c mov c, p3.3 mov p3.2,c jnb p3.4,out1 out2 mov c,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out2 djnz b,out1 out3 mov c,p3.4 mov p3.5,c mov c,p3.2 mov p3.3,c jnb p3.2,out3 out7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov π.χ. ,#85h reti hat_table ; πίνακας για την επέκταση των δεδομένων που διαβάζονται από τη θύρα P1 . ευρετήριο στον πίνακα - τετραψήφιος δυαδικός κωδικός. δεδομένα - κατάσταση οκτώ εξομοιούμενων κλειδιών. "0" - πατημένο το πλήκτρο db 0ffh ; αριστερά+δεξιά+επάνω+κάτω=παράνομος συνδυασμός db 0ffh ; αριστερά+δεξιά+κάτω=παράνομος συνδυασμός db 0ffh ; αριστερά+επάνω+κάτω=παράνομος συνδυασμός db 0bfh ; αριστερά+κάτω=αριστερά-κάτω db 0ffh ; αριστερά+δεξιά+επάνω=παράνομος συνδυασμός db 0ffh ; αριστερά+δεξιά=παράνομος συνδυασμός db 07fh ; αριστερά+επάνω=αριστερά πάνω db 0f7h ; αριστερά db 0ffh ; δεξιά+πάνω+κάτω=παράνομος συνδυασμός db 0dfh ; κάτω+δεξιά=κάτω-δεξιά db 0ffh ; επάνω+κάτω=παράνομος συνδυασμός db 0fbh ; κάτω db 0efh ; δεξιά+επάνω=δεξιά προς τα πάνω db 0fdh ; δεξιά db 0feh ; μέχρι db 0ffh ; δεν πατήθηκαν κουμπιά key_table ; πίνακας κωδικών σάρωσης db 75h ; numpad 8 db 74h ; numpad 6 db 72h ; numpad 2 db 6bh ; numpad 4 db 7dh ; numpad 9 db 7ah ; numpad 3 db 69h ; numpad 1 db 6ch ; numpad 7

Στο αρχείο tools.zip θα βρείτε δύο προγράμματα: a51.exe - assembler, hex2bin - μετατροπέας hex αρχείων που λαμβάνονται στην έξοδο του assembler σε δυαδική μορφή κατάλληλη για να αναβοσβήνει η ROM του μικροελεγκτή με προγραμματιστή.

Συναρμολόγηση και αντιμετώπιση προβλημάτων

Μπορείτε να συναρμολογήσετε τη συσκευή σύμφωνα με το παραπάνω σχήμα σε μια σανίδα ψωμιού, μια σανίδα χαραγμένη στο σπίτι ή κατασκευασμένη βιομηχανικά. Τοποθετήστε μια υποδοχή κάτω από τον μικροελεγκτή. Είναι καλύτερο να αφήσετε χώρο στην πλακέτα για 2-3 πακέτα DIP 16 ακίδων - θα προστεθούν σε μελλοντικές εκδόσεις.

Περαιτέρω, αφού γίνουν οι επιθυμητές αλλαγές, συναρμολογείται ο πηγαίος κώδικας του μικροπρογράμματος - από το πρόγραμμα a51.exe. Για να αναβοσβήνει από τον προγραμματιστή, το ληφθέν δεκαεξαδικό αρχείο μετατρέπεται σε δυαδική εικόνα από το πρόγραμμα hex2bin.exe.

Έχοντας συναρμολογήσει πλήρως τη συσκευή, τη συνδέουμε με το πληκτρολόγιο και τον υπολογιστή. Τρία... Δύο... Ένα... Πάμε!.. Μια συσκευή σωστά συναρμολογημένη από γνωστά καλά εξαρτήματα θα πρέπει να λειτουργήσει αμέσως. Εάν όχι, ελέγξτε τη σωστή εγκατάσταση, την ύπαρξη ρεύματος στον μικροελεγκτή. Χρησιμοποιήστε έναν παλμογράφο για να ελέγξετε εάν η γεννήτρια ρολογιού έχει ξεκινήσει και εάν ένας παλμός υψηλού επιπέδου έρχεται στην είσοδο RST όταν είναι ενεργοποιημένη η τροφοδοσία. Όταν πατάτε τα πλήκτρα στο πληκτρολόγιο, οι παλμοί στις γραμμές P3.3 και P3.5 θα πρέπει να επαναλαμβάνουν, με κάποια καθυστέρηση, τους παλμούς στις γραμμές P3.2 και P3.4, αντίστοιχα. Κατά το πάτημα / απελευθέρωση των κουμπιών της συσκευής, θα πρέπει να εμφανίζονται παλμοί και στις γραμμές P3.3 και P3.5. Εάν αυτό δεν βοηθήσει - γράψτε μου ( rashpilστο προς τα αριστεράτελεία en) αναφορά σφάλματος που υποδεικνύει το μοντέλο και τον τύπο (AT, PS/2) του πληκτρολογίου, της μητρικής πλακέτας/πολλαπλής κάρτας, του χρησιμοποιημένου μικροελεγκτή και της συχνότητας του χρησιμοποιούμενου αντηχείο χαλαζία. Προσπάθησα να δοκιμάσω τη συσκευή με τον μέγιστο αριθμό των μητρικές πλακέτεςκαι πληκτρολόγια - δεν εντοπίστηκαν προβλήματα. Στην περίπτωσή μου χρησιμοποιήθηκε χαλαζίας 14,2 MHz.

Γνωστά σφάλματα

Η τρέχουσα έκδοση του υλικολογισμικού περιέχει τα ακόλουθα ελαττώματα:

  • Οι κωδικοί σάρωσης διπλού byte δεν παρακολουθούνται. Αυτό οδηγεί στο γεγονός ότι μερικές φορές, όταν χρησιμοποιείτε το καπέλο και το πληκτρολόγιο ταυτόχρονα, τα πλήκτρα του πληκτρολογίου "παγώνουν" στην κατάσταση πίεσης ή γίνονται αντιληπτά εσφαλμένα.
  • Μερικές φορές τα δεδομένα μεταφέρονται εσφαλμένα από τον ελεγκτή στο πληκτρολόγιο. Αυτό μπορεί να εκφραστεί, για παράδειγμα, στο γεγονός ότι τα LED δεν αλλάζουν την κατάστασή τους όταν πατάτε Αριθμητικά πλήκτραΚλείδωμα, Caps Lock, Scroll Lock.
  • Αναπήδηση των επαφών των κουμπιών της καλύβας. Μέχρι στιγμής αυτό δεν μου έχει γίνει μοιραίο στα παιχνίδια.

Μελλοντικά σχέδια

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

  • Μικρές διορθώσεις σφαλμάτων - πιο σωστή επεξεργασία σήματος. παρακολούθηση κωδικών σάρωσης διπλού byte.
  • Σύνδεση μήτρας 16x4 - υποστήριξη για έως και 64 κουμπιά ή δύο καλύβες και έως 56 κουμπιά.
  • Υποστήριξη έως και 16 διαφορετικών διατάξεων κωδικών σάρωσης που είναι αποθηκευμένες στη ROM του μικροελεγκτή.
  • Σύνδεση τσιπ NVRAM με δυνατότητα αποθήκευσης και επαναπρογραμματισμού "on the fly" έως 32 διατάξεις κώδικα σάρωσης.

συμπέρασμα

Προσπάθησα να παρουσιάσω όλα τα απαραίτητα δεδομένα για να κατανοήσω την αρχή λειτουργίας της συσκευής μου. Αυτή η περιγραφή δεν ισχυρίζεται ότι είναι 100% τεχνικά ακριβής. Αν κάνω λάθος σε κάτι, πείτε μου την εκδοχή σας για τα γεγονότα. Εάν μπορείτε να κάνετε βελτιώσεις και προσθήκες στο κύκλωμα και/ή στο υλικολογισμικό μου, εάν έχετε ιδέες για περαιτέρω ανάπτυξη του κυκλώματος, ενημερώστε με επίσης. Επιπλέον, περιμένω πληροφορίες από τεχνίτες που μπόρεσαν να επαναλάβουν ή να προσαρμόσουν αυτή τη συσκευή για άλλους τύπους μικροελεγκτών.

Vladimir "Rasp" Klimus (rashpilστο ukrτελεία καθαρά)

  1. Στο επάνω μέρος του παραθύρου του Google Play υπάρχει συμβολοσειρά αναζήτησης. Αυτό θα χρησιμοποιήσουμε. Ενεργοποιούμε και γράφουμε το όνομα της εφαρμογής μας. Δεν είναι απαραίτητο να το συμπληρώσετε. Μόλις το αντικείμενο που υποδεικνύεται στο στιγμιότυπο οθόνης εμφανιστεί στα αποτελέσματα αναζήτησης, απλώς αγγίξτε το.
  1. Θα ανακατευθυνθούμε στην αρχική σελίδα του προγράμματος. Υπάρχει ένα μεγάλο πράσινο κουμπί που λέει ΕΓΚΑΤΑΣΤΑΣΗ. Κλίκαρέ το.
  1. Περιμένουμε να ολοκληρωθεί η λήψη της εφαρμογής. Δεδομένου ότι «ζυγίζει» λίγο λιγότερο από 5 MB, η διαδικασία δεν θα πάρει πολύ χρόνο.
  1. Ετοιμος. Αφού ολοκληρωθεί η αυτόματη εγκατάσταση, μπορούμε να τρέξουμε το πρόγραμμα απευθείας από εδώ.
  1. Μια συντόμευση εκκίνησης θα εμφανιστεί επίσης στην αρχική οθόνη (αν είναι ενεργοποιημένη στις ρυθμίσεις).

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

Στο παρακάτω στιγμιότυπο οθόνης βλέπετε διεπαφή λογισμικού. Εδώ χωρίζεται σε 3 κύριες καρτέλες. Υπάρχει επίσης ένα εικονίδιο ρυθμίσεων, φτιαγμένο με τη μορφή γραναζιού. Στην κύρια καρτέλα "SCAN" υπάρχουν 4 κύρια εργαλεία:

  • Σάρωση γραμμικού κώδικα. Αυτός είναι ο σαρωτής QR που λειτουργεί μέσω της κάμερας.
  • Χειροκίνητη εισαγωγή. Λειτουργία χειροκίνητης εισαγωγής δεδομένων σχετικά με τον κωδικό.
  • Αποκωδικοποίηση από αρχείο. Αποκωδικοποίηση από αρχείο. Από εδώ μπορείτε να ανοίξετε έναν κωδικό QR που έχετε ήδη κατεβάσει και να τον διαβάσετε.
  • Αποκωδικοποίηση από το Url. Σάρωση μέσω συνδέσμου.

Παρακάτω είναι μερικά κουμπιά που δεν διαθέτουν χρήσιμες λειτουργίες. Δεν πρέπει να τους δίνετε σημασία.

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

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

Μόλις θελήσουμε να ξεκινήσουμε τη σάρωση και να εκκινήσουμε τον ίδιο τον σαρωτή, το πρόγραμμα θα ζητήσει πρόσβαση στους απαραίτητους πόρους του συστήματος. Φυσικά, πρέπει να επιτρέπεται. Κάντε κλικ στο κουμπί που επισημαίνεται στο στιγμιότυπο οθόνης.

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

Υπάρχει οπίσθιος φωτισμός για το QR BARCODE SCANNER για να λειτουργεί σε συνθήκες χαμηλού φωτισμού.

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

Εκτός από τη σάρωση QR, μπορείτε επίσης να τα δημιουργήσετε εδώ. Για να το κάνετε αυτό, μεταβείτε στην τρίτη καρτέλα. Το σημειώσαμε στο στιγμιότυπο οθόνης. Η λίστα εμφανίζει όλους τους τύπους δεδομένων που μπορούν να κρυπτογραφηθούν. Υποστηρίζονται τα εξής:

  • Επικοινωνία τηλεφωνικού καταλόγου.
  • τηλεφωνικό νούμερο;
  • URL?
  • ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ;
  • εφαρμογή;
  • τοποθεσία;
  • οποιοδήποτε κείμενο?
  • σελιδοδείκτης?
  • ημερολογιακό συμβάν.

Όλα μοιάζουν με αυτό:

Όταν επιλεγεί και οριστεί ο τύπος δεδομένων, πρέπει απλώς να κάνουμε κλικ στο κουμπί "Κωδικοποίηση". Σε αυτήν την περίπτωση, έχουμε κρυπτογραφήσει τον σύνδεσμο.

Ας προσπαθήσουμε να κρυπτογραφήσουμε και αυθαίρετο κείμενο. Για να το κάνετε αυτό, επιλέξτε το επιθυμητό αντικείμενο.

Εισαγάγετε τη φράση στο υποδεικνυόμενο πεδίο και πατήστε το κουμπί "Κωδικοποίηση".

Το αποτέλεσμα φαίνεται υπέροχο. Ας του αλλάξουμε ξανά το χρώμα. Πατάμε το κουμπί που προορίζεται για αυτό.

Επιλέξτε την επιθυμητή απόχρωση από την παλέτα.

Και θαυμάστε το λαμβανόμενο QR.

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

QR Droid Code Scanner

Μια άλλη εφαρμογή που μπορείτε να βρείτε στο Google Play. Μπορείτε επίσης να το κατεβάσετε από έναν άμεσο σύνδεσμο στον ιστότοπο της Google. Προς το παρόν, ας ρίξουμε μια ματιά στο ίδιο το πρόγραμμα.

Έτσι φαίνεται η συντόμευση QR Droid Code Scanner - κάντε κλικ σε αυτήν.

Αυτή η εφαρμογή, σε αντίθεση με την προηγούμενη, είναι φτιαγμένη στα ρωσικά και μόλις ξεκινήσει, πρέπει να κάνουμε κλικ στο κουμπί που λέει: "GET STARTED".

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

Στο κύριο μενού, είναι ορατά 6 πλακίδια κουμπιών, τα οποία ανακατευθύνουν τον χρήστη στην επιθυμητή ενότητα. Εδώ είναι:

Έτσι, για να χρησιμοποιήσετε τον σαρωτή, πρέπει να τον ενεργοποιήσετε στο κύριο μενού και, δείχνοντας τον κωδικό QR, να πατήσετε το κουμπί "Ανάγνωση".

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

Στη συνέχεια, μπορούμε να εγκαταστήσουμε τη μηχανή σάρωσης. Χρησιμοποιείται ένας από τους ιδιόκτητους αλγόριθμους: Zapper ή ZXing. Παρακάτω μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε το σταυρόνημα, να διαμορφώσετε αυτόματη δράσημετά τη σάρωση και ενεργοποιήστε την εμφάνιση των συμβουλών εργαλείων ή την αντιγραφή του συνδέσμου στο πρόχειρο.

Αυτή η ενότητα ορίζει ηχητική συνοδεία, ενεργοποιεί και απενεργοποιεί το vibro. Ρυθμίζει επίσης τη διαδικασία καταγραφής ενεργειών και αλληλεπίδρασης με έξυπνο ρολόιφορούν android.

Τότε θα μπορούμε να εξάγουμε ή να εισάγουμε αντιγράφων ασφαλείαςή ορίστε την ημερομηνία.

Επιτρέψτε την αποστολή ανώνυμων δεδομένων (είναι καλύτερα να απενεργοποιήσετε), ενεργοποιήστε την επαλήθευση του συνδέσμου ασφαλείας που λήφθηκε κατά τη σάρωση ή διαμορφώστε τη μαζική σάρωση. Λειτουργίες όπως ζουμ ή επισήμανση είναι διαθέσιμες παρακάτω.

Αλλά οι ρυθμίσεις μας δεν τελειώνουν εκεί. Εκτός από τις παραπάνω λειτουργίες, έχουμε τα εξής:

  • ρύθμιση προσανατολισμού οθόνης.
  • εργαστείτε με την μπροστινή κάμερα.
  • ανάλυση συνδέσμων?
  • οθόνη καταστήματος.
  • λειτουργία εκτεταμένης περιγραφής.
  • απαγόρευση ορισμένων ειδικών χαρακτήρων.
  • Ενεργοποίηση προεπισκόπησης WEB.
  • αναζήτηση για αποθηκευμένες εικόνες.

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

Εκτός από τις ρυθμίσεις στο μενού QR Droid Code Scanner, υπάρχει ένα στοιχείο που ονομάζεται "Περισσότερα". Ας εξετάσουμε τη λειτουργικότητά του.

Εδώ είναι οι δυνατότητες:

Εξετάστε την τελευταία, αλλά όχι λιγότερο λειτουργική, εφαρμογή στη λίστα μας.

NeoReader QR & Barcode Scanner

Αυτό το πρόγραμμα, όπως και άλλα, μπορείτε να κάνετε λήψη και εγκατάσταση μέσω Google Playή με απευθείας σύνδεσμο. Όταν γίνει αυτό, μπορείτε να προχωρήσετε απευθείας στην εργασία με αυτό.

Κατά την πρώτη εκτέλεση, θα χρειαστεί να ικανοποιήσουμε το αίτημα πρόσβασης. Κάντε κλικ στο "ΕΠΙΤΡΕΠ".

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

Μπορείτε πραγματικά να ξεκινήσετε τη σάρωση. Στρέψτε την κάμερά σας σε έναν κωδικό QR και το NeoReader QR & Barcode Scanner θα αναγνωρίσει αυτόματα τα περιεχόμενά του.

Πιστεύουμε ότι αυτά τα τρία προγράμματα θα είναι αρκετά για κάθε άτομο. Επιλέξτε το πιο βολικό για εσάς και χρησιμοποιήστε το κατά την κρίση σας. Θα μιλήσουμε για ορισμένα χαρακτηριστικά κινεζικών συσκευών.

Τυπική λειτουργικότητα

Ορισμένα smartphone και tablet (ανάλογα με τη μάρκα) έχουν τη λειτουργικότητα της σάρωσης κωδικών QR ως βασικό εξοπλισμό και μπορείτε να κάνετε τα πάντα χωρίς εφαρμογή. Δεν θα τα απαριθμήσουμε όλα, θα αγγίξουμε μόνο το μοντέλο της Xiaomi.

Ανακεφαλαίωση

Ως αποτέλεσμα, μάθαμε πώς να σαρώνουμε έναν κωδικό QR στο Android διαφορετικοί τρόποι. Ελπίζουμε ότι το άρθρο ήταν χρήσιμο για εσάς. Εάν εξακολουθείτε να έχετε ερωτήσεις, ρωτήστε τις στα σχόλια. Θα προσπαθήσουμε να βοηθήσουμε όλους.

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

Οδηγίες βίντεο




Μπλουζα