Handy Tech Active Star 40 brayl displeyi daxilində Raspberry Pi Zero

Handy Tech Active Star 40 brayl displeyi daxilində Raspberry Pi Zero

Müəllif özünün yeni Handy Tech Active Star 40 brayl displeyinə Raspberry Pi Zero, Bluetooth fiti və kabel yerləşdirib.Daxili USB portu enerji təmin edir. Nəticə, klaviatura və Brayl şrifti ilə ekranla təchiz edilmiş Linux əməliyyat sistemi ilə ARM-də özünü təmin edən monitorsuz kompüter oldu. Siz onu USB vasitəsilə doldura/gücləndirə bilərsiniz, o cümlədən. enerji bankından və ya günəş enerjisi şarj cihazından. Buna görə də, o, bir neçə saat elektrik olmadan edə bilər, lakin bir neçə gündür.

Handy Tech Active Star 40 brayl displeyi daxilində Raspberry Pi Zero

Brayl displeylərinin ölçü fərqi

Əvvəla, onlar xəttin uzunluğu ilə fərqlənirlər. 60 və ya daha çox tutumlu qurğular masaüstü kompüterlə işləmək üçün yaxşıdır, 40 tutumlu qurğular isə noutbukla aparmaq üçün əlverişlidir. İndi smartfon və planşetlərə qoşulmuş 14 və ya 18 simvoldan ibarət sətir uzunluğu olan brayl displeyləri var.

Əvvəllər brayl displeyləri kifayət qədər kütləvi idi. Məsələn, 40 yerlik noutbuk 13 düymlük noutbukun ölçüsünə və çəkisinə malik idi. İndi eyni sayda tanışlarla, onlar kifayət qədər miniatürdür ki, displeydə laptopu yox, noutbukun qabağına qoya biləsən.

Bu, əlbəttə ki, daha yaxşıdır, lakin iki ayrı cihazı qucağınızda saxlamaq hələ də çox rahat deyil. İş masasında işlədiyiniz zaman heç bir şikayət yoxdur, ancaq bir noutbukun başqa bir adla noutbuk adlandırıldığını xatırlamağa dəyər və adını əsaslandırmağa çalışın, çünki miniatür 40 simvollu displey daha az rahatdır.

Beləliklə, müəllif Handy Tech Star seriyasındakı çoxdan vəd edilən yeni modelin buraxılmasını gözlədi. Hələ 2002-ci ildə əvvəlki model Handy Tech Braille Star 40 buraxıldı, burada bədən sahəsi noutbuku üstünə qoymaq üçün kifayətdir. Uyğun gəlmirsə, geri çəkilə bilən stend var. İndi bu model praktiki olaraq eyni, lakin təkmilləşdirilmiş elektronika ilə Active Star 40 ilə əvəz edilmişdir.

Handy Tech Active Star 40 brayl displeyi daxilində Raspberry Pi Zero

Və geri çəkilə bilən stend qalır:

Handy Tech Active Star 40 brayl displeyi daxilində Raspberry Pi Zero

Ancaq yeni məhsulun ən əlverişli tərəfi, təxminən bir smartfon ölçüsündə boşluqdur (bax: KDPV). Platforma geri çəkildikdə açılır. Orada bir smartfon saxlamaq əlverişsiz oldu, ancaq birtəhər içərisində hətta elektrik rozetkası olan boş bölmədən istifadə etməlisiniz.

Müəllifin ağlına gələn ilk şey Raspberry Pi-ni orada yerləşdirmək idi, lakin displey alındıqda məlum oldu ki, kupeni örtən stend “moruq” ilə sürüşmür. İndi lövhə yalnız 3 mm nazik olsaydı...

Amma bir həmkarım mənə Raspberry Pi Zero-nun buraxılmasından danışdı, o qədər miniatür oldu ki, onlardan ikisi kupeyə sığa bildi... və ya bəlkə də üçü. Dərhal 64 GB yaddaş kartı, Bluetooth, "düdük" və Micro USB kabel ilə birlikdə sifariş edildi. Bir neçə gündən sonra bütün bunlar gəldi və görməli dostlar müəllifə xəritə hazırlamağa kömək etdilər. Hər şey dərhal lazım olduğu kimi işlədi.

Bunun üçün nə edildi

Handy Tech Active Star 40-ın arxasında klaviatura kimi cihazlar üçün iki USB portu var. Maqnit montajı olan kiçik ölçülü klaviatura daxildir. Klaviatura qoşulduqda və displey özü Bluetooth vasitəsilə işləyərsə, kompüter onu əlavə olaraq Bluetooth klaviaturası kimi tanıyır.

Beləliklə, əgər siz smartfon bölməsində yerləşdirilmiş Raspberry Pi Zero-ya Bluetooth fiti qoşsanız, o, Bluetooth vasitəsilə brayl displeyi ilə əlaqə saxlaya biləcək. BRLTTY, və siz də ekrana klaviatura qoşsanız, "moruq" da onunla işləyəcək.

Ancaq bu, hamısı deyil. "Moruq" özü də öz növbəsində onu dəstəkləyən istənilən cihazdan Bluetooth PAN vasitəsilə İnternetə daxil ola bilər. Müəllif evdə və işdə öz smartfonunu və kompüterlərini buna uyğun konfiqurasiya edib, lakin gələcəkdə bunun üçün başqa bir “moruq”u - Ethernet-ə qoşulmuş Sıfır deyil, klassik olanı və başqa bir Bluetooth “düdük”ünü uyğunlaşdırmağı planlaşdırır.

BlueZ 5 və PAN

PAN konfiqurasiya metodundan istifadə etməklə MaviZ aşkar olmadığı ortaya çıxdı. Müəllif, GUI olmadan PAN-ı konfiqurasiya etməyə imkan verən bt-pan Python skriptini tapdı (aşağıya baxın).

Həm serveri, həm də müştərini konfiqurasiya etmək üçün istifadə edilə bilər. Müştəri rejimində işləyərkən D-Bus vasitəsilə müvafiq əmri alaraq, serverlə əlaqə qurduqdan dərhal sonra bnep0 yeni şəbəkə qurğusu yaradır. Tipik olaraq, bu interfeysə bir IP ünvanı təyin etmək üçün DHCP istifadə olunur. Server rejimində BlueZ hər bir müştərini birləşdirmək üçün körpü cihazı əlavə edə biləcəyi körpü cihazının adını tələb edir. Körpü cihazı üçün ünvanı konfiqurasiya etmək və DHCP serverini işə salmaq və körpüdə IP maskarad etmək adətən tələb olunur.

Systemd ilə Bluetooth PAN Giriş Nöqtəsi

Körpü konfiqurasiya etmək üçün müəllif systemd-networkd-dən istifadə etdi:

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

İndi BlueZ-ni NAP profilini konfiqurasiya etməyə məcbur etməliyik. Məlum oldu ki, bunu standart BlueZ 5.36 yardım proqramları ilə etmək olmaz. Müəllif səhvdirsə, onu düzəldin: mlang (qulaqlarını hərəkət etdirə bilər) kor (bəzən giriş və kvant) guru

Amma tapdı blog yazısı и Python skripti D-Bus-a lazımi zəngləri etmək.

Rahatlıq üçün müəllif skripti işə salmaq və asılılıqların həll edilib-edilmədiyini yoxlamaq üçün Systemd xidmətindən istifadə edib.

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

Debian-da IPMasquerade= dəstəyi olsaydı, ikinci fayl lazım olmazdı (aşağıya bax). # 787480).

Əmrləri yerinə yetirdikdən sonra systemctl daemon-reload и systemctl yenidən başladın systemd-networkd əmri ilə Bluetooth PAN-ı işə sala bilərsiniz systemctl başlanğıc pan

Systemd istifadə edərək Bluetooth PAN müştəri

Müştəri tərəfini Systemd istifadə edərək konfiqurasiya etmək də asandır.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fayl /etc/systemd/system/[e-poçt qorunur]

[Unit]
Description=Bluetooth Personal Area Network client

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

İndi konfiqurasiyanı yenidən yüklədikdən sonra müəyyən edilmiş Bluetooth giriş nöqtəsinə aşağıdakı kimi qoşula bilərsiniz:

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

Komanda xəttindən istifadə edərək cütləşmə

Əlbəttə ki, server və müştərilərin konfiqurasiyası onları Bluetooth vasitəsilə birləşdirdikdən sonra edilməlidir. Serverdə bluetoothctl-i işə salıb ona əmrlər verməlisiniz:

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

Skanı başlatdıqdan sonra sizə lazım olan cihaz siyahıda görünənə qədər bir neçə saniyə gözləyin. Onun ünvanını yazın və cüt əmri və lazım olduqda etibar əmrini verməklə istifadə edin.

Müştəri tərəfində də eyni şeyi etməlisiniz, lakin etibar əmri mütləq lazım deyil. İstifadəçi tərəfindən əl ilə təsdiqlənmədən NAP profilindən istifadə edərək əlaqəni qəbul etmək üçün serverə ehtiyac var.

Müəllif bunun optimal əmr ardıcıllığı olduğuna əmin deyil. Bəlkə də müştərini serverlə cütləşdirmək və serverdə güvən əmrini işə salmaq lazımdır, lakin o, hələ bunu sınamayıb.

HID Bluetooth Profili işə salınır

Raspberry-nin tel vasitəsilə Brayl displeyinə qoşulmuş klaviaturanı tanıması və ekranın özü tərəfindən Bluetooth vasitəsilə ötürülməsi tələb olunur. Bu, eyni şəkildə, yalnız yerinə edilir agent aktivdir əmr vermək lazımdır agent Klaviatura Yalnız və bluetoothctl HID profili olan cihazı tapacaq.

Amma komanda xətti ilə Bluetooth-un qurulması bir qədər mürəkkəbdir

Müəllif hər şeyi konfiqurasiya etməyi bacarsa da, BlueZ-ni komanda xətti ilə konfiqurasiya etməyin əlverişsiz olduğunu başa düşür. Əvvəlcə o, agentlərə yalnız PİN kodları daxil etmək üçün lazım olduğunu düşünürdü, lakin məsələn, HID profilini aktivləşdirmək üçün “Agent KeyboardOnly” yazmağınız lazım olduğu ortaya çıxdı. Təəccüblüdür ki, Bluetooth PAN-ı işə salmaq üçün tələb olunan skript axtarışında depolardan keçmək lazımdır. O xatırlayır ki, BlueZ-in əvvəlki versiyasında bunun üçün hazır alət var idi panda - o BlueZ 5-də harada işləyir? Birdən müəllifə məlum olmayan, lakin səthdə uzanan yeni bir həll ortaya çıxdı?

Məhsuldarlıq

Məlumat ötürmə sürəti təxminən 120 kbit/s idi ki, bu da kifayət qədər kifayətdir. 1GHz ARM prosessoru komanda xətti interfeysi üçün çox sürətlidir. Müəllif hələ də cihazda əsasən ssh və emacs istifadə etməyi planlaşdırır.

Konsol şriftləri və ekran həlli

Raspberry Pi Zero-da çərçivə buferinin istifadə etdiyi standart ekran qətnaməsi olduqca qəribədir: fbset bunu 656x416 piksel olaraq bildirir (əlbəttə ki, monitor qoşulmayıb). 8×16 konsol şrifti ilə hər sətirdə 82 simvol və 26 sətir var idi.

Bu rejimdə 40 simvollu Brayl displeyi ilə işləmək əlverişsizdir. Müəllif həmçinin Unicode simvollarının brayl əlifbası ilə göstərilməsini istəyir. Xoşbəxtlikdən, Linux 512 simvolu dəstəkləyir və əksər konsol şriftlərində 256 simvol var. Konsol quraşdırmasından istifadə edərək, siz iki 256 simvoldan ibarət şriftdən istifadə edə bilərsiniz. Müəllif /etc/default/console-setup faylına aşağıdakı sətirləri əlavə etdi:

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

Qeyd: brl-16×8.psf şriftini əlçatan etmək üçün siz konsol-brayl şriftini quraşdırmalısınız.

Növbəti nədir?

Brayl displeyində 3,5 mm jak var, lakin müəllif Mini-HDMI-dən audio siqnalın qəbulu üçün adapterlərdən xəbərsizdir. Müəllif Raspberry-də quraşdırılmış səs kartından istifadə edə bilmədi (qəribədir ki, tərcüməçi Sıfırın olmadığına əmin idi, lakin GPIO-ya PWM-dən istifadə edərək səs çıxarmağın yolları var). O, USB-OTG qovşağından istifadə etməyi və xarici kartı və çıxış səsini brayl displeyinə quraşdırılmış dinamikə qoşmağı planlaşdırır. Nədənsə iki xarici kart işləmədi, indi fərqli bir çipsetdə oxşar cihaz axtarır.

"Moruq"u əl ilə söndürmək, bir neçə saniyə gözləmək və brayl displeyini söndürmək də əlverişsizdir. Və hamısı ona görə ki, söndürüldükdə bölmədəki bağlayıcıdan enerjini çıxarır. Müəllif bölməyə kiçik bufer batareyası yerləşdirməyi və GPIO vasitəsilə Raspberry-ə displeyin sönməsi barədə məlumat verməyi planlaşdırır ki, o, öz işini dayandırmağa başlaya bilsin. Bu miniatür UPS-dir.

Sistem şəkli

Eyni Brayl displeyinə sahibsinizsə və onunla eyni şeyi etmək istəyirsinizsə, müəllif sistemin hazır şəklini təqdim etməyə hazırdır (Raspbian Stretch əsasında). Bu barədə yuxarıda göstərilən ünvanda ona yazın. Kifayət qədər maraqlı insanlar varsa, belə bir modifikasiya üçün lazım olan hər şeyi ehtiva edən dəstləri buraxmaq da mümkündür.

Təşəkkürlər

Korrektə üçün Dave Mielke-yə təşəkkür edirik.

Fotoşəkillərə görə Simon Kainz-ə təşəkkür edirik.

Müəllifi Raspberry Pi dünyası ilə tez bir zamanda tanış etdikləri üçün Qraz Texniki Universitetindəki həmkarlarıma təşəkkür edirəm.

PS İlk tvit bu mövzuda müəllif (açmır - tərcüməçi) bu məqalənin orijinalının nəşrinə cəmi beş gün qalmış hazırlanmışdır və hesab etmək olar ki, səslə bağlı problemlər istisna olmaqla, vəzifə praktiki olaraq həll edilmişdir. Yeri gəlmişkən, müəllif mətnin son versiyasını SSH vasitəsilə ev kompüterinə birləşdirərək hazırladığı “özünü təmin edən Brayl displeyindən” redaktə edib.

Mənbə: www.habr.com

Добавить комментарий