Мазмуну:

Үн менен башкарылган секирүүчү джек- Google Voice AIY версиясы: 3 кадам
Үн менен башкарылган секирүүчү джек- Google Voice AIY версиясы: 3 кадам

Video: Үн менен башкарылган секирүүчү джек- Google Voice AIY версиясы: 3 кадам

Video: Үн менен башкарылган секирүүчү джек- Google Voice AIY версиясы: 3 кадам
Video: ГЛАЗ - ГАМАЗ и ПИПКА - СТЕКЛОРЕЗ #5 Прохождение Gears of war 5 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 Voice HATтин жардамы менен курула турган жөнөкөй түзүлүштү сунуштайт. Бул Google үн таануу тутумун LED жана эки сервону көзөмөлдөө үчүн колдонот, секирүү уячасынын колдору менен буттарын абдан жөнөкөй тиш менен айдайт.

Фондо иштеген программалык камсыздоо AIY үн комплектинин колдонмосунда сүрөттөлгөн servo_demo.py скриптинин модификациясы. Жөн гана катуу жана программалык камсыздоону орнотуу үчүн берилген көрсөтмөлөрдү аткарыңыз. Түзмөктүн өзү оңой курулат жана кол өнөрчүлүк боюнча көп көндүмдөрдү талап кылбайт. Мындан тышкары, кескич бычак, бургулоочу жана ширетүүчү темир пайдалуу болмок.

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

Анча -мынча аракет кылуу менен сиз өзүңүздүн бийлөөңүздү, баарлашууңузду жана ырдооңузду жасай аласыз.

Айрыкча кичинекей балдар үчүн аны колдонууну жөнөкөйлөтүү жана "сыйкырдуу" факторду күчөтүү үчүн, AIY кутучасындагы баскыч жакындык сенсору менен триггер катары алмаштырылган. Жөнөкөйлүгү үчүн мен Pololuдон санарип аралык аралык сенсорунун сыныгын колдондум, ал объект 5 смден жакыныраак экендигин аныктайт жана баскычка окшош колдонулушу мүмкүн. Светодиоддор түзмөк буйруктарды, угууну же "ойлонууну" күтүп турганын көрсөтөт. Серверлер, сенсор жана светодиоддор GPIOZero программалык китепканасы тарабынан көзөмөлдөнөт.

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

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

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

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

Raspberry Pi 3; 32 £ Пиморониде, Улуу Британияда

AIY үн жыйнагы; Pimoroni, Улуу Британияда 25 £

Pololu санарип аралык аралык сенсорунун кескин сенсор менен үзүлүшү, 5 см; 5.90 € Exp-tec.de боюнча

Эки 9g servo

Эки ак LED жана резистор

Кээ бир баш жана секирүүчү кабелдер

2 мм Forex табак, 250 x 500 мм; 1.70 € Modulor боюнча, Берлин, Германия

М3 бурамалар, гайкалар жана шайбалар, бардык кыймылдуу бөлүктөрдү туташтыруу үчүн. Мен алты 10 жана төрт 16 мм нейлон бурамаларын колдондум.

Алты M2 бурамалар менен гайкалар, серволорду плиталарга бекитүү жана серволордун куралдарын жана тиштерин туташтыруу үчүн.

Бир нече тамчы пластик желим

2 -кадам: Аспапты монтаждоо жана колдонуу

Түзмөктү орнотуу жана колдонуу
Түзмөктү орнотуу жана колдонуу
Түзмөктү орнотуу жана колдонуу
Түзмөктү орнотуу жана колдонуу
Түзмөктү орнотуу жана колдонуу
Түзмөктү орнотуу жана колдонуу

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

Секирүү уячасы боюнча, мен бул жерде svg- жана PDF-файлдар катары тарткан сүрөттөрдү шаблон катары колдонсоң болот, же жөн эле өз оюңа ылайык өзгөртсөң болот. Сиз секирүүчү уячанын буттары менен колун айдап жүргөн тиштин негизги схемасын сактоону каалашыңыз мүмкүн.

Же болбосо, колу -буту түздөн -түз төрт өзүнчө серво же бир кыйла өркүндөтүлгөн тетиктер менен башкарылса, версиясын түзсөңүз болот.

Чиймени колдонуп, Forex, картон же фанер табактан кесимдерди кесип, тешиктерди тийиштүү орундарда бургулаңыз. Тешиктердин жакшы тегизделишин камсыз кылып, аралыктын бөлүктөрүн кол жана буттун бурулуш чекиттерине чаптаңыз.

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

Серво куралдары орто абалга коюлганын текшериңиз. Серво куралдарын жана тиштүү тетиктерди туташтырыңыз, мен бул үчүн M2 бурамаларын колдондум.

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 бирдиги буйруктарды сурайт жана LEDлар жаркырайт. Ишке ашырылган буйруктар "оң/сол/колдор өйдө/ылдый/борбор", "бий", "LEDди күйгүзүү/өчүрүү" жана "коштошуу".

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

Сиз файлды Nano же башка жөнөкөй текст редактору аркылуу өзгөртө аласыз.

Эскертүүлөр: Кээ бир сөздөр жана терминдер баш тамга менен башталган сөздөр катары таанылганын билиңиз, "Центр" же "Оң борбор", башкалары эмес, мис. "Туура". Кээ бир аракеттерди жасоо үчүн үн таануу модулу тарабынан берилген так форманы колдонушуңуз керек.

3 -кадам: Python Script

Буга чейин айтылгандай, скрипт AIY үн көрсөтмөлөрүнөн servo_demo.py скриптине негизделген, кээ бир толуктоолор менен. Биринчи версия - бул тиркелген Hampelmann.py файлы. GPIOZero -дан AngularServo сервонун аракет диапазонун чектөөгө жана канчалык алыска кетерин так аныктоого мүмкүндүк берет. Жана түзмөк сүйлөй алат, бирок түшүнбөйт (?), Англис, немис, италия, француз жана испан. Төмөндө сиз британиялык үн менен Hampelmann2.py сценарийин жана бир аз италиялык жана немис тилин таба аласыз. Сураныч, скрипттерди иштетүү үчүн аларды иштетүү керек экенин унутпаңыз.

#!/usr/bin/env python3 # Бул скрипт AIY Voice HAT үчүн servo_demo.py скриптинин адаптациясы, # AIY секирүү уячасы үчүн оптималдаштырылган aiy.audio импорт aiy.cloudspeech импорттук aiy.voicehat gpiozero импорттук LEDден gpiozero импорттон AngularServo импорттон gpiozero импорттоо Убакыт импорттоо баскычы def main (): тануучу = aiy.cloudspeech.get_recognizer () таанышуучу.капчыктык_фразасы ('оңго') Центр ') # чоң тамгалар атайылап таануучу.күтпө_фразасы (' солдон өйдө ') таануучу.күтүүдөн_фразасы (' солдон ') таануучусу. ('колду түшүрүү') таануучу.expect_phrase ('колдордун борбору') таануучу.expect_phrase ('Dance') таануучу.expect_phrase ('светодиод күйүп турат') таануучу.expect_phrase ('светодиод өчүрүү') таануучу.expect_phrase ('кош бол') 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) # LEDs servo5/GPIO 24 аралыкка туташтырылган = Баскыч (5) # аралык сенсору туташтырылган servo3/GPIO 05 # башкаларга: servio1де GPIO 6, servo4те 12 aiy.audio.say ("Саламатсызбы!",) aiy.audio.say ("Баштоо үчүн колуңузду сенсорго жакын жылдырыңыз",) True: led0.on () # LEDs басып чыгарууда ("Үн таанууну иштетүү үчүн, колуңузду аралык сенсоруна жакын жылдырып, анан сүйлөңүз") басып чыгарыңыз ('Күтүлгөн ачкыч сөздөр: колдор/сол/оңго/ылдый/борбор,') басып чыгаруу ('LED күйгүзүү/өчүрүү, бийлөө жана коштошуу.') print () расстояние.wait_for_press () басып чыгаруу ('Угуу…') aiy.audio.say ("Заказдарыңызды бериңиз",) led0.blink () # жарык текстти жок кылуу = таануучу.recognize () эгер текст жок болсо: aiy.audio.say ('Кечиресиз, мен сизди уккан жокмун.',) башка: print ('Сиз айттыңыз' ', текст,' "') # Сизге текстте "оңго" болсо системалардын чечмелөөсүн текшериңиз: басып чыгаруу ('servo0 максималдуу позицияга жылууда') servo0.angle = 35 elif 'оңго' текстте: басып чыгаруу ('servo0 көчүп жүрүү0) минималдуу позицияга ') servo0.angle = -35 elif' Оң борбор 'текстте: #туура баш тамгалар маанилүү басуу (' servo0 орто позицияга жылууда ') servo0.angle = 0 elif' солго 'текстте: print (' Серво2 максималдуу позицияга жылууда ') servo2.angle = -35 elif' солго 'текстте: басып чыгаруу (' servo2 минималдуу позицияга жылууда ') servo2.angle = 35 elif' сол борборунда 'текстте: басып чыгаруу (' servo2 жылдыруу орто позиция ') servo2.angle = 0 elif' колу өйдө 'текстте: басып чыгаруу (' servo2 максималдуу позицияга жылууда ') servo2.angle = -35 servo0.angle = 35 элиф' колу ылдый 'текстте: басып чыгаруу (' Кыймылдоо servo2 минималдуу абалга ') servo2.angle = 35 servo0.angle = -35 elif' колдордун борбору 'текстте: басып чыгаруу (' servo2 орто позицияга жылууда ') servo2.angle = 0 servo0.angle = 0 elif' LED өчүк ' текстте: басып чыгаруу ('тышкы LED 0 өчүрүү') led0.off () elif 'LED күйгүзүү' текстте: print ('тышкы LED 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 () # light off elif текстте 'goodbye': aiy.audio.say ("Goodbye",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('bye!') тыныгуу башка: print ('эч кандай ачкыч таанылган жок!') aiy.audio.say ("Кечиресиз, мен сизди түшүнгөн жокмун",) эгер _name_ == ' _main_ ': main ()

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