جدول المحتويات:

إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل: 4 خطوات (مع صور)
إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل: 4 خطوات (مع صور)

فيديو: إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل: 4 خطوات (مع صور)

فيديو: إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل: 4 خطوات (مع صور)
فيديو: لحظه انفجار قنبله على يد احد مشاهير التيك توك 2024, شهر نوفمبر
Anonim
إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل
إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل
إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل
إشارة ضوئية يتم التحكم فيها بالصوت من نوع برايل
إشارة نمطية من نوع برايل يتم التحكم فيها بالصوت
إشارة نمطية من نوع برايل يتم التحكم فيها بالصوت
إشارة نمطية من نوع برايل يتم التحكم فيها بالصوت
إشارة نمطية من نوع برايل يتم التحكم فيها بالصوت

"اللورد فيتناري وقف عند نافذته يراقب برج السيمافور على الجانب الآخر من النهر. كانت جميع المصاريع الثمانية الكبيرة التي تواجهه تومض بشراسة - أسود ، أبيض ، أسود ، أبيض ، أسود ، أبيض … كانت المعلومات تتطاير في الهواء. عشرين ميلاً خلفه ، على برج آخر في Sto Lat ، كان هناك شخص ما ينظر من خلال التلسكوب ويصرخ بالأرقام. فكّر في مدى سرعة المستقبل. " تي براتشيت ، الفيل الخامس

بعد بناء مقبس قفز يتم التحكم فيه صوتيًا استنادًا إلى مجموعة أدوات AIY الصوتية ، خطرت لي فكرة إنشاء إشارة صوتية يتم التحكم فيها بالصوت ، تجمع بين أحدث تقنيات تكنولوجيا المعلومات مع بدايات الاتصالات ونقل البيانات.

في البداية خطرت لي فكرة استنساخ نظام سيمافور الفرنسي من قبل Chappe ، والذي كان أول نظام معروف للاتصالات على مستوى الدولة باستخدام نظام semaphore. ولكن اتضح أنه معقد للغاية بحيث لا يمكن تحقيقه باستخدام الماكينات القياسية في غضون يوم واحد. كان هدفي التالي شيئًا مشابهًا لنظام clacks الذي وصفه Terry Pratchett ، على سبيل المثال في "Going Postal" ، كنظام إشارة مصراع 2x4 (ليس كما هو موضح في مصفوفة 4x4 في الفيلم). للأسف لم أجد الكثير من التفاصيل الفنية المتوفرة على هذا النظام. لذلك انتهى بي الأمر بنظام سيمافور المصفوفة 2 × 3 الذي طوره اللورد موراي ، والذي استخدمته البحرية البريطانية لفترة من الوقت. بالإضافة إلى ذلك ، يتناسب نظام ستة مصراع / بت بشكل جيد مع موصلات المؤازرة الستة المتوفرة في AIY voice HAT. ولكن ، نظرًا لعدم وجود ستة أجهزة في المتناول بين السنوات ، قررت أخيرًا إنشاء جهاز محاكاة مصنوع من مصابيح LED أولاً.

فيما يتعلق بالرمز المعروض ، يمكن للمرء استخدام نظام Murray ، ولكن مرة أخرى كانت المعلومات المتوفرة لدي محدودة نوعًا ما ، ولا تسمح بعرض أي أرقام ورموز. لذا فقد وصلت إلى النقطة لاستخدام نظام برايل بدلاً من ذلك ، والذي يستخدم أيضًا مصفوفة 2 × 3 لعرض الأحرف والأرقام والعلامات الأخرى. نظام برايل هو المعيار الدولي لطباعة النصوص المقروءة للمكفوفين. إنها أيضًا لغة ترميزية ، تستخدم مؤشر رقم لتحديد الأرقام التي سيتم عرضها بعد ذلك ، والمؤشرات لتحديد أن واحدًا أو أكثر من الأحرف التالية مكتوب كأحرف كبيرة. لذلك قررت إنشاء نظام مبسط قليلاً ، مع الأرقام وبعض العلامات المحددة بواسطة امتداد Nemeth لنظام برايل بدلاً من ذلك ، واستخدام الأحرف الكبيرة فقط ، على الأقل في البداية. يتيح ذلك الحصول على أنماط فريدة لكل حرف أو رقم أو علامة ليتم عرضها في تطبيقي الخاص ، وحذف تحليل النص المطلوب لطريقة برايل الحقيقية.

يسمح الجهاز الأخير بنطق كلمة أو جملة في نظام التعرف على الصوت AIY ، ثم يتم إرسال بيانات نمط الصوت عبر WLAN والإنترنت إلى بعض خدمات Google في الولايات المتحدة ، ويتم فك تشفيرها هناك ، وعلى الأقل في حالتي ، يتم تفسيرها يتم إرسال البيانات مرة أخرى إلى أوروبا ، حيث يتم عرض الجملة المعترف بها كسلسلة نصية في النهاية. يتم بعد ذلك تقسيم هذه السلسلة النصية بواسطة نص Python إلى أحرف فردية ، والآن ، بالمقارنة مع قاموس يحدد الأنماط المقابلة ، يتم استرداد معلومات النمط ويتم عرض الأنماط على مصفوفة 2x3 LED. يرجى إلقاء نظرة على الفيديو المصاحب.

لقد قمت بضبط معدل العرض على حرف واحد في الثانية ، والذي يجب أن يكون طويلًا بما يكفي لشخص مدرب للتعرف على النمط وترجمته. تتمثل الخطوة التالية المحتملة في استخدام جهاز التعرف على الأنماط مثل AIY Vision HAT (غير متوفر حتى الآن في أوروبا) لقراءة الأنماط وتفسيرها تلقائيًا ، وذلك لإغلاق الدائرة.

مزيد من المفاهيم للتحسينات ، بعضها ذو صلة أكثر بالعالم الحقيقي ، تمت مناقشتها في جزء "النظرة" من هذه التعليمات.

الخطوة 1: المواد المستخدمة

المواد المستخدمة
المواد المستخدمة
المواد المستخدمة
المواد المستخدمة

Raspberry Pi 3

AIY صوت HAT

ثمانية مصابيح بيضاء بقطر 5 ملم. تعمل هذه على 3V ، وبالتالي هناك حاجة إلى المقاوم.

100 كيلو أوم المقاوم. ربما لم يكن الحل الأمثل ، لكنه كان في متناول اليد.

كابلات توصيل

قطعة قصيرة من الأسلاك

اللوح ، اختياري لاختبار الإعداد.

علبة بلاستيكية لبطاقات العمل.

قطعتان من الرغوة البلاستيكية 4 مم ، ترك بعضها فوق قمامة.

قطعة من الغشاء البلاستيكي ، ناشر ، على النحو الوارد أعلاه.

لحام الحديد وجندى سكين.

الخطوة 2: الإعداد والاستخدام

الإعداد والاستخدام
الإعداد والاستخدام
الإعداد والاستخدام
الإعداد والاستخدام
الإعداد والاستخدام
الإعداد والاستخدام

قم بإعداد Raspberry Pi و AIY HAT كما هو موضح في دليل AIY voice HAT. أوصي بتوصيل رؤوس اللحام على الأقل بمنافذ المؤازرة قبل تجميع Pi و HAT ، حيث يتيح لك ذلك توصيل الماكينات أو اللوح أو مصابيح LED بسهولة.

تم بناء صندوق العرض من غطاء صندوق بلاستيكي لبطاقات العمل ، وقطعتان من الرغوة في الصندوق وقطعة مماثلة من غشاء التغليف مثل الناشر. في أحد أجزاء الرغوة ، تم دفع ستة ثقوب ووضع مصابيح LED فيها. تم توصيل القدمين الأقصر (الجانب الأرضي) لمصابيح LED مع بعضها البعض بواسطة قطعة من الكبل ، ثم تمت إضافة المقاوم وتم لحام كابل التوصيل بالأخير. تم لحام الكابلات الأخرى (الجانب الزائد) من مصابيح LED.

تم توصيل هذه بعد ذلك بمنافذ المؤازرة على AIY voice HAT عبر كبلات الاستطالة ، والجانب الإيجابي إلى دبابيس "P in" (الخارجية) ، والموصل السالب بأحد دبابيس الأرض (الداخلية) / ناقص. يرجى إلقاء نظرة على المخطط المرفق.

أوصي بشدة باختبار الإعداد على اللوح قبل اللحام.

الآن تم وضع الغشاء ولوحة LED وطبقة الختم في الصندوق البلاستيكي.

ضع النص Braille_LED_1.py في المجلد src. في هذه الحالة ، قد تضطر إلى جعل البرنامج النصي قابلاً للتنفيذ أولاً.

الآن باستخدام Dev terminal (!) بدأ برنامج Braille_LED_1.py. أدخل "src / Braille_LED_1.py" واضغط على "Enter".

سيُطلب منك الآن الضغط على زر مربع AIY وقول كلمتك أو جملتك. مع بعض التأخير ، سيكرر النظام ما تم فهمه ، ويعرضه على الشاشة وكذلك ، حرفًا بحرف ، على شاشة LED الستة.

إذا أعطيت الكلمة الأساسية "Goodbye" بدلاً من جملة ، فسيخبرك النظام وداعًا ، وسيتم إغلاق البرنامج.

الخطوة الثالثة: الكود

الرمز
الرمز

ستجد أدناه الرمز الذي يسمح لك بالتحدث إلى الجهاز الصوتي AIY وعرض الجملة التي تم التعرف عليها حرفًا بحرف على "semaphore" صغير 2x3 LED أو مصفوفة من نوع Braille.

الكود مشتق من البرنامج النصي الذي استخدمته لمشروع سابق باستخدام AIY voice HAT ، كونه مشتقًا من مثال servo_demo.py الموضح في دليل AIY voice HAT.

يمكنك أيضًا العثور على قاموس يحتوي على جزء من كود Murray الذي وجدته على الإنترنت كملف نصي. لا يحتوي على أرقام ولا يحتوي على بعض الأحرف ، مما قد يؤدي إلى مشكلة هنا.

أحد قيود البرنامج في حالته الحالية هو أنه إذا لم يتم تضمين علامة في القاموس ، فسيؤدي ذلك إلى تعطل البرنامج. بالإضافة إلى أنها لا تمثل رمز برايل الكامل كلغة ترميز. كما ترى في البرنامج النصي أدناه ، فإن رمز Nemeth للأرقام زائد عن الحاجة مع وجود بعض العلامات في طريقة برايل القياسية ، ولكن هذا لا ينبغي أن يسبب مشكلة لتطبيقنا المحدد.

#! / usr / bin / env python3

# هذا البرنامج النصي هو تعديل للنص servo_demo.py لـ AIY voice HAT ، # محسّن لعرض رمز نوع Baille المستند إلى AIY استيراد aiy.audio استيراد aiy.cloudspeech استيراد aiy.voicehat من gpiozero import LED # من زر استيراد gpiozero من time import sleep # Dictionary: أبجدية برايل معدلة بشكل مصطنع و # أرقام وبعض الرموز مأخوذة من امتداد Nemeth في Braille Braille_6A = {"": "123456"، # space "A": "1"، "B": "12 "،" C ":" 14 "،" D ":" 145 "،" E ":" 15 "،" F ":" 124 "،" G ":" 1245 "،" H ":" 125 "، "I": "24" ، "J": "245" ، "K": "13" ، "L": "123" ، "M": "134" ، "N": "1345" ، "O ":" 135 "،" P ":" 1234 "،" Q ":" 12345 "،" R ":" 1235 "،" S ":" 234 "،" T ":" 2345 "،" U ": "136" ، "V": "1236" ، "X": "1346" ، "Y": "13456" ، "Z": "1356" ، "W": "2456" ، "#": "3456 "، # بادئة رقم ، أي العلامات التالية هي أرقام" ، ":" 2 "،". ": "256" ، # نقطة ، نهاية الجملة (جيجابايت) "؟": "236" ، "!": "235"، "" ":" 3 "،" - ":" 24 "،"؛ ": "23" ، "كاب": "6" ، # الحرف التالي مكتوب بأحرف كبيرة ؛ رقم توقف؟ "": ""، # Nemeth Braille code هو توسيع رياضي لـ 6-Point Braille # راجع: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2"، # Nemeth Code '1'، برايل 'فاصلة' "2": "23"، "3": "25"، "4": "256"، "5": "26"، "6": "235"، # Nemeth '6'، برايل "!" "7": "2356"، "8": "236"، # Nemeth '8'، برايل '؟' "9": "35" ، "0": "356" ، "+": "346" ، "-": "36" ، "/": "34" ، "(": "12356"، ") ":" 23456 "،" * ":" 1346 "# '*' هو رمز نمطين في Nemeth ، تم استبداله هنا بعلامة 'x' لتجاهل الأعطال}" "" لأسباب تتعلق بالبساطة ، تم تقديم أنماط أرقام برايل القياسية تم استبدالها أدناه برموز Nemeth المصاحبة "1": "1" ، "2": "12" ، "3": "14" ، "4": "145" ، "5": "15" ، " 6 ":" 124 "،" 8 ":" 1245 "،" 9 ":" 24 "،" 0 ":" 245 "،" "#Text =" rbhTZkl 9t64 + 34 #! " # Sampletext ، لأغراض التصحيح ، def main (): Recognizer = aiy.cloudspeech.get_recognizer () Recognizer.expect_phrase ('goodbye) # keyword ، ينهي زر البرنامج = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat.get_led () # AIY Button-LED status aiy.audio.get_recorder (). start () led_1 = LED (26) # الموصل الأول ، servo0 ، GPIO 26 # أعلى اليسار led_2 = LED (6) # الموصل الثاني ، المؤازرة 1 ، GPIO 06 # الأوسط الأيسر led_3 = LED (13) # الموصل الثالث ، المؤازرة 2 ، GPIO 13 # الصمام الأيسر السفلي_4 = LED (5) الموصل الرابع ، المؤازرة 3 ، GPIO 05 # الصمام العلوي الأيمن_5 = LED (12) # الموصل الخامس ، servo4 ، GPIO 12 # منتصف اليمين led_6 = LED (24) موصل # 4st ، servo3 ، GPIO 13 # أقل يمين المسافة = زر (5) # مستشعر المسافة متصل بـ servo3 / GPIO 05 ، غير مستخدم هنا aiy.audio.say ("مرحبًا!" ،) aiy.audio.say ("للبدء ، يرجى الضغط على الزر" ،) aiy.audio.say ("إذا أخبرتني وداعًا ، فسوف أنهي البرنامج" ،) بينما صحيح: # يبدأ loop led.set_state (aiy.voicehat. LED. BLINK) طباعة ("لتنشيط التعرف على الصوت n ، اضغط على الزر الأزرق ، ثم تحدث ") print () button.wait_for_press () print ('Listening…') aiy.audio.say (" أنا أستمع "،) led.set_state (aiy.voicehat. LED. BLINK_3) text = Recognizer.recognize () # سلسلة نصية من الجملة التي تم التعرف عليها led.set_state (aiy.voicehat. LED. OFF) إذا كان النص بلا: aiy.audio.say ("عذرًا ، لم أسمعك." ،) elif "وداعًا" في النص: aiy.audio.say ("وداعًا"،) aiy.audio.say ('Arrivederci'،) aiy.audio.say ('Auf Wiedersehen'،) sleep (3) print ('bye! ') break # stop loop and end program else: print (' You said ''، text، '"') # يتيح لك التحقق من تفسير الأنظمة ، بما في ذلك التسمية التوضيحية aiy.audio.say ('أعتقد أنك قلت' ،) aiy.audio.say (text،) # تحقق acustic Text_up = text.upper () # ينقل الكل إلى طباعة الأحرف الكبيرة (Text_up) Text_Len = len (Text_up) print (Text_Len) لـ i في النطاق (Text_Len): Lett = Text_up # يختار حرفًا واحدًا ، بدءًا من الأول ، مثل [0] طباعة ("Letter ="، Lett) Lett_B = Braille_6A [Lett] # يختار الرمز المقابل من قاموس. علامة مفقودة ستكسر الرمز! print (Lett_B) إذا ("1" في Lett_B): print ("LED 1") led_1.on () # ينشط LED عند servo0 "إذا كان" 2 "في Lett_B: print (" LED 2 ") led_2.on () إذا كان "3" في Lett_B: طباعة ("LED 3") led_3.on () إذا كان "4" في Lett_B: طباعة ("LED 4") led_4.on () إذا كان "5" في Lett_B: طباعة ("LED 5 ") led_5.on () if" 6 "in Lett_B: print (" LED 6 ") led_6.on () sleep (1) # نمط العرض لطباعة ثانية () led_1.off () # قم بإلغاء تنشيط جميع مؤشرات LED على الماكينات 0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () سكون (0.3) # فاصل مظلم قصير ، للإشارة إلى نهاية الحرف إذا _name_ == '_main_ ': الأساسية()

الخطوة 4: التوقعات والملاحظات

إذن ماذا يمكن أن يكون بعد ذلك؟

إلى جانب النكتة الوصفية لتكنولوجيا المعلومات مع مجموعة أدوات الفيديو AIY أو نظام التعرف التلقائي على الصور الآخر المذكور في المقدمة ، قد تكون هناك خيارات أخرى لتوسيع المفهوم الموضح في هذه التعليمات. حتى أن بعضها قد يكون مفيدًا في العالم الحقيقي. يمكن أن تكون هذه:

- برمجة محسنة ، بحيث يتم نقل النص إلى كود برايل القياسي ، مع جميع العلامات والضغط. لا ينبغي أن يكون هذا مجهودًا كبيرًا لمبرمج بايثون ماهر ، وأنا لست كذلك ، لذا فإن أي مساعدة ستكون موضع ترحيب.

- قم بتوسيع النظام إلى مصفوفة 2x4. يجب أن يكون ذلك ممكنًا أيضًا ، وسيساعد على استخدام رموز برايل المقابلة المكونة من 8 نقاط ، كما هو مستخدم في شاشات برايل الإلكترونية. وفوق ذلك ، سيكون أقرب قليلاً إلى نظام dearheart clacks.

- إنشاء شاشة برايل حقيقية 2x3 أو 2x4. يجب أن يكون ممكنًا باستخدام مجموعة من الماكينات أو مجموعة من الملفات اللولبية الصغيرة 5 فولت. يتمثل التحدي الأساسي في أن المسافة القياسية بين نقاط اللمس هي 2.45 مم ، أو 1/10 بوصة ، على الشاشات الإلكترونية ، لذلك قد تكون هناك حاجة إلى بعض التروس والميكانيكا. قد يكون التحدي الآخر هو تنظيم طول الدفع بدقة.

قد يكون مثل هذا الحل البسيط والرخيص موضع اهتمام جمهور أوسع ، حيث أن شاشات برايل التجارية باهظة الثمن. قد تكون هناك فائدة لمتعلمي طريقة برايل باستخدام مثل هذا النظام الذي يتم التحكم فيه بالصوت. حيث يمكنهم إدخال جملة (باللغة الإنجليزية) شفهيًا من اختيارهم ، والحصول على النص والحروف والإشارات المعروضة على طرف (رؤوس) أصابعهم.

- إنشاء نظام غالق ميكانيكي يشبه أنظمة Murray أو Dearheart. باستخدام الماكينات ، لا ينبغي أن يكون ذلك معقدًا للغاية ويمكن وصفه في تعليمات أخرى. أو يمكن أن يكون مشروع مدرسي جميل. أي شخص مهتم؟

–――――

بعض الملاحظات والروابط ذات الأهمية:

- هناك تعليمات تصف "فانوس السيمافور DIY" ، مصفوفة LED 2x4 ، بناءً على بعض اللوحات التجريبية من Propeller. يعجبني التصميم ، لكن البرمجة تبدو معقدة بعض الشيء بالنسبة لي. من فضلك انظر بنفسك.

- عثرت الآن على برنامج بيثون لإنشاء طريقة برايل متعاقد عليها بالكامل (الدرجة 2). لسوء الحظ ، يقتصر على python 2 وإصدار 2002 باللغة الإنجليزية الأمريكية:

- يبدو أن البرنامج الأكثر اكتمالاً هو liblouis ، https://github.com/liblouis/liblouis ، لكن ليس لدي أي فكرة عن كيفية دمج هذا في هذا الحل.

- يبدو أن حل Python المثير للاهتمام يأتي من اليونان ، https://github.com/ant0nisk/pybrl يمكنه دمج عدة لغات وإنشاء طريقة برايل من الدرجة الثانية.

- أنا لست مبرمجًا ولا إلكترونيات ، ولم يكن لدي الكثير من المعرفة بطريقة برايل قبل أيام قليلة.

لذا إذا رأيت أي أخطاء أو سهو أو كان لديك بعض الأفكار للمشروع ، فيرجى إبلاغي بذلك.

- إذا كنت تحب هذه التعليمات ، فيرجى التصويت لها!

موصى به: