Handy Tech Active Star 40 braille ekranın içindeki Raspberry Pi Zero

Handy Tech Active Star 40 braille ekranın içindeki Raspberry Pi Zero

Yeni Handy Tech Active Star 40 braille ekranımın içine bir Raspberry Pi Zero, Bluetooth düdüğü ve kablosu yerleştirdim.Dahili USB bağlantı noktası güç sağlıyor. Sonuç, klavye ve Braille ekranıyla donatılmış, Linux işletim sistemine sahip, ARM üzerinde kendi kendine yeten, monitörsüz bir bilgisayardı. USB üzerinden şarj edebilir / çalıştırabilirsiniz. bir güç bankasından veya solar şarj cihazından. Bu nedenle elektriksiz birkaç saat değil, birkaç gün yapabilir.

Handy Tech Active Star 40 braille ekranın içindeki Raspberry Pi Zero

Braille ekranların boyutsal farklılaşması

Her şeyden önce, hat uzunluğunda farklılık gösterirler. 60 veya daha fazla aşinalığa sahip cihazlar, bir masaüstü bilgisayarla çalışırken iyidir, 40, bir dizüstü bilgisayarla birlikte taşımak için uygundur. Artık akıllı telefonlara ve tabletlere bağlanan, 14 veya 18 karakterlik satır uzunluğuna sahip braille ekranlar da var.

Geçmişte, kabartma yazı ekranları oldukça büyüktü. Örneğin 40 karakterlik bilgisayar, 13 inçlik bir dizüstü bilgisayarla aynı boyutlara ve ağırlığa sahipti. Şimdi, aynı sayıda aşinalıkla, ekranı dizüstü bilgisayarın önüne koyabilmeniz ve dizüstü bilgisayarı ekrana koyabilmeniz için yeterince minyatürler.

Bu kesinlikle daha iyi, ancak iki ayrı cihazı kucağınızda tutmak hala çok uygun değil. Bir masada çalışırken herhangi bir şikayet yoktur, ancak bir dizüstü bilgisayara başka bir şekilde dizüstü bilgisayar denildiğini hatırlamakta ve adını haklı çıkarmaya çalışmakta fayda var, çünkü 40 karakterlik minyatür bir ekranın daha da az kullanışlı olduğu ortaya çıktı.

Bu yüzden yazar, Handy Tech Star serisinde uzun zamandır vaat edilen yeni modelin piyasaya sürülmesini bekledi. 2002'de, gövde alanının üstüne bir dizüstü bilgisayar koymak için yeterli olduğu bir önceki model Handy Tech Braille Star 40 piyasaya sürüldü. Uymazsa geri çekilebilir bir stand sağlanır. Şimdi bu model, pratik olarak aynı olan ancak yükseltilmiş elektronik aksama sahip Active Star 40 ile değiştirildi.

Handy Tech Active Star 40 braille ekranın içindeki Raspberry Pi Zero

Ve geri çekilebilir stand kaldı:

Handy Tech Active Star 40 braille ekranın içindeki Raspberry Pi Zero

Ancak yenilikle ilgili en uygun şey, bir akıllı telefon boyutunda bir girintidir (bkz. KDPV). Platform geri kaydırıldığında açılır. Bir akıllı telefonu orada tutmanın sakıncalı olduğu ortaya çıktı, ancak içinde bir elektrik prizinin bile sağlandığı boş bölmeyi bir şekilde kullanmak gerekiyor.

Yazarın aklına gelen ilk şey Raspberry Pi'yi oraya koymak oldu ancak ekran satın alındığında bölmeyi kapatan standın "ahududu" ile hareket etmediği ortaya çıktı. Şimdi, tahta sadece 3 mm daha ince olsaydı ...

Ancak bir meslektaşım, o kadar küçük olduğu ortaya çıkan Raspberry Pi Zero'nun piyasaya sürülmesinden bahsetti, bunlardan ikisi bölmeye sığacaktı ... hatta belki üçü. 64 GB hafıza kartı, Bluetooth, düdük ve Micro USB kablosu ile birlikte hemen sipariş verildi. Birkaç gün sonra, tüm bunlar geldi ve gören arkadaşlar, yazarın haritayı hazırlamasına yardımcı oldu. Her şey hemen olması gerektiği gibi çalıştı.

Bunun için ne yapıldı

Handy Tech Active Star 40'ın arkasında klavye gibi aygıtlar için iki adet USB bağlantı noktası bulunur. Manyetik bağlantılı kompakt klavye dahildir. Klavye bağlandığında ve ekranın kendisi Bluetooth ile çalıştığında, bilgisayar ayrıca onu bir Bluetooth klavyesi olarak tanır.

Böylece akıllı telefon bölmesine yerleştirilmiş bir Raspberry Pi Zero'ya Bluetooth düdüğü bağlanırsa, Bluetooth kullanarak braille ekranla iletişim kurabilecektir. BRLTTYve ekrana bir klavye de bağlarsanız, "ahududu" da onunla çalışacaktır.

Ama hepsi bu kadar değil. Raspberry'nin kendisi de, onu destekleyen herhangi bir cihazdan Bluetooth PAN aracılığıyla İnternet'e erişebilir. Yazar, akıllı telefonunu ve bilgisayarlarını evde ve işte buna göre yapılandırdı, ancak gelecekte bunun için başka bir "ahududu" uyarlamayı planlıyor - Ethernet'e bağlı bir Zero değil klasik ve başka bir Bluetooth "ıslığı".

BlueZ5 ve PAN

PAN yapılandırma yöntemi kullanılarak BlueZ görünmez olduğu ortaya çıktı. Yazar, PAN'ı GUI olmadan yapılandırmanıza izin veren bir Pyhton betiği bt-pan (aşağıya bakın) buldu.

Bununla hem sunucuyu hem de istemciyi yapılandırabilirsiniz. İstemci modunda çalışırken D-Bus aracılığıyla uygun komutu aldıktan sonra, sunucuyla bağlantı kurduktan hemen sonra yeni bir ağ cihazı bnep0 oluşturur. Tipik olarak, DHCP bu arayüze bir IP adresi atamak için kullanılır. Sunucu modunda BlueZ, istemcilerin her birine bağlanmak için bir bağımlı cihaz ekleyebileceği bir köprü cihazının adını gerektirir. Köprü cihazı için bir adres yapılandırmak ve köprüde bir DHCP sunucusu artı IP maskeleme çalıştırmak genellikle gereken tek şeydir.

Systemd ile Bluetooth PAN Erişim Noktası

Yazar, köprüyü yapılandırmak için systemd-networkd kullandı:

DOSYA /etc/systemd/network/pan.netdev

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

DOSYA /etc/systemd/network/pan.network

[Match]
Name=pan

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

Şimdi NAP profilini yapılandırmak için BlueZ'ye ihtiyacımız var. BlueZ 5.36 normal yardımcı programlarının bunu yapamayacağı ortaya çıktı. Yazar yanılıyorsa düzeltin: mlang (kulaklarını nasıl hareket ettireceğini bilir) kör (bazen erişim ve kuantum) guru

Ama o buldu Blog yazısı и piton betiği gerekli D-Bus çağrılarını yapmak için.

Yazar, kolaylık sağlamak için, komut dosyasını çalıştırmak ve bağımlılıkların çözülüp çözülmediğini kontrol etmek için Systemd hizmetini kullandı.

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

DOSYA /usr/yerel/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'ın IPMasquerade= desteği olsaydı ikinci dosyaya gerek kalmazdı (aşağıya bakın). #787480).

Komutları yürüttükten sonra systemctl daemon yeniden yükle и systemctl yeniden başlatın systemd-networkd komutuyla Bluetooth PAN'ı başlatabilirsiniz. systemctl başlangıç ​​bölmesi

Systemd kullanan Bluetooth PAN istemcisi

İstemci tarafı da Systemd kullanılarak kolayca yapılandırılabilir.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

DOSYA /etc/systemd/system/[e-posta korumalı]

[Unit]
Description=Bluetooth Personal Area Network client

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

Şimdi, yapılandırmayı yeniden yükledikten sonra belirtilen Bluetooth erişim noktasına şu şekilde bağlanabilirsiniz:

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

Komut satırını kullanarak eşleştirme

Tabii ki, sunucu ve istemcilerin yapılandırması, onları Bluetooth ile eşleştirdikten sonra yapılmalıdır. Sunucuda, bluetoothctl'yi çalıştırmanız ve ona şu komutları vermeniz gerekir:

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

Taramayı başlattıktan sonra, ihtiyacınız olan cihaz listede görünene kadar birkaç saniye bekleyin. Adresini yazın ve pair komutuyla ve gerekirse trust komutuyla kullanın.

İstemci tarafında da aynısını yapmanız gerekiyor, ancak güven komutuna kesinlikle ihtiyaç duyulmayacak. Sunucunun, kullanıcı tarafından manuel olarak onaylanmadan bir NAP profili bağlantısını kabul etmesi gerekiyor.

Yazar, bunun en uygun komut dizisi olduğundan emin değil. Belki de tek gereken, istemciyi sunucuyla eşleştirmek ve sunucuda güven komutunu çalıştırmaktır, ancak bunu henüz denemedi.

Bluetooth HID Profilini Etkinleştirme

"Ahududu" nun Braille ekrana bir kabloyla bağlı klavyeyi tanıması ve ekranın kendisi tarafından Bluetooth aracılığıyla iletilmesi gerekir. Aynısını yapın, ancak bunun yerine ajan açık bir komut vermeli aracı Yalnızca Klavye ve bluetoothctl, HID profiline sahip bir cihaz bulacaktır.

Ancak Bluetooth'u komut satırı aracılığıyla yapılandırmak zordur.

Yazar her şeyi yapılandırmayı başarmış olsa da, BlueZ'yi komut satırı aracılığıyla yapılandırmanın elverişsiz olduğunu anlıyor. İlk başta, aracıların yalnızca PIN kodlarını girmek için gerekli olduğunu düşündü, ancak örneğin, HID profilini etkinleştirmek için "Yalnızca Aracı Klavye" yazmanız gerektiği ortaya çıktı. Şaşırtıcı bir şekilde, Bluetooth PAN'ı başlatmak için doğru komut dosyasını aramak için depolarda gezinmeniz gerekir. BlueZ'nin önceki sürümünde bunun için hazır bir araç olduğunu hatırlıyor. tava - BlueZ 5'te ne yapıyor? Aniden, yazarın bilmediği, ancak yüzeyde yatan yeni bir çözüm ortaya çıktı?

Proizvoditelnost

Veri aktarım hızı yaklaşık 120 kbps idi ve bu oldukça yeterli. 1GHz ARM işlemci, bir komut satırı arabirimi için çok hızlıdır. Yazar, cihazda ağırlıklı olarak ssh ve emacs kullanmayı planlıyor.

Konsol yazı tipleri ve ekran çözünürlüğü

Raspberry Pi Zero'da çerçeve arabelleği tarafından kullanılan varsayılan ekran çözünürlüğü oldukça garip: fbset bunu 656x416 piksel olarak bildiriyor (elbette bağlı monitör yok). Konsol yazı tipi 8x16 ile satır başına 82 karakter ve 26 satır elde ettik.

Bu modda 40 karakterlik bir braille ekranla çalışmak sakıncalıdır. Ayrıca yazar, Unicode karakterlerin Braille alfabesiyle görüntülenmesini istemektedir. Şans eseri, Linux 512 karakteri destekler ve konsol yazı tiplerinin çoğu 256 karakter içerir.Konsol kurulumuyla, iki 256 karakterlik yazı tipini birlikte kullanabilirsiniz. Yazar, /etc/default/console-setup dosyasına şu satırları ekledi:

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

Not: brl-16x8.psf yazı tipini kullanılabilir kılmak için konsol-braille yüklemeniz gerekir.

Sırada ne var?

Braille ekranın 3,5 mm jakı vardır, ancak yazar, Mini-HDMI'dan ses almak için adaptörler bilmiyor. Yazar, "ahududu" içinde yerleşik olan ses kartını kullanamadı (garip, tercüman Sıfır'ın olmadığından emindi, ancak sesi PWM ile GPIO'ya vermenin yolları var). Bir USB-OTG hub kullanmayı ve harici bir kart bağlamayı ve sesi Braille ekranına yerleşik hoparlöre vermeyi planlıyor. Nedense iki harici kart çalışmadı, şimdi farklı bir yonga setinde benzer bir cihaz arıyor.

"Ahududu" yu manuel olarak kapatmak, birkaç saniye beklemek ve braille ekranını kapatmak da sakıncalıdır. Ve hepsi, kapatıldığında bölmedeki konektörden gücü kestiği için. Yazar, bölmeye küçük bir tampon pil yerleştirmeyi planlıyor ve GPIO aracılığıyla "ahududuya" ekranı kapatması konusunda bilgi vererek kapanmaya başlamasını sağlıyor. Minyatür UPS böyledir.

Sistem görüntüsü

Aynı braille ekrana sahipseniz ve onunla aynı şeyi yapmak istiyorsanız, yazar size hazır bir sistem görüntüsü (Raspbian Stretch'e dayalı) sunmaktan memnuniyet duyar. Yukarıdaki adrese bu konuda ona yazın. İlgilenen yeterince insan varsa, böyle bir yeniden yapım için gereken her şeyi içeren kitler bile yayınlamak mümkündür.

Teşekkür

Metni düzelttiği için Dave Mielke'ye teşekkürler.

Fotoğraf çizimleri için Simon Kainz'e teşekkürler.

Yazarı Raspberry Pi dünyasıyla hızlı bir şekilde tanıştırdıkları için Graz Teknoloji Üniversitesi'ndeki meslektaşlarımıza teşekkür ederiz.

PS ilk tweet bu konuyla ilgili yazar (açılmıyor - çevirmen), bu makalenin orijinalinin yayınlanmasından sadece beş gün önce yapıldı ve sesle ilgili sorunlar haricinde, görevin pratik olarak çözüldüğünü varsayabiliriz. Bu arada yazar, kendi yaptığı "kendi kendine yeten Braille ekranı"ndan metnin son halini SSH aracılığıyla ev bilgisayarına bağlayarak düzenledi.

Kaynak: habr.com

Yorum ekle