लेखक ने अपने नए हैंडी टेक एक्टिव स्टार 40 ब्रेल डिस्प्ले के अंदर एक रास्पबेरी पाई ज़ीरो, एक ब्लूटूथ सीटी और एक केबल रखा। एक अंतर्निर्मित यूएसबी पोर्ट बिजली प्रदान करता है। परिणाम लिनक्स ऑपरेटिंग सिस्टम के साथ एआरएम पर एक आत्मनिर्भर मॉनिटर रहित कंप्यूटर था, जो एक कीबोर्ड और ब्रेल डिस्प्ले से सुसज्जित था। आप इसे यूएसबी सहित चार्ज/पावर कर सकते हैं। पावर बैंक या सोलर चार्जर से। इसलिए, यह बिना बिजली के कई घंटों तक, बल्कि कई दिनों तक काम कर सकता है।
ब्रेल डिस्प्ले का आयामी विभेदन
सबसे पहले, वे लाइन की लंबाई में भिन्न होते हैं। 60 या अधिक क्षमता वाले उपकरण डेस्कटॉप कंप्यूटर के साथ काम करने के लिए अच्छे होते हैं, जबकि 40 क्षमता वाले उपकरण लैपटॉप के साथ ले जाने के लिए सुविधाजनक होते हैं। अब स्मार्टफोन और टैबलेट से जुड़े ब्रेल डिस्प्ले हैं, जिनमें 14 या 18 अक्षरों की लाइन लंबाई होती है।
अतीत में, ब्रेल डिस्प्ले काफी बड़े पैमाने पर होते थे। उदाहरण के लिए, 40 सीटों वाले लैपटॉप का आकार और वजन 13 इंच के लैपटॉप जैसा था। अब, समान संख्या में परिचितों के साथ, वे इतने छोटे हैं कि आप डिस्प्ले को लैपटॉप के बजाय लैपटॉप के सामने रख सकते हैं।
बेशक, यह बेहतर है, लेकिन दो अलग-अलग उपकरणों को अपनी गोद में रखना अभी भी बहुत सुविधाजनक नहीं है। जब आप डेस्क पर काम करते हैं, तो कोई शिकायत नहीं होती है, लेकिन यह याद रखने योग्य है कि लैपटॉप को दूसरे नाम से लैपटॉप कहा जाता है, और अपने नाम को सही ठहराने की कोशिश करते हैं, क्योंकि यह पता चलता है कि लघु 40-अक्षर का डिस्प्ले और भी कम सुविधाजनक है।
इसलिए लेखक ने हैंडी टेक स्टार श्रृंखला में लंबे समय से वादा किए गए नए मॉडल के जारी होने का इंतजार किया। 2002 में, पिछला मॉडल हैंडी टेक ब्रेल स्टार 40 जारी किया गया था, जहां बॉडी एरिया शीर्ष पर एक लैपटॉप रखने के लिए पर्याप्त है। और यदि यह फिट नहीं होता है, तो एक वापस लेने योग्य स्टैंड है। अब इस मॉडल की जगह एक्टिव स्टार 40 ने ले ली है, जो लगभग वैसा ही है, लेकिन उन्नत इलेक्ट्रॉनिक्स के साथ।
और वापस लेने योग्य स्टैंड बना हुआ है:
लेकिन नए उत्पाद के बारे में सबसे सुविधाजनक चीज़ लगभग स्मार्टफोन के आकार का एक रिसेस है (KDPV देखें)। प्लेटफ़ॉर्म को पीछे ले जाने पर यह खुल जाता है। वहां स्मार्टफोन रखना असुविधाजनक हो गया, लेकिन आपको किसी तरह खाली डिब्बे का उपयोग करना होगा, जिसके अंदर एक पावर आउटलेट भी है।
लेखक के मन में सबसे पहले रास्पबेरी पाई रखने का विचार आया, लेकिन जब डिस्प्ले खरीदा गया, तो पता चला कि डिब्बे को कवर करने वाला स्टैंड "रास्पबेरी" के साथ अंदर नहीं आया। अब, यदि बोर्ड केवल 3 मिमी पतला होता...
लेकिन एक सहकर्मी ने मुझे रास्पबेरी पाई ज़ीरो की रिलीज़ के बारे में बताया, जो इतना छोटा निकला कि उनमें से दो डिब्बे में फिट हो सकते थे... या शायद तीन भी। इसे तुरंत 64 जीबी मेमोरी कार्ड, ब्लूटूथ, "सीटी" और एक माइक्रो यूएसबी केबल के साथ ऑर्डर किया गया था। कुछ दिनों बाद यह सब आ गया, और देखे गए मित्रों ने लेखक को एक नक्शा तैयार करने में मदद की। सब कुछ तुरंत वैसा ही काम करने लगा जैसा होना चाहिए।
इसके लिए क्या किया गया
हैंडी टेक एक्टिव स्टार 40 के पीछे कीबोर्ड जैसे उपकरणों के लिए दो यूएसबी पोर्ट हैं। चुंबकीय माउंट वाला एक छोटे आकार का कीबोर्ड शामिल है। जब कीबोर्ड कनेक्ट होता है, और डिस्प्ले स्वयं ब्लूटूथ के माध्यम से काम करता है, तो कंप्यूटर अतिरिक्त रूप से इसे ब्लूटूथ कीबोर्ड के रूप में पहचानता है।
इस प्रकार, यदि आप ब्लूटूथ "सीटी" को स्मार्टफोन डिब्बे में रखे रास्पबेरी पाई ज़ीरो से कनेक्ट करते हैं, तो यह ब्लूटूथ का उपयोग करके ब्रेल डिस्प्ले के साथ संचार करने में सक्षम होगा।
लेकिन वह सब नहीं है। बदले में, "रास्पबेरी" किसी भी डिवाइस से ब्लूटूथ पैन के माध्यम से इंटरनेट तक पहुंच सकता है जो इसका समर्थन करता है। लेखक ने अपने स्मार्टफोन और कंप्यूटर को घर पर और काम पर तदनुसार कॉन्फ़िगर किया है, लेकिन भविष्य में वह इसके लिए एक और "रास्पबेरी" को अनुकूलित करने की योजना बना रहा है - एक क्लासिक, ज़ीरो नहीं, ईथरनेट और एक अन्य ब्लूटूथ "सीटी" से जुड़ा हुआ।
ब्लूज़ेड 5 और पैन
पैन कॉन्फ़िगरेशन विधि का उपयोग करना
इसका उपयोग सर्वर और क्लाइंट दोनों को कॉन्फ़िगर करने के लिए किया जा सकता है। क्लाइंट मोड में काम करते समय डी-बस के माध्यम से उचित कमांड प्राप्त करने के बाद, यह सर्वर के साथ कनेक्शन स्थापित करने के तुरंत बाद एक नया नेटवर्क डिवाइस bnep0 बनाता है। आमतौर पर, डीएचसीपी का उपयोग इस इंटरफ़ेस को आईपी एड्रेस निर्दिष्ट करने के लिए किया जाता है। सर्वर मोड में, ब्लूज़ को एक ब्रिज डिवाइस के नाम की आवश्यकता होती है जिसमें वह प्रत्येक क्लाइंट को कनेक्ट करने के लिए एक स्लेव डिवाइस जोड़ सकता है। ब्रिज डिवाइस के लिए एक पता कॉन्फ़िगर करना और ब्रिज पर डीएचसीपी सर्वर प्लस आईपी मास्करेडिंग चलाना आम तौर पर आवश्यक होता है।
सिस्टमडी के साथ ब्लूटूथ पैन एक्सेस प्वाइंट
ब्रिज को कॉन्फ़िगर करने के लिए, लेखक ने 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 उपयोगिताओं के साथ नहीं किया जा सकता है। यदि लेखक गलत है, तो उसे सुधारें: मलांग (अपने कान हिला सकता है) अंधा (कभी-कभी पहुंच और क्वांटम) गुरु
लेकिन उसने पाया
सुविधा के लिए, लेखक ने स्क्रिप्ट को चलाने और यह जाँचने के लिए कि क्या निर्भरताएँ हल हो गई हैं, 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 डेमन-रीलोड и systemctl पुनरारंभ करें systemd-networkd आप कमांड से ब्लूटूथ पैन शुरू कर सकते हैं systemctl स्टार्ट पैन
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
कमांड लाइन का उपयोग करके युग्मित करना
बेशक, सर्वर और क्लाइंट का कॉन्फ़िगरेशन ब्लूटूथ के माध्यम से जोड़ने के बाद किया जाना चाहिए। सर्वर पर आपको ब्लूटूथसीटीएल चलाने और उसे कमांड देने की आवश्यकता है:
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 ब्लूटूथ प्रोफ़ाइल सक्षम करना
यह आवश्यक है कि रास्पबेरी तार द्वारा ब्रेल डिस्प्ले से जुड़े कीबोर्ड को पहचाने, और ब्लूटूथ के माध्यम से डिस्प्ले द्वारा ही प्रसारित हो। यह उसी तरह से किया जाता है, केवल इसके बजाय एजेंट चालू एक आदेश देने की जरूरत है केवल एजेंट कीबोर्ड और BluetoothCTL को HID प्रोफ़ाइल वाला एक उपकरण मिलेगा।
लेकिन कमांड लाइन के माध्यम से ब्लूटूथ सेट करना थोड़ा जटिल है
हालाँकि लेखक सब कुछ कॉन्फ़िगर करने में कामयाब रहा, वह समझता है कि कमांड लाइन के माध्यम से ब्लूज़ को कॉन्फ़िगर करना असुविधाजनक है। पहले तो उन्होंने सोचा कि एजेंटों को केवल पिन कोड दर्ज करने की आवश्यकता है, लेकिन उदाहरण के लिए, यह पता चला कि एचआईडी प्रोफ़ाइल को सक्षम करने के लिए आपको "एजेंट कीबोर्डओनली" टाइप करना होगा। यह आश्चर्य की बात है कि ब्लूटूथ पैन लॉन्च करने के लिए आपको आवश्यक स्क्रिप्ट की तलाश में रिपॉजिटरी के माध्यम से चढ़ना होगा। उन्हें याद है कि ब्लूज़ेड के पिछले संस्करण में इसके लिए एक तैयार उपकरण था पैर फैलाने - वह BlueZ 5 में कहां कर रहा है? अचानक एक नया समाधान सामने आया, जो लेखक के लिए अज्ञात था, लेकिन सतह पर पड़ा हुआ था?
निष्पादन
डेटा ट्रांसफर गति लगभग 120 kbit/s थी, जो काफी है। कमांड लाइन इंटरफ़ेस के लिए 1GHz ARM प्रोसेसर बहुत तेज़ है। लेखक अभी भी डिवाइस पर मुख्य रूप से ssh और emacs का उपयोग करने की योजना बना रहा है।
कंसोल फ़ॉन्ट और स्क्रीन रिज़ॉल्यूशन
रास्पबेरी पाई ज़ीरो पर फ़्रेमबफ़र द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट स्क्रीन रिज़ॉल्यूशन काफी अजीब है: 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 मिमी जैक है, लेकिन लेखक को मिनी-एचडीएमआई से ऑडियो सिग्नल प्राप्त करने के लिए एडाप्टर के बारे में जानकारी नहीं है। लेखक रास्पबेरी में निर्मित साउंड कार्ड का उपयोग करने में असमर्थ था (अजीब बात है, अनुवादक को यकीन था कि ज़ीरो में कोई नहीं था, लेकिन पीडब्लूएम का उपयोग करके जीपीआईओ में ध्वनि आउटपुट करने के तरीके हैं)। वह यूएसबी-ओटीजी हब का उपयोग करने और ब्रेल डिस्प्ले में निर्मित स्पीकर से एक बाहरी कार्ड और आउटपुट ध्वनि कनेक्ट करने की योजना बना रहा है। किसी कारण से, दो बाहरी कार्ड काम नहीं करते थे, अब वह एक अलग चिपसेट पर एक समान डिवाइस की तलाश में है।
"रास्पबेरी" को मैन्युअल रूप से बंद करना, कुछ सेकंड प्रतीक्षा करना और ब्रेल डिस्प्ले को बंद करना भी असुविधाजनक है। और सब इसलिए क्योंकि जब इसे बंद किया जाता है, तो यह डिब्बे में कनेक्टर से बिजली हटा देता है। लेखक ने डिब्बे में एक छोटी बफर बैटरी रखने की योजना बनाई है और जीपीआईओ के माध्यम से, रास्पबेरी को डिस्प्ले बंद होने के बारे में सूचित किया है, ताकि वह अपना काम बंद करना शुरू कर सके। यह लघु रूप में एक यूपीएस है.
सिस्टम छवि
यदि आपके पास समान ब्रेल डिस्प्ले है और आप इसके साथ भी ऐसा ही करना चाहते हैं, तो लेखक सिस्टम की एक तैयार छवि (रास्पबियन स्ट्रेच पर आधारित) प्रदान करने के लिए तैयार है। इस बारे में उसे ऊपर बताए गए पते पर लिखें। यदि पर्याप्त लोग रुचि रखते हैं, तो किट जारी करना भी संभव है जिसमें इस तरह के संशोधन के लिए आवश्यक सभी चीजें शामिल हों।
स्वीकृतियाँ
प्रूफरीडिंग के लिए डेव मिल्के को धन्यवाद।
फोटो चित्रण के लिए साइमन कैन्ज़ को धन्यवाद।
लेखक को रास्पबेरी पाई की दुनिया से शीघ्र परिचित कराने के लिए ग्राज़ तकनीकी विश्वविद्यालय में मेरे सहयोगियों को धन्यवाद।
पुनश्च
स्रोत: www.habr.com