Raspberry Pi Zero во брајовиот дисплеј Handy Tech Active Star 40

Raspberry Pi Zero во брајовиот дисплеј Handy Tech Active Star 40

Авторот постави Raspberry Pi Zero, свиреж со Bluetooth и кабел во неговиот нов брајов дисплеј Handy Tech Active Star 40. Вградената USB порта обезбедува енергија. Резултатот беше самодоволен компјутер без монитор на ARM со оперативен систем Линукс, опремен со тастатура и Брајов дисплеј. Можете да го полните/напојувате преку USB, вкл. од енергетска банка или соларен полнач. Затоа, може да работи без струја неколку часа, но неколку дена.

Raspberry Pi Zero во брајовиот дисплеј Handy Tech Active Star 40

Димензионална диференцијација на брајови прикази

Како прво, тие се разликуваат по должината на линијата. Уредите со капацитет од 60 или повеќе се добри за работа со десктоп компјутер, додека уредите со капацитет од 40 се погодни за носење со лаптоп. Сега има брајови дисплеи поврзани со паметни телефони и таблети, со должина на линија од 14 или 18 знаци.

Во минатото, брајовите прикази беа доста масивни. Лаптопот со 40 седишта, на пример, имаше големина и тежина на лаптоп од 13 инчи. Сега, со ист број на познаници, тие се доволно минијатурни за да можете да го ставите дисплејот пред лаптопот, а не лаптопот на дисплејот.

Ова, се разбира, е подобро, но сепак не е многу погодно да држите два посебни уреди во скутот. Кога работите на биро, нема поплаки, но вреди да се запамети дека лаптопот се нарекува лаптоп со друго име и да се обиде да го оправда неговото име, бидејќи се испостави дека минијатурниот дисплеј со 40 знаци е уште помалку удобен.

Така, авторот дочека да излезе долго ветениот нов модел од серијата Handy Tech Star. Уште во 2002 година беше објавен претходниот модел Handy Tech Braille Star 40, каде што површината на телото е доволна за да се стави лаптоп на врвот. И ако не одговара, има држач што се извлекува. Сега овој модел е заменет со Active Star 40, кој е речиси ист, но со надградена електроника.

Raspberry Pi Zero во брајовиот дисплеј Handy Tech Active Star 40

А држачот што се извлекува останува:

Raspberry Pi Zero во брајовиот дисплеј Handy Tech Active Star 40

Но, најзгодното нешто за новиот производ е вдлабнатина приближно со големина на паметен телефон (види KDPV). Се отвора кога платформата ќе се врати назад. Се покажа дека е незгодно да се држи паметен телефон таму, но треба некако да го искористите празното преградо, внатре во кое има дури и штекер.

Првото нешто до кое авторот дошол е да го постави Raspberry Pi таму, но кога екранот бил купен, се покажа дека држачот што го покрива одделот не се лизгал со „малина“. Сега, кога даската би била само 3 мм потенка...

Но, еден колега ми кажа за издавањето на Raspberry Pi Zero, кое се покажа дека е толку минијатурно што двајца од нив можеа да се вклопат во купето... или можеби дури и три. Веднаш беше нарачан заедно со мемориска картичка од 64 GB, Bluetooth, „свирка“ и Micro USB кабел. Неколку дена подоцна сето ова пристигнало, а пријателите кои биле видливи му помогнале на авторот да подготви мапа. Сè веднаш функционираше како што треба.

Што беше направено за ова

На задната страна на Handy Tech Active Star 40 има две USB порти за уреди како што се тастатури. Вклучена е мала тастатура со магнетна држач. Кога тастатурата е поврзана, а самиот дисплеј работи преку Bluetooth, компјутерот дополнително го препознава како Bluetooth тастатура.

Така, ако поврзете Bluetooth „свирче“ со Raspberry Pi Zero сместен во одделот за паметен телефон, тој ќе може да комуницира со брајовиот дисплеј преку Bluetooth користејќи BRLTTY, а ако поврзете и тастатура на дисплејот, „малина“ ќе работи и со неа.

Но, тоа не е се. Самата „малина“, пак, може да пристапи на Интернет преку Bluetooth PAN од кој било уред што го поддржува. Авторот соодветно ги конфигурирал својот паметен телефон и компјутери дома и на работа, но во иднина планира да прилагоди уште една „малина“ за ова - класична, а не нула, поврзана на етернет и друга „свирка“ на Bluetooth.

BlueZ 5 и PAN

Метод за конфигурација на PAN користејќи блуз испадна дека е неочигледно. Авторот ја пронајде скриптата bt-pan Python (види подолу), која ви овозможува да го конфигурирате PAN без GUI.

Може да се користи за конфигурирање и на серверот и на клиентот. Откако ја доби соодветната команда преку D-Bus кога работи во клиентски режим, тој создава нов мрежен уред bnep0 веднаш по воспоставувањето врска со серверот. Вообичаено, DHCP се користи за доделување IP адреса на овој интерфејс. Во режим на сервер, BlueZ бара име на уред за мост на кој може да додаде slave уред за поврзување на секој клиент. Конфигурирање на адреса за уредот за мост и водење на DHCP сервер плус маскирање на IP на мостот обично е сè што е потребно.

Bluetooth PAN пристапна точка со Systemd

За да го конфигурира мостот, авторот користел systemd-networkd:

Датотека /etc/systemd/network/pan.netdev

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

Датотека /etc/systemd/network/pan.network

[Match]
Name=pan

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

Сега треба да го принудиме BlueZ да го конфигурира NAP профилот. Се испостави дека тоа не може да се направи со стандардните комунални услуги BlueZ 5.36. Ако авторот не е во право, поправете го: мланг (може да ги движи ушите) слеп (понекогаш пристап и квантен) гуру

Но, тој најде пост на блогот и Пајтон скрипта да ги остварите потребните повици до D-Bus.

За погодност, авторот ја користел услугата Systemd за да ја изврши скриптата и да провери дали зависностите се решени.

Датотека /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

Датотека /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 има поддршка за IPMasquerade= (видете подолу). # 787480).

По извршувањето на командите системскиот деамонт и рестартирање на системот можете да го стартувате Bluetooth PAN со командата systemctl стартна тава

Bluetooth PAN клиент користејќи Systemd

Клиентската страна исто така е лесно да се конфигурира со помош на Systemd.

Датотека /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

Датотека /etc/systemd/system/[заштитена по е-пошта]

[Unit]
Description=Bluetooth Personal Area Network client

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

Сега, откако повторно ќе ја вчитате конфигурацијата, можете да се поврзете со наведената пристапна точка Bluetooth вака:

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

Спарување со помош на командната линија

Се разбира, конфигурацијата на серверот и клиентите мора да се направи откако ќе ги спарите преку Bluetooth. На серверот треба да извршите bluetoothctl и да му ги дадете командите:

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

Откако ќе го започнете скенирањето, почекајте неколку секунди додека уредот што ви треба не се појави на списокот. Запишете ја нејзината адреса и користете ја со издавање на командата за пар и, доколку е потребно, командата доверба.

На страната на клиентот, треба да го направите истото, но командата доверба дефинитивно не е потребна. На серверот му треба за да прифати врска користејќи го NAP профилот без рачна потврда од корисникот.

Авторот не е сигурен дека ова е оптималната низа на команди. Можеби сè што е потребно е да го спарите клиентот со серверот и да ја извршите командата доверба на серверот, но тој сè уште не го пробал ова.

Овозможување HID Bluetooth профил

Потребно е Raspberry да препознае тастатура поврзана со Брајовиот дисплеј по жица и пренесена од самиот дисплеј преку Bluetooth. Ова се прави на ист начин, само наместо тоа агент на треба да се даде команда застапник KeyboardOnly и bluetoothctl ќе најде уред со HID профил.

Но, поставувањето Bluetooth преку командната линија е малку комплицирано

Иако авторот успеа да конфигурира сè, тој разбира дека конфигурирањето на BlueZ преку командната линија е незгодно. Отпрвин мислеше дека агентите се потребни само за внесување на PIN-кодови, но се покажа, на пример, дека за да се овозможи профилот HID треба да се напише „Agent KeyboardOnly“. Изненадувачки е што за да започнете Bluetooth PAN, треба да се искачите низ складиштата во потрага по потребната скрипта. Се сеќава дека во претходната верзија на BlueZ постоела готова алатка за ова панди - каде прави во BlueZ 5? Одеднаш се појави ново решение, непознато за авторот, но лежи на површината?

Перформанси

Брзината на пренос на податоци беше приближно 120 kbit/s, што е сосема доволно. Процесорот ARM од 1 GHz е многу брз за интерфејс на командната линија. Авторот сè уште планира да користи главно ssh и emacs на уредот.

Фонтови на конзолата и резолуција на екранот

Стандардната резолуција на екранот што ја користи framebuffer на Raspberry Pi Zero е прилично чудна: fbset ја известува како 656x416 пиксели (се разбира, без поврзан монитор). Со фонт на конзола од 8×16, имаше 82 знаци по линија и 26 линии.

Незгодно е да се работи со брајово писмо со 40 знаци во овој режим. Авторот исто така би сакал да ги види знаците на Уникод прикажани со Брајово писмо. За среќа, Linux поддржува 512 знаци, а повеќето фонтови на конзолата имаат 256. Користејќи го поставувањето на конзолата, можете да користите два фонтови со 256 знаци заедно. Авторот ги додаде следните редови во датотеката /etc/default/console-setup:

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

Забелешка: за да го направите достапен фонтот brl-16×8.psf, треба да инсталирате конзола-брајово писмо.

Што е следно?

Брајовиот екран има приклучок од 3,5 мм, но авторот не знае за адаптери за примање аудио сигнал од Mini-HDMI. Авторот не можеше да ја користи звучната картичка вградена во Raspberry (чудно, преведувачот беше сигурен дека Zero нема, но има начини да се емитува звук со помош на PWM на GPIO). Тој планира да користи USB-OTG хаб и да поврзе надворешна картичка и да излегува звук со звучникот вграден во брајовиот дисплеј. Поради некоја причина, две надворешни картички не работеа; сега тој бара сличен уред на различен чипсет.

Незгодно е и рачно исклучување на „малина“, почекајте неколку секунди и исклучување на брајовиот екран. И сето тоа затоа што кога е исклучено, го отстранува напојувањето од конекторот во преградата. Авторот планира да постави мала тампон батерија во преградата и, преку GPIO, да го извести Raspberry за исклучувањето на дисплејот, за да може да почне да ја исклучува работата. Ова е UPS-от во минијатура.

Системска слика

Ако го имате истиот екран на Брајово писмо и би сакале да го сторите истото со него, авторот е подготвен да обезбеди готова слика на системот (врз основа на Raspbian Stretch). Пишете му за ова на адресата наведена погоре. Ако има доволно заинтересирани, можно е дури и да се пуштат комплети кои вклучуваат се што е потребно за таква модификација.

Благодарници

Благодарност до Дејв Миелке за лекторирањето.

Благодарност до Simon Kainz за фото илустрациите.

Благодарност до моите колеги од Техничкиот универзитет во Грац за брзото воведување на авторот во светот на Raspberry Pi.

PS Првиот твит автор на оваа тема (не се отвора - преведувач) е направен само пет дена пред објавувањето на оригиналот на овој напис, и може да се смета дека, со исклучок на проблемите со звукот, задачата е практично решена. Патем, авторот ја уредил конечната верзија на текстот од „самодоволен брајов дисплеј“ што го направил, поврзувајќи го преку SSH со неговиот домашен компјутер.

Извор: www.habr.com

Додадете коментар