Handy Tech Active Star 40 брайль дисплейинин ичиндеги Raspberry Pi Zero

Handy Tech Active Star 40 брайль дисплейинин ичиндеги Raspberry Pi Zero

Автор өзүнүн жаңы Handy Tech Active Star 40 брайль дисплейинин ичине Raspberry Pi Zero, Bluetooth ышкырыгын жана кабелин жайгаштырган.Контракттуу USB порту кубат берет. Жыйынтыгында клавиатура жана Брайл дисплейи менен жабдылган, Linux операциялык системасы менен ARMде өзүн-өзү жетиштүү мониторсуз компьютер пайда болду. Сиз аны USB аркылуу кубаттап/кубаттай аласыз, анын ичинде. кубат банкынан же күн кубаттагычтан. Ошондуктан, ал бир нече саат бою электр энергиясыз иштей алат, бирок бир нече күн.

Handy Tech Active Star 40 брайль дисплейинин ичиндеги Raspberry Pi Zero

Брайл дисплейлеринин өлчөмдүү дифференциациясы

Биринчиден, алар сызык узундугу боюнча айырмаланат. 60 же андан көп кубаттуулугу бар түзмөктөр рабочий компьютер менен иштөө үчүн жакшы, ал эми 40 сыйымдуулугу бар түзмөктөр ноутбук менен алып жүрүүгө ыңгайлуу. Азыр смартфондорго жана планшеттерге туташтырылган брайл дисплейлери бар, сап узундугу 14 же 18 белгиден турат.

Мурда брайль дисплейлери абдан чоң болчу. Мисалы, 40 орундуу ноутбуктун көлөмү жана салмагы 13 дюймдук ноутбукка барабар болгон. Азыр ошол эле сандагы тааныштар менен алар дисплейди ноутбуктун алдына эмес, дисплейди ноутбуктун алдына коюуга жетишээрлик миниатюралык.

Бул, албетте, жакшыраак, бирок дагы эле эки өзүнчө аппаратты тизеңизде кармоо абдан ыңгайлуу эмес. Үстөлдө иштегенде эч кандай даттануулар жок, бирок ноутбук башка ат менен ноутбук деп аталарын эстен чыгарбоо керек жана анын атын актоого аракет кылуу керек, анткени миниатюралык 40 белгиден турган дисплей дагы анча ыңгайлуу эмес экен.

Ошентип, автор Handy Tech Star сериясындагы көптөн бери убада кылынган жаңы моделдин чыгышын күткөн. 2002-жылы мурунку Handy Tech Braille Star 40 модели чыгарылган, анда дененин аянты ноутбукту үстүнө коюуга жетиштүү. Ал эми туура келбесе, тартылуучу стенд бар. Эми бул модель Active Star 40 менен алмаштырылды, ал дээрлик бирдей, бирок электроника өркүндөтүлгөн.

Handy Tech Active Star 40 брайль дисплейинин ичиндеги Raspberry Pi Zero

Ал эми тартылуучу стенд бойдон калууда:

Handy Tech Active Star 40 брайль дисплейинин ичиндеги Raspberry Pi Zero

Бирок жаңы продукттун эң ыңгайлуу жери – бул болжол менен смартфондун көлөмүндөгү оюк (KDPV караңыз). Ал платформаны артка жылдырганда ачылат. Смартфонду ал жерде кармоо ыңгайсыз болуп чыкты, бирок кандайдыр бир жол менен ичинде электр розеткасы бар бош отсекти колдонуш керек.

Автор биринчи жолу Raspberry Piди ошол жерге жайгаштырууну ойлоп тапкан, бирок дисплей сатылып алынганда, отсекти жаап турган стенд "малина" менен жылып кетпегени белгилүү болгон. Эми тактай болгону 3 мм ичке болсо...

Бирок бир кесиптешим мага Raspberry Pi нөлүнүн чыгышы жөнүндө айтып берди, ал ушунчалык миниатюралык болуп чыкты, алардын экөө купеге бата алат ... же балким үчөө. Бул дароо эле 64 ГБ эстутум картасы, Bluetooth, "ышкырык" жана Micro USB кабели менен бирге заказ кылынды. Бир нече күндөн кийин мунун баары келип, көзү көргөн достору авторго картаны түзүүгө жардам беришти. Баардыгы дароо эле керек болуп иштеди.

Бул үчүн эмне кылынды

Handy Tech Active Star 40 арткы бетинде клавиатура сыяктуу түзмөктөр үчүн эки USB порту бар. Магниттик орнотулган кичинекей клавиатура камтылган. Баскычтоп туташып, дисплей өзү Bluetooth аркылуу иштегенде, компьютер аны кошумча Bluetooth клавиатурасы катары тааныйт.

Ошентип, эгер сиз смартфондун бөлүмүндө жайгашкан Raspberry Pi нөлүнө Bluetooth “ышкырын” туташтырсаңыз, ал Bluetooth аркылуу брайль дисплейи менен байланыша алат. BRLTTY, жана ошондой эле дисплейге клавиатураны туташтырсаңыз, "малина" аны менен да иштейт.

Бирок бул баары эмес. Өз кезегинде "малинанын" өзү, аны колдогон каалаган түзмөктөн Bluetooth PAN аркылуу Интернетке кире алат. Автор өзүнүн смартфонун жана компьютерлерин үйдө жана жумушта ошого жараша конфигурациялаган, бирок келечекте ал бул үчүн дагы бир "малинаны" ылайыкташтырууну пландаштырууда - классикалык эмес, Ethernet менен туташтырылган нөл жана башка Bluetooth "ышкырыгы".

BlueZ 5 жана PAN

PAN конфигурациялоо ыкмасын колдонуу bluez билинбеген болуп чыкты. Автор GUIсиз PANды конфигурациялоого мүмкүндүк берген bt-pan Python скриптин тапты (төмөндө караңыз).

Аны серверди да, кардарды да конфигурациялоо үчүн колдонсо болот. Кардар режиминде иштөөдө D-Bus аркылуу тиешелүү буйрукту алгандан кийин, сервер менен байланышты орноткондон кийин дароо bnep0 жаңы тармак түзүмүн түзөт. Адатта, DHCP бул интерфейске IP дарегин дайындоо үчүн колдонулат. Сервер режиминде BlueZ ар бир кардарды туташтыруу үчүн кул аппаратты кошо ала турган көпүрө түзүлүшүнүн атын талап кылат. Көпүрө түзмөгү үчүн даректи конфигурациялоо жана DHCP серверин иштетүү жана көпүрөдө IP маскараддоо көбүнчө талап кылынат.

Systemd менен Bluetooth PAN кирүү чекити

Көпүрөнү конфигурациялоо үчүн автор 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 утилиталары менен жасоо мүмкүн эмес экени белгилүү болду. Эгерде автор туура эмес болсо, аны оңдоңуз: мланг (кулагын кыймылдата алат) сокур (кээде жетүү жана квант) гуру

Бирок ал тапты блог пост и Python скрипти D-Busка керектүү чалууларды жасоо.

Ыңгайлуу болуу үчүн, автор скриптти иштетүү жана көз карандылыктын чечилгендигин текшерүү үчүн Systemd кызматын колдонгон.

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

Файл /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).

Буйруктарды аткаргандан кийин systemctl Daemon-кайра жүктөө и systemctl кайра systemd-networkd буйрук менен Bluetooth PAN иштете аласыз systemctl баштоо панорамасы

Systemd аркылуу Bluetooth PAN кардары

Кардар тарапты 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 кбит/сек болгон, бул жетиштүү. 1GHz ARM процессору буйрук сабынын интерфейси үчүн абдан ылдам. Автор дагы эле түзмөктө негизинен ssh жана emacs колдонууну пландаштырууда.

Консолдун шрифттери жана экрандын чечилиши

Raspberry Pi нөлүндөгү фреймбуфер тарабынан колдонулган демейки экрандын чечилиши абдан таң калыштуу: 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 жок экенине ишенген, бирок GPIO үчүн PWM аркылуу үн чыгаруунун жолдору бар). Ал USB-OTG хабын колдонууну жана тышкы картаны туташтырууну жана брайль дисплейинде орнотулган динамикке үн чыгарууну пландаштырууда. Эмнегедир эки тышкы карта иштебей калды, азыр ал башка чипсеттеги окшош аппаратты издеп жатат.

Ошондой эле "малинаны" кол менен өчүрүү ыңгайсыз, бир нече секунд күтүп, брайль дисплейин өчүрүү. Мунун баары, анткени ал өчүрүлгөндө, ал отсектеги туташтыргычтан электр энергиясын алып салат. Автор бөлүмгө кичинекей буфердик батарейканы жайгаштырууну жана GPIO аркылуу Raspberryге дисплейдин өчүп калганы жөнүндө кабарлоону пландаштырууда, ошондо ал өз ишин өчүрө баштайт. Бул миниатюралык UPS.

Системанын сүрөтү

Эгерде сизде Брайл дисплейи бирдей болсо жана аны менен да ушундай кылгыңыз келсе, автор системанын даяр сүрөтүн берүүгө даяр (Raspbian Stretch негизинде). Бул тууралуу ага жогоруда көрсөтүлгөн дарекке жазыңыз. Эгерде кызыкдар адамдар жетиштүү болсо, анда мындай өзгөртүү үчүн зарыл болгон нерселердин бардыгын камтыган комплекттерди чыгарууга болот.

Ыракматтар

Корректорлук үчүн Dave Mielke рахмат.

Сүрөт иллюстрациялары үчүн Саймон Кайнцка рахмат.

Грац техникалык университетиндеги кесиптештериме авторду Raspberry Pi дүйнөсү менен тез тааныштырганы үчүн рахмат.

PS Биринчи твит Бул тема боюнча автор (ачпайт - котормочу) бул макаланын түп нускасы жарыяланганга чейин эле беш күн мурун жасалган жана үн менен байланышкан маселелерди кошпогондо, маселе иш жүзүндө чечилген деп эсептесе болот. Айтмакчы, автор SSH аркылуу үй компьютерине туташтырган “өзүн-өзү жетиштүү Брайль дисплейинен” тексттин акыркы версиясын редакциялаган.

Source: www.habr.com

Комментарий кошуу