Съдържание:
- Стъпка 1: Използвани материали
- Стъпка 2: Настройка и използване
- Стъпка 3: Кодът
- Стъпка 4: Outlook и забележки
Видео: Семафор с гласов контрол, брайлов тип: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
"Лорд Ветинари стоеше до прозореца си и наблюдаваше семафорната кула от другата страна на реката. Всичките осем големи капаци, обърнати към него, мигаха яростно - черно, бяло, черно, бяло, черно, бяло … Информацията летеше във въздуха. На двадесет мили зад него, на друга кула на Sto Lat, някой гледаше през телескоп и крещеше цифри. Колко бързо идва бъдещето, помисли си той. " Т. Пратчет, Петият слон
След изграждането на гласов контролиран жак за скачане, базиран на AIY гласовия комплект, ми хрумна идеята да се изгради семафор с гласов контрол, обединяващ най-новите ИТ технологии с началото на телекомуникациите и трансфера на данни.
Първоначално имах идеята да копирам френската система за семафор от Chappe, която беше първата известна система за национални телекомуникации, използваща система за семафор. Но се оказа твърде сложно, за да се реализира с помощта на стандартни серво в рамките на един ден. Следващата ми цел беше нещо подобно на системата за клак, описана от Тери Пратчет, напр. в "Going Postal", като семафорна система 2x4 затвора (не като матрицата 4x4, изобразена във филма). За съжаление не можах да намеря твърде много технически подробности за тази система. Така че в крайна сметка получих матрична семафорна система 2x3, разработена от лорд Мъри, която беше използвана от британския флот за известно време. В допълнение, система с шест затвора/бит се вписва добре в шестте серво конектора, налични на AIY voice HAT. Но тъй като нямах под ръка шест сервомотора, най -накрая реших първо да създам симулатор, направен от светодиоди.
Що се отнася до показания код, може да се използва системата на Мъри, но отново информацията, с която разполагах, беше доста ограничена и не позволяваше показване на числа и символи. Така стигнах дотам, че вместо това да използвам брайловата система, която също използва матрица 2x3 за показване на букви, цифри и други знаци. Брайловата система е международен стандарт за отпечатване на текстове, четими за слепи. Това е и език за маркиране, който използва цифров индикатор, за да определи, че числата ще се показват след това, и индикатори, които определят, че една или много от следните букви се пишат като главни. Затова реших да създам леко опростена система, с цифри и някои знаци, дефинирани от разширението Nemeth на брайловата система, и просто да използвам главни букви, поне за началото. Това позволява да има уникални модели за всяка буква, цифра или знак, които да се показват в моето специално приложение, и да се пропусне анализът на текст, необходим за истинския Брайл.
Окончателното устройство позволява да се изговори дума или изречение в системата за разпознаване на глас AIY, след това данните за модела на гласа се изпращат през WLAN и интернет до някой Google в САЩ, там се декодират и поне в моя случай интерпретираният данните се изпращат обратно в Европа, където най -накрая разпознатото изречение се показва като текстов низ. След това този текстов низ се разбива от скрипта на Python на отделни букви и сега, в сравнение със речник, определящ съответните модели, информацията за шаблона се извлича и моделите се показват на 2x3 LED матрица. Моля, разгледайте придружаващото видео.
Задал съм честотата на показване на един знак в секунда, което трябва да е достатъчно дълго, за да може обучен човек да идентифицира и преведе модела. Възможна следваща стъпка би била да се използва устройство за разпознаване на модели като AIY vision HAT (засега не е налично в Европа), за да се четат и интерпретират моделите автоматично, така че да затворите кръга.
Допълнителни концепции за подобрения, някои с по-голямо значение в реалния свят, са обсъдени в частта „перспектива“на тази инструкция.
Стъпка 1: Използвани материали
Малина Пи 3
ВСЕКИ глас ШАПКА
Осем бели светодиода с диаметър 5 мм. Те работят на 3V, поради което е необходим резистор.
100kOhm резистор. Може би не е идеалното решение, но беше под ръка.
Джъмперни кабели
Късо парче тел
Макетна платка, по избор за тестване на настройката.
Пластмасова кутия за визитки.
Две парчета 4 мм пластмасова пяна, някои останали боклуци.
Някакво парче пластмасова мембрана, като дифузер, както по -горе.
Поялник и спойка, нож.
Стъпка 2: Настройка и използване
Настройте Raspberry Pi и AIY HAT, както е посочено в ръководството за AIY voice HAT. Бих препоръчал да запоявате заглавки поне към серво портовете, преди да сглобите Pi и HAT, тъй като това ви позволява лесно да свързвате серво, платка или светодиоди.
Кутията на дисплея беше изградена от капака на пластмасова кутия за визитни картички, две парчета пяна, поставени в кутията, и парче от опаковка с подобен размер като дифузер. В една от частите от пяна бяха избутани шест дупки и светодиодите бяха поставени в тях. По -късите крачета (от земята) на светодиодите бяха свързани помежду си с парче кабел, след това беше добавен резистор и към последния беше запоен джъмпер кабел. Към другите крака (плюс страна) на светодиодите бяха припоени джъмперните кабели.
След това те бяха свързани към серво портовете на 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, като е производен на примера servo_demo.py, описан в ръководството за AIY voice HAT.
Можете също да намерите речник с частта от кода на Мъри, която бях намерил в интернет, като текстов файл. Той нито съдържа цифри, нито пропуска някои букви, което би създало проблем тук.
Едно ограничение на програмата в сегашното й състояние е, че ако знак, който не е включен в речника, той ще срине програмата. В допълнение, това не е представяне на пълния брайлов код като език за маркиране. Както можете да видите в скрипта по -долу, кодът на Nemeth за числа е излишен с някои знаци на стандартно брайлово писмо, но това не би трябвало да създава проблеми за нашето конкретно приложение.
#!/usr/bin/env python3
# Този скрипт е адаптация на скрипта servo_demo.py за AIY гласова ШАПКА, # оптимизиран за базиран на AIY скрипт на символа тип Baille импортиране aiy.audio импортиране aiy.cloudspeech импортиране aiy.voicehat от gpiozero внос LED # от бутон за импортиране gpiozero от time import sleep # Речник: изкуствено модифицирана азбука на брайлово писмо, # цифри и някои символи, взети от разширението 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 ", # Префикс на номер, т.е. следващите знаци са числа", ":" 2 ",". ": "256", # точка, край на изречението (GB) "?": "236", "!": "235", "'": "3", "-": "24", ";": "23", "Cap": "6", # Следващата буква е с главни букви; Number-Stop? "": "", # Nemeth Braille code е математическо разширение за 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', брайлово писмо '?' "9": "35", "0": "356", "+": "346", "-": "36", "/": "34", "(": "12356", ") ":" 23456 ","*":" 1346 " # '*' е символ с два модела в Nemeth, тук заменен с 'x' за пропускане на сривове}" "" от съображения за простота, дадени са стандартните брайлови номера по-долу са заменени със съответните кодове на Nemeth "1": "1", "2": "12", "3": "14", "4": "145", "5": "15", " 6 ":" 124 "," 8 ":" 1245 "," 9 ":" 24 "," 0 ":" 245 "," "" #Text = "rbhTZkl 9t64+34 #!" # Примерен текст, за отстраняване на грешки def main (): разпознавач = aiy.cloudspeech.get_recognizer () разпознаващ.expect_phrase ('довиждане') # ключова дума, завършва програмния бутон = aiy.voicehat.get_button () # AIY Button status led = aiy.voicehat. servo1, GPIO 06 # среден ляв светодиод_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 led.set_state (aiy.voicehat. LED. BLINK) print ("За да активирате разпознаването на глас n, натиснете синия бутон, след това говорете ") бутон print (). wait_for_press () print ('Слушане …') aiy.audio.say (" Слушам ",) led.set_state (aiy.voicehat. LED. BLINK_3) текст = разпознаване.recognize () # текстов низ на повторно разпознатото изречение led.set_state (aiy.voicehat. LED. OFF), ако текстът е None: aiy.audio.say ('Съжалявам, не те чух.',) elif 'сбогом' в текст: aiy.audio.say ("Сбогом",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) sleep (3) print ('чао! ') прекъсване # спира цикъл и завършва програма else: print (' You said "', text,'" ') # Позволява ви да проверите системната интерпретация, включително надпис aiy.audio.say (' Предполагам, че сте казали ',) aiy.audio.say (текст) i] # Избира една буква, започваща с първа, т.е. [0] print ("Letter =", Lett) Lett_B = Braille_6A [Lett] # Избира съответния код от речник. Липсващ знак ще наруши кода! print (Lett_B) if ("1" in Lett_B): print ("LED 1") led_1.on () # активира LED при servo0 "if" 2 "в Lett_B: print (" LED 2 ") led_2.on () ако "3" в Lett_B: печат ("LED 3") led_3.on () ако "4" в Lett_B: печат ("LED 4") led_4.on () ако "5" в Lett_B: печат ("LED 5 ") led_5.on () if" 6 "in Lett_B: print (" LED 6 ") led_6.on () sleep (1) # модел на показване за втори print () led_1.off () # деактивиране на всички светодиоди на серво 0 -5n led_2.off () led_3.off () led_4.off () led_5.off () led_6.off () sleep (0.3) # кратка тъмна пауза, за да посочи края на буквата, ако _name_ == '_main_ ': main ()
Стъпка 4: Outlook и забележки
И така, какво би могло да бъде по -нататък?
Освен тази IT-шега с AIY видео комплекта или друга автоматизирана система за разпознаване на изображения, спомената във въведението, може да има и други възможности за разширяване на концепцията, описана в тази инструкция. Някои от тях дори може да са от реална употреба. Това биха могли да бъдат:
- подобрено програмиране, така че текстът да бъде прехвърлен в стандартен код на Брайл, с всички маркировки и компресии. Това не би трябвало да са много усилия за опитен програмист на python, което аз не съм, така че всяка помощ би била добре дошла.
- разширяване на системата до 2x4 матрица. Това също би трябвало да е възможно и би помогнало да се използват съответните 8-точкови брайлови кодове, както се използват от електронните брайлови дисплеи. Над това би било малко по -близо до системата на класовете на Dearheart.
- конструирайте истински 2x3 или 2x4 брайлов дисплей. Трябва да е възможно да се използва масив от сервоустройства или масив от 5V мини соленоиди. Основното предизвикателство би било, че стандартното разстояние между тактилните точки е 2,45 мм или 1/10 инча, на електронни дисплеи, така че може да са необходими някои предавки и механика. Другото предизвикателство може да бъде точното регулиране на дължината на натискане.
Такова просто и евтино решение може да представлява интерес за по -широката публика, тъй като комерсиалните брайлови дисплеи са доста скъпи. Може да има полза за изучаващите брайлово писмо, използващи такава система за гласово управление. Тъй като те могат устно да въведат (английски) изречение по свой избор и да получат текста, буквите и знаците, показани на върха (ите) на пръстите.
- изграждане на механична система за щори, наподобяваща системите Мъри или Диърхарт. Използвайки сервомотори, това не трябва да е твърде сложно и може да бъде описано в друга инструкция. Или може да е хубав училищен проект. Някой се интересува?
–――――
Някои забележки и връзки, представляващи интерес:
- Има инструкция, описваща "DIY семафорен фенер", 2x4 LED матрица, базирана на някаква демонстрационна платка на Propeller. Харесва ми оформлението, но програмирането ми изглежда малко сложно. Моля, погледнете сами.
- Сега намерих програма за python за генериране на Брайл с напълно договорена (степен 2). За съжаление е ограничен до python 2 и версията на американски английски от 2002 г.:
- изглежда, че по -пълна програма е liblouis, https://github.com/liblouis/liblouis, но нямам представа как да интегрирам това в това решение.
- интересно решение на python изглежда идва от Гърция, https://github.com/ant0nisk/pybrl може да интегрира няколко езика и да генерира брайлов клас 2.
- Аз не съм нито програмист, нито електроник, нито съм имал много познания по брайловото писмо преди няколко дни.
Така че, ако видите грешки, пропуски или имате идеи за проекта, моля, уведомете ме.
- Ако ви харесва тази инструкция, моля, гласувайте за нея!
Препоръчано:
MOLBED - Модулен евтин брайлов електронен дисплей: 5 стъпки (със снимки)
MOLBED - Модулен евтин брайлов електронен дисплей: Описание Целта на този проект е да се създаде електронна брайлова система, която да е достъпна и да направи тази технология достъпна за всички. След първоначалната оценка беше ясно, че по този начин дизайнът на индивидуалния герой h
Raspberry Pi Drone с гласов контрол с IoT и AWS: 6 стъпки (със снимки)
Raspberry Pi Drone с гласов контрол с IoT и AWS: Здравейте! Казвам се Армаан. Аз съм 13-годишно момче от Масачузетс. Този урок показва, както можете да заключите от заглавието, как да се изгради Raspberry Pi Drone. Този прототип демонстрира как дроновете се развиват, както и колко голяма роля биха могли да играят в
Държач за интелигентен ключ с гласов контрол: 3 стъпки (със снимки)
Държач за интелигентни ключове с гласов контрол: Вие ли сте човекът, който не се справя добре с управлението на ключовете и винаги трябва да изпробва всеки ключ за всяко друго заключване? много собствен гласово контролиран интелигентен ключодържател
$ 7,25 - Добавете гласов контрол към всеки тавански вентилатор: 4 стъпки (със снимки)
$ 7,25 - Добавете гласов контрол към всеки тавански вентилатор: В тази инструкция ще ви преведа през много простия процес за автоматизиране на вашия тавански вентилатор, така че да можете да го управлявате с гласови команди, използвайки устройство Alexa. Можете да използвате тези инструкции за управление на други електронни устройства (светлини, вентилатор, телевизор, е
Как да направите робот с гласов контрол: 3 стъпки (със снимки)
Как да направим робот с гласов контрол: Искали ли сте някога да управлявате нещата с гласа си? Тогава на правилното си място можете да контролирате всякакви неща с помощта на arduino, просто трябва да свържете тези неща и да декларирате в програмата. Направих прост глас контролиран робот, но можете да свържете