Obsah:

Hlasom riadený semafor typu Braillovho písma: 4 kroky (s obrázkami)
Hlasom riadený semafor typu Braillovho písma: 4 kroky (s obrázkami)

Video: Hlasom riadený semafor typu Braillovho písma: 4 kroky (s obrázkami)

Video: Hlasom riadený semafor typu Braillovho písma: 4 kroky (s obrázkami)
Video: Часть 2 - Трипланетная аудиокнига Э. Э. Смита (главы 5–8) 2024, November
Anonim
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma
Hlasom ovládaný semafor so vzorom Braillovho písma

„Lord Vetinari stál pri svojom okne a sledoval vežu semaforu na druhom brehu rieky. Všetkých osem veľkých žalúzií, ktoré boli oproti nemu, zúrivo žmurklo - čierna, biela, čierna, biela, čierna, biela … Do vzduchu lietali informácie. Dvadsať míľ za ním, na ďalšej veži na Sto Lat, ktosi pozeral ďalekohľadom a kričal na čísla. Ako rýchlo na nás príde budúcnosť, pomyslel si. T. Pratchett, Piaty slon

Po vybudovaní hlasovo ovládaného skákacieho konektora založeného na hlasovej súprave AIY som dostal nápad postaviť hlasovo ovládaný semafor, ktorý spojí najnovšie technológie IT so začiatkami telekomunikácií a prenosu dát.

Najprv som dostal nápad replikovať francúzsky semaforový systém od Chappeho, ktorý bol prvým známym systémom pre celonárodné telekomunikácie využívajúcim semaforový systém. Ukázalo sa však, že je to príliš komplikované na to, aby sa to dalo realizovať pomocou štandardných serv do jedného dňa. Mojím ďalším cieľom bolo niečo podobné systému klapiek, ktorý popísal Terry Pratchett, napr. v „Going Postal“ako semaforový systém s uzávierkou 2x4 (nie ako matica 4x4 zobrazená vo filme). K tomuto systému som bohužiaľ nenašiel príliš veľa technických podrobností. Nakoniec som skončil s maticovým semaforovým systémom 2x3, ktorý vyvinul Lord Murray a ktorý istý čas používalo britské námorníctvo. Navyše, šesťspúšťový/bitový systém sa dobre hodí k šiestim servopohonom, ktoré sú k dispozícii na AIY voice HAT. Pretože som však medzi rokmi nemal k dispozícii šesť serv, nakoniec som sa rozhodol najskôr vytvoriť simulátor vyrobený z diód LED.

Pokiaľ ide o zobrazený kód, mohol by sa použiť systém Murray, ale informácie, ktoré som o ňom mal, boli opäť dosť obmedzené a neumožňovali zobrazovať žiadne čísla a symboly. Prišiel som teda k veci, aby som namiesto toho použil Braillov systém, ktorý na zobrazenie písmen, číslic a iných znakov používa aj maticu 2x3. Braillov systém je medzinárodný štandard pre tlač textov čitateľných pre nevidomých. Je to tiež značkovací jazyk, ktorý pomocou číselného indikátora definuje, že čísla sa budú zobrazovať ďalej, a indikátory, ktoré definujú, že jedno alebo mnohé z nasledujúcich písmen sa píšu ako veľké písmená. Rozhodol som sa preto vytvoriť mierne zjednodušený systém, v ktorom budú namiesto neho číslice a niektoré znaky definované Nemethovým rozšírením Braillovho systému, a budem používať aspoň na začiatok veľké písmená. To umožňuje mať jedinečné vzory pre každé písmeno, číslo alebo znak, ktoré sa majú zobraziť v mojej špeciálnej aplikácii, a vynechať analýzu textu potrebnú pre skutočné Braillovo písmo.

Konečné zariadenie umožní vysloviť slovo alebo vetu do systému rozpoznávania hlasu AIY, potom sa údaje hlasového vzoru odošlú prostredníctvom siete WLAN a internetu na niektorý server Google v USA, tam sa dekódujú a aspoň v mojom prípade sa interpretujú. Dáta sú odoslané späť do Európy, kde konečne dostanem rozpoznanú vetu zobrazenú ako textový reťazec. Tento textový reťazec je potom skriptom Python rozdelený na jednotlivé písmená a teraz, v porovnaní so slovníkom definujúcim zodpovedajúce vzory, sa informácie o vzore obnovia a vzory sa zobrazia na matici LED 2x3. Pozrite sa prosím na sprievodné video.

Rýchlosť zobrazenia som nastavil na jeden znak za sekundu, čo by malo byť dostatočne dlhé na to, aby vyškolená osoba vzor identifikovala a preložila. Ďalším možným krokom by bolo použitie zariadenia na rozpoznávanie vzorov, ako je AIY vision HAT (zatiaľ nie je k dispozícii v Európe), na automatické čítanie a interpretáciu vzorov, aby sa kruh uzavrel.

Ďalšie koncepty vylepšení, niektoré s väčším významom pre skutočný svet, sú prediskutované v časti „výhľad“tohto pokynu.

Krok 1: Použitý materiál

Použité materiály
Použité materiály
Použité materiály
Použité materiály

Raspberry Pi 3

AIY Klobúk

Osem bielych LED diód, priemer 5 mm. Tieto bežia na 3V, preto je potrebný odpor.

Odpor 100 kOhm. Možno to nebolo ideálne riešenie, ale bolo po ruke.

Prepojovacie káble

Krátky kúsok drôtu

Breadboard, voliteľné na testovanie nastavenia.

Plastový box na vizitky.

Dva kusy 4 mm plastovej peny, z ktorých niektoré zostali po odpadkoch.

Nejaký kus plastovej membrány, ako difúzor, ako je uvedené vyššie.

Spájkovačka a spájka, nôž.

Krok 2: Nastavenie a používanie

Nastavenie a používanie
Nastavenie a používanie
Nastavenie a používanie
Nastavenie a používanie
Nastavenie a používanie
Nastavenie a používanie

Nastavte Raspberry Pi a AIY HAT podľa pokynov v príručke AIY Voice HAT. Pred zostavením Pi a HAT by som odporučil spájkovať záhlavia aspoň k portom servo, pretože vám to umožní ľahko pripojiť servá, nepájivú dosku alebo diódy LED.

Zobrazovacia skrinka bola postavená z veka plastovej škatule na vizitky, dvoch kúskov penovej hmoty zapadajúcich do škatule a kusu baliacej membrány podobnej veľkosti ako difúzor. V jednej z penových častí bolo zasunutých šesť otvorov a do nich umiestnené LED diódy. Kratšie nožičky (uzemnená strana) LED diód boli navzájom spojené káblom, potom bol pridaný odpor a k nemu bol spájkovaný prepojovací kábel. K ďalším nohám (plus strana) diód LED boli spájkované.

Tieto potom boli pripojené k servoportom na hlasovej HAT AIY predlžovacími káblami, kladnou stranou na (vonkajšie) piny „P in“, záporným konektorom na jeden z (vnútorných) uzemňovacích/mínusových kolíkov. Pozrite sa na priloženú schému.

Pred spájkovaním dôrazne odporúčam otestovať nastavenie na doske.

Teraz bola membrána, LED doska a tesniaca vrstva umiestnené do plastového boxu.

Umiestnite skript Braille_LED_1.py do priečinka src. V prípade bude možno potrebné, aby bol skript najskôr spustiteľný.

Teraz pomocou terminálu Dev (!) Je spustený program Braille_LED_1.py. Zadajte „src/Braille_LED_1.py“a stlačte „Enter“.

Teraz budete vyzvaní, aby ste stlačili tlačidlo poľa AIY a povedali svoje slovo alebo vetu. S určitým oneskorením systém zopakuje to, čo bolo pochopené, a zobrazí to na obrazovke a tiež písmeno po písmene na šiestich LED displejoch.

Ak namiesto vety zadáte kľúčové slovo „Zbohom“, systém vám povie Zbohom a program sa ukončí.

Krok 3: Kód

Kód
Kód

Nasleduje kód, ktorý vám umožní hovoriť s hlasovým zariadením AIY a nechať rozpoznanú vetu zobraziť písmeno po písmene na malej 2x3-LED „semafore“alebo Braillovom písme.

Kód je derivátom skriptu, ktorý som použil pre predchádzajúci projekt s použitím hlasového príkazu HAT AIY, pričom ide o derivát príkladu servo_demo.py popísaného v príručke AIY Voice HAT.

Ako textový súbor môžete nájsť aj slovník s časťou Murrayho kódu, ktorý som našiel na internete. Neobsahuje ani čísla a vynecháva niektoré písmena, čo by tu znamenalo problém.

Jedným obmedzením programu v jeho súčasnom stave je, že ak by znak, ktorý nie je zahrnutý v slovníku, program zrútil. Navyše nejde o zobrazenie celého Braillovho kódu ako značkovacieho jazyka. Ako vidíte na nižšie uvedenom skripte, Nemethov kód pre čísla je nadbytočný s niektorými znakmi v štandardnom Braillovom písme, ale to by nemalo predstavovať problém pre našu konkrétnu aplikáciu.

#!/usr/bin/env python3

# Tento skript je adaptáciou skriptu servo_demo.py pre hlasový klobúk AIY, # optimalizovaný pre zobrazenie symbolu typu Baille na základe AIY import aiy.audio import aiy.cloudspeech import aiy.voicehat z gpiozero import LED #from gpiozero import Button z import času spánok # Slovník: umelo upravená Braillova abeceda, # čísiel a niektoré symboly prevzaté z Nemethovho rozšírenia Braillovho písma Braille_6A = {"": "123456", # medzera "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 čísla, tj ďalšie znaky sú čísla", ":" 2 ",". ": "256", # Bodka, koniec vety (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Nasledujúce písmeno je veľké písmená; Zastavenie čísla? "": "", # Nemethov Braillov kód je matematická expanzia pre 6-bodové Braillovo písmo # pozri: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Čiarka v Braillovom písme „2“: „23“, „3“: „25“, „4“: „256“, „5“: „26“, „6“: „235“, # Nemeth '6', Braillovo písmo '!' "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' je v Nemethe symbol dvoch vzorov, ktorý je tu nahradený 'x', aby sa vynechali zrážky}" "" z dôvodu jednoduchosti sú uvedené štandardné Braillove číselné vzorce nižšie boli nahradené zodpovedajúcimi Nemethovými kódmi „1“: „1“, „2“: „12“, „3“: „14“, „4“: „145“, „5“: „15“, „ 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Sampletext, na účely ladenia def main (): rozpoznávač = aiy.cloudspeech.get_recognizer ().voicehat.get_led () # AIY Stav LED diódy LED aiy.audio.get_recorder (). start () led_1 = LED (26) # 1. konektor, servo0, GPIO 26 # vľavo hore led_2 = LED (6) # 2. konektor, servo1, GPIO 06 # stredná ľavá LED_3 = LED (13) # 3. konektor, servo2, GPIO 13 # ľavá dolná LED_4 = LED (5) # 4. konektor, servo3, GPIO 05 # horná pravá LED_5 = LED (12) # 5. konektor, servo4, GPIO 12 # stredná pravá LED_6 = LED (24) # 4. konektor, servo3, GPIO 13 # vpravo dole # vzdialenosť = Tlačidlo (5) # snímač vzdialenosti pripojený k servo3/GPIO 05, tu sa nepoužíva aiy.audio.say („Ahoj!“,) Aiy.audio.say („Ak chcete začať, stlačte tlačidlo“,) aiy.audio.say („Ak mi poviete zbohom, ukončím program“,), zatiaľ čo True: # sa spustí loop led.set_state (aiy.voicehat. LED. BLINK) print („Ak chcete aktivovať rozpoznávanie hlasu n, stlačte modré tlačidlo a potom hovorte „) tlačidlo print ().wait_for_press () vytlačiť („ počúvam… “) aiy.audio.say („ počúvam “,) led.set_state (aiy.voicehat. LED. BLINK_3) text = elif 'goodbye' in text: aiy.audio.say ("Zbohom",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) spánok (3) tlač ('ahoj! ') prerušenie # zastaví slučku a ukončí program else: print (' povedali ste '', text, '' '') # Umožňuje vám skontrolovať interpretáciu systémov vrátane Captialization aiy.audio.say ('Hádam si povedal',) aiy.audio.say (text,) # akustické overenie Text_up = text.upper () # prenesie všetko na tlač veľkých písmen (Text_up) Text_Len = len (Text_up) tlač (Text_Len) pre i v rozsahu (Text_Len): Lett = Text_up # vyberie jedno písmeno, začínajúc prvým, tj [0] tlač ("Letter =", Lett) Lett_B = Braille_6A [Lett] # vyberie zodpovedajúci kód z slovník. Chýbajúca značka prelomí kód! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # activates LED at servo0 "if" 2 "in Lett_B: print (" LED 2 ") led_2.on () ak "3" v Lett_B: tlač ("LED 3") led_3.on () ak "4" v Lett_B: tlač ("LED 4") led_4.on () ak "5" v Lett_B: vytlač ("LED 5 ") led_5.on () ak" 6 "v Lett_B: print (" LED 6 ") led_6.on () spánok (1) # vzor zobrazenia pre druhú tlač () led_1.off () # deaktivovať všetky diódy LED na servos0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () spánok (0,3) # krátka tmavá prestávka na označenie konca písmena, ak _name_ == '_main_ ': Hlavná()

Krok 4: Výhľad a poznámky

Čo by teda mohlo byť ďalej?

Okrem toho, že ide o meta-vtip IT s video súpravou AIY alebo iným automatizovaným systémom rozpoznávania obrazu uvedeným v úvode, môžu existovať aj ďalšie možnosti rozšírenia konceptu opísaného v tomto návode. Niektoré z nich môžu byť dokonca použiteľné v reálnom svete. Môžu to byť tieto:

- vylepšené programovanie, aby bol text prenesený do štandardného Braillovho kódu so všetkými značkami a kompresiami. To by pre skúseného programátora pythona nemalo byť veľa úsilia. Čo ja nie som, takže akákoľvek pomoc bude vítaná.

- rozšírte systém na maticu 2x4. Tiež by to malo byť možné a pomohlo by to pri použití zodpovedajúcich 8-bodových Braillových kódov, aké používajú elektronické Braillove displeje. Nad týmto by to bolo o niečo bližšie k systému clacks Dearheart.

- zostrojte skutočný brailský displej 2x3 alebo 2x4. Malo by to byť možné buď pomocou radu serva alebo radu 5V mini solenoidov. Hlavnou výzvou by bolo, aby štandardná vzdialenosť medzi hmatovými bodmi bola na elektronických displejoch 2,45 mm alebo 1/10 palca, takže môžu byť potrebné určité prevody a mechanika. Ďalšou výzvou by mohla byť presná regulácia dĺžky tlačenia.

Takéto jednoduché a lacné riešenie by mohlo byť zaujímavé pre širšiu verejnosť, pretože komerčné braillovské displeje sú dosť drahé. Používanie takého hlasom ovládaného systému môže byť pre študentov v Braillovom písme prínosom. Môžu verbálne zadať (anglickú) vetu podľa svojho výberu a dostať text, písmená a znaky na ich končeky prstov.

- skonštruovať systém mechanickej uzávierky pripomínajúci systémy Murray alebo Dearheart. Použitie serva by nemalo byť príliš komplikované a mohlo by byť popísané v inom návode. Alebo to môže byť pekný školský projekt. Má niekto záujem?

–――――

Niektoré poznámky a zaujímavé odkazy:

- Existuje návod popisujúci „DIY semaforovú lampu“, maticu LED 2x4, založenú na demo doske Propeller. Páči sa mi rozloženie, ale programovanie sa mi zdá trochu komplikované. Prosím, pozrite sa sami.

- Teraz som našiel program python na generovanie Braillovho písma s plným zmluvom (stupeň 2). Bohužiaľ je obmedzený na python 2 a americkú anglickú verziu z roku 2002:

- úplnejším programom sa zdá byť liblouis, https://github.com/liblouis/liblouis, ale nemám predstavu, ako to integrovať do tohto riešenia.

- Zdá sa, že zaujímavé pythonové riešenie pochádza z Grécka, https://github.com/ant0nisk/pybrl môže integrovať niekoľko jazykov a vytvárať Braillovo písmo 2. stupňa.

- Nie som ani programátor, ani elektronik, ani som pred pár dňami nemal veľa znalostí o Braillovom písme.

Ak teda uvidíte nejaké chyby, opomenutia alebo máte nejaké nápady na projekt, dajte nám vedieť.

- Ak sa vám páči tento návod, hlasujte zaň!

Odporúča: