์ ์๋ ์๋ก์ด Handy Tech Active Star 40 ์ ์ ๋์คํ๋ ์ด ๋ด๋ถ์ Raspberry Pi Zero, Bluetooth ํํ๋ ๋ฐ ์ผ์ด๋ธ์ ๋ฐฐ์นํ์ผ๋ฉฐ, ๋ด์ฅ๋ USB ํฌํธ๊ฐ ์ ์์ ๊ณต๊ธํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ํค๋ณด๋์ ์ ์ ๋์คํ๋ ์ด๊ฐ ์ฅ์ฐฉ๋๊ณ Linux ์ด์ ์ฒด์ ๋ฅผ ๊ฐ์ถ ARM ๊ธฐ๋ฐ์ ๋ชจ๋ํฐ ์๋ ์๊ธ์์กฑ ์ปดํจํฐ๊ฐ ํ์ํ์ต๋๋ค. USB๋ฅผ ํตํด ์ถฉ์ /์ ์์ ๊ณต๊ธํ ์ ์์ต๋๋ค. ๋ณด์กฐ ๋ฐฐํฐ๋ฆฌ๋ ํ์๊ด ์ถฉ์ ๊ธฐ์์. ๋ฐ๋ผ์ ๊ทธ๋ ๋ช ์๊ฐ ๋์ ์ ๋ ฅ ์์ด๋ ํ ์ ์์ง๋ง ๋ฉฐ์น ๋์์ ํ ์ ์์ต๋๋ค.
์ ์ ๋์คํ๋ ์ด์ ์ฐจ์์ ์ฐจ๋ณํ
์ฐ์ , ์ ๊ธธ์ด๊ฐ ๋ค๋ฆ ๋๋ค. 60๊ฐ ์ด์์ ์ฉ๋์ ๊ฐ์ง ์ฅ์น๋ ๋ฐ์คํฌํฑ ์ปดํจํฐ๋ก ์์ ํ๊ธฐ์ ์ ํฉํ๊ณ , 40๊ฐ ์ฉ๋์ ์ฅ์น๋ ๋ ธํธ๋ถ๊ณผ ํจ๊ป ํด๋ํ๊ธฐ ํธ๋ฆฌํฉ๋๋ค. ์ด์ ์ค๋งํธํฐ๊ณผ ํ๋ธ๋ฆฟ์ ์ฐ๊ฒฐ๋ ์ค ๊ธธ์ด๊ฐ 14์ ๋๋ 18์์ธ ์ ์ ๋์คํ๋ ์ด๊ฐ ์์ต๋๋ค.
๊ณผ๊ฑฐ์๋ ์ ์ ๋์คํ๋ ์ด์ ๊ท๋ชจ๊ฐ ์๋นํ ์ปธ์ต๋๋ค. ์๋ฅผ ๋ค์ด, 40์ ๋ ธํธ๋ถ์ 13์ธ์น ๋ ธํธ๋ถ๊ณผ ํฌ๊ธฐ์ ๋ฌด๊ฒ๊ฐ ๋น์ทํ์ต๋๋ค. ์ด์ ๋ ๊ฐ์ ์์ ์ง์ธ๋ค๊ณผ ํจ๊ป ๋์คํ๋ ์ด ์์ ๋ ธํธ๋ถ์ ์ฌ๋ ค๋๋ ๊ฒ์ด ์๋, ๋ ธํธ๋ถ ์์ ๋์คํ๋ ์ด๋ฅผ ์ฌ๋ ค๋์ ์ ์์ ์ ๋๋ก ์ํํ๋๋ค.
๋ฌผ๋ก ์ด๊ฒ์ ๋ ์ข์ง๋ง ๋ ๊ฐ์ ๋ณ๋ ์ฅ์น๋ฅผ ๋ฌด๋ฆ ์์ ์ฌ๋ ค๋๋ ๊ฒ์ ์ฌ์ ํ โโ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์์ต๋๋ค. ์ฑ ์์์ ์ผํ ๋ ๋ถ๋ง์ ์์ง๋ง ๋ ธํธ๋ถ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ ธํธ๋ถ์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ๊ทธ ์ด๋ฆ์ ์ ๋นํํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๊ฒ์ ์ํ 40์ ๋์คํ๋ ์ด๊ฐ ํจ์ฌ ๋ ํธ๋ฆฌํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก๊ธฐ ๋๋ฌธ์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ์ ์๋ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ ํธ๋ํ ํฌ์คํ ์๋ฆฌ์ฆ์ ์ ๋ชจ๋ธ์ด ์ถ์๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ ธ๋ค. ์ง๋ 2002๋ ์๋ ์ด์ ๋ชจ๋ธ์ธ ํธ๋ํ ํฌ ์ ์์คํ40(Handy Tech Braille Star 40)์ด ์ถ์๋๋๋ฐ, ๋ณธ์ฒด ๋ฉด์ ์ ๋ ธํธ๋ถ์ ์ฌ๋ ค๋์ ์ ์์ ๋งํผ ๋๋ค. ๋ง์ง ์์ผ๋ฉด ์ ์ด์ ์คํ ๋๊ฐ ์์ต๋๋ค. ์ด์ ์ด ๋ชจ๋ธ์ ๊ฑฐ์ ๋์ผํ์ง๋ง ์ ์ ์ฅ์น๊ฐ ์ ๊ทธ๋ ์ด๋๋ Active Star XNUMX์ผ๋ก ๋์ฒด๋์์ต๋๋ค.
์ ์ด์ ์คํ ๋๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
ํ์ง๋ง ์ ์ ํ์ ๊ฐ์ฅ ํธ๋ฆฌํ ์ ์ ์ค๋งํธํฐ ํฌ๊ธฐ ์ ๋์ ํ์
๋๋ค(KDPV ์ฐธ์กฐ). ํ๋ซํผ์ ๋ค๋ก ์ด๋ํ๋ฉด ์ด๋ฆฝ๋๋ค. ๊ฑฐ๊ธฐ์ ์ค๋งํธ ํฐ์ ์ฅ๋ ๊ฒ์ด ๋ถํธํ ๊ฒ์ผ๋ก ํ๋ช
๋์์ง๋ง ๋ด๋ถ์ ์ ์ ์ฝ์ผํธ๋์๋ ๋น ์นธ์ ์ด๋ป๊ฒ ๋ ์ฌ์ฉํด์ผํฉ๋๋ค.
์ ์๊ฐ ๊ฐ์ฅ ๋จผ์ ์๊ฐํด๋ธ ๊ฒ์ ๊ฑฐ๊ธฐ์ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด๋ฅผ ๋๋ ๊ฒ์ด์์ง๋ง, ๋์คํ๋ ์ด๋ฅผ ๊ตฌ์ ํ์ ๋, ์๋ฉ๋ถ๋ฅผ ๋ฎ๊ณ ์๋ ์คํ ๋๊ฐ '๋ผ์ฆ๋ฒ ๋ฆฌ'์ ํจ๊ป ๋ฏธ๋๋ฌ์ง์ง ์๋ ๊ฒ์ผ๋ก ๋ฐํ์ก๋ค. ์ด์ ๋ณด๋๊ฐ 3mm๋ง ๋ ์์๋๋ผ๋ฉด...
ํ์ง๋ง ํ ๋๋ฃ๊ฐ ๋์๊ฒ Raspberry Pi Zero์ ์ถ์์ ๋ํด ๋งํ๋๋ฐ, ์ด ์ ํ์ ๋๋ฌด ์์์ ๋ ๊ฐ ๋๋ ์ธ ๊ฐ๊น์ง ๋ค์ด๊ฐ ์ ์์ ์ ๋์์ต๋๋ค. 64GB ๋ฉ๋ชจ๋ฆฌ ์นด๋, Bluetooth, "ํํ๋" ๋ฐ ๋ง์ดํฌ๋ก USB ์ผ์ด๋ธ๊ณผ ํจ๊ป ์ฆ์ ์ฃผ๋ฌธ๋์์ต๋๋ค. ๋ฉฐ์น ํ ์ด ๋ชจ๋ ๊ฒ์ด ๋์ฐฉํ๊ณ , ๋์ ๋๋ ์น๊ตฌ๋ค์ด ์ ์๊ฐ ์ง๋๋ฅผ ์ค๋นํ๋ ๊ฒ์ ๋์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ฆ์ ์ ๋๋ก ์๋ํ์ต๋๋ค.
์ด๋ฅผ ์ํด ๋ฌด์์ ํ๋๊ฐ
Handy Tech Active Star 40์ ๋ท๋ฉด์๋ ํค๋ณด๋์ ๊ฐ์ ์ฅ์น๋ฅผ ์ํ XNUMX๊ฐ์ USB ํฌํธ๊ฐ ์์ต๋๋ค. ์์ ๋ง์ดํธ๊ฐ ์๋ ์ํ ํค๋ณด๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํค๋ณด๋๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋์คํ๋ ์ด ์์ฒด๊ฐ Bluetooth๋ฅผ ํตํด ์๋ํ๋ฉด ์ปดํจํฐ๋ ์ด๋ฅผ Bluetooth ํค๋ณด๋๋ก ์ถ๊ฐ๋ก ์ธ์ํฉ๋๋ค.
๋ฐ๋ผ์ ์ค๋งํธํฐ ์๋ฉ์นธ์ ์์นํ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ ๋ก์ ๋ธ๋ฃจํฌ์ค 'ํ์ฌ'์ ์ฐ๊ฒฐํ๋ฉด ๋ธ๋ฃจํฌ์ค๋ฅผ ํตํด ์ ์ ๋์คํ๋ ์ด์ ํต์ ํ ์ ์๋ค.
ํ์ง๋ง ๊ทธ๊ฒ ์ ๋ถ๋ ์๋๋๋ค. "๋ผ์ฆ๋ฒ ๋ฆฌ" ์์ฒด๋ ์ด๋ฅผ ์ง์ํ๋ ๋ชจ๋ ์ฅ์น์์ Bluetooth PAN์ ํตํด ์ธํฐ๋ท์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ ์๋ ์ง๊ณผ ์ง์ฅ์์ ๊ทธ์ ๋ฐ๋ผ ์ค๋งํธํฐ๊ณผ ์ปดํจํฐ๋ฅผ ๊ตฌ์ฑํ์ง๋ง ์์ผ๋ก๋ ์ด๋ฅผ ์ํด ๋ ๋ค๋ฅธ "๋ผ์ฆ๋ฒ ๋ฆฌ"๋ฅผ ์ ์ฉํ ๊ณํ์ ๋๋ค. ์ด๋ Zero๊ฐ ์๋ ์ด๋๋ท์ ์ฐ๊ฒฐ๋ ๊ณ ์ ์ ์ธ ์ฅ์น์ ๋ ๋ค๋ฅธ Bluetooth "ํํ๋"์ ๋๋ค.
BlueZ 5 ๋ฐ PAN
PAN ๊ตฌ์ฑ ๋ฐฉ๋ฒ
์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ชจ๋ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ๋ชจ๋์์ ์์ ํ ๋ 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 ์ ํธ๋ฆฌํฐ๋ก๋ ์ด ์์ ์ ์ํํ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ ์๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํ์ญ์์ค: mlang(๊ท๋ฅผ ์์ง์ผ ์ ์์) blind(๋๋๋ก ์ ๊ทผ ๋ฐ ์์) 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
๋ฐ๋น์์ IPMasquerade= ์ง์์ด ์์ผ๋ฉด ๋ ๋ฒ์งธ ํ์ผ์ ํ์ํ์ง ์์ต๋๋ค(์๋ ์ฐธ์กฐ).
๋ช ๋ น์ ์คํํ ํ systemctl ๋ฐ๋ชฌ -reload ะธ 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
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ํ์ด๋ง
๋ฌผ๋ก , ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๊ตฌ์ฑ์ ๋ธ๋ฃจํฌ์ค๋ฅผ ํตํด ํ์ด๋งํ ํ์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ์๋ฒ์์ 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
์ค์บ์ ์์ํ ํ ํ์ํ ์ฅ์น๊ฐ ๋ชฉ๋ก์ ๋ํ๋ ๋๊น์ง ๋ช ์ด ์ ๋ ๊ธฐ๋ค๋ฆฌ์ญ์์ค. ํด๋น ์ฃผ์๋ฅผ ๊ธฐ๋กํ๊ณ pair ๋ช ๋ น์ ์คํํ๊ณ ํ์ํ ๊ฒฝ์ฐ trust ๋ช ๋ น์ ์คํํ์ฌ ์ฌ์ฉํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ธก์์๋ ๋์ผํ ์์ ์ ์ํํด์ผ ํ์ง๋ง trust ๋ช ๋ น์ ์ ๋ ํ์ํ์ง ์์ต๋๋ค. ์๋ฒ๋ ์ฌ์ฉ์์ ์๋ ํ์ธ ์์ด NAP ํ๋กํ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์๋ฝํด์ผ ํฉ๋๋ค.
์ ์๋ ์ด๊ฒ์ด ์ต์ ์ ๋ช ๋ น ์์์ธ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ์๋ง๋ ํ์ํ ๊ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ฒ์ ์ฐ๊ฒฐํ๊ณ ์๋ฒ์์ trust ๋ช ๋ น์ ์คํํ๋ ๊ฒ๋ฟ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์์ง ์ด๊ฒ์ ์๋ํ์ง ์์์ต๋๋ค.
HID Bluetooth ํ๋กํ ํ์ฑํ
๋ผ์ฆ๋ฒ ๋ฆฌ๋ ์ ์ ๋์คํ๋ ์ด์ ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํค๋ณด๋๋ฅผ ์ธ์ํ๊ณ ๋ธ๋ฃจํฌ์ค๋ฅผ ํตํด ๋์คํ๋ ์ด ์์ฒด์์ ์ ์กํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ์ด ์์ ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ํ๋ฉ๋๋ค. ์์ด์ ํธ ๋ช ๋ น์ ๋ด๋ ค์ผ ํด ์์ด์ ํธ ํค๋ณด๋๋ง bluetoothctl์ HID ํ๋กํ์ด ์๋ ์ฅ์น๋ฅผ ์ฐพ์ต๋๋ค.
ํ์ง๋ง ๋ช ๋ น์ค์ ํตํด Bluetooth๋ฅผ ์ค์ ํ๋ ๊ฒ์ ์ฝ๊ฐ ๋ณต์กํฉ๋๋ค.
์ ์๋ ๋ชจ๋ ๊ฒ์ ๊ตฌ์ฑํ์ง๋ง ๋ช ๋ น์ค์ ํตํด BlueZ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ถํธํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ฒ์์ ๊ทธ๋ ์์ด์ ํธ๊ฐ PIN ์ฝ๋๋ง ์ ๋ ฅํ๋ฉด ๋๋ค๊ณ ์๊ฐํ์ง๋ง, ์๋ฅผ ๋ค์ด HID ํ๋กํ์ ํ์ฑํํ๋ ค๋ฉด "์์ด์ ํธ KeyboardOnly"๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค๋ ์ฌ์ค์ด ๋ฐํ์ก์ต๋๋ค. Bluetooth PAN์ ์คํํ๋ ค๋ฉด ํ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ ์ฅ์๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค๋ ๊ฒ์ด ๋๋์ต๋๋ค. ๊ทธ๋ ์ด์ ๋ฒ์ ์ BlueZ์ ์ด๋ฅผ ์ํ ๊ธฐ์ฑ ๋๊ตฌ๊ฐ ์์๋ค๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ํจ๋ฉ - BlueZ 5์์ ๊ทธ ์ฌ๋์ ์ด๋ ์๋ ๊ฑฐ์ฃ ? ๊ฐ์๊ธฐ ์ ์์๊ฒ ์๋ ค์ง์ง ์์์ง๋ง ํ๋ฉด์ ๋์ ์๋ ์๋ก์ด ์๋ฃจ์ ์ด ๋ํ๋ฌ์ต๋๊น?
ะัะพะธะทะฒะพะดะธัะตะปัะฝะพััั
๋ฐ์ดํฐ ์ ์ก ์๋๋ ์ฝ 120kbit/s๋ก ์ถฉ๋ถํ์ต๋๋ค. 1GHz ARM ํ๋ก์ธ์๋ ๋ช ๋ น์ค ์ธํฐํ์ด์ค์ ๋นํด ๋งค์ฐ ๋น ๋ฆ ๋๋ค. ์ ์๋ ์ฌ์ ํ ๊ธฐ๊ธฐ์์ ์ฃผ๋ก ssh์ emacs๋ฅผ ์ฌ์ฉํ ๊ณํ์ ๋๋ค.
์ฝ์ ๊ธ๊ผด ๋ฐ ํ๋ฉด ํด์๋
Raspberry Pi Zero์ ํ๋ ์ ๋ฒํผ๊ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ํ๋ฉด ํด์๋๋ ๋งค์ฐ ์ด์ํฉ๋๋ค. fbset์์๋ ์ด๋ฅผ 656x416 ํฝ์ (๋ฌผ๋ก ๋ชจ๋ํฐ๊ฐ ์ฐ๊ฒฐ๋์ง ์์)๋ก ๋ณด๊ณ ํฉ๋๋ค. 8ร16 ์ฝ์ ๊ธ๊ผด์ ์ฌ์ฉํ๋ฉด ํ ์ค์ 82์, 26์ค์ด ์์์ต๋๋ค.
์ด ๋ชจ๋์์๋ 40์ ์ ์ ๋์คํ๋ ์ด๋ก ์์ ํ๋ ๊ฒ์ด ๋ถํธํฉ๋๋ค. ์ ์๋ ๋ํ ์ ๋์ฝ๋ ๋ฌธ์๊ฐ ์ ์๋ก ํ์๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋คํํ Linux๋ 512์๋ฅผ ์ง์ํ๋ฉฐ ๋๋ถ๋ถ์ ์ฝ์ ๊ธ๊ผด์ 256์๋ฅผ ์ง์ํฉ๋๋ค. console-setup์ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ์ 256์ ๊ธ๊ผด์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ฑ์๋ /etc/default/console-setup ํ์ผ์ ๋ค์ ์ค์ ์ถ๊ฐํ์ต๋๋ค.
SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"
์ฐธ๊ณ : brl-16ร8.psf ๊ธ๊ผด์ ์ฌ์ฉํ๋ ค๋ฉด console-braille์ ์ค์นํด์ผ ํฉ๋๋ค.
๋ค์์ ๋ญ์ง?
์ ์ ๋์คํ๋ ์ด์๋ 3,5mm ์ญ์ด ์์ง๋ง ์์ฑ์๋ Mini-HDMI์์ ์ค๋์ค ์ ํธ๋ฅผ ์์ ํ๊ธฐ ์ํ ์ด๋ํฐ์ ๋ํด ์์ง ๋ชปํฉ๋๋ค. ์ ์๋ ๋ผ์ฆ๋ฒ ๋ฆฌ์ ๋ด์ฅ๋ ์ฌ์ด๋ ์นด๋๋ฅผ ์ฌ์ฉํ ์ ์์์ต๋๋ค(์ด์ํ๊ฒ๋ ๋ฒ์ญ์๋ Zero์ ์ฌ์ด๋ ์นด๋๊ฐ ์๋ค๊ณ ํ์ ํ์ง๋ง GPIO์ PWM์ ์ฌ์ฉํ์ฌ ์ฌ์ด๋๋ฅผ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค). USB-OTG ํ๋ธ๋ฅผ ์ด์ฉํด ์ธ๋ถ ์นด๋๋ฅผ ์ฐ๊ฒฐํด ์ ์ ๋์คํ๋ ์ด์ ๋ด์ฅ๋ ์คํผ์ปค๋ก ์๋ฆฌ๋ฅผ ์ถ๋ ฅํ ๊ณํ์ด๋ค. ์ด๋ค ์ด์ ์์์ธ์ง ๋ ๊ฐ์ ์ธ๋ถ ์นด๋๊ฐ ์๋ํ์ง ์์ ์ด์ ๋ค๋ฅธ ์นฉ์ ์ ์ฌ์ฉํ๋ ์ ์ฌํ ์ฅ์น๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
"๋ผ์ฆ๋ฒ ๋ฆฌ"๋ฅผ ์๋์ผ๋ก ๋๊ณ ๋ช ์ด ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์ ์ ๋์คํ๋ ์ด๋ฅผ ๋๋ ๊ฒ๋ ๋ถํธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์์ด ๊บผ์ง๋ฉด ๊ตฌํ์ ์ปค๋ฅํฐ์์ ์ ์์ด ์ ๊ฑฐ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ์๋ ์์ ์์ถฉ ๋ฐฐํฐ๋ฆฌ๋ฅผ ๊ตฌํ์ ๋ฐฐ์นํ๊ณ GPIO๋ฅผ ํตํด Raspberry์ ๋์คํ๋ ์ด ๊บผ์ง์ ์๋ฆฌ๊ณ ์์ ์ ์ข ๋ฃํ ๊ณํ์ ๋๋ค. ์ด๊ฒ์ ์ํ UPS์ ๋๋ค.
์์คํ ์ด๋ฏธ์ง
๋์ผํ ์ ์ ๋์คํ๋ ์ด๊ฐ ์๊ณ ๋์ผํ ์์ ์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ์์ฑ์๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์์คํ ์ด๋ฏธ์ง(Raspbian Stretch ๊ธฐ๋ฐ)๋ฅผ ์ ๊ณตํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค. ์์ ํ์๋ ์ฃผ์๋ก ์ด์ ๋ํด ๊ทธ์๊ฒ ํธ์ง๋ฅผ ๋ณด๋ด์ญ์์ค. ๊ด์ฌ ์๋ ์ฌ๋๋ค์ด ์ถฉ๋ถํ๋ค๋ฉด ๊ทธ๋ฌํ ์์ ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ํคํธ๋ฅผ ์ถ์ํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ์ฌ์ ๋ง
๊ต์ ํด์ฃผ์ Dave Mielke์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ฌ์ง ์ฝํ๋ฅผ ์ ๊ณตํด ์ฃผ์ Simon Kainz์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ ์์๊ฒ Raspberry Pi์ ์ธ๊ณ๋ฅผ ๋น ๋ฅด๊ฒ ์๊ฐํด์ค Graz Technical University์ ๋๋ฃ๋ค์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
PS
์ถ์ฒ : habr.com