Talaan ng mga Nilalaman:

Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore: 4 na Hakbang (na may Mga Larawan)
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore: 4 na Hakbang (na may Mga Larawan)

Video: Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore: 4 na Hakbang (na may Mga Larawan)

Video: Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore: 4 na Hakbang (na may Mga Larawan)
Video: PINAKAMALAKAS NA HERO NA MAY MAX LEVEL NA FARMING SKILL | TAGALOG ANIME RECAP 2024, Nobyembre
Anonim
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore
Isang Kinokontrol na Boses, Braille-Type pattern na Semaphore

"Si Lord Vetinari ay nakatayo sa kanyang bintana na pinagmamasdan ang semaphore tower sa kabilang panig ng ilog. Ang lahat ng walong malalaking shutter na nakaharap sa kanya ay kumikislap na galit - itim, puti, itim, puti, itim, puti … Ang impormasyon ay lumilipad sa hangin. Dalawampung milya sa likuran niya, sa isa pang tore sa Sto Lat, may isang taong tumitingin sa pamamagitan ng teleskopyo at sumisigaw ng mga numero. Kung gaano kabilis dumating ang hinaharap sa amin, naisip niya. " T. Pratchett, Ang Fifth Elephant

Matapos bumuo ng isang jumping jack na kinokontrol ng boses batay sa AIY voice kit, nagkaroon ako ng ideya na bumuo ng isang semaphore na kinokontrol ng boses, na pinagsasama ang pinakabagong teknolohiya sa IT sa pagsisimula ng telecommunications at paglilipat ng data.

Sa una ay may ideya akong magtiklop sa sistemang French semaphore ni Chappe, na siyang unang kilalang sistema para sa telecommunications sa buong bansa na gumagamit ng sistemang semaphore. Ngunit ito ay naging isang medyo masyadong kumplikado upang mapagtanto gamit ang karaniwang mga servo sa loob ng isang araw. Ang aking susunod na target ay isang bagay na katulad sa system ng clacks na inilarawan ni Terry Pratchett, hal. sa "Going Postal", bilang isang 2x4 shutter semaphore system (hindi bilang 4x4 matrix na inilalarawan sa pelikula). Sa kasamaang palad hindi ko makita ang labis na mga detalyeng teknikal na magagamit sa sistemang ito. Kaya't natapos ako sa 2x3 matrix semaphore system na binuo ni Lord Murray, na ginamit ng British Navy nang ilang sandali. Bilang karagdagan, ang isang anim na shutter / bit system ay umaangkop nang maayos sa anim na konektor ng servo na magagamit sa AIY voice HAT. Ngunit, dahil wala akong anim na servos sa pagitan ng mga taon, napagpasyahan kong magtayo muna ng isang simulator na gawa sa mga LED.

Tungkol sa ipinakitang code, maaaring magamit ng isa ang Murray system, ngunit muli ang impormasyong mayroon ako dito ay medyo limitado, hindi pinapayagan na ipakita ang anumang mga numero at simbolo. Kaya't dumating ako sa puntong gamitin ang Braille system sa halip, na gumagamit din ng isang 2x3 matrix upang maipakita ang mga titik, numero at iba pang mga karatula. Ang sistema ng Braille ay ang pamantayang pang-internasyonal upang mag-print ng mga teksto na nababasa para sa mga bulag. Ito rin ay isang markup na wika, na gumagamit ng isang tagapagpahiwatig ng numero upang tukuyin na ang mga numero ay ipapakita sa susunod, at mga tagapagpahiwatig upang tukuyin na ang isa, o marami, sa mga sumusunod na titik ay nakasulat bilang mga kapitolyo. Napagpasyahan ko samakatuwid na mag-set up ng isang bahagyang pinasimple na system, na may mga numero at ilang mga palatandaan na tinukoy ng extension ng Nemeth ng system ng Braille sa halip, at gamitin lamang ang mga malalaking titik na titik, hindi bababa sa simula. Pinapayagan nitong magkaroon ng mga natatanging pattern para sa bawat titik, numero o pag-sign upang maipakita sa aking espesyal na aplikasyon, at upang alisin ang pag-aaral ng teksto na kinakailangan para sa totoong Braille.

Pinapayagan ng pangwakas na aparato na magsalita ng isang salita o pangungusap sa AIY system ng pagkilala ng boses, pagkatapos ang data ng pattern ng boses ay ipinadala sa pamamagitan ng WLAN at internet sa ilang Google sever sa US, na-decode doon, at, kahit papaano, sa akin kaso, ang binigyang kahulugan ang data ay ipinadala pabalik sa Europa, kung saan sa wakas nakukuha ko ang kinikilalang pangungusap na ipinakita bilang isang string ng teksto. Ang string ng teksto na ito ay pagkatapos ay nasira ng script ng Python sa mga indibidwal na titik, at ngayon, sa pamamagitan ng paghahambing sa isang diksyunaryo na tumutukoy sa mga katumbas na pattern, ang impormasyon sa pattern ay na-retreive at ang mga pattern ay ipinakita sa isang 2x3 LED matrix. Mangyaring tingnan ang kasamang video.

Naitakda ko ang rate ng pagpapakita sa isang character bawat segundo, na dapat sapat na mahaba para sa isang bihasang tao na kilalanin at isalin ang pattern. Ang isang posibleng susunod na hakbang ay ang paggamit ng isang aparato ng pagkilala sa pattern tulad ng AIY vision HAT (sa ngayon ay hindi magagamit sa Europa) upang basahin at bigyan ng kahulugan ang mga pattern, kaya upang isara ang bilog.

Ang karagdagang mga konsepto para sa mga pagpapabuti, ang ilan na may higit na kaugnayan sa totoong mundo, ay tinalakay sa bahagi ng 'pananaw' ng itinuturo na ito.

Hakbang 1: Ginamit na Mga Materyales

Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal

Raspberry Pi 3

AIY BATA HAT

Walong puting LEDs, 5 mm diameter. Ang mga ito ay tumatakbo sa 3V, kaya kinakailangan ng isang risistor.

100kOhm Resistor. Siguro hindi ang perpektong solusyon, ngunit malapit na.

Mga kable ng jumper

Isang maikling piraso ng kawad

Ang Breadboard, opsyonal upang subukan ang pag-set up.

Isang plastic box para sa mga business card.

Dalawang piraso ng 4 mm plastic foam, ang natitira sa basura.

Ang ilang piraso ng plastic membrane, bilang diffuser, tulad ng nasa itaas.

Panghinang at bakal, isang kutsilyo.

Hakbang 2: Pag-setup at Paggamit

Pag-setup at Paggamit
Pag-setup at Paggamit
Pag-setup at Paggamit
Pag-setup at Paggamit
Pag-setup at Paggamit
Pag-setup at Paggamit

I-setup ang Raspberry Pi at AIY HAT tulad ng ipinahiwatig sa manu-manong AIY voice HAT. Inirerekumenda ko na maghinang ng mga header ng hindi bababa sa mga servo port bago mo tipunin ang Pi at HAT, dahil pinapayagan ka nitong madaling kumonekta sa mga servo, isang breadboard o LED.

Ang kahon ng display ay itinayo mula sa takip ng isang plastik na kahon para sa mga business card, dalawang piraso ng foam na umaangkop sa kahon at isang katulad na laki ng piraso ng isang membrane ng packaging bilang diffuser. Sa isa sa mga bahagi ng bula anim na butas ang itinulak at inilagay ang mga LED sa kanila. Ang mas maiikling paa (ground side) ng mga LED ay konektado sa bawat isa sa pamamagitan ng isang piraso ng cable, pagkatapos ay idinagdag ang isang risistor at isang jumper cable ang na-solder sa huli. Sa iba pang mga paa (plus gilid) ng mga LEDs jumper cables ay na-solder.

Ang mga ito ay nakakonekta sa mga port ng servo sa AIY voice HAT sa pamamagitan ng mga elongation cable, ang positibong bahagi sa (panlabas) na "P in" na mga pin, ang negatibong konektor sa isa sa (panloob) na mga ground / minus na pin. Mangyaring tingnan ang kalakip na pamamaraan.

Masidhi kong inirerekumenda na subukan ang pag-set up sa isang breadboard bago maghinang.

Ngayon ang lamad, ang LED plate at ang sealing layer ay inilagay sa plastic box.

Ilagay ang Braille_LED_1.py script sa src folder. Kung sakali, maaaring kailangan mong gawin ang script na maipapatupad muna.

Ngayon gamit ang Dev terminal (!) Nagsimula ang Braille_LED_1.py program. Ipasok ang 'src / Braille_LED_1.py' at pindutin ang 'Enter'.

Hihilingin sa iyo ngayon na pindutin ang pindutan ng AiY box at sabihin ang iyong salita o pangungusap. Sa ilang pagkaantala, uulitin ng system kung ano ang naintindihan, at ipakita ito sa screen pati na rin, sulat sa pamamagitan ng sulat, sa anim na LED display.

Kung bibigyan mo ang keyword na "Paalam" sa halip na isang pangungusap, sasabihin sa iyo ng system ang Paalam, at ang programa ay isasara.

Hakbang 3: Ang Code

Ang Code
Ang Code

Sa ibaba makikita mo ang code na nagpapahintulot sa iyo na makipag-usap sa AIY aparato ng boses at magkaroon ng kinikilalang pangungusap na ipinakita ng sulat sa pamamagitan ng sulat sa isang maliit na 2x3-LED 'semaphore' o Braille-type matrix.

Ang code ay isang hango ng script na ginamit ko para sa isang nakaraang proyekto gamit ang AIY voice HAT, pagiging isang hango ng halimbawa ng servo_demo.py na inilarawan sa manu-manong AIY voice HAT.

Maaari ka ring makahanap ng isang diksyunaryo na may bahagi ng Murray code na nakita ko sa internet, bilang text file. Hindi ito naglalaman ng mga numero at tinanggal ang ilang mga titik, na magbibigay ng isang problema dito.

Ang isang limitasyon ng programa sa kasalukuyang estado ay kung ang isang tanda na hindi kasama sa diksyunaryo ay mabagsak nito ang programa. Bilang karagdagan hindi ito isang representasyon ng kumpletong Braille Code bilang isang wikang Markup. Tulad ng nakikita mo sa script sa ibaba, ang Nemeth code para sa mga numero ay kalabisan ng ilang mga palatandaan sa karaniwang Braille, ngunit hindi iyon dapat magbigay ng isang problema para sa aming tukoy na application.

#! / usr / bin / env python3

# Ang script na ito ay isang pagbagay ng servo_demo.py script para sa AIY voice HAT, # na-optimize para sa AIY batay sa simbolo ng uri ng Baille na pag-import ng aiy.audio import aiy.cloudspeech import aiy.voicehat mula sa gpiozero import LED #from gpiozero import Button mula sa oras import pagtulog # Diksiyonaryo: isang artipisyal na binago Braille alpabeto, # numero at ilang mga simbolo na kinuha mula sa extension ng Nemeth ng Braille Braille_6A = {"": "123456", # space "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 ", # Numero ng Pauna, ibig sabihin ang mga susunod na palatandaan ay mga numero", ":" 2 ",". ": "256", # Buong paghinto, pagtatapos ng pangungusap (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Ang susunod na liham ay nasa mga Capitals; Number-Stop? "": "", Ang # Nemeth Braille code ay isang pagpapalawak ng matematika para sa 6-Point Braille # tingnan ang: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Braille 'comma' "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Braille '!' "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 "," * ":" 1346 "# '*' ay isang simbolo ng dalawang pattern sa Nemeth, dito pinalitan ng isang 'x' upang alisin ang mga pag-crash}" "" para sa mga kadahilanan ng pagiging simple, ang karaniwang mga pattern ng numero ng Braille na ibinigay sa ibaba ay pinalitan ng tumutugmang Nemeth-Codes "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64 + 34 #!" # Sampletext, para sa mga layuning pag-debug def main (): tagakilala = aiy.cloudspeech.get_recognizer () tagakilala.expect_phrase ('paalam') # keyword, natatapos ang pindutan ng programa = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat.get_led () # AIY Button-LED status aiy.audio.get_recorder (). simulan () led_1 = LED (26) # 1st konektor, servo0, GPIO 26 # itaas na kaliwang led_2 = LED (6) # 2nd konektor, servo1, GPIO 06 # gitna kaliwang led_3 = LED (13) # 3rd konektor, servo2, GPIO 13 # ibabang kaliwang led_4 = LED (5) # 4st konektor, servo3, GPIO 05 # itaas na kanang led_5 = LED (12) # 5th konektor, servo4, GPIO 12 # gitna ng kanang led_6 = LED (24) # 4st konektor, servo3, GPIO 13 # ibabang kanan # distansya = Button (5) # distansya sensor na konektado sa servo3 / GPIO 05, hindi nagamit dito aiy.audio.say ("Hello!",) Aiy.audio.say ("Upang magsimula, mangyaring itulak ang pindutan",) aiy.audio.say ("Kung sasabihin mo sa akin Paalam, tatapusin ko ang programa",) habang Totoo: # nagsisimula loop led.set_state (aiy.voicehat. LED. BLINK) print ("Upang buhayin ang pagkilala ng boses n, pindutin ang asul na pindutan, pagkatapos ay magsalita ") print () button.wait_for_press () print ('Listening…') aiy.audio.say (" Nakikinig ako ",) led.set_state (aiy.voicehat. LED. BLINK_3) text = recognizer.recognize () # text string ng kinikilalang pangungusap led.set_state (aiy.voicehat. LED. OFF) kung ang teksto ay Wala: aiy.audio.say ('Paumanhin, hindi kita narinig.',) elif 'paalam' sa teksto: aiy.audio.say ("Paalam",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) pagtulog (3) print ('bye! ') putulin ang # stop loop at magtatapos sa iba pang programa: i-print (' Sinabi mo "', teksto,'" ') # Hinahayaan mong suriin ang interpretasyon ng mga system, kasama ang captialization aiy.audio.say (' Sa palagay ko sinabi mo ',) aiy.audio.say (text,) # acrylic verification Text_up = text.upper () # paglilipat lahat sa itaas na case print (Text_up) Text_Len = len (Text_up) print (Text_Len) para sa i in range (Text_Len): Lett = Text_up # Pumili ng isang solong titik, nagsisimula sa una, ie [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Pinipili ang kaukulang code mula sa diksyonaryo Ang isang nawawalang pag-sign ay masira ang code! 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 () kung "3" sa Lett_B: print ("LED 3") led_3.on () kung "4" sa Lett_B: print ("LED 4") led_4.on () kung "5" sa Lett_B: print ("LED 5 ") led_5.on () kung" 6 "sa Lett_B: print (" LED 6 ") led_6.on () pagtulog (1) # display pattern para sa isang pangalawang print () led_1.off () # i-aktibo ang lahat ng LEDs sa servos0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () pagtulog (0.3) # isang maikling madilim na pahinga, upang ipahiwatig ang pagtatapos ng titik kung _name_ == '_main_ ': pangunahing ()

Hakbang 4: Outlook at Mga Puna

Kaya kung ano ang maaaring maging susunod?

Bukod sa IT meta-joke na iyon kasama ang AIY video kit o ibang automated system na pagkilala ng imahe na nabanggit sa pagpapakilala, maaaring may iba pang mga pagpipilian upang mapalawak ang konsepto na inilarawan sa itinuturo na ito. Ang ilan sa kanila ay maaaring ginagamit sa totoong mundo. Ito ay maaaring:

- pinabuting programa, upang ang teksto ay mailipat sa karaniwang code ng Braille, kasama ang lahat ng mga markup at compression. Iyon ay hindi dapat maging labis na pagsisikap para sa isang dalubhasang programmer ng sawa. Na hindi ako, kaya't ang anumang tulong ay malugod.

- Palawakin ang system sa isang 2x4 matrix. Dapat posible rin, at makakatulong upang magamit ang kaukulang 8-dot Braille code, tulad ng ginagamit ng elektronikong Braille display. Sa itaas nito, magiging mas malapit ito sa sistemang clacks ng Dearheart.

- Bumuo ng isang tunay na 2x3 o 2x4 Braille display. Dapat ay posible gamit ang alinman sa isang hanay ng mga servos o isang array ng 5V mini solenoids. Ang pangunahing hamon ay ang pamantayan ng distansya sa pagitan ng mga puntos ng pandamdam ay 2.45 mm, o 1/10 pulgada, sa mga elektronikong pagpapakita, kaya maaaring kailanganin ang ilang mga gears at mekanika. Ang iba pang hamon ay maaaring tiyak na makontrol ang haba ng tulak.

Ang nasabing isang simple at murang solusyon ay maaaring maging interesado para sa isang mas malawak na publiko, dahil ang komersyal na ipinapakita sa Braille ay medyo mahal. Maaaring may pakinabang para sa mga nag-aaral ng Braille na gumagamit ng tulad ng isang sistemang kinokontrol ng boses. Tulad ng maaari nilang ipasok nang pasalita ang isang (Ingles) na pangungusap na kanilang napili, at makuha ang teksto, mga titik at palatandaan, na ipinakita sa kanilang (mga) tip sa daliri.

- Bumuo ng isang mechanical shutter system na kahawig ng Murray o ng Dearheart system. Gamit ang mga servos, hindi dapat iyon masyadong kumplikado at maaaring mailarawan sa ibang itinuturo. O maaaring maging isang magandang proyekto sa paaralan. May interes ba?

–――――

Ang ilang mga pangungusap at link ng interes:

- May isang nagtuturo na naglalarawan ng isang "DIY semaphore lantern", isang 2x4 LED matrix, batay sa ilang Propeller demo board. Gusto ko ang layout, ngunit ang programa ay mukhang medyo kumplikado sa akin. Mangyaring tingnan ang iyong sarili.

- Natagpuan ko ngayon ang isang programa sa sawa upang makabuo ng Ganap na Kinontrata (Baitang 2) Braille. Sa kasamaang palad limitado ito sa sawa 2 at ang bersyon ng Amerikanong Ingles sa 2002:

- ang isang mas kumpletong programa ay tila liblouis, https://github.com/liblouis/liblouis, ngunit wala akong ideya kung paano isama ito sa solusyon na ito.

- Ang isang kagiliw-giliw na solusyon sa sawa ay tila nagmula sa Greece, https://github.com/ant0nisk/pybrl maaaring isama ang maraming mga wika at makabuo ng grade 2 Braille.

- Hindi ako isang programmer, o isang electronics guy, ni nagkaroon ako ng maraming kaalaman sa Braille ilang araw na ang nakakalipas.

Kaya't kung nakakita ka ng anumang mga pagkakamali, pagkukulang, o mayroon kang ilang mga ideya para sa proyekto, mangyaring ipaalam sa akin.

- Kung gusto mo ito ng itinuro, mangyaring bumoto para dito!

Inirerekumendang: