Հեղինակը տեղադրել է Raspberry Pi Zero, Bluetooth սուլիչ և մալուխ իր նոր Handy Tech Active Star 40 բրայլյան էկրանի ներսում: Ներկառուցված USB պորտն ապահովում է էներգիա: Արդյունքը եղավ Linux օպերացիոն համակարգով ARM-ի վրա ինքնաբավ, առանց մոնիտորինգի համակարգիչ՝ հագեցած ստեղնաշարով և Բրայլի էկրանով: Դուք կարող եք լիցքավորել/սնուցել այն USB-ի միջոցով, ներառյալ: Power Bank-ից կամ արևային լիցքավորիչից: Հետեւաբար, այն կարող է առանց հոսանքի մի քանի ժամ անել, բայց մի քանի օր:
Բրայլյան էկրանների չափային տարբերակում
Առաջին հերթին դրանք տարբերվում են տողի երկարությամբ: 60 և ավելի հզորությամբ սարքերը հարմար են աշխատասեղանի համակարգչի հետ աշխատելու համար, մինչդեռ 40 հզորությամբ սարքերը հարմար են նոութբուքով տեղափոխելու համար: Այժմ կան բրայլյան էկրաններ՝ կապված սմարթֆոնների և պլանշետների հետ՝ 14 կամ 18 նիշ երկարությամբ:
Նախկինում բրայլյան էկրանները բավականին զանգվածային էին: 40 տեղանոց նոութբուքն, օրինակ, ուներ 13 դյույմանոց նոթբուքի չափ ու քաշ։ Այժմ, նույնքան ծանոթներով, դրանք բավական մանրանկարչություն են, որպեսզի կարողանաք էկրանը դնել նոութբուքի դիմաց, այլ ոչ թե նոութբուքը էկրանի վրա:
Սա, իհարկե, ավելի լավ է, բայց դեռ այնքան էլ հարմար չէ ձեր գրկում երկու առանձին սարքեր պահել: Գրասեղանի վրա աշխատելիս դժգոհություններ չկան, բայց հարկ է հիշել, որ նոութբուքը նոութբուք է կոչվում այլ անունով և փորձել արդարացնել դրա անունը, քանի որ պարզվում է, որ մանրանկարչության 40 նիշանոց էկրանն էլ ավելի քիչ հարմար է:
Այսպիսով, հեղինակը սպասել է Handy Tech Star շարքի երկար խոստացված նոր մոդելի թողարկմանը: Դեռ 2002-ին թողարկվեց Handy Tech Braille Star 40-ի նախորդ մոդելը, որտեղ մարմնի տարածքը բավական է նոութբուքը վերևում դնելու համար։ Եվ եթե այն չի տեղավորվում, ապա կա քաշվող տակդիր: Այժմ այս մոդելը փոխարինվել է 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-ի միջոցով։
Բայց սա դեռ ամենը չէ: Ինքը՝ «ազնվամորու»-ն, իր հերթին, կարող է ինտերնետ մուտք գործել Bluetooth PAN-ի միջոցով այն աջակցող ցանկացած սարքից: Հեղինակը համապատասխանաբար կարգավորել է իր սմարթֆոնը և համակարգիչները տանը և աշխատավայրում, բայց ապագայում նա նախատեսում է դրա համար հարմարեցնել ևս մեկ «ազնվամորու»՝ դասական, ոչ թե Zero, որը միացված է Ethernet-ին և մեկ այլ Bluetooth «սուլիչ»:
BlueZ 5 և PAN
PAN-ի կազմաձևման մեթոդը օգտագործելով
Այն կարող է օգտագործվել ինչպես սերվերը, այնպես էլ հաճախորդը կարգավորելու համար: Հաճախորդի ռեժիմում աշխատելիս 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 կոմունալ ծառայություններով: Եթե հեղինակը սխալ է, ուղղեք նրան. մլանգ (կարող է շարժել ականջները) կույր (երբեմն հասանելի և քվանտային) գուրու
Բայց նա գտավ
Հարմարության համար հեղինակն օգտագործել է 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= աջակցություն (տես ստորև):
Հրամանները կատարելուց հետո 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
Source: www.habr.com