Handy Tech Active Star 40 брайль дисплейінің ішіндегі Raspberry Pi Zero

Handy Tech Active Star 40 брайль дисплейінің ішіндегі Raspberry Pi Zero

Мен жаңа Handy Tech Active Star 40 брайль дисплейіне Raspberry Pi Zero, Bluetooth ысқырығы және кабель қойдым.Кірістірілген USB порты қуат береді. Нәтижесінде пернетақтамен және Брайль дисплейімен жабдықталған Linux операциялық жүйесі бар ARM жүйесінде өзін-өзі қамтамасыз ететін мониторсыз компьютер пайда болды. Сіз оны USB арқылы зарядтай аласыз / қуаттай аласыз, соның ішінде. қуат банкінен немесе күн зарядтағышынан. Сондықтан ол электр желісінсіз бірнеше сағат емес, бірнеше күн жұмыс істей алады.

Handy Tech Active Star 40 брайль дисплейінің ішіндегі Raspberry Pi Zero

Брайль дисплейлерінің өлшемдік дифференциациясы

Ең алдымен, олар сызық ұзындығы бойынша ерекшеленеді. 60 немесе одан да көп таныс құрылғылар үстелдік компьютермен жұмыс істегенде жақсы, 40 ноутбукпен бірге тасымалдауға ыңғайлы. Енді смартфондар мен планшеттерге қосылған, жол ұзындығы 14 немесе 18 таңбадан тұратын брайль дисплейлері де бар.

Бұрын брайль дисплейлері өте үлкен болды. Мысалы, 40 таңбаның өлшемдері мен салмағы 13 дюймдік ноутбукпен бірдей болды. Енді бірдей танысу санымен олар дисплейді ноутбуктің алдына емес, ноутбуктің алдына қоюға жеткілікті миниатюралық.

Бұл, әрине, жақсырақ, бірақ екі бөлек құрылғыны тізеңізде ұстау әлі де ыңғайлы емес. Үстелде жұмыс істегенде ешқандай шағымдар жоқ, бірақ ноутбукты басқа жолмен ноутбук деп атайтынын есте ұстаған жөн және оның атын ақтауға тырысқан жөн, өйткені миниатюралық 40 таңбалы дисплей одан да ыңғайлы емес.

Сондықтан автор Handy Tech Star сериясындағы көптен бері уәде етілген жаңа модельдің шығуын күтті. 2002 жылы бұрынғы Handy Tech Braille Star 40 моделі шығарылды, оның денесінің ауданы ноутбукты үстіне қоюға жеткілікті. Ал сыймай қалса, тартылатын тұғыр қарастырылған. Енді бұл модель Active Star 40-мен ауыстырылды, ол іс жүзінде бірдей, бірақ жаңартылған электроникасы бар.

Handy Tech Active Star 40 брайль дисплейінің ішіндегі Raspberry Pi Zero

Ал тартылатын стенд қалды:

Handy Tech Active Star 40 брайль дисплейінің ішіндегі Raspberry Pi Zero

Бірақ жаңалықтың ең қолайлысы - смартфонның өлшемі туралы ойық (KDPV қараңыз). Ол платформаны артқа жылжытқанда ашылады. Смартфонды сонда ұстау ыңғайсыз болып шықты, бірақ қандай да бір жолмен бос бөлікті пайдалану керек, оның ішінде тіпті розетка да бар.

Автордың бірінші ойлап тапқаны - Raspberry Pi-ді сол жерге қою болды, бірақ дисплейді сатып алғанда, бөлімді жауып тұрған стенд «таңқураймен» қозғалмағаны белгілі болды. Енді, егер тақта тек 3 мм жұқа болса ...

Бірақ бір әріптес Raspberry Pi Zero шығарылымы туралы айтты, ол өте кішкентай болып шықты, олардың екеуі шығанаққа сыйды ... немесе тіпті үшеуі. Оған бірден 64 ГБ жад картасы, Bluetooth, ысқырық және Micro USB кабелі тапсырыс берілді. Бірнеше күннен кейін мұның бәрі келіп, көзі көретін достар авторға карта жасауға көмектесті. Барлығы бірден қажетінше жұмыс істеді.

Бұл үшін не істелді

Handy Tech Active Star 40 артқы жағында пернетақталар сияқты құрылғыларға арналған екі USB порты бар. Магниттік қосымшасы бар ықшам пернетақта. Пернетақта қосылып, дисплейдің өзі Bluetooth арқылы жұмыс істегенде, компьютер оны қосымша Bluetooth пернетақтасы ретінде таниды.

Осылайша, егер Bluetooth ысқырығы смартфон бөлігінде орналасқан Raspberry Pi Zero құрылғысына қосылса, ол Bluetooth арқылы брайль дисплейімен байланыса алады. BRLTTY, және дисплейге пернетақтаны да қоссаңыз, «таңқурай» онымен де жұмыс істейді.

Бірақ бұл бәрі емес. Raspberry өзі, өз кезегінде, оны қолдайтын кез келген құрылғыдан Bluetooth PAN арқылы Интернетке қол жеткізе алады. Автор өз смартфоны мен компьютерлерін үйде де, жұмыста да соған сәйкес реттеп қойған, бірақ болашақта ол осыған тағы бір «таңқурай» - Ethernet желісіне қосылған Zero емес, классикалық және тағы бір Bluetooth «ысқырығы» бейімдеуді жоспарлап отыр.

BlueZ5 және PAN

PAN конфигурациялау әдісін пайдалану bluez көрінбейтін болып шықты. Автор GUIсіз PAN конфигурациялауға мүмкіндік беретін Pyhton сценарийін bt-pan тапты (төменде қараңыз).

Оның көмегімен сіз серверді де, клиентті де теңшей аласыз. Клиенттік режимде жұмыс істеу кезінде D-Bus арқылы тиісті пәрменді алған ол сервермен байланыс орнатқаннан кейін бірден bnep0 жаңа желілік құрылғысын жасайды. Әдетте, DHCP осы интерфейске IP мекенжайын тағайындау үшін пайдаланылады. Сервер режимінде BlueZ көпір құрылғысының атауын талап етеді, ол клиенттердің әрқайсысын қосу үшін бағынышты құрылғыны қоса алады. Көпір құрылғысының мекенжайын конфигурациялау және DHCP серверін іске қосу және көпірде IP маскарадтау әдетте талап етілетін нәрсе.

Systemd бар Bluetooth PAN кіру нүктесі

Автор көпірді конфигурациялау үшін systemd-networkd пайдаланды:

ФАЙЛ /etc/systemd/network/pan.netdev

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

ФАЙЛ /etc/systemd/network/pan.network

[Match]
Name=pan

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

Енді NAP профилін конфигурациялау үшін BlueZ алуымыз керек. BlueZ 5.36 кәдімгі утилиталары мұны істей алмайтыны белгілі болды. Егер автор қателессе, оны түзетіңіз: мланг (құлағын қалай жылжытуды біледі) соқыр (кейде қол жеткізу және кванттық) гуру

Бірақ ол тапты блогтағы хабарлама и питон сценарийі қажетті D-Bus қоңырауларын жасау үшін.

Ыңғайлы болу үшін автор сценарийді іске қосу және тәуелділіктердің шешілгенін тексеру үшін Systemd қызметін пайдаланды.

ФАЙЛ /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 демон-қайта жүктеу и systemctl қайта іске қосыңыз systemd-networkd пәрменімен Bluetooth PAN қосуға болады systemctl бастау тақтасы

Systemd көмегімен Bluetooth PAN клиенті

Клиенттік тарапты Systemd көмегімен конфигурациялау оңай.

ФАЙЛ /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

ФАЙЛ /etc/systemd/system/[электрондық пошта қорғалған]

[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 профиль қосылымын қабылдау үшін сервер қажет.

Автор бұл командалардың оңтайлы тізбегі екеніне сенімді емес. Клиентті сервермен жұптау және серверде сенім пәрменін іске қосу ғана қажет болуы мүмкін, бірақ ол мұны әлі көрмеген.

Bluetooth HID профилін қосу

«Таңқурайдан» Брайль дисплейіне сым арқылы қосылған пернетақтаны тану және дисплейдің өзі Bluetooth арқылы жіберу талап етіледі. Дәл солай істеңіз, бірақ орнына агент қосулы бұйрық беру керек агент пернетақтасы және bluetoothctl HID профилі бар құрылғыны табады.

Бірақ пәрмен жолы арқылы Bluetooth конфигурациялау қиын.

Автор бәрін конфигурациялай алғанымен, BlueZ пәрмен жолы арқылы конфигурациялау ыңғайсыз екенін түсінеді. Алғашында ол агенттер тек PIN кодтарын енгізу үшін қажет деп ойлады, бірақ, мысалы, HID профилін қосу үшін «Agent KeyboardOnly» теру керек болып шықты. Бір таңқаларлығы, Bluetooth PAN іске қосу үшін сізге дұрыс сценарийді іздеу үшін репозиторийлер арқылы өту керек. Ол BlueZ-тің алдыңғы нұсқасында бұл үшін дайын құрал болғанын есіне алады. панд - ол BlueZ 5-те қайда жүр? Кенеттен авторға беймәлім, бірақ бетінде жатқан жаңа шешім пайда болды?

өнімділік

Деректерді беру жылдамдығы шамамен 120 кбит/с құрады, бұл жеткілікті. 1 ГГц ARM процессоры пәрмен жолы интерфейсі үшін өте жылдам. Автор әлі де құрылғыда негізінен ssh және emacs қолдануды жоспарлап отыр.

Консоль қаріптері және экран ажыратымдылығы

Raspberry Pi нөліндегі кадр буфері пайдаланатын әдепкі экран ажыратымдылығы өте біртүрлі: fbset оны 656x416 пиксел деп хабарлайды (әрине, монитор қосылмаған). 8x16 консольдық шрифтпен біз әр жолға 82 таңба және 26 жолға ие болдық.

Бұл режимде 40 таңбалы брайль дисплейімен жұмыс істеу ыңғайсыз. Сондай-ақ, автор Юникод таңбаларының Брайль шрифтінде көрсетілгенін қалайды. Бақытымызға орай, 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 қаріпін қолжетімді ету үшін консоль-брайльді орнату керек.

Ары қарай не?

Брайль дисплейінде 3,5 мм ұясы бар, бірақ автор Mini-HDMI-ден дыбысты алуға арналған адаптерлерді білмейді. Автор «таңқурайға» орнатылған дыбыстық картаны пайдалана алмады (біртүрлі, аудармашы Zero-да жоқ екеніне сенімді болды, бірақ дыбысты PWM арқылы GPIO-ға шығарудың жолдары бар). Ол USB-OTG хабын пайдалануды және сыртқы карта мен шығыс дыбысты Брайль дисплейіне орнатылған динамикке қосуды жоспарлап отыр. Қандай да бір себептермен екі сыртқы карта жұмыс істемеді, қазір ол басқа чипсеттегі ұқсас құрылғыны іздейді.

Сондай-ақ, «таңқурайды» қолмен өшіру, бірнеше секунд күтіп, брайль дисплейін өшіру ыңғайсыз. Мұның бәрі, өйткені ол өшірілгенде, ол бөліктегі қосқыштан қуатты алып тастайды. Автор бөлімге шағын буферлік батареяны орналастыруды жоспарлап отыр және GPIO арқылы «таңқурайға» дисплейді өшіру туралы хабарлауды, осылайша ол өшіруді бастайды. Миниатюрадағы UPS осындай.

Жүйе кескіні

Егер сізде бірдей брайль дисплейі болса және онымен де солай істегіңіз келсе, автор дайын жүйе кескінін (Raspbian Stretch негізінде) ұсынуға қуанышты. Бұл туралы оған жоғарыдағы мекенжайға жазыңыз. Қызығушылық танытқандар жеткілікті болса, мұндай ремейк үшін қажеттінің барлығын қамтитын жинақтарды шығаруға болады.

Алғыс

Мәтінді тексергені үшін Дэйв Миелке рахмет.

Фото иллюстрациялар үшін Саймон Кайнцқа рахмет.

Авторды Raspberry Pi әлемімен тез таныстырғаны үшін Грац технологиялық университетіндегі әріптестерге рахмет.

PS Алғашқы твит осы тақырып бойынша автор (ашпайды - аудармашы) осы мақаланың түпнұсқасы жарияланғанға дейін бес күн бұрын жасалған және дыбысқа қатысты мәселелерді қоспағанда, тапсырма іс жүзінде шешілді деп болжауға болады. Айтпақшы, автор мәтіннің соңғы нұсқасын өзі жасаған «өзін-өзі қамтамасыз ететін Брайль дисплейінен» өңдеп, оны SSH арқылы үйдегі компьютерге қосты.

Ақпарат көзі: www.habr.com

пікір қалдыру