Mündəricat:

Səs İdarə Edilən, Brayl Tipi Nümunə Semaforu: 4 Addım (Şəkillərlə)
Səs İdarə Edilən, Brayl Tipi Nümunə Semaforu: 4 Addım (Şəkillərlə)

Video: Səs İdarə Edilən, Brayl Tipi Nümunə Semaforu: 4 Addım (Şəkillərlə)

Video: Səs İdarə Edilən, Brayl Tipi Nümunə Semaforu: 4 Addım (Şəkillərlə)
Video: Journey into the Bizarre World of the Weird West 2024, Noyabr
Anonim
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu
Səs İdarə Edilən, Brayl Tipli Nümunə Semaforu

"Lord Vetinari, çayın o tayındakı semafor qülləsini seyr edən pəncərəsində dayandı. Qarşısına çıxan böyük səkkiz qapının hamısı qəzəblə yanıb -sönürdü - qara, ağ, qara, ağ, qara, ağ … Məlumatlar havaya uçurdu. İyirmi mil arxada, Sto Latdakı başqa bir qüllədə, kimsə bir teleskopla baxaraq nömrələri qışqırırdı. Gələcəyin bizə nə qədər tez gələcəyini düşünürdü. " T. Pratchett, Beşinci Fil

AIY səs dəsti əsasında səslə idarə olunan bir atlama jakı qurduqdan sonra, telekommunikasiya və məlumat ötürülməsinin başlanğıcı ilə ən son İT texnologiyasını bir araya gətirərək səslə idarə olunan bir semafor qurmaq fikrim var idi.

Əvvəlcə, semafor sistemindən istifadə edərək, ölkə miqyasında telekommunikasiya üçün tanınan ilk sistem olan Chappe tərəfindən Fransız semafor sistemini təkrarlamaq fikrim var idi. Ancaq bir gün ərzində standart servolardan istifadə etməklə bir az mürəkkəb olduğu ortaya çıxdı. Növbəti hədəfim Terry Pratchett tərəfindən təsvir edilən clacks sisteminə bənzər bir şey idi. "Going Postal" da, 2x4 deklanşör semafor sistemi olaraq (filmdə təsvir edilən 4x4 matris kimi deyil). Təəssüf ki, bu sistemdə çox texniki detallar tapa bilmədim. Lord Murray tərəfindən bir müddət İngilis Donanması tərəfindən istifadə edilən 2x3 matrix semafor sistemi ilə sona çatdım. Əlavə olaraq, altı çekim/bit sistemi, AIY Voice HAT -da mövcud olan altı servo konnektora yaxşı uyğun gəlir. Ancaq illər ərzində əlimdə altı servo olmadığından nəhayət əvvəlcə LED -lərdən hazırlanmış bir simulyator qurmağa qərar verdim.

Göstərilən koda gəldikdə, Murray sistemindən istifadə etmək olardı, amma yenə də əlimdə olan məlumatlar heç bir rəqəm və simvol göstərməyə imkan vermirdi. Beləliklə, hərfləri, rəqəmləri və digər işarələri göstərmək üçün 2x3 matrisdən istifadə edən Braille sistemindən istifadə etmək nöqtəsinə gəldim. Brayl sistemi korlar üçün oxunan mətnləri çap etmək üçün beynəlxalq standartdır. Bundan əlavə, rəqəmlərin yanında göstəriləcəyini və aşağıdakı hərflərdən birinin və ya bir çoxunun baş hərf kimi yazıldığını təyin etmək üçün rəqəm göstəricisi istifadə edən bir işarələmə dilidir. Buna görə bir az sadələşdirilmiş bir sistem qurmağa qərar verdim, bunun əvəzinə Brayl sisteminin Nemeth uzantısı ilə təyin olunan rəqəmlər və bəzi işarələr və ən azı başlanğıc üçün böyük hərflərdən istifadə edin. Bu, mənim xüsusi tətbiqimdə göstəriləcək hər hərf, rəqəm və ya işarənin özünəməxsus nümunələrinə malik olmağa və həqiqi Brayl əlifbası üçün lazım olan mətn analizini buraxmağa imkan verir.

Son cihaz AIY səs tanıma sistemində bir söz və ya cümlə danışmağa imkan verir, sonra səs nümunəsi məlumatları WLAN və internet vasitəsilə ABŞ -ın bəzi Google xidmətlərinə göndərilir, orada deşifr olunur və ən azından mənim vəziyyətimdə şərh olunur. məlumatlar Avropaya geri göndərilir, burada nəhayət tanınmış cümləni mətn sətri kimi göstərirəm. Bu mətn sətri daha sonra Python skripti ilə ayrı -ayrı hərflərə bölünür və indi müvafiq nümunələri müəyyən edən bir lüğətlə müqayisədə naxış məlumatı geri çəkilir və naxışlar 2x3 LED matrisində göstərilir. Zəhmət olmasa müşayiət olunan videoya baxın.

Görünüş sürətini saniyədə bir simvol olaraq təyin etdim ki, bu da təlim keçmiş bir insanın nümunəni müəyyən etməsi və tərcümə etməsi üçün kifayət qədər uzun olmalıdır. Mümkün olan növbəti addım, dairələri bağlamaq üçün nümunələri avtomatik oxumaq və şərh etmək üçün AIY vision HAT (indiyə qədər Avropada mövcud deyil) kimi bir model tanıma qurğusundan istifadə etmək olar.

Bu təlimatın "dünyagörüşü" hissəsində bəziləri daha çox real alaka malik olan təkmilləşdirmələr üçün əlavə konsepsiyalar müzakirə olunur.

Addım 1: İstifadə olunan materiallar

İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar

Moruq Pi 3

AYY SES HAT

Səkkiz ağ LED, diametri 5 mm. Bunlar 3V -də işləyir, buna görə bir rezistora ehtiyac var.

100kOhm müqavimət Bəlkə də mükəmməl bir həll deyil, amma əlində idi.

Keçid kabelləri

Qısa bir tel parçası

Çörək lövhəsi, quruluşu yoxlamaq üçün isteğe bağlıdır.

Vizit kartları üçün plastik qutu.

İki ədəd 4 mm plastik köpük, bəziləri zibil üzərində qalıb.

Yuxarıdakı kimi diffuzor kimi bir plastik membran parçası.

Lehimləmə dəmir və lehim, bıçaq.

Addım 2: Quraşdırma və İstifadə

Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə

Raspberry Pi və AIY HAT -ı AIY Voice HAT təlimatında göstərildiyi kimi qurun. Pi və HAT -ı yığmadan əvvəl başlıqları ən azından servo limanlarına lehimləməyi məsləhət görürəm, çünki bu, servoları, çörək taxtasını və ya LED -ləri asanlıqla bağlamağa imkan verir.

Göstərici qutusu vizit kartları üçün plastik qutunun qapağından, qutuya iki ədəd köpükdən və diffuzor kimi bənzər ölçüdə bir qablaşdırma membranından hazırlanmışdır. Köpük hissələrindən birində altı deşik itildi və onlara LEDlər yerləşdirildi. LED -lərin qısa ayaqları (yer tərəfi) bir -biri ilə bir kabel parçası ilə bağlandı, sonra bir rezistor əlavə edildi və ikincisinə bir keçid kabeli lehim edildi. LED -lərin digər ayaqlarına (üst tərəfə) tullanan kabellər lehimli idi.

Bunlar daha sonra uzanma kabelləri vasitəsi ilə AIY Voice HAT üzərindəki servo portlara, müsbət tərəfi (xarici) "P in" sancaqlarına, mənfi bağlayıcı (daxili) torpaq/eksi sancaqlardan birinə bağlandı. Zəhmət olmasa əlavə edilmiş sxemə baxın.

Lehimdən əvvəl quruluşu bir çörək taxtasında sınamağı şiddətlə tövsiyə edərdim.

İndi membran, LED lövhə və sızdırmazlıq təbəqəsi plastik qutuya yerləşdirildi.

Braille_LED_1.py skriptini src qovluğuna yerləşdirin. Bu halda, əvvəlcə skriptin icra oluna bilməsi lazım ola bilər.

İndi Dev terminalından istifadə edərək (!) Braille_LED_1.py proqramı başlayır. 'Src/Braille_LED_1.py' daxil edin və 'Enter' düyməsini basın.

İndi AIY qutusunun düyməsini basmağınız və sözünüzü və ya cümlənizi söyləməyiniz istəniləcək. Bir az gecikmə ilə sistem başa düşülənləri təkrarlayacaq və ekranda, hərflə bərabər altı LED ekranda göstərəcək.

Cümlə əvəzinə "Əlvida" sözünü versəniz, sistem sizə Əlvida deyəcək və proqram bağlanacaq.

Addım 3: Kod

Kod
Kod

AIY səs cihazı ilə danışmağa və tanınmış cümləni hərflə kiçik 2x3 LED 'semafor' və ya Brayl tipli matrisdə göstərməyə imkan verən kodu aşağıda tapa bilərsiniz.

Kod, AIY səs HAT təlimatında təsvir olunan servo_demo.py nümunəsinin bir törəməsi olaraq əvvəlki bir layihə üçün AIY səs HAT istifadə edərək istifadə etdiyim skriptin bir törəməsidir.

Murray kodunun internetdə tapdığım hissəsi olan bir mətni fayl olaraq da tapa bilərsiniz. Burada nə rəqəmlər var, nə də hərfləri buraxır ki, bu da problem yaradır.

Proqramın mövcud vəziyyətindəki bir məhdudiyyət, lüğətə daxil edilməyən bir işarənin proqramı çökdürməsidir. Əlavə olaraq, tam bir Brayl Kodunun İşarələmə dili olaraq təqdimatı deyil. Aşağıdakı skriptdə görə biləcəyiniz kimi, nömrələr üçün Nemeth kodu, standart Brayl əlifbasındakı bəzi işarələrlə lazımsızdır, lakin bu, xüsusi tətbiqimiz üçün problem yaratmamalıdır.

#!/usr/bin/env python3

# Bu skript, AIY səs HAT üçün servo_demo.py skriptinin uyğunlaşdırılmasıdır, # AIY əsaslı Baille tipli simvolu göstərmək üçün optimallaşdırılmışdır. vaxt idxalı yuxu # Sözlük: süni şəkildə dəyişdirilmiş Braille əlifbası, Braille Braille_6A = {"": "123456", # boşluq "A": "1", "B": "12 "," C ":" 14 "," D ":" 145 "," E ":" 15 "," F ":" 124 "," G ":" 1245 "," H ":" 125 ", "Mən": "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 ", # Number Prefix, yəni növbəti işarələr ədədlərdir", ":" 2 ",". ": "256", # Nöqtə, cümlə sonu (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Şapka": "6", # Növbəti məktub Böyük Yazıdadır; Nömrəni dayandırmaq? "": "", # Nemeth Braille kodu, 6 nöqtəli Braille üçün riyazi bir genişləndirmədir # baxın: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Kodu '1', Braille 'virgül' "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Braille '! "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*', Nemethdəki iki naxış simvoludur, burada çökmələri aradan qaldırmaq üçün 'x' ilə əvəz edilmişdir}" "", standart Braille rəqəm nümunələri aşağıda "1", "1", "2": "12", "3": "14", "4": "145", "5": "15", "Nemeth-Codes" yazıldı. 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Nümunə mətn, ayıklama məqsədləri üçün def main (): tanıyıcı = aiy.cloudspeech.get_recognizer () tanıyıcı.kəsim_fazası ('əlvida') # açar sözü, proqram düyməsini bitirir = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat.get_led () # AIY Button-LED statusu aiy.audio.get_recorder (). start () led_1 = LED (26) # 1-ci bağlayıcı, servo0, GPIO 26 # yuxarı sol led_2 = LED (6) # 2-ci bağlayıcı, servo1, GPIO 06 # orta sol led_3 = LED (13) # 3 -cü bağlayıcı, servo2, GPIO 13 # aşağı sol led_4 = LED (5) # 4 -cü bağlayıcı, servo3, GPIO 05 # yuxarı sağ led_5 = LED (12) # 5 -ci bağlayıcı, servo4, GPIO 12 # orta sağ led_6 = LED (24) # 4 -cü bağlayıcı, servo3, GPIO 13 # aşağı sağ # məsafə = Düymə (5) # servo3/GPIO 05 -ə bağlı məsafə sensoru, burada istifadə olunmur aiy.audio.say ("Salam!",) Aiy.audio.say ("Başlamaq üçün düyməni basın"), aiy.audio.say ("Mənə əlvida desən, proqramı bitirəcəyəm"), True isə: # başlayır loop led.set_state (aiy.voicehat. LED. BLINK) çap ("Səs tanıma funksiyasını aktivləşdirmək üçün n, mavi düyməni basın, sonra danışın ") print () button.wait_for_press () print ('Listening…') aiy.audio.say (" Dinləyirəm ",) led.set_state (aiy.voicehat. LED. BLINK_3) text = tanınan elif 'elveda' mətnində: aiy.audio.say ("Əlvida",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) yuxu (3) çap ('sağol! ') break # döngəni dayandırır və başqa proqramı bitirir: print (' Dediniz "', mətn,'" ') # # aiy.audio.say (' Deyəsən dediniz ',) aiylə birlikdə sistemlərin şərhini yoxlamağa imkan verir..audio.say (mətn,) # akustik yoxlama Text_up = text.upper () # hamısını böyük hərflərə köçürür (Text_up) Text_Len = len (Text_up) print (Text_Len) i aralığında (Text_Len): Lett = Text_up # İlkdən başlayaraq tək bir hərf seçir, yəni [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # lüğət. Eksik bir işarə kodu pozacaq! print (Lett_B) if (Lett_B -də "1"): print ("LED 1") led_1.on () #, Lett_B -də "2" olarsa # servo0 "da LED -i aktivləşdirir: print (" LED 2 ") led_2.on () Lett_B -də "3" olarsa: yazdır ("LED 3") led_3.on () Lett_B -də "4" olarsa: print ("LED 4") led_4.on () Lett_B -də "5" olarsa: ("LED 5") ") led_5.on () Lett_B -də" 6 "olarsa: çap edin (" LED 6 ") led_6.on () yuxu (1) ikinci bir çap üçün # ekran nümunəsi () led_1.off () # servosdakı bütün LEDləri söndürün -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () yuxu (0.3) # qısa qaranlıq fasilə, əgər _name_ == '_main_ ': main ()

Addım 4: Outlook və şərhlər

Bəs bundan sonra nə ola bilər?

AIY video dəsti və ya girişdə göstərilən başqa bir avtomatlaşdırılmış görüntü tanıma sistemi ilə İT meta zarafatının yanında, bu təlimatda təsvir olunan konsepsiyanı genişləndirmək üçün başqa variantlar da ola bilər. Bəziləri hətta real həyatda istifadə edilə bilər. Bunlar ola bilər:

- təkmilləşdirilmiş proqramlaşdırma, beləliklə mətn bütün işarələmələr və sıxılmalarla standart Braille koduna köçürülür. Bacarıqlı bir python proqramçısı üçün bu çox səy göstərməməlidir.

- sistemi 2x4 matrisə qədər genişləndirin. Elektron Brayl əlifbası ekranlarında istifadə edildiyi kimi, 8 nöqtəli Brayl əlifbası kodlarının da istifadə edilməsinə köməkçi olardı. Bunun üstündə, Dearheart clacks sisteminə bir az daha yaxın olardı.

- real 2x3 və ya 2x4 Braille ekranı qurun. Bir dizi servo və ya 5V mini solenoiddən istifadə etmək mümkün olmalıdır. Əsas problem, toxunma nöqtələri arasındakı standart məsafənin elektron displeylərdə 2.45 mm və ya 1/10 düym olmasıdır, buna görə bəzi dişli və mexanika tələb oluna bilər. Başqa bir problem itələmə uzunluğunun dəqiq tənzimlənməsi ola bilər.

Braille əlifbası ilə işləyən ekranlar olduqca bahalı olduğu üçün belə sadə və ucuz bir həll daha geniş bir ictimaiyyət üçün maraqlı ola bilər. Brayl əlifbası öyrənənlər üçün belə bir səslə idarə olunan sistemdən istifadə etmək faydalı ola bilər. Sözlü olaraq istədikləri (İngilis) cümləni daxil edə və barmaqlarının uclarında yazılan mətni, hərfləri və işarələri əldə edə bilərlər.

- Murray və ya Dearheart sistemlərinə bənzəyən mexaniki bir çekim sistemi qurun. Servolardan istifadə etmək çox çətin olmamalıdır və başqa bir təlimatda təsvir edilə bilər. Ya da gözəl bir məktəb layihəsi ola bilər. Maraqlananlar varmı?

–――――

Bəzi şərhlər və maraqlı bağlantılar:

- Bəzi Propeller demo lövhəsinə əsaslanan 2x4 LED matrisli "DIY semafor fənəri" ni izah edən bir təlimat var. Layihəni bəyənirəm, amma proqramlaşdırma mənə bir az mürəkkəb görünür. Zəhmət olmasa özünüzə baxın.

- İndi Tam Müqaviləli (2 -ci dərəcəli) Brayl əlifbası yaratmaq üçün bir python proqramı tapdım. Təəssüf ki, python 2 və 2002 Amerika İngilis versiyası ilə məhdudlaşdı:

- daha tam bir proqram liblouis kimi görünür, https://github.com/liblouis/liblouis, amma bunu bu həll yoluna necə inteqrasiya edəcəyimi bilmirəm.

- Maraqlı bir python həlli Yunanıstandan gəlir, https://github.com/ant0nisk/pybrl bir neçə dili birləşdirə və 2 -ci dərəcəli Brayl əlifbası yarada bilər.

- Nə proqramçı, nə də elektronika işçisi deyiləm və bir neçə gün əvvəl Brayl əlifbası haqqında çox məlumatım yox idi.

Beləliklə, hər hansı bir səhv, nöqsan və ya layihə ilə bağlı fikirləriniz varsa, mənə bildirin.

- Bu təlimatı sevirsinizsə, zəhmət olmasa ona səs verin!

Tövsiyə: