Handy Tech Active Star 40 брайль дэлгэцийн дотор Raspberry Pi Zero

Handy Tech Active Star 40 брайль дэлгэцийн дотор Raspberry Pi Zero

Зохиогч өөрийн шинэ Handy Tech Active Star 40 брайл дэлгэцийн дотор Raspberry Pi Zero, Bluetooth шүгэл, кабелийг байрлуулжээ.Суурилагдсан USB порт нь тэжээл өгдөг. Үүний үр дүнд гар, брайль дэлгэцээр тоноглогдсон, Линукс үйлдлийн системтэй, ARM дээр ажилладаг мониторгүй компьютер гарч ирэв. Та үүнийг USB-ээр цэнэглэж/цаах боломжтой. цахилгаан банк эсвэл нарны цэнэглэгчээс. Тиймээс, энэ нь хэдэн цагийн турш цахилгаангүй байж болно, гэхдээ хэдэн өдөр.

Handy Tech Active Star 40 брайль дэлгэцийн дотор Raspberry Pi Zero

Брайл дэлгэцийн хэмжээст ялгаа

Юуны өмнө тэдгээр нь шугамын уртаараа ялгаатай байдаг. 60 ба түүнээс дээш хүчин чадалтай төхөөрөмжүүд нь ширээний компьютертэй ажиллахад тохиромжтой, харин 40 багтаамжтай төхөөрөмжүүд нь зөөврийн компьютертэй хамт авч явахад тохиромжтой. Одоо ухаалаг утас, таблеттай холбогдсон брайл дэлгэцүүд 14 эсвэл 18 тэмдэгтийн урттай байдаг.

Өмнө нь брайл дэлгэцүүд нэлээд том хэмжээтэй байсан. Жишээлбэл, 40 хүний ​​суудалтай зөөврийн компьютер нь 13 инчийн зөөврийн компьютерын хэмжээтэй, жинтэй байв. Одоо ижил тооны танилуудтай бол тэдгээр нь хангалттай бяцхан хэмжээтэй тул та зөөврийн компьютерийг дэлгэцэн дээр биш харин зөөврийн компьютерын урд байрлуулж болно.

Энэ нь мэдээжийн хэрэг илүү сайн, гэхдээ хоёр тусдаа төхөөрөмжийг өвөр дээрээ барих нь тийм ч тохиромжтой биш юм. Ширээн дээр ажиллахад ямар ч гомдол байдаггүй, гэхдээ зөөврийн компьютерийг өөр нэрээр зөөврийн компьютер гэж нэрлэдэг гэдгийг санах нь зүйтэй бөгөөд 40 тэмдэгттэй бяцхан дэлгэц нь тийм ч тохиромжтой биш болох нь харагдаж байна.

Тиймээс зохиолч Handy Tech Star цувралын удаан хугацаанд амласан шинэ загвар гарахыг хүлээж байв. 2002 онд өмнөх загвар Handy Tech Braille Star 40 гарсан бөгөөд биеийн хэсэг нь зөөврийн компьютерийг дээр нь байрлуулахад хангалттай юм. Хэрэв энэ нь тохирохгүй бол эвхэгддэг тавиур байдаг. Одоо энэ загварыг Active Star 40-оор сольсон бөгөөд энэ нь бараг ижил боловч сайжруулсан электрон төхөөрөмжтэй.

Handy Tech Active Star 40 брайль дэлгэцийн дотор Raspberry Pi Zero

Мөн эвхэгддэг тавиур хэвээр байна:

Handy Tech Active Star 40 брайль дэлгэцийн дотор Raspberry Pi Zero

Гэхдээ шинэ бүтээгдэхүүний хамгийн тохиромжтой зүйл бол ухаалаг гар утасны хэмжээтэй ойролцоо завсарлага юм (KDPV-г үзнэ үү). Энэ нь платформыг буцааж зөөх үед нээгдэнэ. Ухаалаг гар утсаа тэнд барихад тохиромжгүй байсан ч та ямар нэгэн байдлаар хоосон тасалгааг ашиглах хэрэгтэй бөгөөд дотор нь бүр цахилгаан залгуур байдаг.

Зохиогчийн олсон хамгийн эхний зүйл бол Raspberry Pi-г тэнд байрлуулах явдал байсан боловч дэлгэцийг худалдаж авахдаа тасалгааг бүрхсэн тавиур нь "бөөрөлзгөнө"-тэй гулсаагүй болох нь тогтоогджээ. Одоо самбар нь ердөө 3 мм нимгэн байсан бол...

Гэхдээ нэг хамт олон надад Raspberry Pi Zero-г гаргасан тухай хэлсэн бөгөөд энэ нь маш жижиг хэмжээтэй болсон тул тэдгээрийн хоёр нь тасалгаанд багтах боломжтой ... эсвэл бүр гурав ч байж магадгүй юм. Үүнийг 64 ГБ санах ойн карт, Bluetooth, "шүгэл" болон Micro USB кабелийн хамт шууд захиалсан. Хэдэн өдрийн дараа энэ бүхэн ирж, хараатай найзууд нь зохиогчид газрын зураг бэлтгэхэд тусалжээ. Бүх зүйл тэр даруй байх ёстой шигээ ажиллав.

Үүний тулд юу хийсэн бэ

Handy Tech Active Star 40-ийн ар талд гар зэрэг төхөөрөмжүүдэд зориулсан хоёр USB порт байдаг. Соронзон бэхэлгээтэй жижиг хэмжээтэй гар дагалдана. Гар холбогдсон бөгөөд дэлгэц нь өөрөө Bluetooth-ээр ажилладаг бол компьютер үүнийг Bluetooth гар гэж хүлээн зөвшөөрдөг.

Тиймээс, хэрэв та ухаалаг гар утасны тасалгаанд байрлуулсан Raspberry Pi Zero-д Bluetooth шүгэлийг холбовол Bluetooth ашиглан брайл дэлгэцтэй холбогдох боломжтой болно. BRLTTY, мөн хэрэв та дэлгэцэнд гар холбовол "бөөрөлзгөнө" нь үүнтэй ажиллах болно.

Гэхдээ энэ нь бүгд биш юм. "Бөөрөлзгөнө" нь эргээд үүнийг дэмждэг ямар ч төхөөрөмжөөс Bluetooth PAN-ээр дамжуулан интернетэд холбогдох боломжтой. Зохиогч ухаалаг утас, компьютерээ гэртээ болон ажил дээрээ тохируулсан боловч ирээдүйд тэрээр өөр "бөөрөлзгөнө" -ийг Ethernet-д холбогдсон тэг биш сонгодог, өөр Bluetooth "шүгэл"-д тохируулахаар төлөвлөж байна.

BlueZ 5 ба PAN

PAN тохиргооны аргыг ашиглан bluez тодорхойгүй болсон. Зохиогч bt-pan Python скриптийг (доороос үзнэ үү) олсон бөгөөд энэ нь PAN-г GUIгүйгээр тохируулах боломжийг олгодог.

Үүнийг сервер болон үйлчлүүлэгчийн аль алиныг нь тохируулахад ашиглаж болно. Үйлчлүүлэгчийн горимд ажиллахдаа 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 стандарт хэрэгслийн тусламжтайгаар хийх боломжгүй болсон. Хэрэв зохиогч буруу бол түүнийг засаарай: мланг (чихийг нь хөдөлгөж болно) сохор (заримдаа хандалт ба квант) гуру

Гэхдээ тэр олсон блог шуудан и Python скрипт D-Bus руу шаардлагатай дуудлага хийх.

Тохиромжтой болгох үүднээс зохиогч скриптийг ажиллуулахын тулд 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= дэмжлэгтэй байсан бол хоёр дахь файл хэрэггүй болно (доороос харна уу). #787480).

Тушаалуудыг гүйцэтгэсний дараа 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

Командын мөрийг ашиглан хослуулах

Мэдээжийн хэрэг сервер болон үйлчлүүлэгчдийн тохиргоог 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 кбит/с байсан нь хангалттай юм. 1GHz ARM процессор нь командын мөрийн интерфейсийн хувьд маш хурдан байдаг. Зохиогч төхөөрөмж дээрээ голчлон ssh болон emacs ашиглахаар төлөвлөж байна.

Консолын фонтууд болон дэлгэцийн нягтрал

Raspberry Pi Zero дээрх фреймбуферийн ашигладаг дэлгэцийн анхдагч нягтрал нь маш хачирхалтай: fbset үүнийг 656x416 пиксел гэж мэдээлдэг (мэдээж монитор холбогдоогүй). 8×16 хэмжээтэй консол фонттой бол нэг мөрөнд 82 тэмдэгт, 26 мөрөнд байв.

Энэ горимд 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 фонтыг ашиглах боломжтой болгохын тулд та консол-брайл үсгийг суулгах хэрэгтэй.

Дараа нь юу юм бэ?

Брайл дэлгэц нь 3,5 мм-ийн залгууртай боловч зохиогч Mini-HDMI-аас аудио дохиог хүлээн авах адаптеруудыг мэддэггүй. Зохиогч нь Raspberry-д суурилуулсан дууны картыг ашиглах боломжгүй байсан (хачирхалтай нь, орчуулагч Zero байхгүй гэдэгт итгэлтэй байсан, гэхдээ PWM ашиглан GPIO-д дуу гаргах арга зам байдаг). Тэрээр USB-OTG төвийг ашиглаж, гадаад карт болон гаралтын дууг брайль дэлгэцэнд суурилуулсан чанга яригчтай холбохоор төлөвлөж байна. Зарим шалтгааны улмаас хоёр гадаад карт ажиллахгүй байсан тул одоо тэр өөр чипсет дээр ижил төстэй төхөөрөмж хайж байна.

"Бөөрөлзгөнө"-г гараар унтрааж, хэдэн секунд хүлээгээд брайл дэлгэцийг унтраах нь бас тохиромжгүй юм. Энэ нь унтарсан үед тасалгааны холбогчоос хүчийг салгадагтай холбоотой юм. Зохиогч тасалгаанд жижиг буфер батерейг байрлуулж, GPIO-ээр дамжуулан Raspberry-д дэлгэц унтарч байгаа тухай мэдээлснээр ажлаа унтрааж эхлэхээр төлөвлөж байна. Энэ бол бяцхан UPS юм.

Системийн зураг

Хэрэв танд ижил Брайл дэлгэц байгаа бөгөөд үүнтэй ижил зүйлийг хийхийг хүсвэл зохиогч системийн бэлэн зургийг (Raspbian Stretch дээр үндэслэсэн) өгөхөд бэлэн байна. Түүнд энэ талаар дээр дурдсан хаягаар бичээрэй. Хэрэв сонирхож буй хүмүүс хангалттай байгаа бол ийм өөрчлөлт хийхэд шаардлагатай бүх зүйлийг багтаасан иж бүрдэл гаргах боломжтой.

Талархал

Засвар хийсэн Дэйв Миелке баярлалаа.

Зургийн чимэглэлийг өгсөн Саймон Кайнзд баярлалаа.

Зохиогчийг Raspberry Pi-ийн ертөнцтэй хурдан танилцуулсан Грацын Техникийн Их Сургуулийн хамт олондоо баярлалаа.

PS Эхний жиргээ Энэ сэдвээр зохиогч (нээдэггүй - орчуулагч) энэ өгүүллийн эхийг нийтлэхээс ердөө тав хоногийн өмнө хийгдсэн бөгөөд дуу чимээтэй холбоотой асуудлаас бусад тохиолдолд даалгавар бараг шийдэгдсэн гэж үзэж болно. Дашрамд дурдахад, зохиогч өөрийн хийсэн “бие даасан брайль дэлгэц”-ээс текстийн эцсийн хувилбарыг засварлаж, SSH-ээр гэрийн компьютертээ холбосон.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх