α’αααβαα·ααααβααΆαβααΆαα Raspberry Pi Zero, αααα»αβαααααΌααΌα αα·αβααααβαα½αβαα
βαααα»αβα’ααααααβα’ααααβαααααΌααΌα Handy Tech Active Star 40 ααααΈβααααβααΆααβαααβααααΆααβααβααΆαα½αβαααα USB αααααβααΆαααα ααααααααΊαα»αααααΌαααααααα·αααΆααααΌααΈααααααααααααΆααααααααα½αα―ααα
ααΎ ARM ααΆαα½αααΉαααααααααααααα·ααααα·ααΆαααΈαα»α
ααααΆαααααααααΆαα
α»α
αα·αα’ααααααα’αααα Braille α α’αααα’αΆα
ααΆα/ααΆαααααΆααΆαααα 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 αα ααΈααα ααα»αααααα ααααααααΆαααΆαααααα αΆαααααΌαααΆααα·α ααΆααΆαααααααααΆαααΆ ααααααααΆαααααααααααΎααααααααααα·ααα’α·αααΆαα½α "raspberry" αααααα α₯α‘αΌαβαααβααΎβαααααβααααΎαβααΆα α£ α...
ααα»αααααα αααα·αααααΆααααΆαααααΆαααααα»αα’αααΈααΆαα ααααααΆα Raspberry Pi Zero ααααααααα ααΆααΌα ααΆααααααα½αααΆααΈαα’αΆα ααΆαααααα»ααααααα ... α¬αααα ααααΆααΈα ααΆααααΌαααΆααααααΆαα·αααααΆαα αα½αααΆαα½αααΆααααααΌααΈ 64 GB αααααΌααΌα βα α½α β αα·ααααα Micro USB α ααΈαααΈαααααααααααα’αααΈαααΆααα’αααααααΆαααααα α αΎααα·αααααααα·αααααΆαααΎαααΆααα½αα’ααααα·αααααααα ααααααΈα α’αααΈααααααααΆαααΆαααααΎαααΆαααααΆααααΌα αααααΆαα½αααα
α’αααΈαααααααΌαααΆαααααΎαααααΆααααΆααααα
αα αααααααΆαααααααα Handy Tech Active Star 40 ααΆααααα USB ααΈααααααΆααα§αααααααΌα ααΆααααΆαα α»α α ααααΆαα α»α βααΌα βαα½αβαααβααΆαβααααβαααΆαααα·αβααααΌαβααΆαβαα½αβαααα αΌαα αα ααααααααααΆαα α»α ααααΌαααΆαααααΆαα α αΎαααΆααααα αΆααααα½αααΆααααΎαααΆαααΆαααααααααΌααΌα αα»αααααΌαααααααα½αααααΆααααΆααΆααααΆαα α»α αααααΌααΌααααααα
ααΌα
αααα ααααα·αααΎα’αααααααΆαααααααΌααΌα βαααα»ααααα
αβ αα
ααΉα Raspberry Pi Zero αααααΆαααααα»ααααααααααΆαα αααΌα αααααΆααΉαα’αΆα
ααΆααααααΆαα½αα’ααααααα’ααααααααΆαααΆαααααααααΌααΌααααααααΎ
ααα»ααααααααα·ααααααΆααα’ααααα "raspberry" αααα½αααΆααααΆααα’αΆα α αΌαααααΎα’ααΈαααΊαα·αααΆαααα Bluetooth PAN ααΈα§αααααααΆαα½ααααααΆααααααΆα α’ααααα·ααααααΆαααααααα ααΆααααααααααααΆαα αααΌα αα·ααα»αααααΌαααααααααΆαααα αααα αα·ααα ααααααααααΎααΆαααΆααααααΌαααΆα ααα»αααααα αααα’ααΆααααΆαααααααααΉαααααααα½α "raspberry" αα½ααααααααααααααΆααααΏαααα - αα»ααΆααα·ααααααΌααααα ααααΆαααα α’ααΈααΊααα·α αα·ααααααΌααΌααα½ααααα
BlueZ 5 αα·α PAN
αα·ααΈααΆαααααααααααα
ααΆαααααααα PAN αααααααΎ
ααΆα’αΆα ααααΌαααΆαααααΎααΎααααΈααααααα ααΆααααααααααΆαααααΆαααΈααα αα·ααααΆαααΈααααααα αααααΆαααα½αααΆααααααααΆααααααααΆαααα D-Bus αα αααααααΎααΆααααα»ααααααααΆαααΈαααααα ααΆαααααΎαα§ααααααααααΆαααααΈ bnep0 ααααΆαααααααΆααααΈαααααΎαααΆααααααΆααααΆαα½ααααΆαααΈαααα ααΆααααααΆ DHCP ααααΌαααΆαααααΎααΎααααΈαααααα’αΆααααααΆα IP αα ααΆααα ααα»α αααααΆαααααα αα αααα»ααααααααΆαααΈααα BlueZ ααΆαααΆααααααα§αααααααααΆα αααααΆα’αΆα ααααααα§ααααααααααΎ ααΎααααΈααααΆαααααΆαααΈααααααααΈαα½ααα ααΆαααααααα ααΆααααααααα’αΆααααααΆααααααΆααα§αααααααααΆα αα·αααααΎαααΆααααΆαααΈααα DHCP ααΌαααΉαααΆααααααααααα IP αα ααΎααααΆα ααΆααααααΆααααΌαααΆαααΆαααΆαααΆααα’ααα
α ααα»α α αΌαααααΎαααααΌααΌα 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 ααα ααΎα’ααααα·αααααα»α ααααΆααα mlang (α’αΆα ααΎαααα ααααΆα) αα·ααΆαααααα (αααααααα’αΆα α αΌαααΆα αα·α quantum) guru
ααα»ααααααΆααααΆαααααΎα
ααΎααααΈααΆαααΆααααα½α α’ααααα·ααααααΆαααααΎααααΆαααα 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= support (ααΌαααΎαααΆαααααα)α
αααααΆααααΈααααα·ααααα·ααΆααααααααΆ systemctl daemon-reload ΠΈ systemctl α αΆααααααΎαα‘αΎααα·α systemd-networkd α’αααα’αΆα α αΆααααααΎα 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
α₯α‘αΌαααα αααααΆααααΈαααα»αααΆαααααααα ααΆααααααααα‘αΎααα·α α’αααα’αΆα ααααΆαααα α ααα»α α αΌαααααΎαααααΌααΌααααααΆααααααΆααααΌα αααα
systemctl start pan@00:11:22:33:44:55
ααΆαααααΌαααααααααααΎαααααΆααααΆααααααααΆ
ααΆααΆααα·αααΆαα ααΆαααααααα ααΆαααααααααααααΆαααΈααα αα·ααααΆαααΈααααααααααΌαααααααΎα‘αΎααααααΆααααΈααααΌαααααα½αααΆααΆαααααααααΌααΌαα αα ααΎ server α’αααααααΌαααααΎαααΆα 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 αααααααΆαααΆααααααΆααααααααααα’αααααααΎααααΆααα
α’ααααα·αααααα·αααααΆααααΆαααααΊααΆααααΆααααααα’αααααΎαααααΆααααααααΆαααααα αααα ααααΆα’αααΈαααΆααα’αααααααααΌαααΆαααΊααααΌαααααΌαααααααΆαααΈααααααααΆαα½ααααΆαααΈααα α αΎαααααΎαααΆαααΆααααααααΆαα»αα α·αααααΎαααΆαααΈααα ααα»ααααααΆαααα·αααΆααααΆαααΆαααααααΆαα α‘αΎαααα
αααα»αααΎαααααΎαααΆααααααααα·ααΌα Bluetooth HID
ααΆαααααΌαα±αα Raspberry ααααΆααααααΆαα α»α αααααααΆαααα α’ααααααα’αααα Braille ααααααα α αΎααααααΌααααααΆααααα αΆααααα½αααΆααΆαααααααααΌααΌαα αααααααΌαααΆαααααΎααΆαααααααΌα ααααΆ αααααα½ααα·αα ααααΆααααΆααα ααΎ α αΆαααΆα αααααΌααααααααΆααααααααΆ ααααΆααααΆα KeyboardOnly α αΎα bluetoothctl ααΉααααααααα§ααααααααααΆααααααα HID α
ααα»ααααααΆαααα‘αΎααααααΌααΌαααΆαααααααααΆααααΆααααααααΆααΊααΆαααΆααααα»αααααΆαααααα·α
αααααΈααΆα’ααααα·ααααα’αΆα ααααααα ααΆααααααααα’αααΈαααααααααΆααααααααααΆαααααααΆααΆαααααα BlueZ ααΆαααααααααΆααααΆααααααααΆααΊααΆααΆααα’αΆαααα’α½αα ααααΌαααΆαααα·αααΆααααΆααααΆαααααΆααααααααΌαααΆαααΎααααΈαααα αΌαααΌα PIN ααα»ααααα ααα»ααααααΆααααααΆα§ααΆα αααααΆ ααΎααααΈααΎααααααα HID α’αααααααΌαααΆα "ααααΆααααΆα KeyboardOnly" α ααΆαα½αα±ααααααΆααααα’αΎααααααΆααΎααααΈααΎαααααΎαααΆααααααΌααΌα PAN α’αααααααΌαα‘αΎαααΆααααααααΆααααΎααααΈαααααααααααααΈααααααααΌαααΆαα ααΆααα αα αΆαααΆαα αααα»ααααααα»ααααα BlueZ ααΆαα§ααααααααααααααα½α ααΆααααα αααααΆααααΏαααα ααα - ααΎααΆαααααα»αααααΎα’αααΈαα αααα»α BlueZ 5? ααααΆααααβααΆαβαααααααααΆαβααααΈβαα½αβααΆαβααα βα‘αΎα αααβαα·αβααααΆααβα’αααβαα·αααα ααα»ααααβαααβααΎβαααα?
ααα·αααΆα
ααααΏαααααααα·ααααααααΊαααα αα 120 kbit/s αααααΆαααααααααΆααα αΎαα αα½αααααΆα 1GHz ARM ααΆαααααΏαααΏααααααΆααα ααα»α αααααΆαααααααΆααααΆααααααααΆα α’ααααα·αααααα ααααΆαααααααααααΎααΆα αααα ssh αα·α emacs αα ααΎα§αααααα
αα»αααΌααα»αααα’αααα αα·ααα»αααΆααααα αΆαα’αααααα
αα»αααΆααααα αΆαα’ααααααααααΆαααΎααααααααΎααα framebuffer αα ααΎ Raspberry Pi Zero ααΊα αααααααΆααα fbset ααΆαααΆαααααΆααΆααΆ 656x416 ααΈαααα (αα·αααΆαααα·αααΆααααΌααΈαααααααΆαααα)α ααΆαα½αααΉααα»αααα’αααααα»αααΌα 8 Γ 16 ααΆα 82 αα½α’αααααααα»ααα½ααααααΆαα αα·α 26 αααααΆααα
ααΆααΆαααΆααα’αΆαααα’α½ααααα»αααΆαααααΎααΆαααΆαα½αααΆααααα αΆαα’αααα Braille 40 αα½α’αααααα αααα»ααααααααα α’ααααα·ααααααα ααααΎααα½α’ααααααΌααΈααΌααααα αΆαααΆα’ααααααααΆααααααα ααΆααααΆαααα’ ααΈαα»α ααΆαααα 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 α’αΆα ααααΎααΆα α’αααααααΌαααα‘αΎααα»αααΌαα’ααααααΌα α
ααΎααΆαα’αααΈααΆαααααΆαα?
α’αααααα Braille ααΆα Jack 3,5 mm ααα»ααααα’ααααα·αααααα·αααΉαα’αααΈα’αΆααΆααααααααααΆααααΆαααα½ααααααΆααα‘ααααΈ Mini-HDMI ααα α’ααααα·αααααα·αα’αΆα ααααΎααΆαααα‘αααααααΆααααααΎααα αααα»α Raspberry ααΆααα (α αααααααΆααα’αααααααααααααΆααααΆααΌααααα·αααΆααα ααα»ααααααΆααα·ααΈαααα ααααα‘αααααααααΎ PWM αα GPIO) α ααΆαααααααααΉαααααΎ USB-OTG hub αα·αααααΆααααΆαααΆααααα αα·ααααα ααααα‘αααα ααΆααα§ααααααααααααααααααααααΆααααααΆαα½αα’αααααααααα αΆαα’ααααααααΆαα αααααΆααα ααα»αααα½αα ααα½α ααΆαααΆααααα ααΈααα·αααααΎαααΆααα α₯α‘αΌααααααΆαααααα»ααααααααα§αααααααααααααααΆαα ααΎαααααααΈααααααα
ααΆααααΆαααΆααα’αΆαααα’α½αααααααααα»αααΆααα·α "raspberry" ααααα αααα αΆαααΈαααΈαα·ααΆααΈ α αΎααα·αααΆααααα αΆαα’ααααααααΆαα α αΎαααΆααα’αααααααΆααααα ααααααααΆααααΌαααΆααα·αααΆααααΆαααα ααααΈα§αααααααααΆαααα αααα»αααααααα α’ααααα·αααααααααααΉαααΆαααααααα·ααααααα’αΆααααααΌα αα½ααα αααα»ααααααα α αΎαααΆαααα GPIO ααΌαααααΉαααα Raspberry α’αααΈααΆααα·αα’αααααα ααΌα ααααααΆα’αΆα α αΆααααααΎααα·αααααΎαααΆαααααααΆα αααααΊααΆ UPS ααααΆαααΌα α
ααΌαααΆααααααααα
ααααα·αααΎα’αααααΆαα’ααααααα’αααα Braille ααΌα ααααΆ α αΎαα ααααααΎααΌα ααααΆααΆαα½αααΆ α’ααααα·ααααααααααααα½ααα½α ααΆααααα αααα»αααΆααααααααΌαααΌαααΆααααααααααα½α ααΆααααα αααααααααα (ααα’ααααΎ Raspbian Stretch)α ααααααα ααΆααα’αααΈααΏααααααΆαα’αΆααααααΆααααααΆαα ααα’α»ααααα αΆαααΆαααΎα ααααα·αααΎααΆαααα»αααα αΆααα’αΆαααααααααααααααΆαα ααΆαααααΆααα’αΆα αααα ααα§αααααααααα½ααααα αΌαα’αααΈααααααααΆααααα αΆαααΆα ααααααΆααααΆαααααααααααααα
ααΆαααΉααα»α
ααΌαα’ααα»αααα Dave Mielke αααααΆααααΆαα’αΆαα’αααααα
ααΌαα’ααα»αααα Simon Kainz αααααΆααααΌαααΆαααααΌαα
ααΌαα’ααα»αααααα ααΆααΈαααααααα»ααα ααΆαααα·ααααΆααααα αα ααααα Graz αααααΆαααααΆαα’ααααα·αααααα ααΆαααα·αα Raspberry Pi αααΆαααΆαααα ααα
PS
ααααα: www.habr.com