Raspberry Pi Zero dalam paparan braille Handy Tech Active Star 40

Raspberry Pi Zero dalam paparan braille Handy Tech Active Star 40

Pengarang meletakkan Raspberry Pi Zero, wisel Bluetooth dan kabel di dalam paparan braille Handy Tech Active Star 40 baharunya. Port USB terbina dalam menyediakan kuasa. Hasilnya ialah komputer tanpa monitor yang mencukupi pada ARM dengan sistem pengendalian Linux, dilengkapi dengan papan kekunci dan paparan Braille. Anda boleh mengecas/mengkuasakannya melalui USB, termasuk. daripada bank kuasa atau pengecas solar. Oleh itu, dia boleh melakukan tanpa kuasa selama beberapa jam, tetapi selama beberapa hari.

Raspberry Pi Zero dalam paparan braille Handy Tech Active Star 40

Pembezaan dimensi paparan braille

Pertama sekali, mereka berbeza dalam panjang baris. Peranti dengan kapasiti 60 atau lebih bagus untuk bekerja dengan komputer meja, manakala peranti dengan kapasiti 40 mudah dibawa dengan komputer riba. Kini terdapat paparan braille yang disambungkan ke telefon pintar dan tablet, dengan panjang baris 14 atau 18 aksara.

Pada masa lalu, paparan braille agak besar. Komputer riba 40 tempat duduk, sebagai contoh, mempunyai saiz dan berat komputer riba 13 inci. Kini, dengan bilangan kenalan yang sama, mereka cukup kecil supaya anda boleh meletakkan paparan di hadapan komputer riba, bukannya komputer riba pada paparan.

Ini, sudah tentu, lebih baik, tetapi masih tidak begitu mudah untuk memegang dua peranti berasingan di pangkuan anda. Apabila anda bekerja di meja, tidak ada aduan, tetapi perlu diingat bahawa komputer riba dipanggil komputer riba dengan nama lain, dan cuba mewajarkan namanya, kerana ternyata paparan miniatur 40 aksara itu lebih mudah.

Jadi penulis menunggu model baru yang telah lama dijanjikan dalam siri Handy Tech Star untuk dikeluarkan. Kembali pada tahun 2002, model sebelumnya Handy Tech Braille Star 40 telah dikeluarkan, di mana kawasan badan cukup untuk meletakkan komputer riba di atas. Dan jika ia tidak sesuai, terdapat pendirian yang boleh ditarik balik. Kini model ini telah digantikan dengan Active Star 40, yang hampir sama, tetapi dengan elektronik yang dinaik taraf.

Raspberry Pi Zero dalam paparan braille Handy Tech Active Star 40

Dan pendirian boleh ditarik kekal:

Raspberry Pi Zero dalam paparan braille Handy Tech Active Star 40

Tetapi perkara yang paling mudah tentang produk baharu ialah ruang rehat yang lebih kurang saiz telefon pintar (lihat KDPV). Ia dibuka apabila platform dialihkan ke belakang. Ternyata menyusahkan untuk memegang telefon pintar di sana, tetapi anda perlu menggunakan petak kosong, di dalamnya terdapat saluran keluar kuasa.

Perkara pertama yang penulis buat ialah meletakkan Raspberry Pi di sana, tetapi apabila paparan itu dibeli, ternyata pendirian yang menutupi petak tidak tergelincir dengan "raspberi." Sekarang, jika papan itu hanya 3 mm lebih nipis...

Tetapi seorang rakan sekerja memberitahu saya tentang keluaran Raspberry Pi Zero, yang ternyata sangat kecil sehingga dua daripadanya boleh dimuatkan dalam petak... atau mungkin tiga. Ia segera dipesan bersama-sama dengan kad memori 64 GB, Bluetooth, "whistle" dan kabel USB Mikro. Beberapa hari kemudian semua ini tiba, dan rakan-rakan yang melihat membantu pengarang menyediakan peta. Segala-galanya segera berfungsi sebagaimana mestinya.

Apa yang dilakukan untuk ini

Di bahagian belakang Handy Tech Active Star 40 terdapat dua port USB untuk peranti seperti papan kekunci. Papan kekunci bersaiz kecil dengan pelekap magnet disertakan. Apabila papan kekunci disambungkan, dan paparan itu sendiri berfungsi melalui Bluetooth, komputer juga mengenalinya sebagai papan kekunci Bluetooth.

Oleh itu, jika anda menyambungkan "wisel" Bluetooth ke Raspberry Pi Zero yang diletakkan di dalam petak telefon pintar, ia akan dapat berkomunikasi dengan paparan braille melalui Bluetooth menggunakan BRLTTY, dan jika anda turut menyambungkan papan kekunci ke paparan, "raspberi" akan berfungsi dengannya juga.

Tetapi bukan itu sahaja. "Raspberi" itu sendiri, seterusnya, boleh mengakses Internet melalui Bluetooth PAN dari mana-mana peranti yang menyokongnya. Penulis telah mengkonfigurasi telefon pintar dan komputernya di rumah dan di tempat kerja dengan sewajarnya, tetapi pada masa akan datang dia merancang untuk menyesuaikan "raspberi" lain untuk ini - yang klasik, bukan Zero, disambungkan ke Ethernet dan "wisel" Bluetooth yang lain.

BlueZ 5 dan PAN

Kaedah konfigurasi PAN menggunakan bluez ternyata tidak jelas. Penulis menemui skrip Python bt-pan (lihat di bawah), yang membolehkan anda mengkonfigurasi PAN tanpa GUI.

Ia boleh digunakan untuk mengkonfigurasi kedua-dua pelayan dan pelanggan. Setelah menerima arahan yang sesuai melalui D-Bus apabila bekerja dalam mod klien, ia mencipta peranti rangkaian baru bnep0 serta-merta selepas mewujudkan sambungan dengan pelayan. Biasanya, DHCP digunakan untuk memberikan alamat IP kepada antara muka ini. Dalam mod pelayan, BlueZ memerlukan nama peranti jambatan yang mana ia boleh menambah peranti hamba untuk menyambungkan setiap pelanggan. Mengkonfigurasi alamat untuk peranti jambatan dan menjalankan pelayan DHCP ditambah IP yang menyamar pada jambatan biasanya semua yang diperlukan.

Titik Akses PAN Bluetooth dengan Systemd

Untuk mengkonfigurasi jambatan, pengarang menggunakan systemd-networkd:

Fail /etc/systemd/network/pan.netdev

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

Fail /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 ini tidak boleh dilakukan dengan utiliti BlueZ 5.36 standard. Jika penulis salah, betulkan dia: mlang (boleh gerakkan telinga) buta (kadang-kadang akses dan kuantum) guru

Tetapi dia mendapati catatan blog ΠΈ Skrip Python untuk membuat panggilan yang diperlukan ke D-Bus.

Untuk kemudahan, pengarang menggunakan perkhidmatan Systemd untuk menjalankan skrip dan menyemak sama ada kebergantungan telah diselesaikan.

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

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

Fail kedua tidak diperlukan jika Debian mempunyai sokongan IPMasquerade= (lihat di bawah). #787480).

Selepas melaksanakan arahan sistemik daemon-reload ΠΈ systemctl mulakan semula systemd-networkd anda boleh memulakan Bluetooth PAN dengan arahan systemctl mula kuali

Pelanggan PAN Bluetooth menggunakan Systemd

Bahagian pelanggan juga mudah dikonfigurasikan menggunakan Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

Fail /etc/systemd/system/[e-mel dilindungi]

[Unit]
Description=Bluetooth Personal Area Network client

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

Sekarang, selepas memuatkan semula konfigurasi, anda boleh menyambung ke pusat akses Bluetooth yang ditentukan seperti ini:

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

Berpasangan menggunakan baris arahan

Sudah tentu, konfigurasi pelayan dan pelanggan mesti dilakukan selepas memasangkannya melalui Bluetooth. Pada pelayan anda perlu menjalankan bluetoothctl dan berikan arahan:

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

Selepas memulakan imbasan, tunggu beberapa saat sehingga peranti yang anda perlukan muncul dalam senarai. Tulis alamatnya dan gunakannya dengan mengeluarkan arahan pasangan dan, jika perlu, arahan amanah.

Di sisi pelanggan, anda perlu melakukan perkara yang sama, tetapi arahan amanah pastinya tidak diperlukan. Pelayan memerlukannya untuk menerima sambungan menggunakan profil NAP tanpa pengesahan manual oleh pengguna.

Penulis tidak pasti bahawa ini adalah urutan arahan yang optimum. Mungkin semua yang diperlukan ialah memasangkan klien dengan pelayan dan menjalankan arahan amanah pada pelayan, tetapi dia belum mencuba ini lagi.

Mendayakan Profil Bluetooth HID

Raspberry dikehendaki mengecam papan kekunci yang disambungkan ke paparan Braille melalui wayar, dan dihantar oleh paparan itu sendiri melalui Bluetooth. Ini dilakukan dengan cara yang sama, hanya sebaliknya ejen pada perlu memberi arahan ejen Papan Kekunci Sahaja dan bluetoothctl akan mencari peranti dengan profil HID.

Tetapi menyediakan Bluetooth melalui baris arahan agak rumit

Walaupun penulis berjaya mengkonfigurasi segala-galanya, dia memahami bahawa mengkonfigurasi BlueZ melalui baris arahan adalah menyusahkan. Pada mulanya dia menyangka bahawa ejen hanya diperlukan untuk memasukkan kod PIN, tetapi ternyata, sebagai contoh, untuk membolehkan profil HID anda perlu menaip "ejen Papan Kekunci Sahaja". Sungguh mengejutkan bahawa untuk melancarkan Bluetooth PAN anda perlu memanjat repositori untuk mencari skrip yang diperlukan. Dia masih ingat bahawa dalam versi sebelumnya BlueZ terdapat alat siap sedia untuk ini pand - di mana dia lakukan dalam BlueZ 5? Tiba-tiba muncul penyelesaian baru, tidak diketahui oleh penulis, tetapi terletak di permukaan?

Produktiviti

Kelajuan pemindahan data adalah kira-kira 120 kbit/s, yang cukup memadai. Pemproses ARM 1GHz sangat pantas untuk antara muka baris arahan. Penulis masih merancang untuk menggunakan terutamanya ssh dan emacs pada peranti.

Fon konsol dan resolusi skrin

Resolusi skrin lalai yang digunakan oleh framebuffer pada Raspberry Pi Zero agak pelik: fbset melaporkannya sebagai 656x416 piksel (tiada monitor disambungkan, sudah tentu). Dengan fon konsol 8Γ—16, terdapat 82 aksara setiap baris dan 26 baris.

Adalah menyusahkan untuk bekerja dengan paparan Braille 40 aksara dalam mod ini. Penulis juga ingin melihat aksara Unicode dipaparkan dalam braille. Nasib baik, Linux menyokong 512 aksara, dan kebanyakan fon konsol mempunyai 256. Menggunakan persediaan konsol, anda boleh menggunakan dua fon 256 aksara bersama-sama. Pengarang menambah baris berikut pada fail /etc/default/console-setup:

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

Nota: untuk menyediakan fon brl-16Γ—8.psf, anda perlu memasang konsol-braille.

Apa seterusnya?

Paparan Braille mempunyai bicu 3,5 mm, tetapi penulis tidak mengetahui penyesuai untuk menerima isyarat audio daripada Mini-HDMI. Penulis tidak dapat menggunakan kad bunyi yang dibina ke dalam Raspberry (peliknya, penterjemah pasti bahawa Zero tidak mempunyainya, tetapi ada cara untuk mengeluarkan bunyi menggunakan PWM ke GPIO). Dia merancang untuk menggunakan hab USB-OTG dan menyambungkan kad luaran dan bunyi output ke pembesar suara yang terbina dalam paparan braille. Atas sebab tertentu, dua kad luaran tidak berfungsi; kini dia sedang mencari peranti serupa pada chipset yang berbeza.

Ia juga menyusahkan untuk mematikan "raspberi" secara manual, tunggu beberapa saat dan matikan paparan braille. Dan semuanya kerana apabila ia dimatikan, ia mengeluarkan kuasa dari penyambung dalam petak. Penulis merancang untuk meletakkan bateri penimbal kecil di dalam petak dan, melalui GPIO, memaklumkan Raspberry tentang paparan dimatikan, supaya ia boleh mula mematikan kerjanya. Ini adalah UPS dalam bentuk mini.

Imej sistem

Jika anda mempunyai paparan Braille yang sama dan ingin melakukan perkara yang sama dengannya, pengarang bersedia untuk memberikan imej sistem yang sudah siap (berdasarkan Raspbian Stretch). Tulis kepadanya tentang perkara ini di alamat yang dinyatakan di atas. Sekiranya terdapat cukup orang yang berminat, ia juga mungkin untuk mengeluarkan kit yang merangkumi semua yang diperlukan untuk pengubahsuaian sedemikian.

Ucapan terima kasih

Terima kasih kepada Dave Mielke kerana membaca pruf.

Terima kasih kepada Simon Kainz untuk ilustrasi foto.

Terima kasih kepada rakan sekerja saya di Universiti Teknikal Graz kerana cepat memperkenalkan pengarang kepada dunia Raspberry Pi.

PS Tweet pertama pengarang mengenai topik ini (tidak dibuka - penterjemah) dibuat hanya lima hari sebelum penerbitan asal artikel ini, dan boleh dianggap bahawa, dengan pengecualian masalah dengan bunyi, tugas itu telah diselesaikan secara praktikal. Ngomong-ngomong, pengarang menyunting versi akhir teks daripada "paparan Braille sara diri" yang dibuatnya, menyambungkannya melalui SSH ke komputer rumahnya.

Sumber: www.habr.com

Tambah komen