Handy Tech Active Star 40 brayl displeyidagi Raspberry Pi Zero

Handy Tech Active Star 40 brayl displeyidagi Raspberry Pi Zero

Muallif o‘zining yangi Handy Tech Active Star 40 brayl displeyiga Raspberry Pi Zero, Bluetooth hushtak va kabelni joylashtirgan.O‘rnatilgan USB port quvvat beradi. Natijada, klaviatura va Brayl displey bilan jihozlangan Linux operatsion tizimiga ega, o'zini o'zi ta'minlaydigan monitorsiz kompyuter paydo bo'ldi. Siz uni USB orqali zaryadlashingiz/quvvatlashingiz mumkin, jumladan. quvvat banki yoki quyosh zaryadlovchidan. Shuning uchun u bir necha soat davomida quvvatsiz ishlay oladi, lekin bir necha kun.

Handy Tech Active Star 40 brayl displeyidagi Raspberry Pi Zero

Brayl displeylarining o'lchovli farqlanishi

Avvalo, ular chiziq uzunligida farqlanadi. 60 yoki undan ortiq sig'imga ega qurilmalar ish stoli kompyuter bilan ishlash uchun yaxshi, 40 sig'imli qurilmalar esa noutbuk bilan tashish uchun qulay. Endi smartfon va planshetlarga ulangan brayl displeylari mavjud bo'lib, ular qator uzunligi 14 yoki 18 belgidan iborat.

Ilgari brayl displeylari juda katta edi. Masalan, 40 o'rinli noutbuk 13 dyuymli noutbukning o'lchami va og'irligiga ega edi. Endi, bir xil miqdordagi tanishlar bilan, ular etarlicha miniatyuradir, shuning uchun displeyni noutbukning oldiga qo'yishingiz mumkin, displeyda noutbuk emas.

Bu, albatta, yaxshiroq, lekin ikkita alohida qurilmani tizzangizda ushlab turish hali ham juda qulay emas. Stolda ishlayotganingizda, hech qanday shikoyatlar bo'lmaydi, lekin noutbukni boshqa nom bilan noutbuk deb atashini esga olish kerak va uning nomini oqlashga harakat qilish kerak, chunki miniatyura 40 belgili displey bundan ham qulay emasligi ma'lum bo'ldi.

Shunday qilib, muallif Handy Tech Star seriyasidagi uzoq vaqtdan beri va'da qilingan yangi modelning chiqarilishini kutdi. 2002 yilda oldingi Handy Tech Braille Star 40 modeli chiqarildi, bu erda korpus maydoni noutbukni tepaga qo'yish uchun etarli. Va agar u mos kelmasa, tortib olinadigan stend mavjud. Endi bu model Active Star 40 bilan almashtirildi, u deyarli bir xil, ammo yangilangan elektronika bilan.

Handy Tech Active Star 40 brayl displeyidagi Raspberry Pi Zero

Va tortib olinadigan stend qoladi:

Handy Tech Active Star 40 brayl displeyidagi Raspberry Pi Zero

Ammo yangi mahsulotning eng qulay tomoni bu smartfonning taxminan o'lchamidagi bo'shliq (qarang: KDPV). Platforma orqaga ko'chirilganda ochiladi. U erda smartfonni ushlab turish noqulay bo'lib chiqdi, ammo siz qandaydir tarzda bo'sh bo'linmadan foydalanishingiz kerak, uning ichida hatto elektr rozetkasi ham bor.

Muallif birinchi bo'lib Raspberry Pi-ni u erga joylashtirishni o'ylab topdi, ammo displey sotib olinganda, bo'lmani qoplaydigan stend "malina" bilan sirpanib ketmagani ma'lum bo'ldi. Endi, agar taxta atigi 3 mm yupqaroq bo'lsa ...

Ammo bir hamkasbim menga Raspberry Pi Zero-ning chiqarilishi haqida gapirib berdi, u shunchalik miniatyura bo'lib chiqdiki, ulardan ikkitasi bo'limga sig'ishi mumkin edi ... yoki hatto uchtasi ham. U darhol 64 GB xotira kartasi, Bluetooth, "hushtak" va Micro USB kabeli bilan birga buyurtma qilindi. Bir necha kundan keyin bularning barchasi keldi va ko'ruvchi do'stlar muallifga xaritani tayyorlashga yordam berishdi. Hammasi darhol kerakli tarzda ishladi.

Buning uchun nima qilindi

Handy Tech Active Star 40 orqa tomonida klaviatura kabi qurilmalar uchun ikkita USB port mavjud. Magnit o'rnatgichli kichik o'lchamli klaviatura kiritilgan. Klaviatura ulangan bo'lsa va displeyning o'zi Bluetooth orqali ishlasa, kompyuter uni qo'shimcha ravishda Bluetooth klaviaturasi sifatida taniydi.

Shunday qilib, agar siz Bluetooth hushtakini smartfon bo'linmasida joylashgan Raspberry Pi Zeroga ulasangiz, u Bluetooth yordamida brayl displey bilan bog'lana oladi. BRLTTY, va agar siz klaviaturani displeyga ham ulasangiz, "malina" ham u bilan ishlaydi.

Lekin bu hammasi emas. O'z navbatida "malina" ning o'zi uni qo'llab-quvvatlaydigan har qanday qurilmadan Bluetooth PAN orqali Internetga kirishi mumkin. Muallif o'z smartfoni va kompyuterlarini uyda va ishda mos ravishda sozlagan, ammo kelajakda u boshqa "malina" ni moslashtirishni rejalashtirmoqda - Ethernetga ulangan nol emas, klassik va boshqa Bluetooth "hushtak".

BlueZ 5 va PAN

PAN konfiguratsiya usuli yordamida bluez noma'lum bo'lib chiqdi. Muallif bt-pan Python skriptini topdi (pastga qarang), bu PANni GUIsiz sozlash imkonini beradi.

U serverni ham, mijozni ham sozlash uchun ishlatilishi mumkin. Mijoz rejimida ishlaganda D-Bus orqali tegishli buyruqni olgan holda, u server bilan aloqa o'rnatgandan so'ng darhol bnep0 yangi tarmoq qurilmasini yaratadi. Odatda, DHCP ushbu interfeysga IP-manzilni belgilash uchun ishlatiladi. Server rejimida BlueZ har bir mijozni ulash uchun tobe qurilmani qo'shishi mumkin bo'lgan ko'prik qurilmasining nomini talab qiladi. Ko'prik qurilmasi uchun manzilni sozlash va DHCP serverini ishga tushirish va ko'prikda IP maskaralash odatda talab qilinadi.

Systemd bilan Bluetooth PAN kirish nuqtasi

Ko'prikni sozlash uchun muallif systemd-networkd dan foydalangan:

Fayl /etc/systemd/network/pan.netdev

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

Fayl /etc/systemd/network/pan.network

[Match]
Name=pan

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

Endi biz BlueZ-ni NAP profilini sozlash uchun majburlashimiz kerak. Buni standart BlueZ 5.36 yordam dasturlari bilan amalga oshirish mumkin emasligi ma'lum bo'ldi. Agar muallif noto'g'ri bo'lsa, uni tuzating: mlang (quloqlarini qimirlatishi mumkin) ko'r (ba'zan kirish va kvant) guru

Lekin topdi blog post и Python skripti D-Bus ga kerakli qo'ng'iroqlarni amalga oshirish uchun.

Qulaylik uchun muallif skriptni ishga tushirish va bog'liqliklar bartaraf etilganligini tekshirish uchun Systemd xizmatidan foydalangan.

Fayl /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

Fayl /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

Agar Debian IPMasquerade= qo'llab-quvvatlasa, ikkinchi fayl kerak bo'lmaydi (pastga qarang). #787480).

Buyruqlarni bajargandan so'ng tizimni qayta tiklash и systemctl qayta ishga tushiring systemd-networkd buyruq bilan Bluetooth PAN-ni ishga tushirishingiz mumkin systemctl ishga tushirish paneli

Systemd yordamida Bluetooth PAN mijozi

Mijoz tomonini Systemd yordamida sozlash ham oson.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fayl /etc/systemd/system/[elektron pochta bilan himoyalangan]

[Unit]
Description=Bluetooth Personal Area Network client

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

Endi, konfiguratsiyani qayta yuklaganingizdan so'ng, belgilangan Bluetooth kirish nuqtasiga quyidagi tarzda ulanishingiz mumkin:

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

Buyruqlar qatori yordamida ulanish

Albatta, server va mijozlarning konfiguratsiyasi ularni Bluetooth orqali ulashdan keyin amalga oshirilishi kerak. Serverda siz bluetoothctl-ni ishga tushirishingiz va unga buyruqlarni berishingiz kerak:

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

Skanerlashni boshlaganingizdan so'ng, ro'yxatda kerakli qurilma paydo bo'lguncha bir necha soniya kuting. Uning manzilini yozing va juftlik buyrug'ini va kerak bo'lganda ishonch buyrug'ini berish orqali foydalaning.

Mijoz tomonida siz xuddi shu narsani qilishingiz kerak, ammo ishonch buyrug'i, albatta, kerak emas. Foydalanuvchi tomonidan qo'lda tasdiqlanmasdan NAP profilidan foydalangan holda ulanishni qabul qilish uchun server kerak.

Muallif bu buyruqlarning optimal ketma-ketligi ekanligiga ishonchi komil emas. Ehtimol, mijozni server bilan bog'lash va serverda ishonch buyrug'ini ishga tushirish kerak, ammo u hali buni sinab ko'rmagan.

HID Bluetooth profili yoqilmoqda

Raspberry Brayl displeyiga sim orqali ulangan klaviaturani tanib olishi va displeyning o'zi tomonidan Bluetooth orqali uzatilishi talab qilinadi. Bu xuddi shu tarzda amalga oshiriladi, faqat o'rniga agent yoqilgan buyruq berish kerak Faqat agent Klaviatura va bluetoothctl HID profiliga ega qurilmani topadi.

Lekin Bluetooth-ni buyruq qatori orqali sozlash biroz murakkab

Muallif hamma narsani sozlashga muvaffaq bo'lsa-da, u BlueZ-ni buyruq qatori orqali sozlash noqulay ekanligini tushunadi. Avvaliga u agentlarga faqat PIN-kodlarni kiritish uchun kerak deb o'ylardi, ammo, masalan, HID profilini yoqish uchun "Agent KeyboardOnly" yozish kerakligi ma'lum bo'ldi. Ajablanarlisi shundaki, Bluetooth PAN-ni ishga tushirish uchun kerakli skriptni qidirish uchun omborlar bo'ylab ko'tarilish kerak. U BlueZ ning oldingi versiyasida buning uchun tayyor vosita bo'lganini eslaydi pand - u BlueZ 5 da qayerda yuradi? To'satdan yangi yechim paydo bo'ldi, muallifga noma'lum, lekin sirtda yotganmi?

unumdorlik

Ma'lumot uzatish tezligi taxminan 120 kbit / s edi, bu juda etarli. 1 gigagertsli ARM protsessori buyruq qatori interfeysi uchun juda tezdir. Muallif hali ham qurilmada asosan ssh va emacs dan foydalanishni rejalashtirmoqda.

Konsol shriftlari va ekran o'lchamlari

Raspberry Pi Zero-da ramka buferi tomonidan ishlatiladigan standart ekran o'lchamlari juda g'alati: fbset uni 656x416 piksel deb xabar qiladi (albatta, monitor ulanmagan). 8×16 konsol shrifti bilan har bir satrda 82 ta belgi va 26 satr mavjud edi.

Ushbu rejimda 40 belgidan iborat Brayl displey bilan ishlash noqulay. Muallif, shuningdek, Brayl alifbosida ko'rsatilgan Unicode belgilarini ko'rishni xohlaydi. Yaxshiyamki, Linux 512 ta belgini qo'llab-quvvatlaydi va ko'pchilik konsol shriftlari 256 taga ega. Konsol sozlamalari yordamida siz ikkita 256 belgidan iborat shriftlardan foydalanishingiz mumkin. Muallif /etc/default/console-setup fayliga quyidagi qatorlarni qo'shdi:

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

Eslatma: brl-16×8.psf shriftini mavjud qilish uchun konsol-braylni o'rnatishingiz kerak.

Keyin nima?

Brayl displeyida 3,5 mm raz'em bor, lekin muallif Mini-HDMI dan audio signalni qabul qilish uchun adapterlardan xabardor emas. Muallif Raspberry-ga o'rnatilgan ovoz kartasidan foydalana olmadi (g'alati, tarjimon Zeroda yo'qligiga amin edi, lekin PWM yordamida GPIO-ga ovoz chiqarish usullari mavjud). U USB-OTG uyasidan foydalanishni va brayl displeyiga o‘rnatilgan dinamikga tashqi karta va chiqish ovozini ulashni rejalashtirmoqda. Ba'zi sabablarga ko'ra ikkita tashqi karta ishlamadi, endi u boshqa chipsetdagi shunga o'xshash qurilmani qidirmoqda.

Bundan tashqari, "malina" ni qo'lda o'chirish, bir necha soniya kutib turish va brayl displeyini o'chirish noqulay. Va barchasi, chunki u o'chirilgan bo'lsa, u bo'linmadagi ulagichdan quvvatni olib tashlaydi. Muallif bo'limga kichik bufer batareyasini joylashtirishni va GPIO orqali Raspberry-ga displey o'chayotgani haqida xabar berishni rejalashtirmoqda, shunda u o'z ishini o'chirishni boshlaydi. Bu miniatyuradagi UPS.

Tizim tasviri

Agar sizda bir xil Brayl displeyingiz bo'lsa va u bilan xuddi shunday qilishni xohlasangiz, muallif tizimning tayyor tasvirini taqdim etishga tayyor (Raspbian Stretch asosida). Bu haqda unga yuqorida ko'rsatilgan manzilga yozing. Agar qiziqqan odamlar etarli bo'lsa, bunday o'zgartirish uchun zarur bo'lgan barcha narsalarni o'z ichiga olgan to'plamlarni chiqarish ham mumkin.

Rahmatlar

Tekshirish uchun Deyv Mielkega rahmat.

Fotosuratlar uchun Saymon Kainzga rahmat.

Grats texnika universitetidagi hamkasblarimga muallifni Raspberry Pi dunyosi bilan tezda tanishtirganliklari uchun rahmat.

PS Birinchi tvit ushbu mavzu bo'yicha muallif (ochmaydi - tarjimon) ushbu maqolaning asl nusxasi nashr etilishidan atigi besh kun oldin tuzilgan va ovoz bilan bog'liq muammolar bundan mustasno, vazifa amalda hal qilingan deb hisoblash mumkin. Aytgancha, muallif o'zi yasagan "o'zini o'zi etarli Brayl displey" dan matnning yakuniy versiyasini tahrirlab, uni SSH orqali uy kompyuteriga ulagan.

Manba: www.habr.com

a Izoh qo'shish