Obsah:

Hlasem ovládaný semafor typu Braillova písma: 4 kroky (s obrázky)
Hlasem ovládaný semafor typu Braillova písma: 4 kroky (s obrázky)

Video: Hlasem ovládaný semafor typu Braillova písma: 4 kroky (s obrázky)

Video: Hlasem ovládaný semafor typu Braillova písma: 4 kroky (s obrázky)
Video: Часть 2 - Трипланетная аудиокнига Э. Э. Смита (главы 5–8) 2024, Listopad
Anonim
Hlasem řízený vzorový semafor typu Braillova písma
Hlasem řízený vzorový semafor typu Braillova písma
Hlasem ovládaný, semafor typu Braillova písma
Hlasem ovládaný, semafor typu Braillova písma
Hlasem řízený vzorový semafor typu Braillova písma
Hlasem řízený vzorový semafor typu Braillova písma
Hlasem řízený vzorový semafor typu Braillova písma
Hlasem řízený vzorový semafor typu Braillova písma

„Lord Vetinari stál u svého okna a sledoval věž semaforu na druhé straně řeky. Všech osm velkých okenic, které stály proti němu, zuřivě blikaly - černá, bílá, černá, bílá, černá, bílá … Informace poletovaly do vzduchu. Dvacet mil za ním, na další věži na Sto Lat, někdo koukal dalekohledem a křičel na čísla. Jak rychle na nás přijde budoucnost, pomyslel si. T. Pratchett, Pátý slon

Poté, co jsem postavil hlasově ovládaný skákací konektor založený na hlasové sadě AIY, dostal jsem nápad vybudovat hlasem ovládaný semafor, který spojí nejnovější IT technologie se začátky telekomunikací a přenosu dat.

Nejprve jsem měl nápad replikovat francouzský semaforový systém od Chappeho, což byl první známý systém pro celonárodní telekomunikace využívající semaforový systém. Ukázalo se však, že je to příliš komplikované, než aby to bylo možné realizovat pomocí standardních serv do jednoho dne. Můj další cíl byl něco podobného systému klapek, který popsal Terry Pratchett, např. v "Going Postal", jako semaforový systém s clonou 2x4 (ne jako matice 4x4 zobrazená ve filmu). Bohužel jsem v tomto systému nenašel příliš mnoho technických podrobností. Takže jsem skončil s maticovým semaforovým systémem 2x3 vyvinutým lordem Murrayem, který nějakou dobu používalo britské námořnictvo. Kromě toho šestistupňový/bitový systém dobře zapadá do šesti servo konektorů dostupných na AIY voice HAT. Protože jsem ale mezi lety neměl po ruce šest serva, nakonec jsem se rozhodl nejprve postavit simulátor z LED diod.

Pokud jde o zobrazený kód, bylo možné použít systém Murray, ale informace, které jsem o něm měl k dispozici, byly opět poměrně omezené a neumožňovaly zobrazovat žádná čísla a symboly. Takže jsem přišel k věci, abych místo toho použil systém Braillova písma, který také používá matici 2x3 k zobrazování písmen, číslic a dalších znaků. Systém Braillova písma je mezinárodní standard pro tisk textů čitelných pro nevidomé. Je to také značkovací jazyk, který pomocí číselného indikátoru definuje, že se čísla zobrazí dále, a indikátory, které definují, že jedno nebo více z následujících písmen se zapisují velkými písmeny. Rozhodl jsem se proto vytvořit mírně zjednodušený systém, kde místo toho budou čísla a některé znaky definovány Nemethovým rozšířením braillského systému a alespoň na začátek použiji velká písmena. To umožňuje mít jedinečné vzory pro každé písmeno, číslo nebo znak, které mají být zobrazeny v mé speciální aplikaci, a vynechat analýzu textu požadovanou pro skutečné Braillovo písmo.

Konečné zařízení umožňuje vyslovit slovo nebo větu do systému rozpoznávání hlasu AIY, poté jsou data hlasových vzorů odeslána prostřednictvím sítě WLAN a internetu na některý server Google v USA, tam jsou dekódovány a, alespoň v mém případě, interpretované data jsou odesílána zpět do Evropy, kde konečně dostanu rozpoznanou větu zobrazenou jako textový řetězec. Tento textový řetězec je potom skriptem Pythonu rozdělen na jednotlivá písmena a nyní, ve srovnání se slovníkem definujícím odpovídající vzory, jsou informace o vzoru obnoveny a vzory jsou zobrazeny na matici LED 2x3. Podívejte se prosím na doprovodné video.

Nastavil jsem rychlost zobrazení na jeden znak za sekundu, což by mělo být dostatečně dlouhé na to, aby vyškolená osoba vzor identifikovala a přeložila. Dalším možným krokem by bylo použití zařízení pro rozpoznávání vzorů, jako je AIY vision HAT (zatím není v Evropě k dispozici), k automatickému čtení a interpretaci vzorů, tedy k uzavření kruhu.

Další koncepty vylepšení, některé s větším významem pro reálný svět, jsou diskutovány v části „výhled“v tomto pokynu.

Krok 1: Použité materiály

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

Raspberry Pi 3

AIY hlas Klobouk

Osm bílých LED diod, průměr 5 mm. Ty běží na 3V, proto je nutný odpor.

Rezistor 100 kOhm. Možná to nebylo ideální řešení, ale bylo po ruce.

Propojovací kabely

Krátký kousek drátu

Breadboard, volitelně k otestování nastavení.

Plastový box na vizitky.

Dva kusy 4 mm plastové pěny, některé zbyly po odpadcích.

Nějaký kus plastové membrány, jako difuzor, jako výše.

Páječka a pájka, nůž.

Krok 2: Nastavení a použití

Nastavení a použití
Nastavení a použití
Nastavení a použití
Nastavení a použití
Nastavení a použití
Nastavení a použití

Nastavte Raspberry Pi a AIY HAT podle pokynů v manuálu AIY HAT. Doporučuji před sestavením Pi a HAT pájet záhlaví alespoň na servo porty, protože to umožňuje snadné připojení serv, prkénka nebo LED diod.

Zobrazovací skříňka byla postavena z víka plastové krabice na vizitky, dvou kusů pěnové vložky do krabice a kusu podobné velikosti obalové membrány jako difuzor. V jedné z pěnových částí bylo zasunuto šest otvorů a do nich byly umístěny LED diody. Kratší nožičky (zemní strana) LED diod byly navzájem spojeny kusem kabelu, poté byl přidán odpor a k němu byl připájen propojovací kabel. K dalším nohám (plus strana) LED byly připájeny propojovací kabely.

Ty pak byly připojeny k servoportům na hlasové HAT AIY pomocí prodlužovacích kabelů, kladná strana na (vnější) piny "P in", záporný konektor na jeden z (vnitřních) zemních/mínusových kolíků. Podívejte se prosím na přiložené schéma.

Důrazně doporučuji před pájením vyzkoušet nastavení na prkénku.

Nyní byla membrána, LED deska a těsnicí vrstva umístěny do plastového boxu.

Umístěte skript Braille_LED_1.py do složky src. V případě, že budete muset nejprve provést spustitelný skript.

Nyní pomocí Dev terminálu (!) Je spuštěn program Braille_LED_1.py. Zadejte 'src/Braille_LED_1.py' a stiskněte 'Enter'.

Nyní budete požádáni, abyste stiskli tlačítko pole AIY a řekli své slovo nebo větu. S určitým zpožděním systém zopakuje, co bylo pochopeno, a zobrazí to na obrazovce a také písmeno po písmenu na šesti LED displejích.

Pokud místo věty zadáte klíčové slovo „Goodbye“, systém vám řekne Goodbye a program bude ukončen.

Krok 3: Kód

Kód
Kód

Níže najdete kód, který vám umožní mluvit s hlasovým zařízením AIY a nechat rozpoznanou větu zobrazit písmenem po písmenu na malé 2x3-LED 'semaforu' nebo matici typu Braillova písma.

Kód je derivátem skriptu, který jsem použil pro předchozí projekt pomocí hlasového HAT AIY, což je derivát příkladu servo_demo.py popsaného v příručce AIY Voice HAT.

Můžete také najít slovník s částí Murrayova kódu, který jsem našel na internetu, jako textový soubor. Neobsahuje ani čísla a vynechává některá písmena, což by zde znamenalo problém.

Jedním omezením programu v jeho aktuálním stavu je, že pokud by znak, který není obsažen ve slovníku, způsobil pád programu. Navíc se nejedná o reprezentaci celého Braillova kódu jako značkovacího jazyka. Jak vidíte na níže uvedeném skriptu, kód Nemeth pro čísla je nadbytečný s některými znaky ve standardním Braillově písmu, ale to by nemělo představovat problém pro naši konkrétní aplikaci.

#!/usr/bin/env python3

# Tento skript je adaptací skriptu servo_demo.py pro hlasový klobouk AIY, # optimalizovaný pro zobrazení symbolu typu Baille na základě AI aiy.audio import aiy.cloudspeech import aiy.voicehat z gpiozero import LED # z gpiozero import Tlačítko z čas import spánek # Slovník: uměle upravená braillská abeceda, # čísla a některé symboly převzaty z Nemethova rozšíření Braillova písma Braille_6A = {"": "123456", # mezera "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 ", # Předpona čísla, tj. Další znaky jsou čísla", ":" 2 ",". ": "256", # tečka, konec věty (GB) "?": "236", "!": "235", "" ":" 3 ","-":" 24 ","; ": "23", "Cap": "6", # Další písmeno je v Capitals; Zastavení čísla? "": "", # Nemeth Braillův kód je matematické rozšíření pro 6bodové Braillovo písmo # viz: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', 'Braillova' čárka '"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 Nemethu symbol dvou vzorů, zde nahrazen znakem 'x' pro vynechání pádů}" "" z důvodu jednoduchosti jsou uvedeny standardní Braillovy číselné vzorce níže byly nahrazeny odpovídajícími Nemethovými kódy „1“: „1“, „2“: „12“, „3“: „14“, „4“: „145“, „5“: „15“, „ 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Sampletext, pro účely ladění def main (): rozpoznávač = aiy.cloudspeech.get_recognizer ().voicehat.get_led () # AIY Stav LED tlačítka aiy.audio.get_recorder (). start () led_1 = LED (26) # 1. konektor, servo0, GPIO 26 # levý horní led_2 = LED (6) # 2. konektor, servo1, GPIO 06 # prostřední levá LED_3 = LED (13) # 3. konektor, servo2, GPIO 13 # spodní levá LED_4 = LED (5) # 4. konektor, servo3, GPIO 05 # pravá horní LED_5 = LED (12) # 5. konektor, servo4, GPIO 12 # prostřední pravá LED_6 = LED (24) # 4. konektor, servo3, GPIO 13 # vpravo dole # vzdálenost = Tlačítko (5) # snímač vzdálenosti připojen k servo3/GPIO 05, zde není použit aiy.audio.say („Ahoj!“,) Aiy.audio.say („Chcete -li začít, stiskněte tlačítko“,) aiy.audio.say („Pokud mi řeknete sbohem, ukončím program“,) zatímco True: # začne loop led.set_state (aiy.voicehat. LED. BLINK) print ("Aktivace rozpoznávání hlasu n, stiskněte modré tlačítko, poté mluvte ") tlačítko print ().wait_for_press () tisk ('Poslech …') aiy.audio.say (" poslouchám ",) led.set_state (aiy.voicehat. LED. BLINK_3) text = elif 'goodbye' in text: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) sleep (3) print ('bye! ') break # zastaví smyčku a ukončí program else: print (' You said "', text,'" ') # # Umožňuje zkontrolovat interpretaci systémů, včetně captializace aiy.audio.say (' Myslím, že jsi řekl ',) aiy.audio.say (text,) # akustické ověření Text_up = text.upper () # přenáší vše na tisk velkých písmen (Text_up) Text_Len = len (Text_up) tisk (Text_Len) pro i v rozsahu (Text_Len): Lett = Text_up # Vybere jedno písmeno, počínaje prvním, tj. [0] tisk ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Vybere odpovídající kód z slovník. Chybějící znak rozbije 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 () pokud "3" v Lett_B: tisk ("LED 3") led_3.on () pokud "4" v Lett_B: tisk ("LED 4") led_4.on () pokud "5" v Lett_B: tisk ("LED 5 ") led_5.on () if" 6 "in Lett_B: print (" LED 6 ") led_6.on () sleep (1) # display pattern for a second print () led_1.off () # inactivate all LEDs on servos0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () spánek (0,3) # krátká tmavá přestávka, která označuje konec písmene, pokud _name_ == '_main_ ': hlavní()

Krok 4: Výhled a poznámky

Co by tedy mohlo být dál?

Kromě toho, že jde o meta-vtip IT s video soupravou AIY nebo jiným automatizovaným systémem rozpoznávání obrazu zmíněným v úvodu, mohou existovat další možnosti pro rozšíření konceptu popsaného v tomto návodu. Některé z nich mohou být dokonce k použití v reálném světě. Mohou to být:

- vylepšené programování, aby byl text přenesen do standardního braillského kódu se všemi značkami a kompresemi. To by pro zkušeného programátora v Pythonu nemělo být velké úsilí. Což já nejsem, takže jakákoli pomoc bude vítaná.

- rozšířit systém na matici 2x4. Mělo by to být také možné a pomohlo by to použití odpovídajících 8bodových braillských kódů, jaké používají elektronické braillské displeje. Nad tím by to bylo o něco blíže systému Dearheart clacks.

- postavte skutečný braillský displej 2x3 nebo 2x4. Mělo by být možné použít buď řadu serv, nebo řadu 5V mini solenoidů. Primární výzvou by bylo, aby standardní vzdálenost mezi hmatovými body byla na elektronických displejích 2,45 mm nebo 1/10 palce, takže mohou být vyžadovány některé převody a mechanika. Další výzvou by mohla být přesná regulace délky tlačení.

Takové jednoduché a levné řešení by mohlo být zajímavé pro širší veřejnost, protože komerční braillské řádky jsou poměrně drahé. Používání takového hlasem ovládaného systému by pro studenty Braillova písma mohlo být přínosem. Mohou verbálně zadat (anglickou) větu podle svého výběru a získat text, písmena a znaky zobrazené na špičkách prstů.

- postavit systém mechanické závěrky připomínající systémy Murray nebo Dearheart. Použití serva by nemělo být příliš komplikované a mohlo by být popsáno v jiném pokynu. Nebo by to mohl být pěkný školní projekt. Má někdo zájem?

–――――

Některé poznámky a zajímavé odkazy:

- Existuje instrukce popisující „DIY semaforovou lampu“, matici LED 2x4, založenou na demo desce Propeller. Rozložení se mi líbí, ale programování mi připadá trochu komplikované. Podívejte se prosím sami.

- Nyní jsem našel program python pro generování Braillova písma plně uzavřeného (stupeň 2). Bohužel je omezen na python 2 a americkou anglickou verzi 2002:

- úplnějším programem se zdá být liblouis, https://github.com/liblouis/liblouis, ale nemám tušení, jak to integrovat do tohoto řešení.

- Zdá se, že zajímavé řešení pythonu pochází z Řecka, https://github.com/ant0nisk/pybrl může integrovat několik jazyků a generovat Braillovo písmo stupně 2.

- Nejsem ani programátor, ani elektronik, ani jsem před několika dny neměl mnoho znalostí o Braillově písmu.

Pokud tedy uvidíte nějaké chyby, opomenutí nebo máte nějaké nápady na projekt, dejte mi prosím vědět.

- Pokud se vám tento návod líbí, hlasujte pro něj!

Doporučuje: