Raspberry Pi Zero sa loob ng isang Handy Tech Active Star 40 braille display

Raspberry Pi Zero sa loob ng isang Handy Tech Active Star 40 braille display

Naglagay ang may-akda ng Raspberry Pi Zero, isang Bluetooth whistle, at isang cable sa loob ng kanyang bagong Handy Tech Active Star 40 braille display. Nagbibigay ng power ang isang built-in na USB port. Ang resulta ay isang self-sufficient na monitorless na computer sa ARM na may Linux operating system, na nilagyan ng keyboard at isang Braille display. Maaari mo itong singilin/paganahin sa pamamagitan ng USB, kasama. mula sa isang power bank o solar charger. Samakatuwid, maaari itong gawin nang walang kapangyarihan sa loob ng maraming oras, ngunit sa loob ng ilang araw.

Raspberry Pi Zero sa loob ng isang Handy Tech Active Star 40 braille display

Dimensional na pagkakaiba-iba ng mga braille display

Una sa lahat, naiiba sila sa haba ng linya. Ang mga device na may 60 o higit pang kapasidad ay mainam para sa pagtatrabaho sa isang desktop computer, habang ang mga device na may 40 na kapasidad ay maginhawa para sa pagdala gamit ang isang laptop. Ngayon ay may mga braille display na nakakonekta sa mga smartphone at tablet, na may haba ng linya na 14 o 18 character.

Noong nakaraan, ang mga braille display ay napakalaki. Ang 40-seat na laptop, halimbawa, ay may sukat at bigat ng isang 13-inch na laptop. Ngayon, sa parehong bilang ng mga kakilala, sapat na ang mga ito upang mailagay mo ang display sa harap ng laptop, sa halip na ang laptop sa display.

Ito ay, siyempre, mas mahusay, ngunit ito ay hindi pa rin masyadong maginhawa upang hawakan ang dalawang magkahiwalay na mga aparato sa iyong kandungan. Kapag nagtatrabaho ka sa isang mesa, walang mga reklamo, ngunit ito ay nagkakahalaga ng pag-alala na ang isang laptop ay tinatawag na isang laptop ng ibang pangalan, at sinusubukang bigyang-katwiran ang pangalan nito, dahil lumalabas na ang pinaliit na 40-character na display ay hindi gaanong maginhawa.

Kaya't hinintay ng may-akda na maipalabas ang matagal nang ipinangako na bagong modelo sa seryeng Handy Tech Star. Noong 2002, ang dating modelo na Handy Tech Braille Star 40 ay inilabas, kung saan ang bahagi ng katawan ay sapat na upang ilagay ang isang laptop sa itaas. At kung hindi ito magkasya, mayroong isang maaaring iurong na stand. Ngayon ang modelong ito ay pinalitan ng Active Star 40, na halos pareho, ngunit may na-upgrade na electronics.

Raspberry Pi Zero sa loob ng isang Handy Tech Active Star 40 braille display

At nananatili ang maaaring iurong na stand:

Raspberry Pi Zero sa loob ng isang Handy Tech Active Star 40 braille display

Ngunit ang pinaka-maginhawang bagay tungkol sa bagong produkto ay isang recess na humigit-kumulang sa laki ng isang smartphone (tingnan ang KDPV). Ito ay bubukas kapag ang platform ay inilipat pabalik. Ito ay naging hindi maginhawa upang humawak ng isang smartphone doon, ngunit kailangan mong kahit papaano ay gumamit ng walang laman na kompartimento, sa loob kung saan mayroong kahit isang outlet ng kuryente.

Ang unang bagay na naisip ng may-akda ay ilagay ang Raspberry Pi doon, ngunit noong binili ang display, lumabas na ang stand na sumasakop sa kompartimento ay hindi dumulas sa "raspberry." Ngayon, kung ang board ay mas manipis lang ng 3 mm...

Ngunit sinabi sa akin ng isang kasamahan ang tungkol sa pagpapalabas ng Raspberry Pi Zero, na naging napakaliit na dalawa sa kanila ay maaaring magkasya sa kompartimento ... o marahil kahit tatlo. Agad itong inutusan kasama ang isang 64 GB memory card, Bluetooth, "whistle" at isang Micro USB cable. Pagkalipas ng ilang araw, dumating ang lahat ng ito, at tinulungan ng mga nakikitang kaibigan ang may-akda na maghanda ng mapa. Ang lahat ay agad na gumana ayon sa nararapat.

Ano ang ginawa para dito

Sa likod ng Handy Tech Active Star 40 mayroong dalawang USB port para sa mga device gaya ng mga keyboard. May kasamang maliit na keyboard na may magnetic mount. Kapag nakakonekta ang keyboard, at ang display mismo ay gumagana sa pamamagitan ng Bluetooth, kinikilala din ito ng computer bilang Bluetooth keyboard.

Kaya, kung ikinonekta mo ang isang "whistle" ng Bluetooth sa isang Raspberry Pi Zero na inilagay sa compartment ng smartphone, magagawa nitong makipag-ugnayan sa braille display sa pamamagitan ng Bluetooth gamit ang BRLTTY, at kung ikinonekta mo rin ang isang keyboard sa display, gagana rin dito ang "raspberry".

Ngunit hindi lang iyon. Ang "raspberry" mismo, sa turn, ay maaaring ma-access ang Internet sa pamamagitan ng Bluetooth PAN mula sa anumang device na sumusuporta dito. Na-configure ng may-akda ang kanyang smartphone at mga computer sa bahay at sa trabaho nang naaayon, ngunit sa hinaharap ay plano niyang iakma ang isa pang "raspberry" para dito - isang klasiko, hindi isang Zero, na konektado sa Ethernet at isa pang "whistle" ng Bluetooth.

BlueZ 5 at PAN

Paraan ng pagsasaayos ng PAN gamit ang bluez naging unobvious. Natagpuan ng may-akda ang bt-pan Python script (tingnan sa ibaba), na nagbibigay-daan sa iyong i-configure ang PAN nang walang GUI.

Maaari itong magamit upang i-configure ang parehong server at ang kliyente. Ang pagkakaroon ng natanggap na naaangkop na command sa pamamagitan ng D-Bus kapag nagtatrabaho sa client mode, ito ay lumilikha ng isang bagong network device bnep0 kaagad pagkatapos magtatag ng isang koneksyon sa server. Karaniwan, ang DHCP ay ginagamit upang magtalaga ng isang IP address sa interface na ito. Sa server mode, kinakailangan ng BlueZ ang pangalan ng isang bridge device kung saan maaari itong magdagdag ng slave device para ikonekta ang bawat client. Ang pag-configure ng address para sa bridge device at pagpapatakbo ng DHCP server kasama ang IP masquerading sa bridge ay karaniwang ang kailangan lang.

Bluetooth PAN Access Point na may Systemd

Upang i-configure ang tulay, ginamit ng may-akda ang systemd-networkd:

File /etc/systemd/network/pan.netdev

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

File /etc/systemd/network/pan.network

[Match]
Name=pan

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

Ngayon kailangan nating pilitin ang BlueZ na i-configure ang profile ng NAP. Ito ay lumabas na hindi ito magagawa sa karaniwang mga utility ng BlueZ 5.36. Kung mali ang may-akda, itama siya: mlang (maaaring ilipat ang kanyang mga tainga) bulag (minsan access at quantum) guru

Ngunit natagpuan niya post sa blog ΠΈ script ng Python upang gawin ang mga kinakailangang tawag sa D-Bus.

Para sa kaginhawahan, ginamit ng may-akda ang serbisyo ng Systemd upang patakbuhin ang script at suriin kung nalutas ang mga dependency.

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

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

Ang pangalawang file ay hindi kakailanganin kung ang Debian ay may suporta sa IPMasquerade= (tingnan sa ibaba). #787480).

Matapos isagawa ang mga utos systemctl daemon-reload ΠΈ systemctl i-restart ang systemd-networkd maaari mong simulan ang Bluetooth PAN gamit ang command systemctl simulan ang pan

Bluetooth PAN client gamit ang Systemd

Ang panig ng kliyente ay madali ding i-configure gamit ang Systemd.

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

[Match]
Name=bnep*

[Network]
DHCP=yes

File /etc/systemd/system/[protektado ng email]

[Unit]
Description=Bluetooth Personal Area Network client

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

Ngayon, pagkatapos i-reload ang configuration, maaari kang kumonekta sa tinukoy na Bluetooth access point tulad nito:

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

Pagpares gamit ang command line

Siyempre, ang pagsasaayos ng server at mga kliyente ay dapat gawin pagkatapos ipares ang mga ito sa pamamagitan ng Bluetooth. Sa server kailangan mong patakbuhin ang bluetoothctl at bigyan ito ng mga utos:

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

Pagkatapos simulan ang pag-scan, maghintay ng ilang segundo hanggang lumitaw ang device na kailangan mo sa listahan. Isulat ang address nito at gamitin ito sa pamamagitan ng pag-isyu ng command ng pares at, kung kinakailangan, ng trust command.

Sa panig ng kliyente, kailangan mong gawin ang parehong bagay, ngunit ang utos ng tiwala ay tiyak na hindi kailangan. Kailangan ito ng server upang tumanggap ng koneksyon gamit ang profile ng NAP nang walang manu-manong pagkumpirma ng user.

Hindi sigurado ang may-akda na ito ang pinakamainam na pagkakasunod-sunod ng mga utos. Marahil ang kailangan lang ay ipares ang kliyente sa server at patakbuhin ang trust command sa server, ngunit hindi pa niya ito nasubukan.

Paganahin ang HID Bluetooth Profile

Kinakailangan na makilala ng Raspberry ang isang keyboard na konektado sa Braille display sa pamamagitan ng wire, at ipinadala ng mismong display sa pamamagitan ng Bluetooth. Ginagawa ito sa parehong paraan, sa halip lamang ahente sa kailangang magbigay ng utos ahente KeyboardOnly at ang bluetoothctl ay makakahanap ng device na may HID profile.

Ngunit ang pag-set up ng Bluetooth sa pamamagitan ng command line ay medyo kumplikado

Bagaman nagawa ng may-akda na i-configure ang lahat, naiintindihan niya na ang pag-configure ng BlueZ sa pamamagitan ng command line ay hindi maginhawa. Sa una ay naisip niya na ang mga ahente ay kailangan lamang upang magpasok ng mga PIN code, ngunit ito ay naging, halimbawa, na upang paganahin ang HID profile kailangan mong i-type ang "agent KeyboardOnly". Nakakagulat na upang ilunsad ang Bluetooth PAN kailangan mong umakyat sa mga repositoryo sa paghahanap ng kinakailangang script. Naaalala niya na sa nakaraang bersyon ng BlueZ mayroong isang handa na tool para dito panda - saan ang ginagawa niya sa BlueZ 5? Biglang lumitaw ang isang bagong solusyon, hindi alam ng may-akda, ngunit nakahiga sa ibabaw?

Pagiging Produktibo

Ang bilis ng paglipat ng data ay humigit-kumulang 120 kbit/s, na sapat na. Ang 1GHz ARM processor ay napakabilis para sa isang command line interface. Plano pa rin ng may-akda na gamitin ang pangunahing ssh at emacs sa device.

Mga font ng console at resolution ng screen

Ang default na resolution ng screen na ginamit ng framebuffer sa Raspberry Pi Zero ay medyo kakaiba: iniulat ito ng fbset bilang 656x416 pixels (siyempre walang nakakonektang monitor). Sa console font na 8Γ—16, mayroong 82 character bawat linya at 26 na linya.

Hindi maginhawang gumamit ng 40-character na Braille display sa mode na ito. Gusto rin ng may-akda na makita ang mga Unicode na character na ipinapakita sa braille. Sa kabutihang palad, sinusuportahan ng Linux ang 512 character, at karamihan sa mga console font ay mayroong 256. Gamit ang console-setup, maaari kang gumamit ng dalawang 256-character na font nang magkasama. Idinagdag ng may-akda ang mga sumusunod na linya sa /etc/default/console-setup file:

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

Tandaan: para gawing available ang brl-16Γ—8.psf font, kailangan mong mag-install ng console-braille.

Ano ang susunod?

Ang Braille display ay may 3,5 mm jack, ngunit hindi alam ng may-akda ang mga adapter para sa pagtanggap ng audio signal mula sa Mini-HDMI. Hindi nagamit ng may-akda ang sound card na nakapaloob sa Raspberry (kakaiba, ang tagasalin ay sigurado na ang Zero ay walang isa, ngunit may mga paraan upang mag-output ng tunog gamit ang PWM sa GPIO). Plano niyang gumamit ng USB-OTG hub at magkonekta ng external na card at output sound sa speaker na nakapaloob sa braille display. Para sa ilang kadahilanan, dalawang panlabas na card ay hindi gumana; ngayon siya ay naghahanap ng isang katulad na aparato sa ibang chipset.

Hindi rin maginhawang manu-manong i-off ang "raspberry", maghintay ng ilang segundo at i-off ang braille display. At lahat dahil kapag ito ay naka-off, inaalis nito ang kapangyarihan mula sa connector sa kompartimento. Plano ng may-akda na maglagay ng maliit na buffer na baterya sa kompartimento at, sa pamamagitan ng GPIO, ipaalam sa Raspberry ang tungkol sa pag-off ng display, upang masimulan nitong isara ang trabaho nito. Ito ay isang UPS sa miniature.

Larawan ng system

Kung mayroon kang parehong Braille display at gusto mong gawin din ito, ang may-akda ay handa na magbigay ng isang handa na imahe ng system (batay sa Raspbian Stretch). Sumulat sa kanya tungkol dito sa address na nakasaad sa itaas. Kung may sapat na mga taong interesado, posible pa ring maglabas ng mga kit na kinabibilangan ng lahat ng kailangan para sa naturang pagbabago.

Mga Pasasalamat

Salamat kay Dave Mielke para sa pag-proofread.

Salamat kay Simon Kainz para sa mga larawang ilustrasyon.

Salamat sa aking mga kasamahan sa Graz Technical University para sa mabilis na pagpapakilala sa may-akda sa mundo ng Raspberry Pi.

PS Unang tweet ang may-akda sa paksang ito (hindi nagbubukas - tagasalin) ay ginawa lamang limang araw bago ang paglalathala ng orihinal ng artikulong ito, at maaari itong isaalang-alang na, maliban sa mga problema sa tunog, ang gawain ay praktikal na nalutas. Siyanga pala, na-edit ng may-akda ang huling bersyon ng teksto mula sa isang "self-sufficient Braille display" na ginawa niya, na ikinonekta ito sa pamamagitan ng SSH sa kanyang computer sa bahay.

Pinagmulan: www.habr.com

Magdagdag ng komento