ΠΠ²ΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» Raspberry Pi Zero, Bluetooth-Β«ΡΠ²ΠΈΡΡΠΎΠΊΒ» ΠΈ ΠΊΠ°Π±Π΅Π»Ρ Π²Π½ΡΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ Handy Tech Active Star 40. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ USB-ΠΏΠΎΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅. ΠΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π±Π΅Π·ΠΌΠΎΠ½ΠΈΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π° ARM Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Linux, ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠΆΠ°ΡΡ/ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· USB, Π² Ρ.Ρ. ΠΎΡ ΠΏΠ°ΡΡΡΠ±Π°Π½ΠΊΠ° ΠΈΠ»ΠΈ ΡΠΎΠ»Π½Π΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π±Π΅Π· ΡΠ»Π΅ΠΊΡΡΠΎΡΠ΅ΡΠΈ Π½Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ², Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ.
ΠΠ°Π±Π°ΡΠΈΡΠ½Π°Ρ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°ΡΠΈΡ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΡ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π²
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π»ΠΈΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π£ΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° 60 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ Ρ ΠΎΡΠΎΡΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, Π½Π° 40 β ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠΌ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠ΅ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΊ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°ΠΌ ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°ΠΌ, Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² 14 ΠΈΠ»ΠΈ 18 Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ.
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠ΅ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π½ΡΠΌΠΈ. 40-Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ½ΡΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅Π» ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ Π²Π΅Ρ ΠΊΠ°ΠΊ Ρ 13-Π΄ΡΠΉΠΌΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΡΡΠ±ΡΠΊΠ°. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΠΏΡΠΈ ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠΌ, Π° Π½Π΅ Π½ΠΎΡΡΠ±ΡΠΊ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.
ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π»ΡΡΡΠ΅, Π½ΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π½Π° ΠΊΠΎΠ»Π΅Π½ΡΡ Π΄Π²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡ Π·Π° ΡΡΠΎΠ»ΠΎΠΌ, ΠΏΡΠ΅ΡΠ΅Π½Π·ΠΈΠΉ Π½Π΅Ρ, Π½ΠΎ ΡΡΠΎΠΈΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π½ΠΎΡΡΠ±ΡΠΊ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π»ΡΠΏΡΠΎΠΏΠΎΠΌ, ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°ΡΡ ΡΡΠΎ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΠΉ 40-Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½.
Π’Π°ΠΊ ΡΡΠΎ Π°Π²ΡΠΎΡ Π΄ΠΎΠΆΠ΄Π°Π»ΡΡ Π²ΡΡ ΠΎΠ΄Π° Π΄Π°Π²Π½ΠΎ ΠΎΠ±Π΅ΡΠ°Π½Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ΅ΡΠΈΠΈ Handy Tech Star. ΠΡΡ Π² 2002 Π³ΠΎΠ΄Ρ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Handy Tech Braille Star 40, Π³Π΄Π΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΡΠΏΡΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²Π΅ΡΡ Ρ Π½ΠΎΡΡΠ±ΡΠΊ. Π Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ β ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΡΠ΄Π²ΠΈΠΆΠ½Π°Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΊΠ°. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° Active Star 40, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΎΠΉ.
Π Π²ΡΠ΄Π²ΠΈΠΆΠ½Π°Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΊΠ° ΠΎΡΡΠ°Π»Π°ΡΡ:
ΠΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² Π½ΠΎΠ²ΠΈΠ½ΠΊΠ΅ β ΡΡΠΎ ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎ ΡΠΌΠ°ΡΡΡΠΎΠ½ (ΡΠΌ. ΠΠΠΠ). ΠΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½ΠΎ ΠΏΡΠΈ ΡΠ΄Π²ΠΈΠ³Π΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ Π½Π°Π·Π°Π΄. ΠΠ΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΌ ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Π½Π°Π΄ΠΎ ΠΆΠ΅ ΠΊΠ°ΠΊ-ΡΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΡΡΠ΅ΠΊ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π°ΠΆΠ΅ Π²ΡΡ
ΠΎΠ΄ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» Π°Π²ΡΠΎΡ β ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ΄Π° Raspberry Pi, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π±ΡΠ» ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠ½, ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Ρ Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΠΎΠΉΒ» Π½Π΅ Π·Π°Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΊΠ°, Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ°Ρ ΠΎΡΡΠ΅ΠΊ. ΠΠΎΡ Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΠ»Π°ΡΠ° Π±ΡΠ»Π° Π²ΡΠ΅Π³ΠΎ Π½Π° 3 ΠΌΠΌ ΡΠΎΠ½ΡΡΠ΅β¦
ΠΠΎ ΠΊΠΎΠ»Π»Π΅Π³Π° ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ Π²ΡΡ ΠΎΠ΄Π΅ Raspberry Pi Zero, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΠΌ, ΡΡΠΎ Π² ΠΎΡΡΠ΅ΠΊ ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΎΡΡ Π±Ρ Π΄Π²Π°β¦ ΠΈΠ»ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Π΄Π°ΠΆΠ΅ ΡΡΠΈ. ΠΠ½ Π±ΡΠ» ΡΡΡ ΠΆΠ΅ Π·Π°ΠΊΠ°Π·Π°Π½ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠ°ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° 64 ΠΠ, Bluetooth,Β«ΡΠ²ΠΈΡΡΠΊΠΎΠΌΒ» ΠΈ ΠΊΠ°Π±Π΅Π»Π΅ΠΌ Micro USB. Π§Π΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Π²ΡΡ ΡΡΠΎ ΠΏΡΠΈΠ΅Ρ Π°Π»ΠΎ, Π° Π·ΡΡΡΠΈΠ΅ Π΄ΡΡΠ·ΡΡ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π°Π²ΡΠΎΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΊΠ°ΡΡΡ. ΠΡΡ ΡΡΠ°Π·Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.
Π§ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ
ΠΠ° Π·Π°Π΄Π½Π΅ΠΉ ΡΡΠ΅Π½ΠΊΠ΅ Handy Tech Active Star 40 ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π΄Π²Π° USB-ΠΏΠΎΡΡΠ° Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠ°Π»ΠΎΠ³Π°Π±Π°ΡΠΈΡΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° Ρ ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΠΌ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ. ΠΠΎΠ³Π΄Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π°, Π° ΡΠ°ΠΌ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· Bluetooth, ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΠΎΠ·Π½Π°ΡΡ Π΅Π³ΠΎ Π΅ΡΡ ΠΈ ΠΊΠ°ΠΊ Bluetooth-ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΊ Raspberry Pi Zero, ΠΏΠΎΠΌΠ΅ΡΡΠ½Π½ΠΎΠΌΡ Π² ΠΎΡΡΠ΅ΠΊ Π΄Π»Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Bluetooth-Β«ΡΠ²ΠΈΡΡΠΎΠΊΒ», ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ ΠΏΠΎ Bluetooth ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ
ΠΠΎ ΠΈ ΡΡΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡ. Π‘Π°ΠΌΠ° Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΠ°Β», Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎ Bluetooth PAN Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ²ΡΠΎΡ Π½Π°ΡΡΡΠΎΠΈΠ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΠΎΠΉ ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π΄ΠΎΠΌΠ° ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅, Π½ΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡ ΠΎΠ΄Π½Ρ Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΡΒ» β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ, Π½Π΅ Zero, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΠΊ Ethernet ΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ Bluetooth-Β«ΡΠ²ΠΈΡΡΠΊΡΒ».
BlueZ 5 ΠΈ PAN
Π‘ΠΏΠΎΡΠΎΠ± ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ PAN ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ
Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°ΠΊ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠΎΠ»ΡΡΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ D-Bus ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ bnep0 ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠ° ΡΡΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DHCP. Π ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ 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 ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΡΠ»ΠΈ Π°Π²ΡΠΎΡ ΠΎΡΠΈΠ±Π°Π΅ΡΡΡ, ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ Π΅Π³ΠΎ: 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
ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΡΡ Π±Ρ, Π΅ΡΠ»ΠΈ Π±Ρ Π² Debian Π±ΡΠ»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° IPMasquerade= (ΡΠΌ.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ systemctl daemon-reload ΠΈ systemctl restart 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/[email protected]
[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
ΠΠ°ΠΏΡΡΡΠΈΠ² ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΠΎΠΊΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ Π²Π°ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π³ΠΎ Π°Π΄ΡΠ΅Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ, ΠΏΠΎΠ΄Π°Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pair, Π° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ β ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ trust.
Π‘ΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° trust Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΎΡΠ½ΠΎ. Π‘Π΅ΡΠ²Π΅ΡΡ ΠΎΠ½Π° Π½ΡΠΆΠ½Π°, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ NAP Π±Π΅Π· ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΠ²ΡΠΎΡ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ β ΡΡΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ trust Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ ΡΠ°ΠΊ ΠΎΠ½ Π΄Π΅Π»Π°ΡΡ Π΅ΡΡ Π½Π΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π».
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Bluetooth-ΠΏΡΠΎΡΠΈΠ»Ρ HID
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΠ°Β» ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π»Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ ΠΊ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΎΠΌΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠΌ, ΠΈ ΠΏΡΠΎΠ±ΡΠΎΡΠ΅Π½Π½ΡΡ ΡΠΆΠ΅ ΡΠ°ΠΌΠΈΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ ΠΏΠΎ Bluetooth. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ agent on Π½Π°Π΄ΠΎ Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ agent KeyboardOnly ΠΈ bluetoothctl Π½Π°ΠΉΠ΄ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΌ HID.
ΠΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Bluetooth ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ²Π°ΡΠΎ
Π₯ΠΎΡΡ Π°Π²ΡΠΎΡΡ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΡ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ BlueZ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ. Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ½ Π΄ΡΠΌΠ°Π», ΡΡΠΎ Π°Π³Π΅Π½ΡΡ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° PIN-ΠΊΠΎΠ΄ΠΎΠ², Π½ΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ HID Π½ΡΠΆΠ½ΠΎ Π½Π°Π±ΠΈΡΠ°ΡΡ Β«agent KeyboardOnlyΒ». Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Bluetooth PAN Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»Π°Π·ΠΈΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ½ ΠΏΠΎΠΌΠ½ΠΈΡ, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ BlueZ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ» Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ pand β ΠΊΡΠ΄Π° ΠΆΠ΅ ΠΎΠ½ Π΄Π΅Π»Π°Ρ Π² BlueZ 5? ΠΠ΄ΡΡΠ³ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ Π°Π²ΡΠΎΡΡ, Π½ΠΎ Π»Π΅ΠΆΠ°ΡΠ΅Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ?
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 120 ΠΊΠ±ΠΈΡ/Ρ, ΡΠ΅Π³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. 1-Π³ΠΈΠ³Π°Π³Π΅ΡΡΠΎΠ²ΡΠΉ ARM-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ²ΡΠΎΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ssh ΠΈ emacs.
ΠΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΈΡΡΡ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠΎΠΌ Π½Π° Raspberry Pi Zero ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΠΎΠ΅: fbset ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 656×416 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (ΠΌΠΎΠ½ΠΈΡΠΎΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½). ΠΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΈΡΡΠ΅ 8×16 ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ 82 ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ 26 ΡΡΡΠΎΠΊ.
Π Π°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ Π½Π° 40 Π·Π½Π°ΠΊΠΎΠΌΠ΅ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΡΡ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Π·Π½Π°ΠΊΠΈ Unicode. Π ΡΡΠ°ΡΡΡΡ, 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,5-ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅ΡΡΠΎΠ²ΡΠΉ Β«Π΄ΠΆΠ΅ΠΊΒ», Π½ΠΎ Π°Π²ΡΠΎΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΠ½ΡΡΠΈΡ Π°ΡΠ΄ΠΈΠΎΡΠΈΠ³Π½Π°Π»Π° Ρ Mini-HDMI. ΠΠ²ΡΠΎΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΡΒ» Π·Π²ΡΠΊΠΎΠ²ΡΡ ΠΊΠ°ΡΡΡ (ΡΡΡΠ°Π½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊ Π±ΡΠ» ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π² Zero ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ Π½Π΅Ρ, Π½ΠΎ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π²ΡΠΊΠ° Π¨ΠΠΠΎΠΌ Π½Π° GPIO). ΠΠ½ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ USB-OTG-Ρ Π°Π± ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΊΠ°ΡΡΡ ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π·Π²ΡΠΊ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ. ΠΠ²Π΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ ΠΈΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠΈΠΏΡΠ΅ΡΠ΅.
ΠΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΡΒ», ΠΆΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. Π Π²ΡΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΡΠ°Π·ΡΡΠΌΠ° Π² ΠΎΡΡΠ΅ΠΊΠ΅. ΠΠ²ΡΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΎΡΡΠ΅ΠΊ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΡΡΠ΅ΡΠ½ΡΠΉ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ ΠΈ ΡΠ΅ΡΠ΅Π· GPIO ΡΠΎΠΎΠ±ΡΠ°ΡΡ Β«ΠΌΠ°Π»ΠΈΠ½ΠΊΠ΅Β» ΠΎΠ± ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ° ΠΏΡΠΈΡΡΡΠΏΠΈΠ»Π° ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. Π’Π°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΠΠ Π² ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ΅.
ΠΠ±ΡΠ°Π· ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π±ΡΠ°ΠΉΠ»Π΅Π²ΡΠΊΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ, ΠΈ Π²Ρ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Ρ Π½ΠΈΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π°Π²ΡΠΎΡ Π³ΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Raspbian Stretch). ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π΅ΠΌΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅. ΠΡΠ»ΠΈ ΠΆΠ΅Π»Π°ΡΡΠΈΡ Π½Π°Π±Π΅ΡΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π΄Π°ΠΆΠ΅ Π²ΡΠΏΡΡΠΊ Π½Π°Π±ΠΎΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π² ΡΠ΅Π±Ρ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Dave Mielke Π·Π° Π²ΡΡΠΈΡΠΊΡ ΡΠ΅ΠΊΡΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Simon Kainz Π·Π° ΡΠΎΡΠΎΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ ΠΏΠΎ ΠΡΠ°ΡΠΊΠΎΠΌΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΡ Π·Π° Π±ΡΡΡΡΠΎΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ° ΠΊ ΠΌΠΈΡΡ Raspberry Pi.
P.S.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com