Το Raspberry Pi Zero μέσα σε μια οθόνη μπράιγ Handy Tech Active Star 40

Το Raspberry Pi Zero μέσα σε μια οθόνη μπράιγ Handy Tech Active Star 40

Τοποθέτησα ένα Raspberry Pi Zero, μια σφυρίχτρα Bluetooth και ένα καλώδιο στη νέα μου οθόνη μπράιγ Handy Tech Active Star 40. Η ενσωματωμένη θύρα USB παρέχει τροφοδοσία. Το αποτέλεσμα ήταν ένας αυτάρκης υπολογιστής χωρίς οθόνη σε ARM με λειτουργικό σύστημα Linux, εξοπλισμένος με πληκτρολόγιο και οθόνη Braille. Μπορείτε να το φορτίσετε / να το τροφοδοτήσετε μέσω USB, συμπεριλαμβανομένου. από power bank ή ηλιακό φορτιστή. Ως εκ τούτου, μπορεί να κάνει χωρίς το δίκτυο όχι για αρκετές ώρες, αλλά για αρκετές ημέρες.

Το Raspberry Pi Zero μέσα σε μια οθόνη μπράιγ Handy Tech Active Star 40

Διαστάσεις διαφοροποίησης οθονών braille

Πρώτα απ 'όλα, διαφέρουν ως προς το μήκος της γραμμής. Οι συσκευές με εξοικείωση 60 ή μεγαλύτερη είναι καλές όταν εργάζεστε με επιτραπέζιο υπολογιστή, 40 είναι βολικές για μεταφορά μαζί με φορητό υπολογιστή. Τώρα υπάρχουν επίσης οθόνες braille συνδεδεμένες με smartphone και tablet, με μήκος γραμμής 14 ή 18 χαρακτήρων.

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

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

Έτσι ο συγγραφέας περίμενε την κυκλοφορία του υποσχόμενου από καιρό νέου μοντέλου της σειράς Handy Tech Star. Πίσω στο 2002, κυκλοφόρησε το προηγούμενο μοντέλο Handy Tech Braille Star 40, όπου η περιοχή του σώματος είναι αρκετή για να τοποθετήσει ένα φορητό υπολογιστή στην κορυφή. Και αν δεν ταιριάζει, παρέχεται μια αναδιπλούμενη βάση. Τώρα αυτό το μοντέλο έχει αντικατασταθεί από το Active Star 40, το οποίο είναι πρακτικά το ίδιο, αλλά με αναβαθμισμένα ηλεκτρονικά.

Το Raspberry Pi Zero μέσα σε μια οθόνη μπράιγ Handy Tech Active Star 40

Και η αναδιπλούμενη βάση παρέμεινε:

Το Raspberry Pi Zero μέσα σε μια οθόνη μπράιγ Handy Tech Active Star 40

Αλλά το πιο βολικό πράγμα σχετικά με την καινοτομία είναι μια εσοχή στο μέγεθος ενός smartphone (βλ. KDPV). Ανοίγει όταν η πλατφόρμα μετακινηθεί προς τα πίσω. Αποδείχθηκε ότι δεν ήταν βολικό να κρατήσετε ένα smartphone εκεί, αλλά πρέπει να χρησιμοποιήσετε με κάποιο τρόπο την άδεια θήκη, μέσα στην οποία παρέχεται ακόμη και μια πρίζα.

Το πρώτο πράγμα που σκέφτηκε ο συγγραφέας ήταν να βάλει το Raspberry Pi εκεί, αλλά όταν αγοράστηκε η οθόνη, αποδείχθηκε ότι η βάση που έκλεινε το διαμέρισμα δεν κινήθηκε με το "βατόμουρο". Τώρα, αν η σανίδα ήταν μόνο 3 mm πιο λεπτή ...

Αλλά ένας συνάδελφος μίλησε για την κυκλοφορία του Raspberry Pi Zero, το οποίο αποδείχθηκε τόσο μικροσκοπικό που δύο από αυτά θα χωρούσαν στον κόλπο ... ή ίσως ακόμη και τρία. Παραγγέλθηκε αμέσως μαζί με κάρτα μνήμης 64 GB, Bluetooth, σφυρίχτρα και καλώδιο Micro USB. Λίγες μέρες αργότερα, όλα αυτά έφτασαν και φίλοι με όραση βοήθησαν τον συγγραφέα να ετοιμάσει τον χάρτη. Όλα λειτούργησαν αμέσως όπως έπρεπε.

Τι έγινε για αυτό

Στο πίσω μέρος του Handy Tech Active Star 40 υπάρχουν δύο θύρες USB για συσκευές όπως πληκτρολόγια. Συμπαγές πληκτρολόγιο με μαγνητικό εξάρτημα που περιλαμβάνεται. Όταν το πληκτρολόγιο είναι συνδεδεμένο και η ίδια η οθόνη λειτουργεί μέσω Bluetooth, ο υπολογιστής το αναγνωρίζει επιπλέον ως πληκτρολόγιο Bluetooth.

Έτσι, εάν μια σφυρίχτρα Bluetooth είναι συνδεδεμένη με ένα Raspberry Pi Zero τοποθετημένο σε μια θήκη smartphone, θα μπορεί να επικοινωνεί με μια οθόνη μπράιγ μέσω Bluetooth χρησιμοποιώντας BRLTTY, και αν συνδέσετε επίσης ένα πληκτρολόγιο στην οθόνη, το "raspberry" θα λειτουργήσει και με αυτό.

Αλλά δεν είναι μόνο αυτό. Το ίδιο το Raspberry, με τη σειρά του, μπορεί να έχει πρόσβαση στο Διαδίκτυο μέσω Bluetooth PAN από οποιαδήποτε συσκευή το υποστηρίζει. Ο συγγραφέας έστησε το smartphone και τους υπολογιστές του στο σπίτι και στη δουλειά αναλόγως, αλλά στο μέλλον σκοπεύει να προσαρμόσει ένα άλλο "βατόμουρο" για αυτό - ένα κλασικό, όχι Zero, συνδεδεμένο με Ethernet και ένα άλλο "σφυρίχτρα" Bluetooth.

BlueZ5 και PAN

Μέθοδος διαμόρφωσης PAN χρησιμοποιώντας BlueZ αποδείχτηκε αόρατος. Ο συγγραφέας βρήκε ένα σενάριο Pyhton bt-pan (δείτε παρακάτω) που σας επιτρέπει να διαμορφώσετε το PAN χωρίς GUI.

Με αυτό, μπορείτε να διαμορφώσετε τόσο τον διακομιστή όσο και τον πελάτη. Έχοντας λάβει την κατάλληλη εντολή μέσω D-Bus ενώ εργάζεται σε λειτουργία πελάτη, δημιουργεί μια νέα συσκευή δικτύου bnep0 αμέσως μετά τη δημιουργία σύνδεσης με τον διακομιστή. Συνήθως, το DHCP χρησιμοποιείται για την εκχώρηση διεύθυνσης IP σε αυτή τη διεπαφή. Στη λειτουργία διακομιστή, το BlueZ απαιτεί το όνομα μιας συσκευής γέφυρας, στην οποία μπορεί να προσθέσει μια εξαρτημένη συσκευή για τη σύνδεση καθενός από τους πελάτες. Η διαμόρφωση μιας διεύθυνσης για τη συσκευή γέφυρας και η εκτέλεση ενός διακομιστή DHCP συν IP μεταμφιεσμένων στη γέφυρα είναι συνήθως το μόνο που απαιτείται.

Σημείο πρόσβασης Bluetooth PAN με Systemd

Ο συγγραφέας χρησιμοποίησε το systemd-networkd για να διαμορφώσει τη γέφυρα:

FILE /etc/systemd/network/pan.netdev

[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0

FILE /etc/systemd/network/pan.network

[Match]
Name=pan

[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yes

Τώρα πρέπει να πάρουμε το BlueZ για να διαμορφώσουμε το προφίλ NAP. Αποδείχθηκε ότι τα κανονικά βοηθητικά προγράμματα BlueZ 5.36 δεν μπορούν να το κάνουν αυτό. Εάν ο συγγραφέας κάνει λάθος, διορθώστε τον: mlang (ξέρει πώς να κινεί τα αυτιά του) τυφλός (μερικές φορές πρόσβαση και κβαντικός) γκουρού

Όμως βρήκε ανάρτηση и σενάριο python για να πραγματοποιήσετε τις απαραίτητες κλήσεις D-Bus.

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

FILE /etc/systemd/system/pan.service

[Unit]
Description=Bluetooth Personal Area Network
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service

[Service]
Type=notify
ExecStart=/usr/local/sbin/pan

[Install]
WantedBy=bluetooth.target

ΑΡΧΕΙΟ /usr/local/sbin/pan

#!/bin/sh
# Ugly hack to work around #787480
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

exec /usr/local/sbin/bt-pan --systemd --debug server pan

Το δεύτερο αρχείο δεν θα χρειαζόταν εάν το Debian είχε υποστήριξη για IPMasquerade= (δείτε παρακάτω). #787480).

Μετά την εκτέλεση των εντολών systemctl daemon-reload и systemctl επανεκκίνηση systemd-networkd μπορείτε να ξεκινήσετε το Bluetooth PAN με την εντολή systemctl start pan

Πελάτης Bluetooth PAN με χρήση Systemd

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

FILE /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

FILE /etc/systemd/system/[προστασία μέσω email]

[Unit]
Description=Bluetooth Personal Area Network client

[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait

Τώρα, αφού φορτώσετε ξανά τη διαμόρφωση, μπορείτε να συνδεθείτε στο καθορισμένο σημείο πρόσβασης Bluetooth ως εξής:

systemctl start pan@00:11:22:33:44:55

Σύζευξη χρησιμοποιώντας τη γραμμή εντολών

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

power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX

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

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

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

Ενεργοποίηση του προφίλ HID Bluetooth

Απαιτείται το "raspberry" να αναγνωρίζει το πληκτρολόγιο που είναι συνδεδεμένο με την οθόνη Braille μέσω καλωδίου και προωθείται από την ίδια την οθόνη μέσω Bluetooth. Κάντε το ίδιο, αλλά αντί για πράκτορας σε πρέπει να δώσει εντολή agent KeyboardOnly και το bluetoothctl θα βρει μια συσκευή με προφίλ HID.

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

Παρόλο που ο συγγραφέας κατάφερε να ρυθμίσει τα πάντα, κατανοεί ότι η διαμόρφωση του BlueZ μέσω της γραμμής εντολών δεν είναι βολική. Αρχικά, πίστευε ότι οι πράκτορες χρειάζονταν μόνο για την εισαγωγή κωδικών PIN, αλλά αποδείχθηκε, για παράδειγμα, ότι για να ενεργοποιήσετε το προφίλ HID, πρέπει να πληκτρολογήσετε "agent KeyboardOnly". Παραδόξως, για να ξεκινήσετε το Bluetooth PAN, πρέπει να περάσετε μέσα από τα αποθετήρια αναζητώντας το σωστό σενάριο. Θυμάται ότι στην προηγούμενη έκδοση του BlueZ υπήρχε ένα έτοιμο εργαλείο για αυτό. ταψί - πού κάνει στο BlueZ 5; Ξαφνικά, εμφανίστηκε μια νέα λύση, άγνωστη στον συγγραφέα, αλλά ξαπλωμένη στην επιφάνεια;

Παραγωγικότητα

Ο ρυθμός μεταφοράς δεδομένων ήταν περίπου 120 kbps, κάτι που είναι αρκετά. Ο επεξεργαστής ARM 1 GHz είναι πολύ γρήγορος για διεπαφή γραμμής εντολών. Ο συγγραφέας εξακολουθεί να σχεδιάζει να χρησιμοποιήσει κυρίως ssh και emacs στη συσκευή.

Γραμματοσειρές κονσόλας και ανάλυση οθόνης

Η προεπιλεγμένη ανάλυση οθόνης που χρησιμοποιείται από το framebuffer στο Raspberry Pi Zero είναι μάλλον περίεργη: το fbset την αναφέρει ως 656x416 pixel (δεν υπάρχει συνδεδεμένη οθόνη, φυσικά). Με γραμματοσειρά κονσόλας 8x16, πήραμε 82 χαρακτήρες ανά γραμμή και 26 γραμμές.

Η εργασία με οθόνη braille 40 χαρακτήρων σε αυτήν τη λειτουργία είναι άβολη. Επίσης, ο συγγραφέας θα ήθελε οι χαρακτήρες Unicode να εμφανίζονται σε Braille. Ευτυχώς, το Linux υποστηρίζει 512 χαρακτήρες και οι περισσότερες γραμματοσειρές κονσόλας έχουν 256 χαρακτήρες. Με τη ρύθμιση της κονσόλας, μπορείτε να χρησιμοποιήσετε δύο γραμματοσειρές 256 χαρακτήρων μαζί. Ο συγγραφέας πρόσθεσε τις ακόλουθες γραμμές στο αρχείο /etc/default/console-setup:

SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"

Σημείωση: Για να κάνετε διαθέσιμη τη γραμματοσειρά brl-16x8.psf, πρέπει να εγκαταστήσετε την κονσόλα-μπράιγ.

Ποιο είναι το επόμενο;

Η οθόνη braille διαθέτει υποδοχή 3,5 mm, αλλά ο συγγραφέας δεν γνωρίζει προσαρμογείς για λήψη ήχου από το Mini-HDMI. Ο συγγραφέας δεν μπόρεσε να χρησιμοποιήσει την κάρτα ήχου που ήταν ενσωματωμένη στο "raspberry" (περίεργο, ο μεταφραστής ήταν σίγουρος ότι το Zero δεν είχε, αλλά υπάρχουν τρόποι για έξοδο ήχου από PWM στο GPIO). Σκοπεύει να χρησιμοποιήσει έναν διανομέα USB-OTG και να συνδέσει μια εξωτερική κάρτα και να εξάγει ήχο στο ηχείο που είναι ενσωματωμένο στην οθόνη Braille. Για κάποιο λόγο, δύο εξωτερικές κάρτες δεν λειτούργησαν, τώρα ψάχνει για μια παρόμοια συσκευή σε διαφορετικό chipset.

Δεν είναι επίσης βολικό να απενεργοποιήσετε χειροκίνητα το "raspberry", να περιμένετε μερικά δευτερόλεπτα και να απενεργοποιήσετε την οθόνη μπράιγ. Και όλα αυτά επειδή όταν είναι απενεργοποιημένο, αφαιρεί την τροφοδοσία από τον σύνδεσμο στο διαμέρισμα. Ο συγγραφέας σχεδιάζει να τοποθετήσει μια μικρή μπαταρία buffer στο διαμέρισμα και, μέσω του GPIO, να ενημερώσει το "raspberry" για την απενεργοποίηση της οθόνης, ώστε να αρχίσει να κλείνει. Τέτοιο είναι το UPS σε μικρογραφία.

Εικόνα συστήματος

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

Ευχαριστώ

Ευχαριστώ τον Dave Mielke για τη διόρθωση του κειμένου.

Ευχαριστώ τον Simon Kainz για τις φωτογραφικές εικονογραφήσεις.

Ευχαριστούμε τους συναδέλφους του Τεχνολογικού Πανεπιστημίου του Γκρατς για τη γρήγορη εισαγωγή του συγγραφέα στον κόσμο του Raspberry Pi.

PS Πρώτο tweet ο συγγραφέας σε αυτό το θέμα (δεν ανοίγει - μεταφραστής) έγινε μόλις πέντε ημέρες πριν από τη δημοσίευση του πρωτοτύπου αυτού του άρθρου και μπορούμε να υποθέσουμε ότι, με εξαίρεση τα προβλήματα με τον ήχο, η εργασία έχει πρακτικά λυθεί. Παρεμπιπτόντως, ο συγγραφέας επεξεργάστηκε την τελική έκδοση του κειμένου από την «αυτοδύναμη οθόνη Braille» που έφτιαξε, συνδέοντάς τη μέσω SSH στον οικιακό του υπολογιστή.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο