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 պորտն ապահովում է էներգիա: Արդյունքը եղավ Linux օպերացիոն համակարգով ARM-ի վրա ինքնաբավ, առանց մոնիտորինգի համակարգիչ՝ հագեցած ստեղնաշարով և Բրայլի էկրանով: Դուք կարող եք լիցքավորել/սնուցել այն USB-ի միջոցով, ներառյալ: Power Bank-ից կամ արևային լիցքավորիչից: Հետեւաբար, այն կարող է առանց հոսանքի մի քանի ժամ անել, բայց մի քանի օր:

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 ԳԲ հիշողության քարտի, Bluetooth-ի, «սուլիչի» և Micro USB մալուխի հետ միասին։ Մի քանի օր անց այս ամենը տեղ հասավ, և տեսող ընկերները օգնեցին հեղինակին քարտեզ պատրաստել։ Ամեն ինչ անմիջապես ստացվեց այնպես, ինչպես պետք է:

Ինչ արվեց սրա համար

Handy Tech Active Star 40-ի հետևի մասում կան երկու USB պորտեր այնպիսի սարքերի համար, ինչպիսիք են ստեղնաշարերը: Ներառված է փոքր չափի ստեղնաշար՝ մագնիսական ամրակով։ Երբ ստեղնաշարը միացված է, և էկրանն ինքնին աշխատում է Bluetooth-ի միջոցով, համակարգիչը լրացուցիչ ճանաչում է այն որպես Bluetooth ստեղնաշար:

Այսպիսով, եթե Bluetooth «սուլիչը» միացնեք սմարթֆոնի խցիկում տեղադրված Raspberry Pi Zero-ին, այն կկարողանա շփվել բրայլյան էկրանի հետ Bluetooth-ի միջոցով։ BRLTTY, և եթե էկրանին միացնեք նաև ստեղնաշար, ապա «ազնվամորու»-ն նույնպես կաշխատի դրա հետ:

Բայց սա դեռ ամենը չէ: Ինքը՝ «ազնվամորու»-ն, իր հերթին, կարող է ինտերնետ մուտք գործել Bluetooth PAN-ի միջոցով այն աջակցող ցանկացած սարքից: Հեղինակը համապատասխանաբար կարգավորել է իր սմարթֆոնը և համակարգիչները տանը և աշխատավայրում, բայց ապագայում նա նախատեսում է դրա համար հարմարեցնել ևս մեկ «ազնվամորու»՝ դասական, ոչ թե Zero, որը միացված է Ethernet-ին և մեկ այլ Bluetooth «սուլիչ»:

BlueZ 5 և PAN

PAN-ի կազմաձևման մեթոդը օգտագործելով բլյուզ պարզվեց, որ աննկատ է: Հեղինակը գտել է bt-pan Python սկրիպտը (տես ստորև), որը թույլ է տալիս կարգավորել PAN-ը առանց GUI-ի:

Այն կարող է օգտագործվել ինչպես սերվերը, այնպես էլ հաճախորդը կարգավորելու համար: Հաճախորդի ռեժիմում աշխատելիս D-Bus-ի միջոցով ստանալով համապատասխան հրամանը՝ այն սերվերի հետ կապ հաստատելուց անմիջապես հետո ստեղծում է նոր ցանցային սարք bnep0: Սովորաբար, DHCP-ն օգտագործվում է այս ինտերֆեյսին IP հասցե հատկացնելու համար: Սերվերի ռեժիմում BlueZ-ը պահանջում է կամուրջ սարքի անունը, որին կարող է ավելացնել ստրուկ սարք՝ յուրաքանչյուր հաճախորդին միացնելու համար: Կամուրջի սարքի հասցեի կարգավորումը և կամրջի վրա 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 կոմունալ ծառայություններով: Եթե ​​հեղինակը սխալ է, ուղղեք նրան. մլանգ (կարող է շարժել ականջները) կույր (երբեմն հասանելի և քվանտային) գուրու

Բայց նա գտավ բլոգի գրառում и Python սցենար 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).

Հրամանները կատարելուց հետո systemctl daemon- վերբեռնել и systemctl- ի վերագործարկումը systemd-networkd դուք կարող եք սկսել Bluetooth PAN-ը հրամանով systemctl start pan

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-ի միջոցով: Սա արվում է նույն կերպ, միայն փոխարենը գործակալի վրա անհրաժեշտ է հրաման տալ միայն ստեղնաշարի գործակալ և bluetoothctl-ը կգտնի HID պրոֆիլով սարք:

Բայց հրամանի տողի միջոցով Bluetooth-ի կարգավորումը մի փոքր բարդ է

Չնայած հեղինակին հաջողվել է կարգավորել ամեն ինչ, նա հասկանում է, որ հրամանի տողի միջոցով BlueZ-ի կարգավորումն անհարմար է: Սկզբում նա կարծում էր, որ գործակալներ են անհրաժեշտ միայն PIN կոդեր մուտքագրելու համար, բայց պարզվեց, որ, օրինակ, HID պրոֆիլը միացնելու համար պետք է մուտքագրել «Agent KeyboardOnly»: Զարմանալի է, որ Bluetooth PAN-ը գործարկելու համար հարկավոր է մագլցել պահեստների միջով՝ պահանջվող սկրիպտը փնտրելու համար: Նա հիշում է, որ BlueZ-ի նախորդ տարբերակում սրա համար պատրաստի գործիք կար պանել - որտեղ է նա անում BlueZ 5-ում: Հանկարծ մի նոր լուծում հայտնվեց՝ հեղինակին անհայտ, բայց մակերեսին պառկած։

Արտադրողականություն

Տվյալների փոխանցման արագությունը մոտավորապես 120 կբիտ/վ էր, ինչը բավական է։ 1 ԳՀց ARM պրոցեսորը շատ արագ է հրամանի տողի ինտերֆեյսի համար: Հեղինակը դեռ նախատեսում է սարքի վրա օգտագործել հիմնականում ssh և emacs:

Վահանակի տառատեսակներ և էկրանի լուծում

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-ի միջոցով միացնելով իր տան համակարգչին։

Source: www.habr.com

Добавить комментарий