Բովանդակություն:

Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ `3 քայլ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ `3 քայլ

Video: Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ `3 քայլ

Video: Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ `3 քայլ
Video: Stealth խաղ, ինչպես Metal Gear Solid-ը: 👥 - Terminal GamePlay 🎮📱 🇦🇲 2024, Նոյեմբեր
Anonim
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ
Ձայնով վերահսկվող ցատկող Jack- Google Voice AIY տարբերակ

Այսպիսով, դուք ունեք այդ AIY ձայնային հավաքածուն Սուրբ Christmasննդյան տոների համար և խաղում եք դրա հետ ՝ հետևելով հրահանգներին: Funnyիծաղելի է, բայց հիմա՞:

Ստորև նկարագրված նախագիծը ներկայացնում է մի պարզ սարք, որը կարող է կառուցվել Raspberry Pi- ի համար AIY voice HAT- ի միջոցով: Այն օգտագործում է Google- ի ձայնային ճանաչման համակարգը ՝ LED- ները և երկու սերվերը վերահսկելու համար ՝ ցատկող բաճկոնի ձեռքերն ու ոտքերը վարելով շատ պարզ հանդերձանքով:

Հետին պլանում աշխատող ծրագրակազմը servo_demo.py սցենարի փոփոխություն է, ինչպես նկարագրված է AIY ձայնային հավաքածուի ձեռնարկում: Պարզապես հետևեք այնտեղ տրված հրահանգներին `կոշտ և ծրագրային ապահովում ստեղծելու համար: Սարքն ինքնին հեշտ է կառուցել և չի պահանջում ձեռքի պատրաստման ոչ շատ հմտություններ: Բացի այդ, կտրող դանակը, գայլիկոնը և եռակցման երկաթը օգտակար կլինեն:

Եթե ձայնի ճանաչման համակարգը ձեռքի թարթումով ակտիվացնեք և ասեք «ձեռքերը վեր է», ցատկող բաճկոնը կբարձրացնի ձեռքերն ու ոտքերը, «ձեռքերի կենտրոնը» երկու սերվոները կտեղափոխի միջին դիրքի, իսկ «ներքևից» ձեռքերն ու ոտքերը իջեցվել: «Ձախ վերև» ձախ ձեռքն ու ոտքերը կբարձրացվեն, իսկ «աջ ներքև» ՝ աջերը ՝ ներքև, իսկ «աջ վեր» ՝ հակառակը: «Պարիր», այն կստիպի պարել, դե գոնե մի տեսակ: Այն նաև խոսում է, խնդրում ենք դիտել կից տեսանյութը:

Այսպիսով, փոքր ջանքերով կարող եք ստեղծել ձեր պարող, զրուցող և երգող ռոբոտը:

Հատկապես փոքր երեխաների կողմից դրա օգտագործումը պարզեցնելու և «կախարդական» գործոնը բարձրացնելու համար AIY տուփի կոճակը փոխարինվեց որպես հարևանության սենսոր: Իր պարզության համար ես օգտագործեցի Pololu- ից հեռավորության սենսորային ճեղքվածք, որը ճանաչում է, եթե օբյեկտը 5 սմ -ից ավելի մոտ է, և այն կարող է օգտագործվել կոճակի պես: LED- ները ցույց են տալիս, երբ սարքը սպասում է պատվերների, լսում կամ «մտածում»: Vառայությունները, սենսորը և LED- ները վերահսկվում են GPIOZero ծրագրային գրադարանի կողմից:

Նախատիպը կառուցվել է Forex- ից ՝ PVC փրփուր թիթեղներից, որոնք շատ հեշտությամբ կարելի է կտրել դանակով և սոսնձել, բայց նաև բավականին կայուն է: Ազատ զգալ կառուցեք ավելի մեծ, գեղեցիկ, կատարելագործված կամ ավելի շքեղ տարբերակ, բայց լավ կլինի, եթե փաստաթղթավորեք և ներկայացնեք ձեր բարելավումները:

Դուք կարող եք օգտագործել մարմնի երկու կողմերը ՝ կախված այն բանից, թե ցանկանում եք ներկայացնել շարժվող հանդերձանքը, թե ունենալ գեղեցիկ, երեխաների համար հարմար դասավորություն: --------- «Hampelmann»-ը գերմանական տերմինն է, որը նշանակում է «նետվող ժակ» `ունենալով որոշակի երանգներ:

Քայլ 1: Օգտագործված նյութեր

Օգտագործված նյութեր
Օգտագործված նյութեր
Օգտագործված նյութեր
Օգտագործված նյութեր

Ազնվամորի Pi 3; 32 £ Պիմորոնիում, Մեծ Բրիտանիա

AIY ձայնային հավաքածու; 25 £ Պիմորոնիում, Մեծ Բրիտանիա

Pololu թվային հեռավորության տվիչի ճեղքում Sharp սենսորով, 5 սմ; 5.90 € Exp-tec.de կայքում

Երկու 9 գ սպասարկում

Երկու սպիտակ LED և ռեզիստոր

Որոշ վերնագրեր և jumper մալուխներ

2 մմ Forex ափսե, 250 x 500 մմ; 1.70 € Modulor- ում, Բեռլին, Գերմանիա

M3 պտուտակներ, ընկույզներ և լվացարաններ ՝ բոլոր շարժական մասերը միացնելու համար: Ես օգտագործեցի վեց 10 և չորս 16 մմ նեյլոնե պտուտակներ:

Վեց M2 պտուտակ և ընկույզ ՝ սերվերը սալերի վրա ամրացնելու և սերվոյի թևերն ու շարժակները միացնելու համար:

Մի քանի կաթիլ պլաստիկ սոսինձ

Քայլ 2: Սարքի հավաքում և օգտագործում

Սարքի հավաքում և օգտագործում
Սարքի հավաքում և օգտագործում
Սարքի հավաքում և օգտագործում
Սարքի հավաքում և օգտագործում
Սարքի հավաքում և օգտագործում
Սարքի հավաքում և օգտագործում

Ինչ վերաբերում է բուն AIY ձայնային հավաքածուին, պարզապես հետևեք նկարագրության հրահանգներին, որն ուղեկցվում է հանդերձանքով, ներառյալ սերվոյի մասին բաժինը: Ես խորհուրդ կտայի մի քանի եռակողմանի վերնագրեր միացնել սերվո պորտերին AIY ձայնային անջատման վրա, այնպես որ կարող եք սերվերը, սենսորը և LED- ները շատ հեշտ միացնել HAT- ի հետ:

Ինչ վերաբերում է ցատկող բաճկոնին, ապա դուք կարող եք կամ օգտագործել այստեղ իմ տված գծագրերը որպես svg- և PDF- ֆայլեր որպես ձևանմուշ, կամ պարզապես փոփոխել դրանք ըստ ձեր սեփական պատկերացումների: Ձեզ դուր կգա ցատկող անցքի ոտքերն ու թևը վարող հանդերձանքի հիմնական դասավորությունը `ապահովելով, որ առանցքի և հանդերձանքի միջև հեռավորությունը սերվոյում, ձեռքին և ոտքին նույնն է:

Այլապես, կարող եք նաև ստեղծել տարբերակ, եթե ձեռքերն ու ոտքերը ուղղակիորեն քշվում են չորս առանձին սերվերով կամ ավելի առաջադեմ հանդերձանքով:

Օգտագործելով գծանկարը, կտրեք կտորները Forex, ստվարաթուղթ կամ նրբատախտակի ափսեից և անցքերը հորատեք համապատասխան դիրքերում: Կպչեք հեռավորության կտորները զենքի և ոտքերի առանցքային կետերին ՝ ապահովելով անցքերի լավ հավասարեցում:

Սերվոները և շարժվող մասերը ամրացրեք հիմքի ափսեի մեջ: Ավելացրեք հեռավորության սենսորը և LED- ը, ինչպես նշված է: Սերվոները ամրագրված են M2 պտուտակներով, բոլոր շարժական մասերը `M3 պտուտակներով: Ես օգտագործեցի նեյլոնե M3 պտուտակներ, բայց միայն գեղագիտական նկատառումներով:

Ստուգեք, արդյոք servo թևերը տեղադրված են միջին դիրքում: Միացրեք servo զենքերն ու շարժակները, ես այդ նպատակով օգտագործել եմ M2 պտուտակներ:

Կցեք սերվոներ, լուսադիոդներ և հեռավորության սենսոր AIY տախտակի servo միակցիչներին: Ձեզ կարող է անհրաժեշտ լինել երկարացման/ցատկման մալուխներ: Ձախ սերվերը կցեցի «servo0» - ին (GPIO 26) աջ սերվոյին ՝ «servo2» - ին (GPIO 13), LED- ները ՝ «servo5» (GPIO 24), իսկ տվիչը ՝ «servo3» (GPIO 5) - ին AIY- ում ձայն HAT.

Պատճենեք տրամադրված «Hampelmann.py» ֆայլը AIY «src» ենթապանակում և այն դարձրեք ուղղակի գործարկելի ցանկացածի համար: Դա անելու համար կարող եք ֆայլը ընտրել ֆայլերի կառավարիչում, այնուհետև աջ սեղմեք և ընտրեք «Հատկություններ», ընտրեք «Թույլտվություններ», անցեք «Կատարել», ընտրել ~ որևէ մեկին: Կամ Dev կոնսոլում գրեք «chmod +x src/Hampelmann.py»:

Ստուգեք, արդյոք ամեն ինչ դրված է տեղում և ամրագրված է, կամ անհրաժեշտության դեպքում շարժական է: Բացեք Dev հրամանի տողը, մուտքագրեք «src/Hampelmann.py» և սկսեք ծրագիրը: Եթե ձեր ձեռքը կամ մատները շարժեք հեռավորության սենսորի առջև, AIY միավորը պատվերներ կխնդրի, և LED- ները կթարթեն: Իրականացված պատվերներն են ՝ «աջ/ձախ/ձեռքերը վեր/վար/կենտրոն», «պար», «LED միացված/անջատված» և «ցտեսություն»:

Խաղալ: Ձեռքը շարժեք սենսորի դիմաց, խոսեք, երբ ձեզ խնդրեն և մի փոքր ժամանակ տվեք սարքին արձագանքելու համար: Լատենտությունը բավականին բարձր է: Crtl+C կամ «Goodbye» ծրագիրը կդադարեցնի ծրագիրը:

Դուք կարող եք փոփոխել ֆայլը ՝ օգտագործելով Nano- ն կամ մեկ այլ պարզ տեքստային խմբագիր:

Նշումներ. Խնդրում ենք տեղյակ լինել, որ որոշ բառեր և տերմիններ ճանաչվում են որպես մեծատառով սկսվող բառեր, որպես «Կենտրոն» կամ «Աջ կենտրոն», ինչպես մյուսները, օրինակ. 'ընդհուպ'. Դուք պետք է օգտագործեք ձայնի ճանաչման մոդուլի կողմից տրված ճշգրիտ ձևը ՝ որոշակի գործողություն սկսելու համար:

Քայլ 3: Python Script

Ինչպես արդեն նշվեց, սցենարը հիմնված է servo_demo.py սցենարի վրա ՝ AIY ձայնային հրահանգներից ՝ որոշ լրացումներով: Առաջին տարբերակը Hampelmann.py ֆայլն է, որը կցված կգտնեք: GPIOZero- ի AngularServo- ն թույլ է տալիս սահմանափակել servo- ի գործողության տիրույթը և հստակ սահմանել, թե որքան հեռու է շարժվելու: Բայց ես գերադասում եմ բրիտանական ձայնը բնօրինակից: Եվ սարքը կարող է նաև խոսել, բայց չհասկանալ (?), Անգլերեն, գերմաներեն, իտալերեն, ֆրանսերեն և իսպաներեն: Ստորև կգտնեք Hampelmann2.py սցենարը ՝ բրիտանական ձայնով և մի փոքր իտալերեն և գերմաներեն: Խնդրում ենք նկատի ունենալ, որ սցենարները գործարկելու համար դրանք պետք է կատարելի դարձնեն:

#!/usr/bin/env python3 # Այս սցենարը AIY ձայնային գլխարկի servo_demo.py սցենարի հարմարեցում է, # օպտիմիզացված AIY jumping jack ներմուծման համար aiy.audio import aiy.cloudspeech ներմուծման aiy.voicehat gpiozero ներմուծման LED- ից gpiozero ներմուծման AngularServo- ից gpiozero ներմուծման կոճակ ժամանակից ներմուծում քնել def main (): Կենտրոն ') # մեծատառերը կան դիտմամբ ճանաչող. Ակնկալվող արտահայտություն («ձախից վեր») («ձեռքերը վար»).audio.get_recorder (). սկիզբ () 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) # LED- ները միացված են servo5/GPIO 24 հեռավորությանը = Կոճակ (5) # հեռավորության սենսոր դեպի servo3/GPIO 05 # այլ. GPIO 6 ժամը servo1, 12 հասցեում ՝ servo4 aiy.audio.say («Բարև ձեզ»,) aiy.audio.say («Սկսելու համար, ձեռքը մոտեցրեք սենսորին»,) մինչդեռ True: led0.on () # լուսադիոդներ տպման վրա («Ձայնի ճանաչումն ակտիվացնելու համար ձեռքը մոտեցրու հեռավորության սենսորին, այնուհետև խոսիր») տպել («Սպասվող հիմնաբառերն են ՝ ձեռքեր/ձախ/աջ վեր/վար/կենտրոն»,) տպել ('LED միացված/անջատված, պարել և ցտեսություն.') print () distance.wait_for_press () print ('Listening…') aiy.audio.say («Խնդրում ենք տալ ձեր պատվերները»,) led0.blink () # light թարթել տեքստը = ճանաչող. ճանաչել (), եթե տեքստը չկա: aiy.audio.say («Կներեք, ես ձեզ չեմ լսել»,)) այլապես ՝ տպել («Դուք ասացիք», տեքստ, ' ') # Թույլ է տալիս ստուգեք համակարգերի մեկնաբանությունը, եթե տեքստում կա «աջ վերև». տպել («servo0- ն տեղափոխվում է առավելագույն դիրքի») servo0.angle = 35 elif «աջ ներքև» տեքստում. տպել («շարժվող servo0 նվազագույն դիրքի ') servo0.angle = -35 elif' Right Center 'տեքստում. #ճիշտ վերնագրերը կրիտիկական տպագիր են (' servo0- ն տեղափոխվում է միջին դիրք ') servo0.angle = 0 elif' left up 'in text: print (' Servo2- ի տեղափոխում առավելագույն դիրքի ') servo2.angle = -35 elif' left down 'տեքստում. Տպել (' servo2- ը տեղափոխել նվազագույն դիրք ') servo2.angle = 35 elif' ձախ կենտրոն 'տեքստում. Print (' servo2- ը տեղափոխում դեպի միջին դիրքորոշում ') servo2.angle = 0 elif' hands up 'տեքստում. տպել (' servo2- ը տեղափոխում է առավելագույն դիրք ') servo2.angle = -35 servo0.angle = 35 elif' ձեռքերը վար 'տեքստում. տպել (' Շարժվող servo2 նվազագույն դիրքի ') servo2.angle = 35 servo0.angle = -35 elif' ձեռքերը կենտրոն 'տեքստում. տպել (' servo2- ը տեղափոխում է միջին դիրք ') servo2.angle = 0 servo0.angle = 0 elif' LED անջատված ' տեքստում ՝ տպել («անջատել արտաքին LED 0») led0.off () elif «LED» տեքստում. տպել («միացնել արտաքին LED 0») led0.on () # light elif «պարել» տեքստում. տպել («այժմ կատարում է թիվ մեկ պարը») aiy.audio.say («Դե, ես ամեն ինչ կանեմ»,) led0.on () # լույսերը միացված են i- ի համար (3). 1) servo0.angle = -25 servo2.angle = 0 քուն (1) servo0.angle = 30 servo2.angle = 20 քուն (1) servo0.angle = 0 servo2.angle = 0 led0.off () # լույս անջատված elif «ցտեսություն» տեքստում. led0.off () sleep (3) print («bye!») break else: print («առանց հիմնաբառ ճանաչված չէ») aiy.audio.say («Կներեք, ես ձեզ չհասկացա»,) եթե _name_ == _ հիմնական_ ': հիմնական ()

Խորհուրդ ենք տալիս: