Raspberry Pi Zero di dalam layar braille Handy Tech Active Star 40

Raspberry Pi Zero di dalam layar braille Handy Tech Active Star 40

Penulis menempatkan Raspberry Pi Zero, peluit Bluetooth, dan kabel di dalam layar braille Handy Tech Active Star 40. Port USB internal menyediakan daya. Hasilnya adalah komputer tanpa monitor mandiri di ARM dengan sistem operasi Linux, dilengkapi dengan keyboard dan layar Braille. Anda dapat mengisi daya/menyalakannya melalui USB, termasuk. dari bank daya atau pengisi daya tenaga surya. Oleh karena itu, ia dapat hidup tanpa listrik selama beberapa jam, tetapi selama beberapa hari.

Raspberry Pi Zero di dalam layar braille Handy Tech Active Star 40

Diferensiasi dimensi tampilan braille

Pertama-tama, mereka berbeda dalam panjang garis. Perangkat dengan kapasitas 60 atau lebih cocok untuk digunakan dengan komputer desktop, sedangkan perangkat dengan kapasitas 40 nyaman untuk dibawa dengan laptop. Sekarang sudah ada tampilan braille yang terhubung ke smartphone dan tablet, dengan panjang garis 14 atau 18 karakter.

Dahulu, penampil braille cukup masif. Laptop dengan 40 tempat duduk, misalnya, memiliki ukuran dan berat seperti laptop 13 inci. Kini, dengan jumlah kenalan yang sama, ukurannya cukup mini sehingga Anda bisa meletakkan display di depan laptop, bukan laptop di atas display.

Ini tentu saja lebih baik, tetapi masih kurang nyaman untuk memegang dua perangkat terpisah di pangkuan Anda. Saat Anda bekerja di meja, tidak ada keluhan, namun perlu diingat bahwa laptop disebut laptop dengan nama lain, dan mencoba membenarkan namanya, ternyata tampilan mini 40 karakter malah kurang nyaman.

Jadi penulis menunggu rilis model baru dari seri Handy Tech Star yang telah lama dijanjikan. Pada tahun 2002 lalu, model sebelumnya Handy Tech Braille Star 40 dirilis, yang mana luas bodinya cukup untuk meletakkan laptop di atasnya. Dan jika tidak muat, ada dudukan yang bisa ditarik. Kini model ini telah digantikan oleh Active Star 40 yang hampir sama, namun dengan elektronik yang ditingkatkan.

Raspberry Pi Zero di dalam layar braille Handy Tech Active Star 40

Dan dudukan yang dapat ditarik tetap ada:

Raspberry Pi Zero di dalam layar braille Handy Tech Active Star 40

Namun hal yang paling nyaman dari produk baru ini adalah ceruknya yang kira-kira seukuran smartphone (lihat KDPV). Ini terbuka ketika platform dipindahkan kembali. Ternyata tidak nyaman untuk memegang ponsel cerdas di sana, tetapi Anda harus menggunakan kompartemen kosong, yang di dalamnya bahkan terdapat stopkontak.

Hal pertama yang penulis pikirkan adalah meletakkan Raspberry Pi di sana, tetapi ketika layarnya dibeli, ternyata dudukan yang menutupi kompartemennya tidak masuk bersama “raspberry”. Sekarang, jika papannya hanya lebih tipis 3 mm...

Namun seorang rekan bercerita kepada saya tentang peluncuran Raspberry Pi Zero, yang ternyata sangat kecil sehingga dua di antaranya bisa muat di kompartemennya... atau bahkan mungkin tiga. Ia langsung dipesan bersama dengan kartu memori 64 GB, Bluetooth, “peluit” dan kabel Micro USB. Beberapa hari kemudian semuanya tiba, dan teman-teman yang dapat melihat membantu penulis menyiapkan peta. Semuanya segera berjalan sebagaimana mestinya.

Apa yang telah dilakukan untuk ini

Di bagian belakang Handy Tech Active Star 40 terdapat dua port USB untuk perangkat seperti keyboard. Keyboard berukuran kecil dengan dudukan magnet disertakan. Saat keyboard tersambung dan layarnya sendiri berfungsi melalui Bluetooth, komputer juga mengenalinya sebagai keyboard Bluetooth.

Jadi, jika Anda menghubungkan “peluit” Bluetooth ke Raspberry Pi Zero yang ditempatkan di kompartemen ponsel cerdas, ia akan dapat berkomunikasi dengan tampilan braille melalui Bluetooth menggunakan BRLTTY, dan jika Anda juga menyambungkan keyboard ke layar, “raspberry” juga akan berfungsi dengannya.

Tapi bukan itu saja. Raspberry itu sendiri, pada gilirannya, dapat mengakses Internet melalui Bluetooth PAN dari perangkat apa pun yang mendukungnya. Penulis telah mengonfigurasi ponsel cerdas dan komputernya di rumah dan di tempat kerja, tetapi di masa depan ia berencana untuk mengadaptasi "raspberry" lain untuk ini - yang klasik, bukan Zero, terhubung ke Ethernet dan "peluit" Bluetooth lainnya.

BlueZ 5 dan PAN

Metode konfigurasi PAN menggunakan BlueZ ternyata tidak terlihat jelas. Penulis menemukan skrip Python bt-pan (lihat di bawah), yang memungkinkan Anda mengkonfigurasi PAN tanpa GUI.

Ini dapat digunakan untuk mengkonfigurasi server dan klien. Setelah menerima perintah yang sesuai melalui D-Bus saat bekerja dalam mode klien, ia membuat perangkat jaringan baru bnep0 segera setelah membuat koneksi dengan server. Biasanya, DHCP digunakan untuk menetapkan alamat IP ke antarmuka ini. Dalam mode server, BlueZ memerlukan nama perangkat jembatan yang dapat ditambahkan perangkat budak untuk menghubungkan setiap klien. Biasanya hanya diperlukan konfigurasi alamat untuk perangkat bridge dan menjalankan server DHCP plus penyamaran IP pada bridge.

Titik Akses Bluetooth PAN dengan Systemd

Untuk mengkonfigurasi jembatan, penulis menggunakan 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

Sekarang kita perlu memaksa BlueZ untuk mengkonfigurasi profil NAP. Ternyata hal ini tidak dapat dilakukan dengan utilitas standar BlueZ 5.36. Kalau penulis salah, koreksi dia: mlang (bisa menggerakkan telinganya) guru buta (kadang akses dan kuantum).

Tapi dia menemukan posting blog и Skrip piton untuk melakukan panggilan yang diperlukan ke D-Bus.

Untuk kenyamanan, penulis menggunakan layanan Systemd untuk menjalankan skrip dan memeriksa apakah dependensi telah teratasi.

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

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

File kedua tidak diperlukan jika Debian memiliki dukungan IPMasquerade= (lihat di bawah). #787480).

Setelah menjalankan perintah systemctl daemon-ulang и systemctl restart systemd-networkd Anda dapat memulai Bluetooth PAN dengan perintah systemctl mulai menggeser

Klien Bluetooth PAN menggunakan Systemd

Sisi klien juga mudah dikonfigurasi menggunakan Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Berkas /etc/systemd/system/[email dilindungi]

[Unit]
Description=Bluetooth Personal Area Network client

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

Sekarang, setelah memuat ulang konfigurasi, Anda dapat terhubung ke titik akses Bluetooth yang ditentukan seperti ini:

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

Memasangkan menggunakan baris perintah

Tentu saja konfigurasi server dan klien harus dilakukan setelah memasangkannya melalui Bluetooth. Di server Anda perlu menjalankan bluetoothctl dan memberikan perintah:

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

Setelah memulai pemindaian, tunggu beberapa detik hingga perangkat yang Anda perlukan muncul dalam daftar. Tuliskan alamatnya dan gunakan dengan mengeluarkan perintah pair dan, jika perlu, perintah trust.

Di sisi klien, Anda perlu melakukan hal yang sama, tetapi perintah trust jelas tidak diperlukan. Server memerlukannya untuk menerima koneksi menggunakan profil NAP tanpa konfirmasi manual oleh pengguna.

Penulis tidak yakin ini adalah urutan perintah yang optimal. Mungkin yang diperlukan hanyalah memasangkan klien dengan server dan menjalankan perintah kepercayaan di server, tetapi dia belum mencobanya.

Mengaktifkan Profil Bluetooth HID

Raspberry harus mengenali keyboard yang terhubung ke layar Braille melalui kabel, dan ditransmisikan oleh layar itu sendiri melalui Bluetooth. Ini dilakukan dengan cara yang sama, hanya saja agen aktif perlu memberi perintah agen KeyboardOnly dan bluetoothctl akan menemukan perangkat dengan profil HID.

Namun pengaturan Bluetooth melalui baris perintah agak rumit

Meskipun penulis berhasil mengkonfigurasi semuanya, ia memahami bahwa mengkonfigurasi BlueZ melalui baris perintah tidak nyaman. Awalnya dia mengira agen hanya perlu memasukkan kode PIN, namun ternyata, misalnya untuk mengaktifkan profil HID, Anda perlu mengetikkan “agent KeyboardOnly”. Mengejutkan bahwa untuk meluncurkan Bluetooth PAN Anda perlu menelusuri repositori untuk mencari skrip yang diperlukan. Dia ingat bahwa di BlueZ versi sebelumnya ada alat yang siap pakai untuk ini panda - dimana yang dia lakukan di BlueZ 5? Tiba-tiba solusi baru muncul, tidak diketahui penulisnya, tetapi masih ada di permukaan?

Performa

Kecepatan transfer datanya sekitar 120 kbit/s, cukup memadai. Prosesor ARM 1GHz sangat cepat untuk antarmuka baris perintah. Penulis masih berencana untuk menggunakan ssh dan emacs pada perangkatnya.

Font konsol dan resolusi layar

Resolusi layar default yang digunakan oleh framebuffer pada Raspberry Pi Zero cukup aneh: fbset melaporkannya sebagai 656x416 piksel (tentu saja tidak ada monitor yang terhubung). Dengan font konsol 8x16, terdapat 82 karakter per baris dan 26 baris.

Tidak nyaman bekerja dengan tampilan Braille 40 karakter dalam mode ini. Penulis juga ingin melihat karakter Unicode ditampilkan dalam braille. Untungnya, Linux mendukung 512 karakter, dan sebagian besar font konsol memiliki 256 karakter. Dengan menggunakan pengaturan konsol, Anda dapat menggunakan dua font 256 karakter secara bersamaan. Penulis menambahkan baris berikut ke file /etc/default/console-setup:

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

Catatan: agar font brl-16×8.psf tersedia, Anda perlu menginstal console-braille.

Apa selanjutnya?

Layar Braille memiliki jack 3,5 mm, namun penulis tidak mengetahui adanya adaptor untuk menerima sinyal audio dari Mini-HDMI. Penulis tidak dapat menggunakan kartu suara yang ada di dalam Raspberry (anehnya, penerjemah yakin bahwa Zero tidak memilikinya, tetapi ada cara untuk mengeluarkan suara menggunakan PWM ke GPIO). Dia berencana untuk menggunakan hub USB-OTG dan menghubungkan kartu eksternal dan mengeluarkan suara ke speaker yang terpasang pada layar braille. Untuk beberapa alasan, dua kartu eksternal tidak berfungsi, sekarang dia mencari perangkat serupa dengan chipset berbeda.

Mematikan "raspberry" secara manual juga merepotkan, tunggu beberapa detik dan matikan tampilan braille. Dan semua itu karena ketika dimatikan, ia menghilangkan daya dari konektor di kompartemennya. Penulis berencana untuk menempatkan baterai penyangga kecil di kompartemennya dan, melalui GPIO, memberi tahu Raspberry tentang tampilan yang mati, sehingga dapat mulai mematikan pekerjaannya. Ini adalah miniatur UPS.

Gambar sistem

Jika Anda memiliki tampilan Braille yang sama dan ingin melakukan hal yang sama, penulis siap memberikan gambar sistem yang sudah jadi (berdasarkan Raspbian Stretch). Tuliskan kepadanya tentang hal ini di alamat yang ditunjukkan di atas. Jika ada cukup banyak orang yang tertarik, dimungkinkan untuk merilis kit yang mencakup semua yang diperlukan untuk modifikasi tersebut.

Ucapan Terima Kasih

Terima kasih kepada Dave Mielke untuk mengoreksinya.

Terima kasih kepada Simon Kainz untuk ilustrasi fotonya.

Terima kasih kepada rekan-rekan saya di Graz Technical University yang dengan cepat memperkenalkan penulis ke dunia Raspberry Pi.

PS Tweet pertama penulis tentang topik ini (tidak terbuka - penerjemah) dibuat hanya lima hari sebelum publikasi asli artikel ini, dan dapat dianggap bahwa, dengan pengecualian masalah suara, tugas tersebut secara praktis telah diselesaikan. Ngomong-ngomong, penulis mengedit versi final teks dari “tampilan Braille mandiri” yang dia buat, menghubungkannya melalui SSH ke komputer di rumahnya.

Sumber: www.habr.com

Tambah komentar