Мазмуну:

Үн менен башкарылуучу, Брайль тибиндеги үлгү семафору: 4 кадам (сүрөттөр менен)
Үн менен башкарылуучу, Брайль тибиндеги үлгү семафору: 4 кадам (сүрөттөр менен)

Video: Үн менен башкарылуучу, Брайль тибиндеги үлгү семафору: 4 кадам (сүрөттөр менен)

Video: Үн менен башкарылуучу, Брайль тибиндеги үлгү семафору: 4 кадам (сүрөттөр менен)
Video: WALLET NECESSAIRE TULIP 2024, Ноябрь
Anonim
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор
Үн менен башкарылуучу, Брайль шрифт үлгүсүндөгү семафор

Лорд Ветинари дарыянын аркы өйүзүндөгү семафор мунарасын карап туруп, өзүнүн терезесинде турду. Анын каршысында турган чоң терезелердин бардыгы сегизинде - кара, ак, кара, ак, кара, ак … Маалымат асманга учуп бара жатты. Анын артында жыйырма миль, Сто Латтын дагы бир мунарасында, кимдир бирөө телескопту карап, сандарды кыйкырып жатты. Келечек бизге кандай тез келет, - деп ойлоду ал. Т. Пратчетт, Бешинчи пил

AIY үн комплектинин негизинде үн менен башкарылуучу секирүү уячасын кургандан кийин, менде телекоммуникация жана маалымат берүүнүн башталышы менен акыркы IT технологияларды бириктирип, үн менен башкарылуучу семафор куруу идеясы пайда болду.

Башында менде семафордук системаны колдонуп, жалпы улуттук телекоммуникация үчүн белгилүү болгон Chappe француз семафордук системасын кайталоо идеясы пайда болду. Бирок бир күндүн ичинде стандарттык серволорду колдонуу үчүн бир аз татаал болуп чыкты. Менин кийинки максатым Терри Пратчетт сүрөттөгөн clacks системасына окшош нерсе болчу, мис. "Going Почтада", 2х4 жапкычтуу семафордук система катары (тасмада сүрөттөлгөн 4х4 матрица сыяктуу эмес). Тилекке каршы, бул системада өтө көп техникалык деталдарды таба алган жокмун. Ошентип, мен Лорд Мюррей тарабынан иштелип чыккан 2x3 матрицалык семафор системасы менен аяктадым. Кошумчалай кетсек, алты жапкыч/бит системасы AIY Voice HAT жеткиликтүү болгон алты servo коннекторуна жакшы дал келет. Бирок, жылдар аралыгында колумда алты серво жок болгондуктан, акыры биринчи кезекте светодиоддон жасалган тренажерду курууну чечтим.

Көрсөтүлгөн кодго байланыштуу, Мюррей системасын колдонсо болот, бирок менде болгон маалымат эч кандай сандар менен символдорду көрсөтүүгө мүмкүндүк бербей, чектелүү болчу. Ошентип, тамгаларды, сандарды жана башка белгилерди көрсөтүү үчүн 2х3 матрицасын колдонгон Брайль системасын колдонууга туура келди. Брайль системасы - азиздер үчүн окула турган тексттерди басып чыгаруунун эл аралык стандарты. Бул ошондой эле белгилөө тили, ал сандар кийинки көрсөткүчтөрдү көрсөтөт жана индикаторлор төмөнкү тамгалардын бирин же көбүн баш тамга катары жазууну аныктайт. Мен анча -мынча жөнөкөйлөтүлгөн системаны түзүүнү чечтим, анын ордуна Брайль системасынын Nemeth кеңейтүүсү менен сандар жана кээ бир белгилер аныкталып, жөн эле жок дегенде башы үчүн чоң тамгаларды колдонууну чечтим. Бул менин атайын тиркемеде көрсөтүлүүчү ар бир тамга, сан же белгинин уникалдуу үлгүлөрүнө ээ болууга жана чыныгы Брайль шрифти үчүн керектүү болгон текст анализин калтырууга мүмкүндүк берет.

Акыркы түзмөк AIY үн таануу системасына бир сөздү же сүйлөмдү айтууга мүмкүндүк берет, андан кийин үн үлгүсүнүн маалыматы WLAN жана интернет аркылуу АКШдагы кээ бир Google серверлерине жөнөтүлөт, ошол жерде декоддолот жана жок дегенде менин учурда чечмеленет маалыматтар Европага кайра жөнөтүлөт, мында акыры таанылган сүйлөмдү текст сабы катары көрсөтөм. Бул текст сабы Python скрипти менен жеке тамгаларга бөлүнөт, эми тиешелүү үлгүлөрдү аныктоочу сөздүк менен салыштыруу менен, үлгү маалыматы артка кайтарылат жана моделдер 2x3 LED матрицасында көрсөтүлөт. Сураныч, коштоочу видеону карап көрүңүз.

Мен дисплейдин ылдамдыгын секундасына бир тамгага койдум, ал үйрөтүлгөн адам үлгүнү аныктоого жана которууга жетиштүү болушу керек. Мүмкүн болгон кийинки кадам AIY vision HAT сыяктуу үлгү таануу түзүлүшүн колдонуу (азырынча Европада жок), калыптарды автоматтык түрдө окуу жана чечмелөө үчүн, айлананы жабуу.

Жакшыртуунун кошумча түшүнүктөрү, кээ бирлери реалдуу дүйнөгө тиешеси бар, бул көрсөтмөнүн "көз карашы" бөлүгүндө талкууланат.

1 -кадам: Колдонулган материалдар

Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар

Raspberry Pi 3

AYY HAT үнү

Сегиз ак LED, диаметри 5 мм. Булар 3В менен иштейт, андыктан резистор керек.

100kOhm резистору. Балким, идеалдуу чечим эмес, бирок колдо болгон.

Өтмө кабелдер

Кыска зым

Нан тактасы, орнотууну текшерүү үчүн милдеттүү эмес.

Визитка үчүн пластикалык кутуча.

4 мм пластик көбүктөн эки даана, кээ бирлери таштандыдан калган.

Пластикалык мембрананын бир бөлүгү, жогоруда айтылгандай, диффузор.

Лампочка жана ширетүүчү, бычак.

2 -кадам: Орнотуу жана колдонуу

Орнотуу жана колдонуу
Орнотуу жана колдонуу
Орнотуу жана колдонуу
Орнотуу жана колдонуу
Орнотуу жана колдонуу
Орнотуу жана колдонуу

Raspberry Pi жана AIY HATти AIY Voice HAT колдонмосунда көрсөтүлгөндөй орнотуңуз. Мен Pi жана HATти чогултканга чейин, жок эле дегенде, баштыктарды серво портторуна кошууну сунуштайт элем, анткени бул сервоприемниктерди, панельди же LEDди оңой туташтырууга мүмкүндүк берет.

Дисплей кутучасы визиттик карталар үчүн пластикалык кутунун капкагынан, кутуга баткан эки даана көбүктөн жана диффузор сыяктуу таңгактоочу мембрананын окшош өлчөмүнөн курулган. Көбүктүн бөлүктөрүнүн биринде алты тешик түртүлүп, аларга LED диоддору коюлган. Светодиоддордун кыска буттары (жер жагы) бири -бири менен кабелдин бир бөлүгү менен туташып, андан кийин резистор кошулган жана секирүүчү кабель экинчисине кошулган. Жарык диоддордун башка буттарына (плюс тарабына) секирүүчү кабелдер ширетилген.

Булар AIY Voice HAT сервво портторуна узартуу кабелдери аркылуу, оң жагы (тышкы) "P in" казыктарына, терс туташтыргычтар (ички) жерге/минус казыктарына туташкан. Сураныч, тиркелген схеманы карап көрүңүз.

Мен ширетүүдөн мурун орнотууну нан тактасында сынап көрүүнү сунуштаар элем.

Азыр мембрана, LED плитасы жана герметикалык катмар пластикалык кутуга салынган.

Braille_LED_1.py скриптин src папкасына коюңуз. Мындай учурда, сиз алгач скриптти аткарылууга мажбур кылышыңыз мүмкүн.

Эми Dev терминалын колдонуу (!) Braille_LED_1.py программасы башталды. 'Src/Braille_LED_1.py' киргизип, 'Enter' баскычын басыңыз.

Эми сизден AIY кутучасынын баскычын басып, сөзүңүздү же сүйлөмүңүздү айтууңуз талап кылынат. Бир аз кечигүү менен система түшүнүлгөн нерсени кайталап, экранда, ошондой эле кат менен, алты LED дисплейде көрсөтөт.

Эгер сүйлөмдүн ордуна "Кош бол" ачкыч сөзүн берсеңиз, система сизге "Кош бол" деп айтат, жана программа жабылат.

3 -кадам: Кодекс

Кодекс
Кодекс

Төмөндө сиз AIY үн түзмөгү менен сүйлөшүүгө жана таанылган сүйлөмдү тамга менен кичинекей 2x3-LED 'семафорунда' же Брайль тибиндеги матрицада көрсөтүүгө мүмкүндүк берген кодду таба аласыз.

Код мурунку долбоор үчүн AIY Voice HATти колдонгон сценарийдин туундусу, AIY voice HAT колдонмосунда сүрөттөлгөн servo_demo.py мисалынын туундусу болуп саналат.

Сиз ошондой эле тексттик файл катары интернеттен мен тапкан Мюррей кодунун бөлүгү менен сөздүктү таба аласыз. Ал сандарды камтыбайт жана кээ бир тамгаларды калтырбайт, бул жерде көйгөй жаратат.

Программанын учурдагы абалынын бир чектөөсү, эгерде сөздүккө кирбеген белги программаны бузат. Мындан тышкары, бул Брайль кодунун толук белгилөө тили катары көрсөтүлүшү эмес. Төмөндөгү сценарийде көрүнүп тургандай, сандар үчүн Nemeth коду стандарттуу Брайль тамгасынын кээ бир белгилери менен ашыкча, бирок бул биздин конкреттүү тиркеме үчүн көйгөй жаратпашы керек.

#!/usr/bin/env python3

# Бул скрипт AIY Voice HAT үчүн servo_demo.py сценарийинин адаптациясы, # AIY негизделген Baille түрүнүн символу үчүн оптималдаштырылган импорт aiy.audio импорт aiy.cloudspeech импорт aiy.voicehat gpiozero импорттук LEDден # gpiozero импорттоо баскычы убакыт импорттук уйку # Сөздүк: жасалма түрдө өзгөртүлгөн Брайль алфавити, Брайль шрифти_6A = {"": "123456", # боштук "А": "1", "В": "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 ", # Сан префикси, башкача айтканда кийинки белгилер сандар", ":" 2 ",". ": "256", # Чекит, сүйлөмдүн аягы (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Капка": "6", # Кийинки кат баш тамгалар менен; Number-Stop? "": "", # Немет Брайль коду-6 чекиттүү Брайль үчүн математикалык кеңейтүү # караңыз: https://en.wikipedia.org/wiki/Nemeth_Braille "1": "2", # Nemeth Code '1', Брайль тамгасы "2": "23", "3": "25", "4": "256", "5": "26", "6": "235", # Nemeth '6', Брайль '!' "7": "2356", "8": "236", # Nemeth '8', Braille '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' - бул Немет шаарындагы эки үлгү символу, бул жерде ката кетирбөө үчүн" x "менен алмаштырылган}" "", стандарттык Брайль цифраларынын үлгүлөрү Төмөндө "1", "1", "2": "12", "3": "14", "4": "145", "5": "15", "тиешелүү" Nemeth-Codes алмаштырылды. 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Текст = "rbhTZkl 9t64+34 #!" # Sampletext, мүчүлүштүктөрдү оңдоо үчүн def main (): tanınүүчү = aiy.cloudspeech.get_recognizer () таанышуучу.күтпө_фраза ('кош бол') # ачкыч сөзү, программанын баскычын аяктайт = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat.get_led () # AIY Button-LED абалы aiy.audio.get_recorder (). start () 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: # башталат loop loop.set_state (aiy.voicehat. LED. BLINK) басып чыгаруу ("Үн таанууну иштетүү үчүн n, көк баскычты басыңыз, анан сүйлөңүз ") print () button.wait_for_press () басып чыгаруу ('Угуу…') aiy.audio.say (" Мен угуп жатам ",) led.set_state (aiy.voicehat. LED. BLINK_3) текст = таануучу.таануу () # таанылган сүйлөмдүн # текст сабы led.set_state (aiy.voicehat. LED. OFF), эгер текст жок болсо: aiy.audio.say ('Кечиресиз, мен сизди уккан жокмун.',) elif 'goodbye' in text: aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) уйку (3) басып чыгаруу ('кош бол!) ') break # программасы токтойт жана башка программаны аяктайт: print (' Сиз айттыңыз '', текст, '"') # # Сиз системалардын интерпретациясын, анын ичинде капиализация aiy.audio.say ('Менимче, сиз айттыңыз',) aiy текшерүүгө мүмкүндүк берет.audio.say (текст,) # акустикалык текшерүү Text_up = text.upper () # баарын чоң тамгаларга өткөрөт (Text_up) Text_Len = len (Text_up) басып чыгаруу (Text_Len) i үчүн диапазондо (Text_Len): Lett = Text_up # Бир тамганы тандайт, биринчиден башталат, башкача айтканда [0] басып чыгаруу ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Тиешелүү кодду тандайт сөздүк. Жоголгон белги кодду бузат! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # lett_Bдеги "2" болсо, LEDди servo0 "күйгүзөт: print (" LED 2 ") led_2.on () if "3" Lett_B: print ("LED 3") led_3.on () if If "4" in Lett_B: print ("LED 4") led_4.on () if "5" in Lett_B: print ("LED 5 ") led_5.on () эгер" 6 "Lett_Bде болсо: басып чыгаруу (" LED 6 ") led_6.on () уйку (1) # экинчи басуу үчүн дисплейдин үлгүсү () led_1.off () # servos0догу бардык светодиоддорду өчүрүү -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () уйку (0.3) # кыска караңгы тыныгуу, эгер _name_ == '_main_ ': main ()

4 -кадам: Outlook жана эскертүүлөр

Анда эмне болушу мүмкүн?

AIY видео комплектинин же кириште айтылган башка автоматташтырылган сүрөт таануу системасынын IT мета-тамашасынан тышкары, бул нускамада сүрөттөлгөн түшүнүктү кеңейтүүнүн башка варианттары болушу мүмкүн. Алардын айрымдары реалдуу дүйнөдө да колдонулушу мүмкүн. Булар болушу мүмкүн:

- жакшыртылган программалоо, ошондуктан текст бардык белгилөөлөр жана кысуулар менен стандарттык Брайль кодуна которулат. Бул квалификациялуу питон программисти үчүн көп күч болбошу керек.

- системаны 2х4 матрицасына чейин кеңейтүү. Мүмкүн болушунча, Брайль шрифти боюнча электрондук дисплейлерде колдонулуучу Брайль шрифтинин тиешелүү 8 чекиттүү коддорун колдонууга жардам бериши керек. Мунун үстүндө, бул Dearheart clacks системасына бир аз жакыныраак болмок.

- чыныгы 2x3 же 2x4 Брайль дисплейин куруу. Серволордун массивин же 5V мини соленоиддердин массивин колдонуу мүмкүн болушу керек. Негизги кыйынчылык, тийүү чекиттеринин ортосундагы стандарттык аралык электрондук дисплейде 2.45 мм же 1/10 дюйм болушу керек, андыктан кээ бир тиштүү механизмдер талап кылынышы мүмкүн. Башка кыйынчылык тактыктын узундугун так жөнгө салуу болушу мүмкүн.

Мындай жөнөкөй жана арзан чечим кеңири коомчулук үчүн кызыктуу болушу мүмкүн, анткени коммерциялык Брайль шрифти абдан кымбат. Мындай үн менен башкарылган системаны колдонгон Брайль окуучулары үчүн пайда болушу мүмкүн. Алар оозеки түрдө өздөрү каалаган (англисче) сүйлөмдү киргизип, бармактын учунда көрсөтүлгөн текстти, тамгаларды жана белгилерди ала алышат.

- Мюррей же Dearheart системаларына окшош механикалык жапкыч системасын куруу. Серволорду колдонуу, бул өтө татаал болбошу керек жана башка көрсөтмөдө сүрөттөлүшү мүмкүн. Же жакшы мектеп долбоору болушу мүмкүн. Кызыккандар барбы?

–――――

Кээ бир эскертүүлөр жана кызыктыруучу шилтемелер:

- Пропеллердин демо тактасына негизделген, 2х4 светодиоддук матрицанын "DIY семафордук чырагын" сүрөттөгөн көрсөтмө бар. Мага макет жагат, бирок программалоо мага бир аз татаал көрүнөт. Сураныч, өзүңүздү карап көрүңүз.

- Мен азыр Толук келишимдүү (2 -класс) Брайль шрифтин түзүү үчүн питон программасын таптым. Тилекке каршы, ал python 2 жана 2002 америкалык англисче версиясы менен чектелген:

- дагы толук программа liblouis окшойт, https://github.com/liblouis/liblouis, бирок мен муну бул чечимге кантип кошуу керектигин билбейм.

- Кызыктуу питон чечими Грециядан келген окшойт, https://github.com/ant0nisk/pybrl бир нече тилди интеграциялап, 2 -класстагы Брайль арибин түзө алат.

- Мен программист да эмесмин, электроник да эмесмин, бир нече күн мурун Брайль шрифти боюнча көп маалыматым жок болчу.

Ошентип, эгер сиз кандайдыр бир каталарды, кемчиликтерди көрүп жатсаңыз же долбоор боюнча кандайдыр бир идеяларыңыз болсо, мага билдириңиз.

- Эгерде сизге бул көрсөтмө жакса, ага добуш бериңиз!

Сунушталууда: