Բովանդակություն:

Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ. 4 քայլ (նկարներով)
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ. 4 քայլ (նկարներով)

Video: Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ. 4 քայլ (նկարներով)

Video: Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ. 4 քայլ (նկարներով)
Video: Сосуны и пианино ► 2 Прохождение Silent Hill (PS ONE) 2024, Նոյեմբեր
Anonim
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ
Ձայնով վերահսկվող, բրայլյան տիպի նախշերի սեմալիստ

«Լորդ Վետինարին կանգնած էր իր պատուհանի մոտ և դիտում էր գետի մյուս ափին գտնվող սեմալիստական աշտարակը: Նրա առջև կանգնած բոլոր ութ խոշոր փեղկերները կատաղությամբ թարթում էին` սև, սպիտակ, սև, սպիտակ, սև, սպիտակ… Տեղեկատվությունը թռչում էր օդ: Նրա հետևից քսան մղոն ետևում, Ստո Լաթի մեկ այլ աշտարակի վրա, ինչ -որ մեկը նայում էր աստղադիտակով և թվեր գոռում: Որքա՞ն արագ է գալիս ապագան մեզ վրա, նա մտածեց »: Թ. Պրատչեթ, Հինգերորդ փիղը

AIY ձայնային հավաքածուի հիման վրա ձայնով կառավարվող ցատկող խցիկ ստեղծելուց հետո ես գաղափար ունեցա ձայնով կառավարվող սեմֆոր կառուցել ՝ համախմբելով ՏՏ տեխնոլոգիայի ամենաթարմը ՝ հեռահաղորդակցության և տվյալների փոխանցման սկզբնավորմամբ:

Սկզբում միտք առաջացավ կրկնօրինակել ֆրանսիական սեմալիստական համակարգը Chappe- ով, որը առաջին հայտնի համակարգն էր ամբողջ երկրում հեռահաղորդակցության համար `օգտագործելով սեմաֆորային համակարգը: Բայց պարզվեց, որ դա չափազանց բարդ էր `մեկ օրվա ընթացքում ստանդարտ սերվերի օգտագործմամբ իրականացնելու համար: Իմ հաջորդ թիրախը նման էր Թերի Պրացետի նկարագրած clacks համակարգին, օրինակ. «Going Postal» - ում, որպես 2x4 փեղկերի սեմալիստ համակարգ (ոչ թե որպես ֆիլմում պատկերված 4x4 մատրիցա): Unfortunatelyավոք, ես չկարողացա այս համակարգում առկա շատ տեխնիկական մանրամասներ գտնել: Այսպիսով, ես ավարտեցի լորդ Մարեյի կողմից մշակված 2x3 մատրիցային սեմալիստական համակարգը, որը որոշ ժամանակ օգտագործվել էր Բրիտանական նավատորմի կողմից: Բացի այդ, վեց փեղկ/բիթ համակարգը լավ տեղավորվում է AIY voice HAT- ի վեց servo միակցիչների վրա: Բայց, քանի որ ես տարիների ընթացքում ձեռքի տակ չունեի վեց սերվո, վերջապես որոշեցի նախ LED- ներից պատրաստված սիմուլյատոր կառուցել:

Ինչ վերաբերում է ցուցադրվող կոդին, կարելի էր օգտագործել Murray համակարգը, բայց կրկին իմ ունեցած տեղեկությունները բավականին սահմանափակ էին ՝ թույլ չտալով ցուցադրել որևէ թիվ և խորհրդանիշ: Այսպիսով, ես հասա այն կետին, որ փոխարենը օգտագործեի Բրայլյան համակարգը, որը նաև օգտագործում է 2x3 մատրիցա ՝ տառեր, թվեր և այլ նշաններ ցուցադրելու համար: Բրայլյան համակարգը կույրերի համար ընթերցելի տեքստեր տպելու միջազգային չափանիշ է: Այն նաև նշագրման լեզու է, որն օգտագործում է թվերի ցուցիչ `սահմանելու համար, որ հաջորդ համարները կցուցադրվեն, և ցուցիչները` հետևյալ տառերից մեկը կամ շատերը սահմանելու համար, որպես մեծատառ: Հետևաբար, ես որոշեցի ստեղծել մի փոքր պարզեցված համակարգ ՝ թվերով և որոշ նշաններով, որոնք սահմանվում են Բրեյլի համակարգի Nemeth ընդլայնմամբ և պարզապես օգտագործել մեծատառեր, գոնե սկզբի համար: Սա թույլ է տալիս ունենալ յուրահատուկ նախշեր յուրաքանչյուր տառի, համարի կամ նշանի համար, որը կցուցադրվի իմ հատուկ դիմումում, և բաց թողնել տեքստային վերլուծությունը, որն անհրաժեշտ է իրական Բրայլյան տառի համար:

Վերջնական սարքը թույլ է տալիս մի բառ կամ նախադասություն ասել AIY ձայնի ճանաչման համակարգում, այնուհետև ձայնի օրինակի տվյալները ուղարկվում են WLAN- ի և ինտերնետի միջոցով Google- ի որոշ ԱՄՆ -ում, այնտեղ վերծանվում են, և, գոնե իմ դեպքում, մեկնաբանվում տվյալները հետ են ուղարկվում Եվրոպա, որտեղ վերջապես ես ստանում եմ ճանաչված նախադասությունը, որը ցուցադրվում է որպես տեքստային տող: Այս տեքստային տողը այնուհետև կոտրվում է Python- ի սցենարով առանձին տառերի, իսկ այժմ, համապատասխան օրինաչափությունները սահմանող բառարանի հետ համեմատ, օրինակի տեղեկատվությունը վերականգնվում է, և նախշերը ցուցադրվում են 2x3 LED մատրիցով: Խնդրում ենք դիտել կից տեսանյութը:

Ես ցուցադրման արագությունը սահմանել եմ մեկ նիշ մեկ վայրկյանում, որը պետք է բավական երկար լինի, որպեսզի պատրաստված անձը կարողանա բացահայտել և թարգմանել օրինակը: Հնարավոր հաջորդ քայլը կլինի օրինակների ճանաչման սարքի օգտագործումը, ինչպիսին է AIY vision HAT- ը (մինչ այժմ հասանելի չէ Եվրոպայում) `նախշերը ինքնաբերաբար կարդալու և մեկնաբանելու համար, այնպես որ շրջանը փակելու համար:

Բարելավումների հետագա հայեցակարգերը, ոմանք ավելի իրական համապատասխանություն ունեն, քննարկվում են այս ուսանելիի «հեռանկար» մասում:

Քայլ 1: Օգտագործված նյութեր

Օգտագործված նյութեր
Օգտագործված նյութեր
Օգտագործված նյութեր
Օգտագործված նյութեր

Ազնվամորի Պի 3

AIY ձայնը HAT

Ութ սպիտակ LED, 5 մմ տրամագծով: Սրանք աշխատում են 3 Վ լարման վրա, ուստի անհրաժեշտ է դիմադրություն:

100kOhm դիմադրություն: Միգուցե կատարյալ լուծում չէր, բայց ձեռքի տակ էր:

Թռիչքային մալուխներ

Կարճ կտոր մետաղալար

Breadboard, ընտրովի `կարգավորումը ստուգելու համար:

Պլաստիկ տուփ այցեքարտերի համար:

Երկու մմ 4 մմ պլաստմասե փրփուր, մի մասը մնացել է աղբից:

Պլաստիկ մեմբրանի մի կտոր, որպես դիֆուզոր, ինչպես վերևում:

Ironոդման երկաթ և զոդ, դանակ:

Քայլ 2: Կարգավորում և օգտագործում

Կարգավորում և օգտագործում
Կարգավորում և օգտագործում
Կարգավորում և օգտագործում
Կարգավորում և օգտագործում
Կարգավորում և օգտագործում
Կարգավորում և օգտագործում

Կարգավորեք Raspberry Pi- ն և AIY HAT- ը, ինչպես նշված է AIY voice HAT ձեռնարկում: Նախքան Pi և HAT հավաքելը խորհուրդ կտամ վերնագրերը զոդել առնվազն servo նավահանգիստներին, քանի որ դա թույլ է տալիս հեշտությամբ միացնել սերվերը, տախտակը կամ LED- ները:

Theուցափեղկը կառուցվել էր այցեքարտերի համար նախատեսված պլաստիկ տուփի կափարիչից, տուփի մեջ երկու կտոր փրփուր և փաթեթավորման թաղանթի նման չափի կտոր `որպես դիֆուզոր: Փրփուրի մասերից մեկում վեց անցք է մղվել և LED- ները տեղադրվել դրանց մեջ: LED- ների ավելի կարճ ոտքերը (ստորգետնյա կողմը) միմյանց հետ միացված էին մալուխի կտորով, այնուհետև ավելացվեց ռեզիստոր, և վերջինի վրա միացվեց ցատկող մալուխը: LED- ների ցատկող մալուխների մյուս ոտքերը (գումարած կողմը) զոդվեցին:

Դրանք այնուհետև երկարացման մալուխների միջոցով միացված էին servo նավահանգիստներին AIY voice HAT- ի վրա, դրական կողմը (արտաքին) «P in» կապումներին, բացասական միակցիչը (ներքին) գետնին/մինուս կապերից մեկին: Խնդրում ենք ծանոթանալ կից սխեմային:

Ես խստորեն խորհուրդ կտայի ստուգել տեղադրումը հացահատիկի վրա, նախքան զոդելը:

Այժմ թաղանթը, LED սալիկը և կնքման շերտը տեղադրված էին պլաստիկ տուփի մեջ:

Տեղադրեք Braille_LED_1.py սցենարը src պանակում: Այդ դեպքում, գուցե ստիպված լինեք նախ սցենարը կատարելագործելի դարձնել:

Այժմ օգտագործելով Dev տերմինալը (!) Braille_LED_1.py ծրագիրը գործարկված է: Մուտքագրեք «src/Braille_LED_1.py» և սեղմեք «Enter»:

Այժմ ձեզանից կպահանջվի սեղմել AIY տուփի կոճակը և ասել ձեր բառը կամ նախադասությունը: Որոշակի ուշացումով համակարգը կկրկնի հասկացվածը և կցուցադրի այն էկրանին, ինչպես նաև տառ առ տառ վեց LED էկրանին:

Եթե նախադասության փոխարեն տալիս եք «bտեսություն» հիմնաբառը, համակարգը ձեզ կասի bտեսություն, և ծրագիրը կփակվի:

Քայլ 3: Կոդ

Օրենսգիրքը
Օրենսգիրքը

Ստորև կգտնեք այն կոդը, որը թույլ է տալիս խոսել AIY ձայնային սարքի հետ և ճանաչված նախադասությունը տառ առ տառ ցուցադրել փոքր 2x3-LED «սեմալիստ» կամ բրայլյան տիպի մատրիցով:

Կոդն այն սցենարի ածանցյալն է, որը ես օգտագործել եմ նախորդ նախագծի համար ՝ օգտագործելով AIY voice HAT- ը ՝ հանդիսանալով servo_demo.py օրինակի ածանցյալը, որը նկարագրված է AIY voice HAT ձեռնարկում:

Կարող եք նաև գտնել ինտերնետում գտած Մարեյի ծածկագրի այն հատվածը, որը տեքստային ֆայլ է: Այն ոչ թվեր է պարունակում, ոչ էլ բաց է թողնում որոշ տառեր, ինչը խնդիր կտար այստեղ:

Currentրագրի ներկայիս վիճակում սահմանափակումներից մեկն այն է, որ եթե բառարանում չընդգրկված նշանը այն կխափանի ծրագիրը: Բացի այդ, դա Բրայլյան ամբողջական ծածկագրի ՝ որպես նշման լեզվի ներկայացում չէ: Ինչպես տեսնում եք ստորև ներկայացված սցենարում, թվերի Nemeth ծածկագիրն ավելորդ է `ստանդարտ բրայլյան տառերով որոշ նշաններով, բայց դա չպետք է խնդիր բերի մեր կոնկրետ կիրառման համար:

#!/usr/bin/env python3

# Այս սկրիպտը servo_demo.py սցենարի հարմարեցում է AIY ձայնային HAT- ի համար, # օպտիմիզացված AIY- ի վրա հիմնված Baille տիպի խորհրդանիշի ցուցադրման ներմուծման aiy.audio import aiy.cloudspeech ներմուծման aiy.voicehat gpiozero ներմուծման LED- ից ժամանակի ներմուծում քուն # Բառարան. արհեստականորեն փոփոխված բրայլյան այբուբեն, # թվեր և որոշ նշաններ, որոնք վերցված են Բրեյլի Braille_6A Nemeth ընդլայնումից_6A = {"": "123456", # բացատ "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 ", # Number Prefix, այսինքն հաջորդ նշանները թվեր են", ":" 2 ",": ": "256", # Ամբողջական կետ, նախադասության վերջ (ԳԲ) "?": "236", "!" ՝ "235", "'": "3", "-": "24", ";" ՝ "23", "Cap": "6", # Հաջորդ նամակը գտնվում է Մայրաքաղաքներում; Համար-կանգառ? "": "", # Nemeth Braille ծածկագիրը մաթեմատիկական ընդլայնում է 6-կետանոց Braille- ի համար # տե՛ս ՝ https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Բրայլյան ստորակետ «2» ՝ «23», «3» ՝ «25», «4» ՝ «256», «5» ՝ «26», «6» ՝ «235», # Նեմեթ «6», Բրայլ ''! "7": "2356", "8": "236", # Nemeth '8', Բրայլ? '' "9": "35", "0" `" 356 ","+":" 346 ","-":" 36 ","/":" 34 "," (":" 12356 ",") ":" 23456 ","*":" 1346 " # '*' - ը Նեմեթում երկու օրինակի խորհրդանիշ է, որն այստեղ պարզության պատճառով փոխարինվում է« x » - ով վթարները բաց թողնելու համար" ", տրված են Բրայլյան համարի ստանդարտ նախշերը ստորև փոխարինվեցին «1», «1», «2» ՝ «12», «3» ՝ «14», «4» ՝ «145», «5» ՝ «15», 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Sampletext, վրիպազերծման նպատակով def main ():.voicehat.get_led () # AIY Button-LED կարգավիճակը aiy.audio.get_recorder (). սկիզբ () led_1 = LED (26) # 1-ին միակցիչ, servo0, GPIO 26 # վերին ձախ led_2 = LED (6) # 2-րդ միակցիչ, servo1, GPIO 06 # միջին ձախ led_3 = LED (13) # 3 -րդ միակցիչ, servo2, GPIO 13 # ներքևի ձախ led_4 = LED (5) # 4 -րդ միակցիչ, servo3, GPIO 05 # վերին աջ led_5 = LED (12) # 5 -րդ միակցիչ, servo4, GPIO 12 # միջին աջ led_6 = LED (24) # 4 -րդ միակցիչ, servo3, GPIO 13 # ներքևի աջ # հեռավորություն = Կոճակ (5) # servo3/GPIO 05 -ին միացված հեռավորության տվիչ, այստեղ չի օգտագործվում aiy.audio.say («Բարև!»,) Aiy.audio.say («Սկսելու համար սեղմեք կոճակը»,) aiy.audio.say («Եթե ինձ հրաժեշտ տվեք, ես կավարտեմ ծրագիրը»,) մինչդեռ True: # սկսվում է հանգույց led.set_state (aiy.voicehat. LED. BLINK) տպել («Ձայնի ճանաչումը ակտիվացնելու համար n, սեղմեք կապույտ կոճակը, այնուհետև խոսեք ") print () button.wait_for_press () print ('Listening …') aiy.audio.say (" Ես լսում եմ ",) led.set_state (aiy.voicehat. LED. BLINK_3) տեքստ = ճանաչող. ճանաչել () # led.set_state (aiy.voicehat. LED. OFF) ճանաչված նախադասության տեքստային տող, եթե տեքստը Չկա. aiy.audio.say («Կներեք, ես ձեզ չեմ լսել»,) elif «հրաժեշտ» տեքստում. aiy.audio.say («Goodbye»,) aiy.audio.say («Arrivederci»,) aiy.audio.say («Auf Wiedersehen»,) քնել (3) տպել («bye! ') break # stop loop- ը և ավարտում է այլ ծրագիր. տպել (' Դուք ասացիք '', տեքստ '' ')) # Թույլ է տալիս ստուգել համակարգերի մեկնաբանությունը, ներառյալ գրելը aiy.audio.say (' Կարծում եմ `ասացիր ',) aiy.audio.say (տեքստ) i] # Ընտրում է մեկ տառ ՝ սկսած առաջինից, այսինքն ՝ [0] print («Letter =», Lett) Lett_B = Braille_6A [Lett] # Ընտրում է համապատասխան ծածկագիրը Բառարան. Բացակայող նշանը կկոտրի ծածկագիրը: print (Lett_B) if ("1" Lett_B): print ("LED 1") led_1.on () # ակտիվացնում է LED- ն servo0 " - ում, եթե Lett_B- ում" 2 ": print (" LED 2 ") led_2.on () եթե "3" Lett_B: print ("LED 3") led_3.on () եթե "4" in Lett_B: print ("LED 4") led_4.on () if "5" in Lett_B: print ("LED 5 ") led_5.on () եթե Lett_B- ում" 6 ": տպել (" LED 6 ") led_6.on () քնել (1) # երկրորդ տպման համար # ցուցադրման օրինակ () led_1.off () # սերվոսի 0 -ում բոլոր LED- ները ակտիվացնել -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () քուն (0.3) # կարճ մութ ընդմիջում ՝ նշելու տառի վերջը, եթե _name_ == '_ հիմնական _ ': հիմնական ()

Քայլ 4: Outlook և դիտողություններ

Այսպիսով, ինչ կարող է լինել հաջորդը:

Բացի ՏՏ-ի մետա-կատակից `AIY վիդեո հավաքածուի կամ ներածության մեջ նշված պատկերի ճանաչման այլ ավտոմատացված համակարգի հետ, կարող են լինել այլ տարբերակներ` սույն հրահանգում նկարագրված հայեցակարգը ընդլայնելու համար: Նրանցից ոմանք նույնիսկ կարող են օգտակար լինել իրական աշխարհում: Սրանք կարող են լինել.

- բարելավված ծրագրավորում, որպեսզի տեքստը փոխանցվի ստանդարտ Բրայլյան կոդի ՝ բոլոր նշագրումներով և սեղմումներով: Դա չպետք է մեծ ջանքեր գործադրի հմուտ պիթոն ծրագրավորողի համար: Ինչը ես չեմ, ուստի ցանկացած օգնություն ողջունելի կլինի:

- ընդլայնել համակարգը 2x4 մատրիցով: Նաև պետք է հնարավոր լինի և կօգնի օգտագործել համապատասխան 8-կետանոց բրայլյան կոդերը, ինչպես օգտագործվում են բրայլյան էլեկտրոնային դիսփլեյներով: Այս ամենից վեր, այն մի փոքր ավելի մոտ կլիներ Dearheart clacks համակարգին:

- կառուցել իրական 2x3 կամ 2x4 բրայլյան էկրան: Պետք է հնարավոր լինի օգտագործել սերվերի զանգված կամ 5 Վ մինի էլեկտրահաղորդիչների զանգված: Առաջնային մարտահրավերն այն է, որ շոշափելիք կետերի միջև ստանդարտ հեռավորությունը 2.45 մմ է, կամ 1/10 դյույմ, էլեկտրոնային էկրաններին, ուստի որոշ շարժիչներ և մեխանիկա կարող են պահանջվել: Մյուս մարտահրավերը կարող է լինել հրման երկարության ճշգրիտ կարգավորումը:

Նման պարզ և էժան լուծումը կարող է հետաքրքրել ավելի լայն հասարակությանը, քանի որ բրայլյան կոմերցիոն էկրանները բավականին թանկ են: Բրայլի սովորողների համար գուցե օգուտ լինի նման ձայնային կառավարվող համակարգ օգտագործելը: Քանի որ նրանք կարող են բանավոր կերպով մուտքագրել իրենց նախընտրած (անգլերեն) նախադասությունը և ձեռք բերել տեքստը, տառերն ու նշանները, որոնք ցուցադրված են իրենց մատների ծայրին (ներին):

- կառուցել մեխանիկական փեղկերի համակարգ, որը նման է Մարեյի կամ Սիրելիի համակարգերին: Սերվոներ օգտագործելով, դա չպետք է չափազանց բարդ լինի և կարող է նկարագրվել մեկ այլ հրահանգում: Կամ կարող է լինել գեղեցիկ դպրոցական նախագիծ: Որևէ մեկին հետաքրքրու՞մ է:

–――――

Որոշ դիտողություններ և հետաքրքրություն ներկայացնող հղումներ.

- Կա ուսանելի, որը նկարագրում է «DIY սեմալիստական լապտեր», 2x4 LED մատրիցա ՝ հիմնված Propeller- ի որոշ ցուցադրական տախտակի վրա: Ինձ դուր է գալիս դասավորությունը, բայց ծրագրավորումն ինձ մի փոքր բարդ է թվում: Խնդրում եմ ինքներդ նայեք:

- Ես այժմ գտա պիթոնի ծրագիր ՝ «Լիովին պայմանագրված» (2 -րդ դասարան) բրայլյան լեզվի ստեղծման համար: Unfortunatelyավոք, այն սահմանափակված է պիթոն 2-ով և 2002 թվականի ամերիկյան անգլերեն տարբերակով ՝

- ավելի ամբողջական ծրագիր է թվում liblouis, https://github.com/liblouis/liblouis, բայց ես գաղափար չունեմ, թե ինչպես դա ինտեգրվել այս լուծման մեջ:

- Պիթոնի հետաքրքիր լուծում է գալիս Հունաստանից, https://github.com/ant0nisk/pybrl- ը կարող է մի քանի լեզուներ ինտեգրել և առաջացնել Բրայլյան 2 -րդ դասարան:

- Ես ո՛չ ծրագրավորող եմ, ո՛չ էլեկտրոնիկայի մասնագետ, ո՛չ էլ մի քանի օր առաջ բրայլյան տառերի մասին շատ գիտելիքներ չունեի:

Այսպիսով, եթե տեսնում եք որևէ սխալ, բացթողում կամ նախագծի վերաբերյալ ինչ -որ գաղափարներ ունեք, խնդրում եմ ինձ տեղյակ պահեք:

- Եթե ձեզ դուր է գալիս այս հրահանգը, խնդրում եմ քվեարկեք դրա օգտին:

Խորհուրդ ենք տալիս: