Përmbajtje:

Një semafor i modelit të kontrolluar nga zëri, i tipit Brail: 4 hapa (me fotografi)
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail: 4 hapa (me fotografi)

Video: Një semafor i modelit të kontrolluar nga zëri, i tipit Brail: 4 hapa (me fotografi)

Video: Një semafor i modelit të kontrolluar nga zëri, i tipit Brail: 4 hapa (me fotografi)
Video: What Happens If You ONLY SLEEP 4 Hours A Night for 30 Days? 2024, Nëntor
Anonim
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail
Një semafor i modelit të kontrolluar nga zëri, i tipit Brail

"Zoti Vetinari qëndronte në dritaren e tij duke shikuar kullën semaforike në anën tjetër të lumit. Të tetë grilat e mëdhenj përballë tij po ndiznin furishëm - e zezë, e bardhë, e zezë, e bardhë, e zezë, e bardhë … Informacioni po fluturonte në ajër. Njëzet kilometra pas tij, në një kullë tjetër në Sto Lat, dikush po shikonte përmes një teleskopi dhe thërriste numra. Sa shpejt na vjen e ardhmja, mendoi ai. " T. Pratchett, Elefanti i Pestë

Pasi ndërtova një fole kërcimi të kontrolluar nga zëri bazuar në kompletin e zërit AIY, unë pata idenë për të ndërtuar një semafor të kontrolluar nga zëri, duke sjellë së bashku teknologjinë më të fundit në IT me fillimet e telekomunikacionit dhe transferimin e të dhënave.

Në fillim kisha idenë të përsërisja sistemin semafor francez nga Chappe, i cili ishte sistemi i parë i njohur për telekomunikacionet në mbarë vendin duke përdorur një sistem semafor. Por doli të ishte pak shumë e komplikuar për t'u realizuar duke përdorur servot standarde brenda një dite. Synimi im i radhës ishte diçka e ngjashme me sistemin clacks të përshkruar nga Terry Pratchett, p.sh. në "Going Postal", si një sistem semafor qepen 2x4 (jo si matrica 4x4 e përshkruar në film). Fatkeqësisht nuk mund të gjej shumë detaje teknike të disponueshme në këtë sistem. Kështu përfundova me sistemin semaforik të matricës 2x3 të zhvilluar nga Lord Murray, që ishte përdorur nga Marina Britanike për një kohë. Për më tepër, një sistem me gjashtë qepen/bit i përshtatet mirë gjashtë lidhësve servo të disponueshëm në AIY voice HAT. Por, meqenëse nuk kisha gjashtë servos në dispozicion midis viteve, më në fund vendosa të ndërtoj një imitues të bërë nga LED së pari.

Lidhur me kodin e shfaqur, dikush mund të përdorë sistemin Murray, por përsëri informacioni që kisha në dispozicion në të ishte mjaft i kufizuar, duke mos lejuar shfaqjen e numrave dhe simboleve. Kështu arrita në pikën për të përdorur sistemin Braille në vend të tij, i cili gjithashtu përdor një matricë 2x3 për të shfaqur shkronja, numra dhe shenja të tjera. Sistemi Braille është standardi ndërkombëtar për të shtypur tekste të lexueshme për të verbërit. Alsoshtë gjithashtu një gjuhë shënimi, e cila përdor një tregues të numrave për të përcaktuar se numrat do të shfaqen më pas, dhe treguesit për të përcaktuar se njëra ose shumë nga shkronjat e mëposhtme janë shkruar si të mëdha. Prandaj, vendosa të krijoj një sistem paksa të thjeshtuar, me numra dhe disa shenja të përcaktuara nga shtrirja Nemeth e sistemit Braille, dhe thjesht të përdor shkronja të mëdha, të paktën për fillimin. Kjo ju lejon të keni modele unike për çdo shkronjë, numër ose shenjë që do të shfaqet në aplikacionin tim të veçantë, dhe të hiqni analizën e tekstit të kërkuar për Braille të vërtetë.

Pajisja përfundimtare ju lejon të flisni një fjalë ose fjali në sistemin e njohjes së zërit AIY, atëherë të dhënat e modelit të zërit dërgohen përmes WLAN dhe internetit në ndonjë Google të ndarë në SHBA, deshifrohen atje dhe, të paktën në rastin tim, interpretohen të dhënat dërgohen përsëri në Evropë, ku më në fund marr fjalinë e njohur të shfaqur si një varg teksti. Ky varg teksti thyhet më pas nga shkrimi Python në shkronja individuale, dhe tani, në krahasim me një fjalor që përcakton modelet përkatëse, informacioni i modelit merret dhe modelet shfaqen në një matricë LED 2x3. Ju lutemi shikoni videon shoqëruese.

Unë kam vendosur shkallën e shfaqjes në një karakter në sekondë, e cila duhet të jetë mjaft e gjatë që një person i trajnuar të identifikojë dhe përkthejë modelin. Një hap tjetër i mundshëm do të ishte përdorimi i një pajisjeje për njohjen e modelit si AIY vision HAT (deri tani nuk është e disponueshme në Evropë) për të lexuar dhe interpretuar modelet automatikisht, në mënyrë që të mbyllni rrethin.

Koncepte të mëtejshme për përmirësime, disa me më shumë rëndësi në botën reale, diskutohen në pjesën 'outlook' të këtij udhëzuesi.

Hapi 1: Materialet e përdorura

Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura

Mjedër Pi 3

AIY zë HAT

Tetë LED të bardhë, 5 mm në diametër. Këto funksionojnë në 3V, kështu që nevojitet një rezistencë.

Rezistencë 100kOhm. Ndoshta nuk ishte zgjidhja perfekte, por ishte në dispozicion.

Kabllo kërcyes

Një copë teli e shkurtër

Breadboard, opsionale për të testuar konfigurimin.

Një kuti plastike për kartat e biznesit.

Dy pjesë të shkumës plastike 4 mm, disa të mbetura mbi mbeturina.

Disa pjesë të membranës plastike, si difuzor, si më sipër.

Hekur bashkues dhe saldues, një thikë.

Hapi 2: Konfigurimi dhe Përdorimi

Konfigurimi dhe Përdorimi
Konfigurimi dhe Përdorimi
Konfigurimi dhe Përdorimi
Konfigurimi dhe Përdorimi
Konfigurimi dhe Përdorimi
Konfigurimi dhe Përdorimi

Vendosni Raspberry Pi dhe AIY HAT siç tregohet në manualin AIY voice HAT. Unë do të rekomandoja të bashkoni titujt të paktën në portet servo para se të montoni Pi dhe HAT, pasi kjo ju lejon të lidhni me lehtësi servos, një dërrasë buke ose LED.

Kutia e ekranit ishte ndërtuar nga kapaku i një kutie plastike për kartat e biznesit, dy pjesë shkumë që futeshin në kuti dhe një pjesë e një madhësie të ngjashme të një cipë paketimi si difuzor. Në njërën nga pjesët e shkumës u shtynë gjashtë vrima dhe LED u vendosën në to. Këmbët më të shkurtra (ana e tokës) e LED -ve u lidhën me njëra -tjetrën me një copë kabllo, pastaj iu shtua një rezistencë dhe një kabllo kërcyesi iu ngjit këtij të fundit. Në këmbët e tjera (në anën plus) të kabllove të bluzave LED janë bashkuar.

Këto pastaj u lidhën me portat servo në zërin AIY përmes kabllove të zgjatjes, ana pozitive në kunjat (e jashtëm) "P in", lidhësi negativ me një nga kunjat (e brendshme) të tokës/minus. Ju lutemi hidhini një sy skemës së bashkangjitur.

Unë do të rekomandoja fuqimisht të provoni konfigurimin në një tabelë buke para se të bashkoni.

Tani membrana, pllaka LED dhe shtresa e vulosjes u vendosën në kutinë plastike.

Vendoseni shkrimin Braille_LED_1.py në dosjen src. Në rast, mund t'ju duhet të bëni skriptin së pari të ekzekutueshëm.

Tani duke përdorur terminalin Dev (!) Programi Braille_LED_1.py është nisur. Shkruani 'src/Braille_LED_1.py' dhe shtypni 'Enter'.

Tani do t'ju kërkohet të shtypni butonin e kutisë AIY dhe të thoni fjalën ose fjalinë tuaj. Me pak vonesë, sistemi do të përsërisë atë që ishte kuptuar dhe do ta shfaqte atë në ekran, si dhe, shkronjë për shkronjën, në ekranin e gjashtë LED.

Nëse jepni fjalën kyçe "Mirupafshim" në vend të një fjalie, sistemi do t'ju thotë Mirupafshim dhe programi do të mbyllet.

Hapi 3: Kodi

Kodi
Kodi

Më poshtë gjeni kodin që ju lejon të flisni me pajisjen zanore AIY dhe që fjalia e njohur të shfaqet shkronjë-shkronjë në një 'semafor' të vogël 2x3-LED ose matricë të tipit Braille.

Kodi është një derivat i shkrimit që kam përdorur për një projekt të mëparshëm duke përdorur AIY voice HAT, duke qenë një derivat i shembullit servo_demo.py i përshkruar në manualin e AIY voice HAT.

Ju gjithashtu mund të gjeni një fjalor me pjesën e kodit Murray që kisha gjetur në internet, si skedar teksti. Ai nuk përmban as numra dhe nuk heq disa shkronja, të cilat do të krijonin një problem këtu.

Një kufizim i programit në gjendjen e tij aktuale është se nëse një shenjë që nuk përfshihet në fjalor do të prishë programin. Për më tepër nuk është një përfaqësim i Kodit të plotë të Braille si gjuhë Markup. Siç mund ta shihni në shkrimin më poshtë, kodi Nemeth për numrat është i tepërt me disa shenja në Braille standarde, por kjo nuk duhet të krijojë problem për aplikimin tonë specifik.

#!/usr/bin/env python3

# Ky skenar është një përshtatje e skriptit servo_demo.py për AIY voice HAT, # e optimizuar për simbolin e tipit Baille të bazuar në AIY import aiy.audio import aiy.cloudspeech import aiy.voicehat nga gpiozero import LED # nga gpiozero Import button nga koha e fjetjes gjumi # Fjalor: një alfabet Brail i modifikuar artificialisht, # numra dhe disa simbole të marra nga shtrirja Nemeth e Braille Braille_6A = {"": "123456", # hapësirë "A": "1", "B": "12 "," C ":" 14 "," D ":" 145 "," E ":" 15 "," F ":" 124 "," G ":" 1245 "," H ":" 125 ", "Unë": "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 ", # Prefiksi i Numrit, domethënë shenjat e ardhshme janë numrat", ":" 2 ",". ": "256", # Pika e plotë, fundi i fjalisë (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Letra tjetër është në Kryeqytetet; Numër-ndalesë? "": "", # Nemeth Braille code është një zgjerim matematikor për Braille me 6 pika # shiko: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', 'Presë' e Braille "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Brail '!' "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' është një simbol me dy modele në Nemeth, i zëvendësuar këtu me një 'x' për të hequr dështimet}" "" për arsye thjeshtësie, të dhëna modelet standarde të numrit Braille më poshtë u zëvendësuan me kodet Nemeth që korrespondojnë "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Sampletext, për qëllime të korrigjimit def main (): njohës = aiy.cloudspeech.get_recognizer () njohës. Prit_frazën ('lamtumirë') # fjalë kyçe, përfundon butonin e programit = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat.get_led () # AIY Button-LED status aiy.audio.get_recorder (). start () led_1 = LED (26) # Lidhësi i parë, servo0, GPIO 26 # led led e sipërm majt_2 = LED (6) # lidhës i dytë, servo1, GPIO 06 # mesi i majtë led_3 = LED (13) # lidhësi i tretë, servo2, GPIO 13 # poshtë majtas led_4 = LED (5) # 4 lidhësja, servo3, GPIO 05 # sipërme e djathtë led_5 = LED (12) # lidhësi i 5 -të, servo4, GPIO 12 # e drejta e mesme led_6 = Lidhësi LED (24) # 4, servo3, GPIO 13 # poshtë djathtas # distanca = Butoni (5) # sensori i distancës i lidhur me servo3/GPIO 05, nuk përdoret këtu aiy.audio.say ("Përshëndetje!",) Aiy.audio.say ("Për të filluar, ju lutemi shtypni butonin",) aiy.audio.say ("Nëse më thoni lamtumirë, unë do ta përfundoj programin",) ndërsa True: # fillon lak led.set_state (aiy.voicehat. LED. BLINK) print ("Për të aktivizuar njohjen e zërit n, shtypni butonin blu, pastaj flisni ") print () button.wait_for_press () print ('Duke dëgjuar …') aiy.audio.say (" Po dëgjoj ",) led.set_state (aiy.voicehat. LED. BLINK_3) tekst = njohës. njohë () # varg teksti të fjalisë së njohur led.set_state (aiy.voicehat. LED. OFF) nëse teksti është Asnjë: aiy.audio.say ('Më fal, nuk të dëgjova.',) elif 'lamtumirë' në tekst: aiy.audio.say ("Mirupafshim",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) fle (3) print ('bye! ') break # stop loop dhe përfundon programin tjetër: print (' Ju thatë '', tekst, '"') # # Ju lejon të kontrolloni interpretimin e sistemeve, përfshirë kapjen e aiy.audio.say ('I guess you said',) aiy.audio.say (tekst,) # verifikim akustik Text_up = text.upper () # transferon të gjitha në shtypjen e shkronjave të mëdha (Text_up) Text_Len = len (Text_up) print (Text_Len) për i në rang (Text_Len): Lett = Text_up # Zgjedh një shkronjë të vetme, duke filluar me të parën, pra [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Zgjedh kodin përkatës nga Fjalor. Një shenjë që mungon do të prishë kodin! print (Lett_B) nëse ("1" në Lett_B): print ("LED 1") led_1.on () # aktivizon LED në servo0 "nëse" 2 "në Lett_B: print (" LED 2 ") led_2.on () nëse "3" në Lett_B: print ("LED 3") led_3.on () nëse "4" në Lett_B: print ("LED 4") led_4.on () nëse "5" në Lett_B: print ("LED 5 ") led_5.on () nëse" 6 "në Lett_B: print (" LED 6 ") led_6.on () gjumi (1) # modeli i ekranit për një printim të dytë () led_1.off () # çaktivizoni të gjitha LED në servos0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () fle (0.3) # një pushim të shkurtër të errët, për të treguar fundin e shkronjës nëse _name_ == '_main_ ': kryesore ()

Hapi 4: Outlook dhe Vërejtje

Pra, çfarë mund të jetë më tej?

Përveç asaj meta-shaka IT me pajisjen video AIY ose një sistem tjetër të automatizuar të njohjes së imazhit të përmendur në hyrje, mund të ketë mundësi të tjera për të zgjeruar konceptin e përshkruar në këtë udhëzues. Disa prej tyre madje mund të jenë të përdorimit të botës reale. Këto mund të jenë:

- programim i përmirësuar, në mënyrë që teksti të transferohet në kodin standard Braille, me të gjitha shënimet dhe ngjeshjet. Kjo nuk duhet të jetë shumë përpjekje për një programues të aftë python. I cili nuk jam, kështu që çdo ndihmë do të ishte e mirëpritur.

- zgjeroni sistemin në një matricë 2x4. Duhet të jetë gjithashtu e mundur, dhe do të ndihmonte në përdorimin e kodeve përkatëse të Braille me 8 pika, siç përdoren nga ekranet elektronike Braille. Mbi këtë, do të ishte pak më afër sistemit të klaseve Dearheart.

- ndërtoni një ekran të vërtetë 2x3 ose 2x4 Braille. Duhet të jetë e mundur duke përdorur ose një grup servos ose një grup mini solenoidësh 5V. Sfida kryesore do të ishte që distanca standarde midis pikave të prekshme të jetë 2.45 mm, ose 1/10 inç, në ekranet elektronike, kështu që mund të kërkohen disa ingranazhe dhe mekanikë. Sfida tjetër mund të jetë rregullimi i saktë i gjatësisë së shtytjes.

Një zgjidhje kaq e thjeshtë dhe e lirë mund të jetë me interes për një publik më të gjerë, pasi ekranet komerciale të Braille janë mjaft të shtrenjta. Mund të ketë një përfitim për nxënësit e Braille që përdorin një sistem të tillë të kontrolluar nga zëri. Siç mund të shkruajnë verbalisht një fjali (anglisht) sipas zgjedhjes së tyre dhe të marrin tekstin, shkronjat dhe shenjat, të shfaqura në majat (et) e gishtit të tyre.

- ndërtoni një sistem qepen mekanik që i ngjan sistemeve Murray ose Dearheart. Duke përdorur servos, kjo nuk duhet të jetë shumë e komplikuar dhe mund të përshkruhet në një udhëzues tjetër. Ose mund të jetë një projekt i bukur shkollor. Dikush i interesuar?

–――――

Disa vërejtje dhe lidhje me interes:

- Ekziston një udhëzues që përshkruan një "fener semafor DIY", një matricë LED 2x4, bazuar në disa borde demo të Propeller. Më pëlqen paraqitja, por programimi më duket pak i komplikuar. Ju lutemi shikoni veten.

- Tani gjeta një program python për të krijuar Brail të kontraktuar plotësisht (Klasa 2). Fatkeqësisht është i kufizuar në python 2 dhe versionin amerikan në anglisht 2002:

- një program më i plotë duket të jetë liblouis, https://github.com/liblouis/liblouis, por nuk kam ide se si ta integroj këtë në këtë zgjidhje.

- një zgjidhje interesante e pythonit duket se vjen nga Greqia, https://github.com/ant0nisk/pybrl mund të integrojë disa gjuhë dhe të krijojë Braille të klasës 2.

- Unë nuk jam as programues, as djalë elektronik, as nuk kisha shumë njohuri për Braille disa ditë më parë.

Pra, nëse shihni ndonjë gabim, lëshim, ose keni ndonjë ide për projektin, ju lutem më tregoni.

- Nëse ju pëlqen kjo e udhëzueshme, ju lutemi votoni për të!

Recommended: