Мазмұны:

Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы: 3 қадам
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы: 3 қадам

Бейне: Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы: 3 қадам

Бейне: Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы: 3 қадам
Бейне: Дали трёхмоторный параплан ► 2 Прохождение The Legend of Zelda: Breath of the Wild (Nintendo Wii U) 2024, Қараша
Anonim
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы
Дауыспен басқарылатын секіргіш- Google Voice AIY нұсқасы

Сонымен, сізде Рождествоға арналған AIY дауыстық жиынтығы бар және онымен нұсқауларды орындап ойнадыңыз. Бұл күлкілі, бірақ қазір?

Төменде сипатталған жоба Raspberry Pi үшін AIY дауыстық HAT көмегімен құрастыруға болатын қарапайым құрылғыны ұсынады. Ол светодиодтар мен екі серводы басқару үшін Google дауысты тану жүйесін қолданады, секіру ұясының қолдары мен аяқтарын өте қарапайым беріліспен басқарады.

Фондық режимде жұмыс істейтін бағдарламалық қамтамасыз ету - бұл AIY дауыстық жинақ нұсқаулығында сипатталғандай, servo_demo.py сценарийінің модификациясы. Қатты және бағдарламалық жасақтаманы орнату үшін берілген нұсқауларды орындаңыз. Құрылғының өзі оңай құрастырылады және қолөнер дағдыларын қажет етпейді. Сонымен қатар, кескіш пышақ, бұрғы және дәнекерлеу темірі пайдалы болар еді.

Егер сіз дауысты тану жүйесін іске қоссаңыз және «қолдарыңыз жоғары» деп айтсаңыз, секіру ұясы қолдар мен аяқтарды көтереді, «қолдар ортасы» екі серводы ортаға, ал «қолдар төмен» қолдар мен аяқтарға жылжытады. төмендетілу. «Сол жақта» сол қол мен аяқ жоғары көтеріледі, ал оң жақта «оңға» төмен түседі, керісінше «оң жақта». «Би», оны би етеді, әйтеуір бір түрлі. Бұл да сөйлеседі, қоса берілген бейнені қараңыз.

Сондықтан сіз аз күш жұмсай отырып, өзіңіз билейтін, сөйлейтін және ән айтатын робот жасай аласыз.

Оны әсіресе кішкентай балалардың қолдануын жеңілдету және «сиқырлы» факторды күшейту үшін AIY қорабындағы түйме жақындық сенсорымен іске қосылды. Қарапайымдылығы үшін мен Pololu сандық қашықтық датчигін қолдандым, ол объектінің 5 см -ден жақынырақ екенін анықтайды және оны түйме сияқты қолдануға болады. Жарықдиодты шамдар құрылғының тапсырысты күтіп тұрғанын, тыңдауды немесе «ойлауды» көрсетеді. Серверлер, сенсорлар мен светодиодтар GPIOZero бағдарламалық кітапханасымен басқарылады.

Прототип Forex -тен жасалған, ПВХ көбік пластиналарынан жасалған, оны кескіш пышақпен өте оңай кесуге және желімдеуге болады, бірақ сонымен бірге өте тұрақты. Үлкенірек, әдемі, жетілдірілген немесе сәнді нұсқаны құруға қымсынбаңыз, бірақ егер сіз жақсартуларыңызды құжаттап, ұсынсаңыз жақсы болар еді.

Сіз қозғалатын механизмді ұсынғыңыз келе ме, әлде балаларға арналған әдемі, жақсы орналасуды алғыңыз келетініне қарай, дененің екі жағын да қолдана аласыз. --------- «Гампельман»-бұл неміс термині, «секіру», белгілі бір мағынаға ие.

1 -қадам: Қолданылатын материалдар

Қолданылатын материалдар
Қолданылатын материалдар
Қолданылатын материалдар
Қолданылатын материалдар

Таңқурай Pi 3; Пиморониде, Ұлыбританияда 32 фунт

AIY дауыс жинағы; 25 фунт стерлинг Пиморониде, Ұлыбритания

Pololu цифрлық қашықтық датчигінің өткір сенсорымен үзілуі, 5 см; 5.90 € Exp-tec.de сайтында

9 г екі серво

Екі ақ жарық диодты және резистор

Кейбір тақырыптар мен секіргіш кабельдер

2 мм Forex тақтасы, 250 x 500 мм; 1.70 € Модульорда, Берлин, Германия

М3 бұрандалар, жаңғақтар мен шайбалар, барлық қозғалатын бөлшектерді қосу үшін. Мен алты 10 мм және төрт 16 мм нейлон бұрандаларын қолдандым.

МВ алты бұранда мен гайка, сервопластиналарды пластиналарға бекітуге және сервалар мен тісті берілістерді қосуға арналған.

Бірнеше тамшы пластикалық желім

2 -қадам: құрылғыны құрастыру және пайдалану

Құрылғыны құрастыру және қолдану
Құрылғыны құрастыру және қолдану
Құрылғыны құрастыру және қолдану
Құрылғыны құрастыру және қолдану
Құрылғыны құрастыру және қолдану
Құрылғыны құрастыру және қолдану

AIY дауыстық жинағына қатысты, жиынтықта берілген сипаттамадағы нұсқауларды орындаңыз, оның ішінде серво туралы бөлім. Мен AIY дауыс ажыратқышындағы серво порттарына бірнеше үш істікшелі тақырыптарды дәнекерлеуді ұсынар едім, сондықтан HAT көмегімен сервопроекторларды, сенсорларды және жарықдиодты қосуға болады.

Секіру ұясына қатысты, сіз мен ұсынған суреттерді шаблон ретінде svg- және PDF-файлдар ретінде қолдана аласыз немесе оларды өз ойларыңызға сәйкес өзгерте аласыз. Бұрылу нүктесі мен беріліс арасындағы қашықтық серводе, қолда және аяқта бірдей болуын қамтамасыз ете отырып, секіру ұясының аяқтары мен қолын басқаратын берілістің негізгі орналасуын сақтағыңыз келуі мүмкін.

Сонымен қатар, сіз қолдар мен аяқтар төрт бөлек серво немесе неғұрлым жетілдірілген беріліспен басқарылатын нұсқаны құрастыра аласыз.

Сызбаны қолдана отырып, Forex, картон немесе фанер тақтайшасынан бөліктерді кесіңіз және тиісті орындарда тесіктер бұрғылаңыз. Тесіктердің жақсы туралануын қамтамасыз ететін қашықтық бөліктерін қолдар мен аяқтардың айналу нүктелеріне жабыстырыңыз.

Серво мен жылжымалы бөлшектерді негізгі тақтаға бекітіңіз. Көрсетілгендей қашықтық сенсоры мен жарықдиодты қосыңыз. Серво М2 бұрандалармен бекітілген, барлық қозғалмалы бөлшектер М3 бұрандалармен бекітілген. Мен Nylon M3 бұрандаларын қолдандым, бірақ эстетикалық себептермен.

Серво қолдарының ортаңғы қалыпқа қойылғанын тексеріңіз. Серво қолдары мен редукторларды қосыңыз, мен осы мақсат үшін М2 бұрандаларын қолдандым.

AIY тақтасындағы серво қосқыштарына серво, жарық диоды мен қашықтық датчигін бекітіңіз. Сізге ұзартқыш/секіргіш кабельдер қажет болуы мүмкін. Мен сол жақ сервоны «servo0» (GPIO 26), оң жақтағы servo «servo2» (GPIO 13), жарық диодтары «servo5» (GPIO 24), сенсорды AIY жүйесіндегі «servo3» (GPIO 5) жалғадым. HAT дауысы.

Берілген «Hampelmann.py» файлын AIY «src» ішкі қалтасына көшіріңіз және оны кез келген адам үшін тікелей орындалатын етіп жасаңыз. Мұны істеу үшін сіз файл менеджерінен файлды таңдай аласыз, содан кейін тінтуірдің оң жақ түймешігімен нұқыңыз және Сипаттар тармағын таңдаңыз, Рұқсаттарды таңдаңыз, Орындауға өтіңіз, ~ кез келген адамды таңдаңыз. Немесе консольге «chmod +x src/Hampelmann.py» деп жазыңыз.

Барлығы орнында және бекітілгенін немесе қажет болған жағдайда жылжымалы екенін тексеріңіз. Dev пәрмен жолын ашыңыз, «src/Hampelmann.py» енгізіңіз және бағдарламаны бастаңыз. Егер сіз қашықтық сенсорының алдында қолыңызды немесе саусақтарыңызды жылжытсаңыз, AIY қондырғысы тапсырыс сұрайды және жарық диодтары жыпылықтайды. Орындалатын тапсырыстар - «оңға/солға/қолды жоғары/төмен/ортаға», «би», «жарықдиодты қосу/өшіру» және «қоштасу».

Ойнаңыз. Қолыңызды сенсор алдында жылжытыңыз, сұралған кезде сөйлеңіз және құрылғыға жауап беруге біраз уақыт беріңіз. Кідіріс өте жоғары. Crtl+C немесе «Қош бол» бағдарламасы бағдарламаны тоқтатады.

Сіз файлды Nano немесе басқа қарапайым мәтіндік редактор көмегімен өзгерте аласыз.

Ескертулер: Кейбір сөздер мен терминдер бас әріптен басталатын сөздер ретінде танылатынын біліңіз, «Орталық» немесе «Оң жақ орталық», басқалары жоқ, мысалы. 'Тура жоғары'. Кейбір әрекеттерді бастау үшін дауысты тану модулі берген нақты форманы пайдалану қажет.

3 -қадам: Python сценарийі

Жоғарыда айтылғандай, сценарий AIY дауыстық нұсқауларының servo_demo.py сценарийіне негізделген, кейбір толықтырулармен. Бірінші нұсқа - Hampelmann.py файлы, сіз оны қоса аласыз. GPIOZero -дан AngularServo серво әрекетінің диапазонын шектеуге және қанша қашықтыққа кететінін анықтауға мүмкіндік береді, бірақ мен британдық дауысты бастапқы дыбыстан артық көремін. Құрылғы ағылшын, неміс, итальян, француз және испан тілдерінде сөйлей алады, бірақ түсінбейді (?). Төменде Hampelmann2.py сценарийі бар, британдық дауыспен, сәл итальяндық және немісше. Оларды іске қосу үшін сценарийлерді орындалатын етіп жасау керектігін есте сақтаңыз.

#!/usr/bin/env python3 # Бұл сценарий AIY дауыстық HAT үшін servo_demo.py сценарийінің бейімделуі болып табылады, # AIY секіру ұясына импорт aiy.audio импорт aiy.cloudspeech импорт aiy.voicehat үшін gpiozero импорттық LED gpiozero импортынан AngularServo импортынан gpiozero импорттау Уақыт бойынша импорттау ұйқысы def (): танғыш = aiy.cloudspeech.get_recognizer () танушы.эффект_фразасы ('оңға жоғары' ') танушы.эффект_фразасы (' оңға қарай ') танушы.ексе_фразасы (' Оң жақта) Центр ') # үлкен әріптер әдейі танитын. Күтуші_фраза (' солға жоғары ') танушы. ('қолдар төмен') танушы.жеке_фраза ('қолдар Ортасы') танушы.жекпе_фраза ('Би' ') танушы.кезуші_фраза (' жарық қосулы '') танушы.кезу_фразасы ('светодиод сөндірулі' ') танушы.кезек_фразасы (' қош бол ') aiy.audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1-ші қосылу немесе, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3-ші коннектор, GPIO 13 led0 = LED (24) # светодиодтар servo5/GPIO 24 қашықтыққа қосылады = Түйме (5) # қашықтық сенсоры қосылған servo3/GPIO 05 # басқаларына: servio1 -де GPIO 6, servo4 -те 12 aiy.audio.say («Сәлеметсіз бе!»,) aiy.audio.say («Бастау үшін қолыңызды сенсорға жақындатыңыз»,) True: led0.on () # жарықдиодты басып шығару («Дауысты тануды белсендіру үшін қолды қашықтық сенсорына жақындатыңыз, содан кейін сөйлеңіз») басып шығарыңыз ('Күтілетін кілт сөздер: қолдар/солға/оңға жоғары/төмен/орталық,') басып шығару ('жарықдиодты қосу/өшіру, би және қоштасу.') басып шығару () қашықтық.кітуді күтіңіз () басып шығару ('Тыңдалуда…') aiy.audio.say («Тапсырыстарыңызды беріңіз»,) led0.blink () # жарық мәтінді жыпылықтату = танушы.таңдау () егер мәтін жоқ болса: aiy.audio.say ('Кешіріңіз, мен сізді естімедім.',) басқа: басып шығару ('Сіз «', мәтін, '»' дедіңіз) # Сізге мүмкіндік береді мәтіннің «оңға жоғары» болса, жүйелердің түсіндірілуін тексеріңіз: басып шығару ('servo0 максималды позицияға жылжыту') servo0.angle = 35 elif 'оңға төмен' мәтінінде: басып шығару ('servo0 жылжу мәтіннің минималды позициясына ') servo0.angle = -35 elif' Оң ортасы ': #дұрыс жазулар маңызды баспа болып табылады (' servo0 орта позицияға жылжытылады ') servo0.angle = 0 elif' солға 'мәтінде: басып шығару (' Серво2 максималды позицияға жылжытылады ') servo2.angle = -35 элиф мәтінде' төменге ' ортаңғы позиция ') servo2.angle = 0 elif' қолдар жоғары 'мәтінінде: басып шығару (' servo2 максималды позицияға жылжыту ') servo2.angle = -35 servo0.angle = 35 элиф' қолдар төмен 'мәтінінде: басып шығару (' Жылжыту servo2 минималды позицияға ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'мәтінінде: басып шығару (' servo2 орта позицияға жылжытылады ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' мәтінде: басып шығару ('сыртқы жарықдиодты 0 өшіру') led0.off () elif 'жарықдиодты жарықтандыру' мәтінінде: басып шығару ('сыртқы жарықдиодты 0 қосу') led0.on () # жарықтағы элиф 'биі' мәтінде: басып шығару («қазір бірінші орында би») aiy.audio.say («Ал, мен бар күшімді саламын!»,) led0.on () # шамдары қосулы i үшін диапазонда (3): servo0.angle = 0 servo2.angle = 0 sleep (1) servo0.angle = 35 servo2.angle = -35 sleep (1) servo0.angle = 0 servo2.angle = -35 sleep (1) servo0.angle = -25 servo2.angle = 0 sleep (1) servo0.angle = 30 servo2.angle = 20 sleep (1) servo0.angle = 0 servo2.angle = 0 led0.off () # жарық өшірулі elif мәтіндегі 'қош бол': aiy.audio.say («Қош бол»,) aiy.audio.say ('Келу',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () ұйқы (3) басып шығару ('қош!') үзіліс басқа: басып шығару ('ешқандай кілт сөз танылмайды!') aiy.audio.say («Кешіріңіз, мен сізді түсінбедім»,) егер _name_ == ' _басты_ ': негізгі ()

Ұсынылған: