Kazalo:

Glasovno vodeni semafor v Braillovi pisavi: 4 koraki (s slikami)
Glasovno vodeni semafor v Braillovi pisavi: 4 koraki (s slikami)

Video: Glasovno vodeni semafor v Braillovi pisavi: 4 koraki (s slikami)

Video: Glasovno vodeni semafor v Braillovi pisavi: 4 koraki (s slikami)
Video: AZBUKA // NAJLEPSE DECIJE PESME // @IDJKids 2024, Julij
Anonim
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi
Glasovno vodeni semafor v Braillovi pisavi

"Lord Vetinari je stal pri svojem oknu in gledal semaforski stolp na drugi strani reke. Vseh osem velikih polknov, obrnjenih proti njemu, je besno utripalo - črno, belo, črno, belo, črno, belo … Informacije so letele v zrak. Dvajset milj za njim, na drugem stolpu na Sto Lat, je nekdo gledal skozi teleskop in kričal številke. Kako hitro nas pripelje prihodnost, je pomislil. " T. Pratchett, Peti slon

Po izdelavi glasovno vodenega skakalnega vtičnice na osnovi glasovalnega kompleta AIY se mi je porodila zamisel o semaforju z glasovnim nadzorom, ki združuje najnovejšo IT tehnologijo z začetki telekomunikacij in prenosa podatkov.

Sprva sem imel idejo, da bi Chappe ponovil francoski sistem semaforja, ki je bil prvi znani sistem za telekomunikacije po vsej državi, ki uporablja sistem semaforja. Vendar se je izkazalo, da je nekoliko preveč zapleteno, da bi ga lahko realizirali s standardnimi servomotorji v enem dnevu. Moja naslednja tarča je bila nekaj podobnega sistemu clacks, ki ga je opisal Terry Pratchett, npr. v "Going Postal" kot semaforski sistem 2x4 zaklopa (ne kot matrika 4x4, prikazana v filmu). Na žalost nisem našel preveč tehničnih podrobnosti o tem sistemu. Tako sem končal z matričnim semaforskim sistemom 2x3, ki ga je razvil Lord Murray, ki ga je nekaj časa uporabljala britanska mornarica. Poleg tega se sistem s šestimi zaklopi/bitom dobro prilega šestim servo konektorjem, ki so na voljo v AIY voice HAT. Ker pa med leti nisem imel pri roki šestih servomotorjev, sem se končno odločil najprej zgraditi simulator iz LED.

Kar zadeva prikazano kodo, bi lahko uporabili sistem Murray, vendar so bile spet informacije, ki sem jih imel na voljo, precej omejene in niso dopuščale prikaza nobenih številk in simbolov. Tako sem prišel do točke, da namesto tega uporabljam Braillov sistem, ki uporablja tudi matriko 2x3 za prikaz črk, številk in drugih znakov. Braillova pisava je mednarodni standard za tiskanje besedil za slepe. Je tudi označevalni jezik, ki uporablja kazalnik številk za določitev, da se bodo naslednje prikazale številke, in kazalnike, ki določajo, da je ena ali več naslednjih črk napisanih z velikimi tiskanimi črkami. Zato sem se odločil, da postavim nekoliko poenostavljen sistem, pri katerem bodo številke in nekateri znaki opredeljeni z Nemethovo razširitvijo Braillove pisave, in vsaj za začetek uporabim velike črke. To omogoča edinstvene vzorce za vsako črko, številko ali znak, prikazane v moji posebni aplikaciji, in izpustitev analize besedila, ki je potrebna za pravo Braillovo pisavo.

Končna naprava omogoča izgovoriti besedo ali stavek v sistemu za prepoznavanje glasu AIY, nato se podatki o vzorcu glasu pošljejo prek WLAN -a in interneta na nekaj Googlovega strežnika v ZDA, tam se dekodirajo in vsaj v mojem primeru interpretirani podatki se pošljejo nazaj v Evropo, kjer končno dobim priznani stavek prikazan kot besedilni niz. Ta niz besedila se nato s skriptom Python razbije na posamezne črke, zdaj pa se v primerjavi s slovarjem, ki opredeljuje ustrezne vzorce, informacije o vzorcu odstranijo in vzorci se prikažejo na matriki LED 2x3. Oglejte si priloženi video.

Hitrost prikaza sem nastavil na en znak na sekundo, kar bi moralo biti dovolj dolgo, da usposobljena oseba prepozna in prevede vzorec. Možen naslednji korak bi bil uporaba naprave za prepoznavanje vzorcev, kot je AIY vision HAT (doslej v Evropi ni na voljo), za samodejno branje in razlago vzorcev, da se krog zapre.

Nadaljnji koncepti izboljšav, od katerih so nekateri bolj pomembni v resničnem svetu, so obravnavani v delu napovedi tega navodila.

Korak: Uporabljeni materiali

Uporabljeni materiali
Uporabljeni materiali
Uporabljeni materiali
Uporabljeni materiali

Malina Pi 3

ALI glas KOP

Osem belih LED, premera 5 mm. Ti delujejo na 3V, zato je potreben upor.

100 kOhm upor. Morda ni popolna rešitev, a je bila pri roki.

Mostični kabli

Kratek kos žice

Ogledna plošča, neobvezno za preizkus nastavitve.

Plastična škatla za vizitke.

Dva kosa 4 mm plastične pene, nekaj ostankov smeti.

Nekaj kosa plastične membrane, kot difuzor, kot zgoraj.

Spajkalnik in spajkanje, nož.

2. korak: Nastavitev in uporaba

Nastavitev in uporaba
Nastavitev in uporaba
Nastavitev in uporaba
Nastavitev in uporaba
Nastavitev in uporaba
Nastavitev in uporaba

Nastavite Raspberry Pi in AIY HAT, kot je navedeno v priročniku AIY voice HAT. Preden sestavite Pi in HAT, priporočam, da glave spajkate vsaj na servo vhode, saj to omogoča preprosto povezavo servomotorjev, plošč ali LED.

Škatla za zaslon je bila izdelana iz pokrova plastične škatle za vizitke, dveh kosov pene, ki se prilegajo škatli, in kosa embalažne membrane podobne velikosti kot difuzor. V enem od penastih delov je bilo potisnjenih šest lukenj in vanje vstavljene LED diode. Krajše noge (ozemljitvena stran) LED so bile med seboj povezane s kosom kabla, nato je bil dodan upor in na slednji je bil spajen skakalni kabel. Na druge noge (plus stran) LED so bili spajkani skakalni kabli.

Ti so bili nato preko podaljševalnih kablov povezani s servo vrati na AIY voice HAT, pozitivna stran na (zunanje) "P in" nožice, negativni priključek na enega od (notranjih) ozemljitvenih/minus zatičev. Oglejte si priloženo shemo.

Močno priporočam, da pred spajkanjem preizkusite nastavitev na plošči.

Zdaj so membrano, LED ploščo in tesnilni sloj postavili v plastično škatlo.

Skript Braille_LED_1.py postavite v mapo src. V tem primeru boste morda morali najprej narediti skript izvedljiv.

Zdaj se z uporabo terminala Dev (!) Zažene program Braille_LED_1.py. Vnesite 'src/Braille_LED_1.py' in pritisnite 'Enter'.

Zdaj boste morali pritisniti gumb polja AIY in izgovoriti svojo besedo ali stavek. Z nekaj zamude bo sistem ponovil, kar je bilo razumljeno, in prikazal na zaslonu ter črko za črko na šestih LED -prikazovalniku.

Če namesto stavka podate ključno besedo »adijo«, vam bo sistem povedal zbogom, program pa bo zaprt.

3. korak: Koda

Kodeks
Kodeks

Spodaj najdete kodo, ki vam omogoča, da se pogovarjate z glasovno napravo AIY in da se prepoznani stavek prikaže črko za črko na majhni matrici 2x3-LED 'semafor' ali Braille.

Koda je izpeljanka iz skripta, ki sem ga uporabil za prejšnji projekt z uporabo glasovne klobuke AIY, in je izpeljanka primera servo_demo.py, opisanega v priročniku za glasovno glasovno pomoč AIY.

Kot besedilno datoteko lahko najdete tudi slovar z delom Murrayjeve kode, ki sem ga našel na internetu. Ne vsebuje številk in izpušča nekatere črke, kar bi tukaj povzročilo težave.

Ena od omejitev programa v njegovem trenutnem stanju je, da bi, če znak ni vključen v slovar, zrušil program. Poleg tega ni predstavitev celotne Brajeve pisave kot označevalnega jezika. Kot lahko vidite v spodnjem skriptu, je koda Nemeth za številke odveč z nekaterimi znaki v standardni braillovi pisavi, vendar to ne bi smelo povzročati težav za našo posebno aplikacijo.

#!/usr/bin/env python3

# Ta skript je prilagoditev skripta servo_demo.py za glasovno klobuk AIY, # optimiziran za prikaz simbola tipa Baille, ki temelji na AIY, uvoz aiy.audio uvoz aiy.cloudspeech uvoz aiy.voicehat iz gpiozero import LED #iz gumba gpiozero import iz time import sleep # Slovar: umetno spremenjena abeceda Brailleove pisave, # številke in nekateri simboli, vzeti iz Nemethove razširitve Braillove pisave Braille_6A = {"": "123456", # presledek "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 ", # Predpona številke, tj. Naslednji znaki so številke", ":" 2 ",". ": "256", # točka, konec stavka (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Naslednja črka je z velikimi tiskanimi črkami; Številka-stop? "": "", # Nemeth Brailleova koda je matematična razširitev za 6-točkovno Braillovo pisavo # glej: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code "1", Brajeva pisava "vejica" "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth "6", Braillova pisava '!' "7": "2356", "8": "236", # Nemeth '8', Braillova pisava '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' je simbol z dvema vzorcema v Nemethu, ki je zaradi preprostosti nadomeščen z 'x', da se izognejo zrušitvam}" "" zaradi enostavnosti so podani standardni vzorci Brajevih številk spodaj so bile zamenjane z ustreznimi kodami Nemeth "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Vzorec besedila, za namene odpravljanja napak def main (): prepoznavnik = aiy.cloudspeech.get_recognizer () prepoznavnik.expect_phrase ('zbogom') # ključna beseda, konča programski gumb = aiy.voicehat.get_button () # Status gumba AIY led = aiy.voicehat.get_led () # Stanje LED-gumba AIY aiy.audio.get_recorder (). start () led_1 = LED (26) # 1. priključek, servo0, GPIO 26 # zgornji levi led_2 = LED (6) # 2. priključek, servo1, GPIO 06 # srednji levi led_3 = LED (13) # 3. priključek, servo2, GPIO 13 # spodnji levi led_4 = LED (5) # 4. priključek, servo3, GPIO 05 # zgornji desni led_5 = LED (12) # 5. priključek, servo4, GPIO 12 # srednji desni led_6 = LED (24) # 4. priključek, servo3, GPIO 13 # spodnji desni # razdalja = Gumb (5) # senzor razdalje priključen na servo3/GPIO 05, tukaj se ne uporablja aiy.audio.say ("Pozdravljeni!",) Aiy.audio.say ("Za začetek, pritisnite gumb",) aiy.audio.say ("Če se poslovite, bom končal program",) medtem ko je True: # se začne loop led.set_state (aiy.voicehat. LED. BLINK) print ("Za aktiviranje prepoznavanja glasu n, pritisnite modri gumb, nato govorite ") gumb print ().wait_for_press () print (" Poslušanje … ") aiy.audio.say (" Poslušam ",) led.set_state (aiy.voicehat. LED. BLINK_3) besedilo = prepoznavalec.recognize () # besedilni niz znova prepoznanega stavka led.set_state (aiy.voicehat. LED. OFF), če je besedilo nič: aiy.audio.say ('Oprosti, nisem te slišal.',) elif 'zbogom' v besedilu: aiy.audio.say ("Zbogom",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) sleep (3) print ('adijo! ') break # stop zanke in konča program else: print (' You said "', text,'" ') # Omogoča vam, da preverite razlago sistemov, vključno z velikimi črkami aiy.audio.say (' Mislim, da ste rekli ',) aiy.audio.say (besedilo,) # akustično preverjanje Text_up = text.upper () # prenese vse v tiskanje velikih črk (Text_up) Text_Len = len (Text_up) print (Text_Len) za i v dosegu (Text_Len): Lett = Text_up # Izbere eno črko, začenši s prvo, tj. [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Izbere ustrezno kodo iz slovar. Manjkajoči znak bo zlomil kodo! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # aktivira LED na servo0 "če je" 2 "v Lett_B: print (" LED 2 ") led_2.on () če je "3" v Lett_B: print ("LED 3") led_3.on () če je "4" v Lett_B: print ("LED 4") led_4.on () če je "5" v Lett_B: print ("LED 5 ") led_5.on () če je" 6 "v Lett_B: print (" LED 6 ") led_6.on () sleep (1) # vzorec prikaza za drugo tiskanje () led_1.off () # onemogoči vse LED na servosih0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () spanje (0.3) # kratek temni premor, ki označuje konec črke, če je _name_ == '_main_ ': main ()

4. korak: Outlook in opombe

Kaj bi torej lahko bilo naslednje?

Poleg tiste IT šale z video kompletom AIY ali drugim avtomatiziranim sistemom za prepoznavanje slik, omenjenim v uvodu, lahko obstajajo še druge možnosti za razširitev koncepta, opisanega v tem navodilu. Nekateri od njih so lahko celo v resnični uporabi. To so lahko:

- izboljšano programiranje, tako da se besedilo prenese v standardno Braillovo kodo z vsemi oznakami in stiski. Za izkušenega programerja pythona to ne bi smelo biti veliko napora, kar pa nisem, zato bi bila vsaka pomoč dobrodošla.

- razširite sistem na matriko 2x4. To bi moralo biti tudi možno in bi pomagalo pri uporabi ustreznih 8-točkovnih Brajevih pisav, kot jih uporabljajo elektronski brajici. Nad tem bi bilo nekoliko bližje sistemu Dearheart clacks.

- zgradite pravi 2x3 ali 2x4 Braillov zaslon. Možno bi bilo uporabiti niz servomotorjev ali niz 5V mini solenoidov. Primarni izziv bi bil, da je standardna razdalja med taktilnimi točkami 2,45 mm ali 1/10 palca na elektronskih zaslonih, zato bodo morda potrebni nekateri zobniki in mehanika. Drugi izziv bi lahko bil natančna regulacija dolžine potiska.

Tako preprosta in poceni rešitev bi lahko bila zanimiva za širšo javnost, saj so komercialni brailleovi zasloni precej dragi. Učenci braillove pisave bi lahko imeli korist, če bi uporabljali tak sistem z glasovnim nadzorom. Ker bi lahko ustno vnesli (angleški) stavek po lastni izbiri in dobili besedilo, črke in znake, prikazane na konicah prstov.

- izdelati mehanski sistem zaklopov, ki spominja na sisteme Murray ali Dearheart. Uporaba servomotorjev ne sme biti preveč zapletena in bi jo lahko opisali v drugem navodilu. Ali pa bi bil lahko lep šolski projekt. Je kdo zainteresiran?

–――――

Nekaj pripomb in povezav, ki nas zanimajo:

- Obstaja navodilo, ki opisuje "DIY semaforsko svetilko", 2x4 LED matriko, ki temelji na neki demo plošči Propeller. Postavitev mi je všeč, vendar se mi zdi programiranje nekoliko zapleteno. Prosim, poglejte sami.

- Zdaj sem našel program python za ustvarjanje Braillove pisave v celoti s pogodbo (2. stopnja). Na žalost je omejen na python 2 in ameriško angleško različico iz leta 2002:

- zdi se, da je bolj popoln program liblouis, https://github.com/liblouis/liblouis, vendar nimam pojma, kako to vključiti v to rešitev.

- Zdi se, da zanimiva rešitev python prihaja iz Grčije, https://github.com/ant0nisk/pybrl lahko integrira več jezikov in ustvari Brailleovo pisavo 2. stopnje.

- Nisem ne programer, ne elektronik, niti nisem imel pred dnevi veliko znanja o brajici.

Če opazite napake, opustitve ali imate kakšno idejo za projekt, mi to sporočite.

- Če vam je ta pouk všeč, glasujte zanj!

Priporočena: