Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: Postavljanje i upotreba
- Korak 3: Kôd
- Korak 4: Outlook i napomene
Video: Semafor uzorka Brajevog pisma s glasovnom kontrolom: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
"Lord Vetinari stajao je na svom prozoru gledajući semaforski toranj s druge strane rijeke. Svih osam velikih kapka okrenutih prema njemu bijesno su treptali - crno, bijelo, crno, bijelo, crno, bijelo … Informacije su letjele u zrak. Dvadeset milja iza njega, na drugom tornju na Sto Latu, neko je gledao kroz teleskop i izvikivao brojeve. Pomislio je kako brzo nas budućnost dočekuje. " T. Pratchett, Peti slon
Nakon izgradnje priključka za skakanje s glasovnom kontrolom zasnovanog na AIY glasovnom kompletu, ja sam imao ideju da napravim semafor upravljan glasom, okupljajući najnovije IT tehnologije s počecima telekomunikacija i prijenosa podataka.
U početku sam imao ideju da repliciram francuski sistem semafora od strane Chappea, koji je bio prvi poznati sistem za telekomunikacije na nivou cijele zemlje koji koristi sistem semafora. No pokazalo se da je to bilo previše komplicirano da bi se moglo realizirati korištenjem standardnih servo pogona u roku od jednog dana. Moja sljedeća meta bila je nešto slično sistemu clacks koji je opisao Terry Pratchett, npr. u "Going Postal", kao semaforski sistem 2x4 zatvarača (ne kao matrica 4x4 prikazana u filmu). Nažalost, nisam mogao pronaći previše tehničkih detalja na ovom sistemu. Tako sam završio s 2x3 matričnim semafornim sistemom koji je razvio Lord Murray, a koji je neko vrijeme koristila britanska mornarica. Osim toga, sistem sa šest zatvarača/bita dobro se uklapa u šest servo konektora dostupnih na AIY voice HAT -u. No, kako između godina nisam imao pri ruci šest servo upravljača, konačno sam odlučio prvo izgraditi simulator napravljen od LED dioda.
Što se tiče prikazanog koda, mogao bi se koristiti Murrayjev sistem, ali opet su moje informacije o njemu bile prilično ograničene, ne dopuštajući prikazivanje bilo kakvih brojeva i simbola. Pa sam došao do toga da umjesto toga koristim Brailleov sistem, koji također koristi matricu 2x3 za prikaz slova, brojeva i drugih znakova. Brajevo pismo je međunarodni standard za štampanje tekstova čitljivih za slijepe. To je također jezik za označavanje, koji koristi indikator broja za definiranje da će se sljedeći prikazivati brojevi, a indikatori za definiranje da se jedno ili više od sljedećih slova pišu velikim slovima. Stoga sam odlučio postaviti malo pojednostavljeni sistem, s brojevima i nekim znakovima definiranim Nemethovim proširenjem Brajevog pisma, i koristiti samo velika slova, barem za početak. To omogućava da se jedinstveni obrasci za svako slovo, broj ili znak prikazuju u mojoj posebnoj aplikaciji, i da se izostavi analiza teksta potrebna za pravi Brajevo pismo.
Konačni uređaj omogućava izgovaranje riječi ili rečenice u AIY sistemu za prepoznavanje glasa, zatim se podaci o uzorku glasa šalju putem WLAN -a i interneta na neki Google server u SAD -u, tamo se dekodiraju i, barem u mom slučaju, tumače podaci se šalju natrag u Evropu, gdje konačno dobijam prepoznatu rečenicu prikazanu kao tekstualni niz. Ovaj tekstualni niz se zatim Python skriptom razbija na pojedina slova, a sada se, u usporedbi sa rječnikom koji definira odgovarajuće uzorke, informacije o uzorcima ponovo prikazuju i uzorci se prikazuju na 2x3 LED matrici. Pogledajte priloženi video zapis.
Postavio sam brzinu prikaza na jedan znak u sekundi, što bi trebalo biti dovoljno dugo da obučena osoba identificira i prevede uzorak. Mogući sljedeći korak bio bi upotreba uređaja za prepoznavanje uzoraka poput AIY vision HAT (do sada nije dostupan u Evropi) za automatsko čitanje i tumačenje uzoraka, kako bi se zatvorio krug.
O daljim konceptima poboljšanja, od kojih su neki značajniji u stvarnom svijetu, govori se u dijelu „izgledi“ovog uputstva.
Korak 1: Korišteni materijali
Raspberry Pi 3
SVAKI glas ŠEŠIR
Osam bijelih LED dioda, promjera 5 mm. Oni rade na 3V, pa je potreban otpornik.
100kOhm Resistor. Možda nije savršeno rješenje, ali bilo je pri ruci.
Premosni kablovi
Kratak komad žice
Okvir, opcionalno za testiranje postavki.
Plastična kutija za posjetnice.
Dva komada plastične pjene od 4 mm, neki ostaci smeća.
Neki komad plastične membrane, kao difuzor, kao gore.
Lemilica i lem, nož.
Korak 2: Postavljanje i upotreba
Postavite Raspberry Pi i AIY HAT kako je navedeno u priručniku AIY voice HAT. Preporučio bih da zalemite zaglavlja barem na servo portove prije nego sastavite Pi i HAT, jer vam to omogućuje jednostavno povezivanje servo servera, matične ploče ili LED dioda.
Kutija za izlaganje izgrađena je od poklopca plastične kutije za posjetnice, dva komada pjene koja se uklapa u kutiju i komada slične veličine membrane za pakiranje kao difuzora. U jednom od dijelova od pjene gurnuto je šest rupa i LED diode su postavljene u njih. Kraće nožice (sa uzemljene strane) LED dioda bile su međusobno povezane komadom kabela, zatim je dodan otpornik i na njega je lemljen kratkospojni kabel. Na druge noge (plus strana) LED dioda spajani su kratkospojni kablovi.
Oni su zatim spojeni na servo portove na AIY voice HAT putem produžnih kabela, pozitivna strana na (vanjske) "P in" pinove, negativni konektor na jedan od (unutarnjih) uzemljenja/minus pinova. Molimo pogledajte priloženu shemu.
Toplo bih preporučio da isprobate postavku na ploči prije lemljenja.
Sada su membrana, LED ploča i brtveni sloj stavljeni u plastičnu kutiju.
Postavite skriptu Braille_LED_1.py u mapu src. U tom slučaju, možda ćete morati prvo izvršiti skriptu.
Sada se pomoću Dev terminala (!) Pokreće program Braille_LED_1.py. Unesite 'src/Braille_LED_1.py' i pritisnite 'Enter'.
Od vas će se sada tražiti da pritisnete dugme okvira AIY i izgovorite svoju riječ ili rečenicu. Sa izvesnim zakašnjenjem, sistem će ponoviti ono što je shvaćen i prikazati ga na ekranu, kao i slovo po slovo, na šest LED displeja.
Ako umjesto rečenice date ključnu riječ "zbogom", sistem će vam reći zbogom, a program će se zatvoriti.
Korak 3: Kôd
Ispod ćete pronaći kôd koji vam omogućava da razgovarate sa AIY glasovnim uređajem i da prepoznata rečenica bude prikazana slovo po slovo na maloj matrici 2x3-LED 'semafor' ili Brajevo pismo.
Kôd je izvedenica skripte koju sam koristio za prethodni projekat koristeći AIY voice HAT, a izveden je od primjera servo_demo.py opisanog u AIY voice HAT priručniku.
Možete pronaći i rječnik s dijelom Murray koda koji sam pronašao na internetu, kao tekstualnu datoteku. Ne sadrži brojeve i izostavlja neka slova, što bi ovdje predstavljalo problem.
Jedno ograničenje programa u njegovom trenutnom stanju je da ako znak koji nije uključen u rječnik sruši program. Osim toga, to nije prikaz cijelog Brajevog koda kao jezika za označavanje. Kao što možete vidjeti u donjoj skripti, Nemeth kod za brojeve je suvišan s nekim znakovima na standardnom Brajevom pismu, ali to ne bi trebalo predstavljati problem za našu specifičnu aplikaciju.
#!/usr/bin/env python3
# Ova skripta je adaptacija skripte servo_demo.py za AIY glas HAT, # optimizirana za AIY zasnovan simbol tipa Baille uvoz aiy.audio uvoz aiy.cloudspeech uvoz aiy.voicehat iz gpiozero import LED #iz gpiozero dugmeta za uvoz time import sleep # Rječnik: umjetno promijenjena azbuka na Brajevom pismu, # brojevi i neki simboli preuzeti iz Nemethovog nastavka na Brajevom pismu Brajevog pisma_6A = {"": "123456", # razmak "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 ", # Prefiks broja, tj. Sljedeći znakovi su brojevi", ":" 2 ",". ": "256", # tačka, kraj rečenice (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Sljedeće slovo je velikim slovima; Number-Stop? "": "", # Nemeth Brailleov kod je matematičko proširenje za Brajevo pismo s 6 tačaka # vidi: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Brajevo pismo 'zarez' "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Brajevo pismo '!' "7": "2356", "8": "236", # Nemeth '8', Brajevo pismo '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' je simbol sa dva uzorka u Nemethu, ovdje zamijenjen sa 'x' za izostavljanje rušenja}" "" iz razloga jednostavnosti, dati su standardni uzorci Brajevog pisma ispod su zamijenjene odgovarajućim Nemet-kodovima "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Uzorak teksta, u svrhu otklanjanja grešaka def main (): prepoznavač = aiy.cloudspeech.get_recognizer () prepoznavač.expect_phrase ('zbogom') # ključna riječ, završava programsko dugme = aiy.voicehat.get_button () # Status AIY dugmeta led = aiy.voicehat.get_led () # AIY tipka-LED status aiy.audio.get_recorder (). start () led_1 = LED (26) # prvi konektor, servo0, GPIO 26 # gornji lijevi led_2 = LED (6) # 2. konektor, servo1, GPIO 06 # srednji lijevi LED_3 = LED (13) # 3. konektor, servo2, GPIO 13 # donji lijevi led_4 = LED (5) # 4. konektor, servo3, GPIO 05 # gornji desni led_5 = LED (12) # 5. konektor, servo4, GPIO 12 # srednji desni led_6 = LED (24) # 4. priključak, servo3, GPIO 13 # donji desni # razmak = Dugme (5) # senzor udaljenosti spojen na servo3/GPIO 05, ovdje se ne koristi aiy.audio.say ("Hello!",) Aiy.audio.say ("Za početak, pritisnite dugme",) aiy.audio.say ("Ako mi kažete zbogom, završiću program",) dok True: # počinje loop led.set_state (aiy.voicehat. LED. BLINK) print ("Za aktiviranje prepoznavanja glasa n, pritisnite plavo dugme, a zatim izgovorite ") dugme print ().wait_for_press () print ('Slušanje …') aiy.audio.say (" Slušam ",) led.set_state (aiy.voicehat. LED. BLINK_3) tekst = prepoznavač.recognize () # tekstualni niz ponovno prepoznate rečenice led.set_state (aiy.voicehat. LED. OFF) ako je tekst Ništa: aiy.audio.say ('Žao mi je, nisam vas čuo.',) elif 'zbogom' u tekstu: aiy.audio.say ("Zbogom",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) sleep (3) print ('baj! ') break # zaustavlja petlju i završava program else: print (' Rekli ste '', text, '"') # Omogućava vam da provjerite interpretaciju sistema, uključujući pisanje velikih slova aiy.audio.say ('Pretpostavljam da ste rekli',) aiy.audio.say (text,) # akustična verifikacija Text_up = text.upper () # prenosi sve na velika slova (Text_up) Text_Len = len (Text_up) print (Text_Len) za i u dometu (Text_Len): Lett = Text_up # Bira jedno slovo, počevši od prvog, tj. [0] print ("Slovo =", Lett) Lett_B = Braille_6A [Lett] # Bira odgovarajući kôd iz rečnik. Znak koji nedostaje će razbiti kôd! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # aktivira LED na servo0 "if" 2 "u Lett_B: print (" LED 2 ") led_2.on () ako je "3" u Lett_B: ispis ("LED 3") led_3.on () ako je "4" u Lett_B: ispis ("LED 4") led_4.on () ako je "5" u Lett_B: ispis ("LED 5 ") led_5.on () ako je" 6 "u Lett_B: print (" LED 6 ") led_6.on () sleep (1) # obrazac prikaza za drugi ispis () led_1.off () # deaktivirajte sve LED diode na servosima0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () spavanje (0.3) # kratak tamni prekid, za označavanje kraja slova ako je _name_ == '_main_ ': main ()
Korak 4: Outlook i napomene
Dakle, što bi moglo biti sljedeće?
Osim IT šale s AIY video kompletom ili drugim automatiziranim sistemom za prepoznavanje slika koji se spominje u uvodu, možda postoje i druge mogućnosti za proširenje koncepta opisanog u ovom uputstvu. Neki od njih čak bi mogli biti od koristi u stvarnom svijetu. To mogu biti:
- poboljšano programiranje, tako da se tekst prenosi u standardni Brajevo pismo, sa svim oznakama i kompresijama. To ne bi trebao biti veliki napor za vještog programera pythona. Što ja nisam, pa bi svaka pomoć bila dobrodošla.
- proširite sistem na matricu 2x4. To bi također trebalo biti moguće, a pomoglo bi i u korištenju odgovarajućih 8-točkovnih Brajevih abeceda, koje koriste elektronički brajevi displeji. Iznad ovoga, bilo bi malo bliže sistemu Dearheart clacks.
- konstruirajte pravi 2x3 ili 2x4 Brailleov ekran. Trebalo bi biti moguće koristiti niz servo -a ili niz 5V mini solenoida. Primarni izazov bio bi da je standardna udaljenost između dodirnih točaka 2,45 mm ili 1/10 inča na elektroničkim zaslonima pa bi mogli biti potrebni neki zupčanici i mehanika. Drugi izazov mogao bi biti precizna regulacija dužine guranja.
Ovako jednostavno i jeftino rješenje moglo bi biti od interesa za širu javnost, jer su komercijalni ekrani na Brajevom pismu prilično skupi. Moglo bi biti dobro za učenike Brajevog pisma koji koriste takav sistem za upravljanje glasom. Budući da mogu usmeno unijeti (englesku) rečenicu po svom izboru, a na vrhovima prstiju prikazati tekst, slova i znakove.
- izgraditi mehanički sustav kapka koji podsjeća na sustave Murray ili Dearheart. Korištenje servo upravljača ne bi trebalo biti previše komplicirano i moglo bi se opisati u drugom uputstvu. Ili bi mogao biti lijep školski projekt. Da li je neko zainteresovan?
–――――
Neke primjedbe i linkovi od interesa:
- Postoji instrukcija koja opisuje "DIY semaforski fenjer", 2x4 LED matricu, zasnovanu na nekoj propelerskoj demo ploči. Sviđa mi se izgled, ali programiranje mi izgleda malo komplikovano. Molim vas pogledajte sami.
- Sada sam pronašao python program za generiranje Potpuno ugovorenog (2. razred) Brajevog pisma. Nažalost, ograničen je na python 2 i američku englesku verziju iz 2002. godine:
- Čini se da je potpuniji program liblouis, https://github.com/liblouis/liblouis, ali nemam pojma kako to integrirati u ovo rješenje.
- Izgleda da zanimljivo python rješenje dolazi iz Grčke, https://github.com/ant0nisk/pybrl može integrirati nekoliko jezika i generirati Brailleovo pismo 2.
- Nisam programer, niti elektroničar, niti sam imao znanja o Brajevom pismu pre nekoliko dana.
Dakle, ako vidite bilo kakve greške, propuste ili imate neke ideje za projekt, molimo vas da me obavijestite.
- Ako vam se sviđa ova instrukcija, glasajte za nju!
Preporučuje se:
Robotska ruka sa glasovnom kontrolom: 8 koraka (sa slikama)
Ruka robota sa glasovnom kontrolom: a.članci {font-size: 110.0%; font-weight: bold; font-style: italic; dekoracija teksta: nema; background-color: red;} a.članci: lebdite {background-color: black;} Ova instrukcija objašnjava kako izgraditi robotsku ruku s glasovnom kontrolom pomoću
Držač pametnog ključa s glasovnom kontrolom: 3 koraka (sa slikama)
Nosač pametnih ključeva s glasovnim upravljanjem: Jeste li osoba koja ne zna dobro upravljati ključevima i uvijek mora isprobati svaki ključ za svaku drugu bravu? Pa ne brinite, samo uzmite malo motivacije i alata za izradu kako biste inovirali svoj vlastiti pametni držač ključeva s glasovnim upravljanjem
Android raspoloženje sa glasovnom kontrolom: 11 koraka (sa slikama)
Android Mood Light sa glasovnom kontrolom: Morao sam stvoriti razred za našu lokalnu Maker Group. Nešto što je čak i prvim posjetiteljima jamčilo definitivnu pobjedu i veliku nagradu bez muke, buke i bez specijaliziranih alata ili materijala. Studenti su morali ponijeti kući nešto što je funkcionisalo
Jednostavna zaključavanje vrata glasovnom kontrolom: 5 koraka (sa slikama)
Jednostavno zaključavanje vrata glasovnom kontrolom: Pa sam odlučio da želim kod kuće izgraditi vrata police za knjige. Sada postoji mnogo detalja koji objašnjavaju kako izgraditi ovu vrstu stvari. Moj problem je bio kako držati svoju djecu izvan ureda. Imam malu djecu i bit će sretni
RGB LED sa glasovnom kontrolom: 5 koraka (sa slikama)
Glasovno upravljani RGB LED: Pozdrav, momci1 Danas ću vam pokazati kako izgraditi glasovno upravljani RGB LED pomoću arduina/Ebot8.Zato bez daljnjeg roka, idite na korak 1. I sretno u izgradnji