
وضع المؤلف جهاز Raspberry Pi Zero و "صفارة" Bluetooth وكابل داخل شاشته الجديدة Handy Tech Active Star 40 Braille ، ويوفر منفذ USB مدمج الطاقة. وكانت النتيجة وجود جهاز كمبيوتر غير مستقل قائم بذاته على ARM مع نظام التشغيل Linux ، مجهز بلوحة مفاتيح وشاشة برايل. يمكنك شحن / تشغيله عبر USB ، بما في ذلك. من بنك الطاقة أو شاحن للطاقة الشمسية. لذلك ، يمكن أن تستغني عن التيار الكهربائي ليس لعدة ساعات ، ولكن لعدة أيام.

تمايز الأبعاد لشاشات برايل
بادئ ذي بدء ، فإنها تختلف في طول السلسلة. أجهزة 60 وأكثر دراية جيدة عند العمل مع كمبيوتر سطح المكتب ، و 40 جهاز مناسب للحمل مع كمبيوتر محمول. الآن هناك شاشات برايل متصلة بالهواتف الذكية والأجهزة اللوحية ، يبلغ طول السلسلة 14 أو 18 إلفة.
في الماضي ، كانت شاشات برايل ضخمة للغاية. 40 - المألوفة ، على سبيل المثال ، كان لها أبعاد ووزن جهاز كمبيوتر محمول 13 بوصة. الآن ، وبنفس القدر من الألفة ، فهي صغيرة بما يكفي لوضع شاشة أمام الكمبيوتر المحمول ، بدلاً من الكمبيوتر المحمول على الشاشة.
هذا ، بطبيعة الحال ، أفضل ، ولكن لا يزال من غير الملائم للغاية إبقاء جهازين منفصلين في حضنك. عندما تعمل على الطاولة ، لا توجد أي شكاوى ، لكن تجدر الإشارة إلى أن الكمبيوتر المحمول يسمى الكمبيوتر المحمول بطريقة مختلفة ، وحاول تبرير اسمه ، حيث اتضح أن شاشة العرض ذات 40 مقعدًا أقل ملاءمة.
لذا انتظر المؤلف إصدار الطراز الجديد الموعود منذ زمن طويل في سلسلة Handy Tech Star. في عام 2002 ، تم إصدار الطراز Handy Tech Braille Star 40 السابق ، حيث مساحة الجسم كافية لوضع الكمبيوتر المحمول في المقدمة. وإذا لم يكن مناسبًا ، يتم توفير حامل قابل للسحب. الآن تم استبدال هذا الطراز بـ Active Star 40 ، وهو مماثل تقريبًا ، ولكن مع إلكترونيات مطورة.

وظل الموقف قابل للسحب:

ولكن الشيء الأكثر ملاءمة في الجدة هو عطلة ما يقرب من حجم الهاتف الذكي (انظر KDPV). يتم فتحه عندما تتحرك المنصة. اتضح أنه غير مريح للحفاظ على الهاتف الذكي هناك ، ولكن بطريقة ما تحتاج إلى استخدام المقصورة الفارغة ، والتي يتم من خلالها توفير الطاقة.
أول ما توصل إليه المؤلف هو وضع Raspberry Pi هناك ، لكن عندما تم شراء الشاشة ، اتضح أنه مع "التوت" ، لا يتحرك الحامل ، الذي يغلق المقصورة. الآن ، إذا كان المجلس فقط 3 ملم أرق ...
لكن أحد الزملاء تحدث عن إطلاق Raspberry Pi Zero ، والذي اتضح أنه صغير جدًا لدرجة أن اثنين منهما سوف يتناسبان مع المقصورة ... أو ربما ثلاثة. تم طلبها على الفور مع بطاقة ذاكرة بسعة 64 جيجابايت وبلوتوث وصفارة وكبل Micro USB. بعد بضعة أيام ، وصل كل هذا ، وساعد الأصدقاء المبصرين المؤلف على إعداد خريطة. كل شيء يعمل على الفور كما ينبغي.
ما تم القيام به لهذا الغرض
في الجزء الخلفي من Handy Tech Active Star 40 ، يوجد منفذي USB للأجهزة مثل لوحات المفاتيح. يتم تضمين لوحة مفاتيح صغيرة متصلة مغناطيسيا. عند توصيل لوحة المفاتيح ، وتعمل الشاشة نفسها عن طريق Bluetooth ، يتعرف الكمبيوتر أيضًا على ذلك على أنه لوحة مفاتيح Bluetooth.
وبالتالي ، إذا قمت بتوصيل "صفارة" Bluetooth إلى Raspberry Pi Zero في حجرة الهاتف الذكي ،
فيمكنها تبادل البيانات مع شاشة برايل عبر البلوتوث باستخدام
BRLTTY ، وإذا قمت أيضًا بتوصيل لوحة مفاتيح
بالشاشة ،
فستعمل "Malinka" و معها
لكن هذا ليس كل شيء. Malinka نفسها ، بدورها ، يمكنها الوصول إلى الإنترنت عبر Bluetooth PAN من أي جهاز يدعمها. قام المؤلف بإعداد هاتفه الذكي وأجهزة الكمبيوتر الخاصة به وفقًا لذلك في المنزل وفي العمل ، ولكنه في المستقبل يخطط لتكييف "توت العليق" واحد إضافي لهذا - هاتف كلاسيكي ، وليس Zero ، متصل بإيثرنت و "صفارة" Bluetooth أخرى.
BlueZ 5 و PAN
طريقة تكوين PAN باستخدام
BlueZ لم تكن واضحة. عثر المؤلف على pyhton script bt-pan (انظر أدناه) الذي يسمح لك بتكوين PAN بدون واجهة المستخدم الرسومية.
مع ذلك ، يمكنك تكوين كل من الخادم والعميل. بعد تلقيه الأمر D-Bus المناسب عند العمل في وضع العميل ، يقوم بإنشاء جهاز شبكة bnep0 جديد فور إنشاء اتصال بالخادم. عادة ، يتم استخدام DHCP لتعيين عنوان IP لهذه الواجهة. في وضع الخادم ، يتطلب BlueZ اسم جهاز الجسر الذي يمكن إضافته بواسطة العبد لتوصيل كل عميل. عادةً ما يتطلب الأمر تكوين عنوان جهاز الجسر وبدء تشغيل خادم DHCP بالإضافة إلى إخفاء عنوان IP على الجسر.
نقطة وصول عموم Bluetooth مع 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 (يعرف كيفية تحريك الأذنين) المعلم الأعمى (أحيانًا الوصول والكم)
لكنه وجد
وظيفة بلوق ونص بيثون لإجراء المكالمات اللازمة ل 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
لن تكون هناك حاجة للملف الثاني إذا كان لدى دبيان IPMasquerade = دعم (انظر
# 787480 ).
بعد تنفيذ
أوامر systemctl daemon-reload وإعادة
تشغيل systemctl 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/pan@.service
[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
بعد بدء الفحص ، انتظر بضع ثوانٍ حتى يظهر الجهاز الذي تحتاجه في القائمة. اكتب عنوانه واستخدمه بإصدار أمر الزوج ، وإذا لزم الأمر ، أمر الثقة.
يجب على العميل أن يفعل الشيء نفسه ، ولكن الأمر الثقة لن يكون ضروريًا بالتأكيد. يحتاج الخادم إلى قبول الاتصال على ملف تعريف NAP دون تأكيد يدوي من قبل المستخدم.
المؤلف ليس متأكداً مما إذا كان هذا هو التسلسل الأمثل للأوامر. ربما يكون كل ما هو مطلوب هو إقران العميل بالخادم وتنفيذ أمر trust على الخادم ، لكنه لم يجربه بعد.
تمكين HID Bluetooth Profile
من الضروري أن يتعرف "Malinka" على لوحة المفاتيح المتصلة بشاشة برايل بواسطة سلك ، وأن يحيلها بالفعل بواسطة الشاشة نفسها عبر Bluetooth. يتم ذلك بنفس الطريقة ، فقط بدلاً من
الوكيل الذي تحتاجه لإعطاء الأمر
KeyboardOnly للوكيل ، وسيجد bluetoothctl جهازًا به ملف تعريف HID.
لكن تكوين Bluetooth من خلال سطر الأوامر معقد بعض الشيء
على الرغم من أن المؤلف تمكن من تكوين كل شيء ، إلا أنه يفهم أن تكوين BlueZ من خلال سطر الأوامر غير مريح. في البداية ، اعتقد أن هناك حاجة إلى وكلاء فقط لإدخال رموز PIN ، ولكن اتضح ، على سبيل المثال ، أنه لتمكين ملف تعريف HID كان على المرء أن يكتب "agent KeyboardOnly". من المثير للدهشة ، أن تطلق مستودعات Bluetooth بحثًا عن البرنامج النصي المطلوب لإطلاق Bluetooth PAN. يتذكر أنه في الإصدار السابق من BlueZ كان هناك أداة pand جاهزة لهذا - أين فعل ذلك في BlueZ 5؟ فجأة ، ظهر حل جديد ، غير معروف للمؤلف ، ولكن ملقى على السطح؟
إنتاجية
وكان معدل نقل البيانات حوالي 120 كيلو بايت في الثانية ، وهو ما يكفي تماما. معالج ARM بسرعة 1 جيجاهرتز سريع للغاية بالنسبة لواجهة سطر الأوامر. لا يزال المؤلف يخطط لاستخدام ssh و emacs بشكل أساسي على الجهاز.
الخطوط وحدة التحكم ودقة الشاشة
دقة الشاشة الافتراضية المستخدمة من قِبل framebuffer على Raspberry Pi Zero غريبة إلى حد ما: تبلغ fbset أنها 656 × 416 بكسل (بالطبع ، الشاشة غير متصلة). باستخدام خط وحدة التحكم مقاس 8 × 16 ، تم الحصول على 82 حرفًا لكل سطر و 26 سطرًا.
من غير المريح العمل مع شاشة برايل المكونة من 40 حرفًا في هذا الوضع. أيضًا ، يرغب المؤلف في عرض أحرف Unicode في طريقة برايل. لحسن الحظ ، يدعم Linux 512 حرفًا ، وفي معظم خطوط وحدة التحكم هناك 256. مع إعداد وحدة التحكم ، يمكنك استخدام خطين من 256 حرفًا معًا. أضاف المؤلف الأسطر التالية إلى ملف / etc / default / console-setup:
SCREEN_WIDTH=80 SCREEN_HEIGHT=25 FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"
ملاحظة: لكي يصبح الخط brl-16x8.psf متاحًا ، تحتاج إلى تثبيت وحدة التحكم برايل.
ما التالي؟
يوجد مقبس 3.5 ملم على شاشة برايل ، لكن المؤلف ليس على دراية بالمحولات لإزالة الصوت من Mini-HDMI. لم يتمكن المؤلف من استخدام بطاقة الصوت المضمنة في "التوت" (غريب ، كان المترجم متأكدًا من عدم وجود بطاقة في Zero ، ولكن هناك طرق لإخراج صوت PWM إلى GPIO). يخطط لاستخدام لوحة وصل USB-OTG وتوصيل بطاقة خارجية وإخراج الصوت إلى السماعة المدمجة في شاشة برايل. لسبب ما ، لم تنجح بطاقتان خارجيتان ، والآن يبحث عن جهاز مماثل على مجموعة شرائح أخرى.
من غير المريح أيضًا إيقاف تشغيل "التوت" يدويًا ، والانتظار لبضع ثوانٍ وإيقاف تشغيل شاشة برايل. وكل ذلك لأنه عندما يتم قطع الاتصال ، فإنه يزيل الطاقة من الموصل في المقصورة. يخطط المؤلف لوضع بطارية عازلة صغيرة في المقصورة ، ومن خلال GPIO ، يبلغ "التوت" عن إيقاف تشغيل الشاشة بحيث تبدأ في إكمال العمل. مثل هذا UPS مصغرة.
صورة النظام
إذا كان لديك نفس شاشة برايل ، وتريد أن تفعل الشيء نفسه معها ، فإن المؤلف مستعد لتقديم صورة جاهزة للنظام (بناءً على امتداد Raspbian). اكتب له عن هذا على العنوان أعلاه. إذا كان هناك الكثير من الناس على استعداد ، فمن الممكن حتى إنتاج مجموعات تشمل كل ما تحتاجه لمثل هذا التغيير.
شكر
بفضل ديف ميلك على تصحيح النص.
بفضل سيمون كينز على الصورة التوضيحية.
شكرًا لزملائك في جامعة غراتس التقنية على التقديم السريع للمؤلف لعالم التوت بي.
ملحوظة:
تم إجراء تغريدة المؤلف
الأولى حول هذا الموضوع (وهي ليست مفتوحة - المترجم) قبل خمسة أيام فقط من نشر النص الأصلي لهذه المقالة ، ويمكننا افتراض أنه ، باستثناء المشكلات الصوتية ، تم حل المهمة عمليًا. بالمناسبة ، قام المؤلف بتحرير النسخة النهائية من النص من "شاشة برايل المكتفية ذاتياً" التي قام بها ، وربطها عبر SSH بالكمبيوتر المنزلي.