Съдържание:

Гласово контролиран скачащ жак- Google Voice AIY версия: 3 стъпки
Гласово контролиран скачащ жак- Google Voice AIY версия: 3 стъпки

Видео: Гласово контролиран скачащ жак- Google Voice AIY версия: 3 стъпки

Видео: Гласово контролиран скачащ жак- Google Voice AIY версия: 3 стъпки
Видео: Милая биполярочка Кратика ► 2 Прохождение God of War (HD Collection, PS3) 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 гласов комплект за Коледа и сте играли с него, следвайки инструкциите. Смешно е, но сега?

Проектът, описан по -долу, представя просто устройство, което може да бъде изградено с помощта на AIY voice HAT за Raspberry Pi. Той използва системата за разпознаване на глас на Google за управление на светодиоди и две серво, задвижвайки ръцете и краката на скачащ жак с много проста предавка.

Софтуерът, работещ във фонов режим, е модификация на скрипта servo_demo.py, както е описано в ръководството за AIY гласов комплект. Просто следвайте инструкциите, дадени там, за да настроите хардуер и софтуер. Самото устройство е лесно за изграждане и не изисква много умения за ръчна изработка. Освен това нож за рязане, бормашина и поялник биха били полезни.

Ако активирате системата за разпознаване на глас с намигване на ръката си и кажете „ръцете нагоре“, скачащият жак ще повдигне ръцете и краката, „центърът на ръцете“ще премести двата сервоустройства в средна позиция, а на „ръцете надолу“ръцете и краката ще бъде понижен. На „ляво нагоре“лявата ръка и крака ще бъдат повдигнати, а на „дясно надолу“десните спуснати, на „дясно нагоре“обратно. "Танцувай", ще го накара да танцува, добре поне. Той също говори, моля, погледнете прикаченото видео.

Така че с малко усилия можете да създадете свой собствен робот за танци, чат и пеене.

За да се опрости използването му, особено от по -малки деца, и да се подобри „магическият“фактор, бутонът на кутията AIY е заменен като спусък от сензор за близост. За своята простота използвах пробив на цифров сензор за разстояние от Pololu, който разпознава дали даден обект е по -близо от 5 см и може да се използва много като бутон. Светодиодите показват, когато устройството чака поръчки, слуша или „мисли“. Сервомоторите, сензорите и светодиодите се управляват от софтуерната библиотека на GPIOZero.

Прототипът е изграден от Forex, плочи от PVC пяна, които могат да се режат много лесно с нож и да се залепват, но също така са доста стабилни. Чувствайте се свободни да създадете по -голяма, по -хубава, подобрена или по -фантастична версия, но би било любезно, ако документирате и представите вашите подобрения.

Можете да използвате и двете страни на тялото, в зависимост от това дали искате да представите движещата се екипировка или да имате хубаво, удобно за децата оформление. --------- "Hampelmann" е немският термин за "скачащ валет", имащ определени конотации.

Стъпка 1: Използвани материали

Използвани материали
Използвани материали
Използвани материали
Използвани материали

Малина Пи 3; 32 £ в Pimoroni, Великобритания

AIY гласов комплект; 25 £ в Pimoroni, Великобритания

Pololu цифров сензор за разстояние с сензор Sharp, 5 см; 5,90 € на Exp-tec.de

Две 9g сервомотора

Два бели светодиода и резистор

Някои заглавки и джъмперни кабели

Форекс плоча 2 мм, 250 х 500 мм; 1,70 € в Modulor, Берлин, Германия

M3 винтове, гайки и шайби, за свързване на всички движещи се части. Използвах шест 10 и четири 16 мм найлонови винта.

Шест M2 винта и гайки, за да закрепите сервомоторите към плочите и да свържете серво рамото и зъбните колела.

Няколко капки пластмасово лепило

Стъпка 2: Сглобяване и използване на устройството

Сглобяване и използване на устройството
Сглобяване и използване на устройството
Сглобяване и използване на устройството
Сглобяване и използване на устройството
Сглобяване и използване на устройството
Сглобяване и използване на устройството

Що се отнася до самия гласов комплект AIY, просто следвайте инструкциите в описанието, което се доставя с комплекта, включително раздела за серво. Бих препоръчал да запоите няколко три-пинови заглавки към серво портовете на AIY гласовия пробив, така че можете да свържете много лесно серво, сензор и светодиоди с HAT.

Що се отнася до скачащия жак, можете или да използвате предоставените тук рисунки като svg- и PDF-файлове като шаблон, или просто да ги промените според вашите собствени идеи. Може да искате да запазите основното разположение на предавката, задвижваща краката и рамото на скачащия крик, като гарантирате, че разстоянието между точката на завъртане и предавката е еднакво при серво, ръката и крака.

Като алтернатива можете също така да конструирате версия, при която ръцете и краката се задвижват директно от четири отделни сервомотора или от по -усъвършенствана предавка.

Използвайки чертежа, изрежете парчетата от форекс, картон или шперплат и пробийте дупките в съответните позиции. Залепете разстоянията до въртящите се точки на ръцете и краката, като осигурите добро подравняване на отворите.

Закрепете сервомоторите и движещите се части към основната плоча. Добавете сензора за разстояние и светодиода, както е посочено. Сервомоторите са фиксирани с винтове М2, всички подвижни части с винтове М3. Използвах найлонови винтове M3, но само по естетически причини.

Проверете дали серво рамото е поставено в средно положение. Свържете серво рамото и зъбните колела, използвах винтове M2 за тази цел.

Прикрепете сервомоторите, светодиодите и сензора за разстояние към серво конекторите на AIY платката. Може да се нуждаете от някои удължителни/джъмперни кабели. Прикрепих лявото серво към „servo0“(GPIO 26), дясното servo към „servo2“(GPIO 13), светодиодите към „servo5“(GPIO 24) и сензора към „servo3“(GPIO 5) на AIY глас ШАПКА.

Копирайте предоставения файл „Hampelmann.py“в подпапката AIY „src“и го направете директно изпълним за всеки. За да направите това, можете да изберете файла във файловия мениджър, след това щракнете с десния бутон и изберете Свойства, изберете Разрешения, отидете на Изпълнение, изберете ~ всеки. Или напишете „chmod +x src/Hampelmann.py“в конзолата за разработчици.

Проверете дали всичко е поставено на място и фиксирано или подвижно, когато е необходимо. Отворете командния ред на Dev, въведете „src/Hampelmann.py“и стартирайте програмата. Ако преместите ръката или пръстите си пред датчика за разстояние, AIY устройството ще поиска поръчки и светодиодите ще мигат. Изпълнените поръчки са „надясно/наляво/ръцете нагоре/надолу/в центъра“, „танц“, „включване/изключване на LED“и „сбогом“.

Играйте. Преместете ръката си пред сензора, говорете, когато бъдете помолени, и дайте на устройството малко време да реагира. Латентността е доста висока. Crtl+C или „Сбогом“ще спре програмата.

Можете да променяте файла с помощта на Nano или друг прост текстов редактор.

Забележки: Моля, имайте предвид, че някои думи и термини се разпознават като думи, започващи с главна буква, като „Център“или „Десен център“, тъй като други не са, напр. „Направо нагоре“. Трябва да използвате точната форма, върната от модула за разпознаване на глас, за да задействате някакво действие.

Стъпка 3: Скриптът на Python

Както бе споменато по -рано, скриптът се основава на скрипта servo_demo.py от гласовите инструкции на AIY, с някои допълнения. Първата версия е файлът Hampelmann.py, който ще намерите прикачен. AngularServo от GPIOZero позволява да се ограничи обхватът на действие на сервото и да се определи точно колко далеч ще се движи. Но аз предпочитам британския глас пред оригиналния. Устройството също може да говори, но да не разбира (?), Английски, немски, италиански, френски и испански. По -долу ще намерите сценария Hampelmann2.py с британски глас и малко италиански и немски. Моля, имайте предвид, че трябва да направите скриптовете изпълними, за да ги изпълнявате.

#!/usr/bin/env python3 # Този скрипт е адаптация на скрипта servo_demo.py за AIY гласова ШАПКА, # оптимизиран за AIY скок жак импортиране aiy.audio внос aiy.cloudspeech внос aiy.voicehat от gpiozero внос LED от gpiozero импортирайте AngularServo от gpiozero бутон за импортиране от време импортирайте sleep def main (): разпознавач = aiy.cloudspeech.get_recognizer () разпознавач Център ') # главните букви са нарочно разпознаващ.expect_phrase (' ляв нагоре ') разпознаващ.expect_phrase (' ляв надолу ') разпознаващ.expect_phrase (' ляв център ') разпознаващ.expect_phrase (' ръце нагоре ') разпознаващ.expect_phrase („ръцете надолу“) разпознавател.expect_phrase („център на ръцете“) разпознаващ.expect_phrase („Танцувай“) разпознаващ.expect_phrase („LED включен“) разпознаващ.expect_phrase („LED изключен“) разпознаващ.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) # светодиоди са свързани към servo5/GPIO 24 разстояние = Бутон (5) # сензор за разстояние е свързан към servo3/GPIO 05 # други: GPIO 6 при servo1, 12 при servo4 aiy.audio.say ("Здравейте!",) aiy.audio.say ("За да започнете, преместете ръката си близо до сензора",) докато е True: led0.on () # светодиоди при печат ("За да активирате разпознаването на глас, преместете ръка близо до сензора за разстояние, след това говорете") печат ("Очакваните ключови думи са: ръце/ляво/дясно нагоре/надолу/в центъра") print ('LED за включване/изключване, танци и сбогом.') print () distance.wait_for_press () print ('Слушане …') aiy.audio.say ("Моля, дайте вашите поръчки",) led0.blink () # светлина мигащ текст = разпознаващ.recognize (), ако текстът е None: aiy.audio.say ('Съжалявам, не ви чух.',) else: print ('Казахте' ', text,' "') # Позволява ви проверете интерпретацията на системите, ако „вдясно“в текст: print („Преместване на servo0 в максимална позиция“) servo0.angle = 35 elif „right down“в текст: print („Moving servo0 до минимална позиция ') servo0.angle = -35 elif' Десен център 'в текст: #правилните главни букви са критични за печат (' Преместване на servo0 в средна позиция ') servo0.angle = 0 elif' отляво нагоре 'в текст: print (' Преместване на servo2 в максимална позиция ') servo2.angle = -35 elif' отляво надолу 'в текст: print (' Преместване на servo2 в минимално положение ') servo2.angle = 35 elif' отляво в центъра 'в текст: print (' Moving servo2 to средна позиция ') servo2.angle = 0 elif' ръцете нагоре 'в текст: print (' Преместване на servo2 в максимална позиция ') servo2.angle = -35 servo0.angle = 35 elif' ръце надолу 'в текст: print (' Moving servo2 до минимална позиция ') servo2.angle = 35 servo0.angle = -35 elif "ръцете в центъра" в текст: print ("Преместване на servo2 в средна позиция") servo2.angle = 0 servo0.angle = 0 elif "LED изключен" в текст: print ('изключване на външен LED 0') led0.off () elif 'LED on' в текст: print ('включване на външен LED 0') led0.on () # light elif 'dance' в текст: print ('сега изпълнява танц номер едно') 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 ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('чао!') break else: print ('не се разпознава ключова дума!') aiy.audio.say ("Съжалявам, не те разбрах",) if _name_ == ' _main_ ': main ()

Препоръчано: