Агуулгын хүснэгт:

A Voice Controlled Jumping Jack- Google Voice AIY хувилбар: 3 алхам
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар: 3 алхам

Видео: A Voice Controlled Jumping Jack- Google Voice AIY хувилбар: 3 алхам

Видео: A Voice Controlled Jumping Jack- Google Voice AIY хувилбар: 3 алхам
Видео: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Арваннэгдүгээр
Anonim
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар
A Voice Controlled Jumping Jack- Google Voice AIY хувилбар

Тиймээс та Христийн Мэндэлсний Баярын үеэр зориулагдсан AIY дууны иж бүрдэлтэй болсон бөгөөд зааврын дагуу тоглож байсан. Хөгжилтэй, гэхдээ одоо?

Дараахь зүйлд тайлбарласан төсөл нь Raspberry Pi -д зориулсан AIY voice HAT ашиглан бүтээх боломжтой энгийн төхөөрөмжийг танилцуулж байна. Энэ нь Google дуу хоолой таних системийг ашиглан LED болон хоёр servo -ийг удирдах бөгөөд үсрэх үүрний гар, хөлийг маш энгийн араагаар жолооддог.

Цаана ажиллаж байгаа програм хангамж нь AIY дууны хэрэгслийн гарын авлагад дурдсанчлан servo_demo.py скриптийн өөрчлөлт юм. Хатуу болон програм хангамжийг тохируулахын тулд тэнд өгсөн зааврыг дагана уу. Төхөөрөмжийг өөрөө бүтээхэд хялбар бөгөөд гар урлалын ур чадвар шаарддаггүй. Нэмж дурдахад зүсэгч хутга, өрөм, гагнуурын төмөр нь тустай байх болно.

Хэрэв та дуугаа таних системийг идэвхжүүлж, "гараа дээшээ" гэж хэлвэл үсрэх үүр нь гар, хөлийг дээшлүүлбэл "гар төв" нь хоёр servo -ийг дунд байрлалд, "гараа доош" гар, хөл дээрээ хөдөлгөх болно. доошлуулах. "Зүүн дээш" зүүн гар, хөл дээш өргөгдөж, "баруун доош" баруун гараа доош, "баруун дээш" эсрэгээр доошлуулна. "Бүжиглээрэй", үүнийг бүжиглэх болно. Энэ бас ярьж байна, хавсаргасан видеог үзээрэй.

Тиймээс багахан хүчин чармайлтаар та өөрөө бүжиглэх, чатлах, дуулах роботыг бүтээж чадна.

Ялангуяа бага насны хүүхдүүдийн хэрэглээг хялбарчлах, "ид шид" хүчин зүйлийг сайжруулахын тулд AIY хайрцаг дээрх товчлуурыг ойр орчмын мэдрэгчээр сольсон байна. Энгийн байдлаар би Pololu -аас дижитал зайны мэдрэгчийг ашигласан бөгөөд энэ нь объект 5 см -ээс ойрхон байгаа бөгөөд үүнийг товчлуур шиг ашиглах боломжтой юм. LED нь төхөөрөмж захиалга хүлээж, сонсох эсвэл "бодох" үеийг харуулдаг. Серво, мэдрэгч, LED -ийг GPIOZero програм хангамжийн сан хянадаг.

Энэхүү загварыг форекс, PVC хөөсөн хавтангаар хийсэн бөгөөд хайчлах хутгаар маш амархан хайчилж, нааж болох боловч нэлээд тогтвортой байдаг. Илүү том, илүү гоё, сайжруулсан эсвэл илүү гоё хувилбарыг бүтээхийг хүсээрэй, гэхдээ та сайжруулалтаа баримтжуулж, танилцуулах нь сайхан байх болно.

Та хөдөлгөөнт төхөөрөмжөө танилцуулах эсвэл хүүхдэд ээлтэй, сайхан зохион байгуулалттай байхыг хүсч байгаа эсэхээс үл хамааран биеийнхээ хоёр талыг ашиглаж болно. --------- "Hampelmann" гэдэг нь "үсрэх үүр" гэсэн герман нэр томъёо бөгөөд тодорхой утгатай байдаг.

Алхам 1: Ашигласан материал

Ашигласан материал
Ашигласан материал
Ашигласан материал
Ашигласан материал

Raspberry Pi 3; Их Британийн Пиморонид 32 фунт

AIY дууны хэрэгсэл; Их Британийн Пиморонид 25 фунт стерлинг

Pololu дижитал зайны мэдрэгч нь Sharp мэдрэгчтэй, 5 см; Exp-tec.de дээр 5.90 евро

Хоёр 9g servo

Хоёр цагаан LED ба резистор

Зарим толгой ба холбогч кабель

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

М3 шураг, самар, угаагч, бүх хөдөлгөөнт эд ангиудыг холбох. Би 6 ширхэг 10 мм, 4 ширхэг 16 мм -ийн Nylon эрэг ашигласан.

Зургаан М2 эрэг, самар, servos -ийг хавтан дээр засаж, servos гар ба араа холбоно.

Хэдэн дусал хуванцар цавуу

Алхам 2: Төхөөрөмжийн угсралт ба хэрэглээ

Төхөөрөмжийн угсралт ба хэрэглээ
Төхөөрөмжийн угсралт ба хэрэглээ
Төхөөрөмжийн угсралт ба хэрэглээ
Төхөөрөмжийн угсралт ба хэрэглээ
Төхөөрөмжийн угсралт ба хэрэглээ
Төхөөрөмжийн угсралт ба хэрэглээ

AIY дууны хэрэгслийн тухайд servo -ийн хэсгийг багтаасан иж бүрдэлд багтсан тайлбар дахь зааврыг дагана уу. Би AIY-ийн дуу таслах хэсэгт байрлах хэд хэдэн гурван зүү толгойг servo порт руу гагнахыг зөвлөж байна, ингэснээр та HAT-ээр servo, мэдрэгч, LED-ийг хялбархан холбож болно.

Үсрэх үүрний тухайд энд миний оруулсан зургуудыг svg болон PDF файл болгон загвар болгон ашиглаж болно, эсвэл өөрийн санаа бодлын дагуу өөрчилж болно. Та үсрэх үүрний хөл, гарыг жолооддог арааны үндсэн схемийг хадгалахыг хүсч болно.

Өөр нэг хувилбар бол гар, хөлийг дөрвөн тусдаа servo эсвэл илүү дэвшилтэт араагаар удирддаг хувилбарыг хийж болно.

Зургийг ашиглан форекс, картон эсвэл фанер хавтан дээрх хэсгүүдийг хайчилж, зохих байрлалд нүх өрөмдөнө. Гар, хөлний эргэх цэгүүдэд зайны хэсгүүдийг нааж, нүхийг сайтар тэгшлээрэй.

Серво ба хөдлөх хэсгүүдийг үндсэн хавтан дээр бэхлээрэй. Зайны мэдрэгч ба LED -ийг зааж өгсөн байдлаар нэмнэ үү. Сервүүдийг М2 эрэг, бүх хөдөлгөөнт эд ангиудыг М3 эрэг ашиглан бэхлэнэ. Би Nylon M3 боолтыг ашигласан, гэхдээ зөвхөн гоо зүйн шалтгаанаар.

Серво гарыг дунд байрлалд байрлуулсан эсэхийг шалгаарай. Серво гар ба араа холбоно уу, би энэ зорилгоор M2 боолтыг ашигласан.

AIY самбар дээрх servo холбогчдод servo, LED болон зайны мэдрэгчийг холбоно уу. Танд сунгах/холбогч кабель хэрэгтэй байж магадгүй юм. Би зүүн servo -ийг "servo0" (GPIO 26), баруун servo -ийг "servo2" (GPIO 13), LED -ийг "servo5" (GPIO 24), мэдрэгчийг AIY дээрх "servo3" (GPIO 5) -д холбосон. дуу хоолой HAT.

Өгөгдсөн "Hampelmann.py" файлыг AIY "src" дэд хавтсанд хуулж, хэн ч шууд гүйцэтгэх боломжтой болго. Үүнийг хийхийн тулд та файлын менежерээс файлыг сонгож, дараа нь хулганы баруун товчийг дараад Properties -ийг сонгож, Зөвшөөрлийг сонгоод Execute руу очоод ~ хэнийг ч сонгож болно. Эсвэл хөгжүүлэгчийн консол дээр "chmod +x src/Hampelmann.py" гэж бичнэ үү.

Шаардлагатай бол бүх зүйлийг байрлуулж, зассан, хөдлөх боломжтой эсэхийг шалгаарай. Dev командын мөрийг нээж, "src/Hampelmann.py" гэж оруулаад програмыг эхлүүлнэ үү. Хэрэв та зай мэдрэгчийн өмнө гар эсвэл хуруугаа хөдөлгөвөл AIY төхөөрөмж захиалга өгөх бөгөөд LED нь анивчих болно. Хэрэгжүүлсэн захиалга нь "баруун/зүүн/гараа дээш/доош/төв", "бүжиг", "LED асаах/унтраах", "баяртай".

Тоглох. Мэдрэгчийн урд гараа хөдөлгөж, асуухад нь ярьж, төхөөрөмжид хариу үйлдэл үзүүлэхэд жаахан хугацаа өг. Хожимдол нь нэлээд өндөр байна. Crtl+C эсвэл "Баяртай" програмыг зогсооно.

Та файлыг Nano эсвэл өөр энгийн текст засварлагч ашиглан өөрчилж болно.

Тэмдэглэл: Зарим үг, нэр томъёог том үсгээр эхэлсэн үгийг "Төв" эсвэл "Зөв төв" гэж хүлээн зөвшөөрдөг болохыг анхаарна уу. 'Яг дээшээ'. Зарим үйлдлийг өдөөхийн тулд та дуу таних модулийн өгсөн хэлбэрийг ашиглах ёстой.

Алхам 3: Python скрипт

Өмнө дурьдсанчлан, скрипт нь AIY дуут зааврын дагуу servo_demo.py скрипт дээр суурилсан бөгөөд зарим нэмэлтийг оруулсан болно. Эхний хувилбар нь Hampelmann.py файл юм. GPIOZero -ийн AngularServo нь servo -ийн үйл ажиллагааны хүрээг хязгаарлаж, яг хэр хол явахыг тодорхойлох боломжийг олгодог боловч би Британийн дуу хоолойг анхныхаас илүү илүүд үздэг. Төхөөрөмж нь англи, герман, итали, франц, испани хэлээр ярьдаг боловч ойлгодоггүй (?) Доор та англи дуу хоолойтой, жаахан итали, герман хэлтэй Hampelmann2.py скриптийг олох болно. Скриптүүдийг ажиллуулахын тулд тэдгээрийг гүйцэтгэх боломжтой болгох ёстой гэдгийг санаарай.

#!/usr/bin/env python3 # Энэхүү скрипт нь AIY дууны HAT -д зориулсан servo_demo.py скриптийн дасан зохицол юм. gpiozero импортоос AngularServo -аас gpiozero импортлох цаг хугацааны импорт унтраах товчлуур def main (): танигч = aiy.cloudspeech.get_recognizer () танигч.эффект_фраз ('баруун дээш') танигч.хэлэх_фаз ('баруун доош') танигч.хэлэх_төгсгөл ('Баруун) Төв ') # том үсгүүд нь зорилготойгоор танигч.хүлээх_фаз (' зүүнээс дээш ') танигч. ('гараа доошлуулах') танигч.хүлээх_фаз ('гар төв') танигч.хүлээх_фаз ('Бүжиг') танигч.хаягийн_фаз ('LED асаалттай') танигч.хүлээлтийн_фаз ('LED унтраалттай') танигч.хаягийн_фаз ('баяртай') 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) # LED нь servo5/GPIO 24 зайнд холбогдсон байна = Товчлуур (5) # зайн мэдрэгч холбогдсон servo3 руу: led0.on () # LED -үүдийг хэвлэж байна ("Дуу таних функцийг идэвхжүүлэхийн тулд гараа зайны мэдрэгчийн ойролцоо хөдөлгөж, дараа нь ярих") хэвлэх ('Хүлээгдэж буй түлхүүр үгс нь: гар/зүүн/баруун дээш/доош/төв,') хэвлэх ('LED асаах/унтраах, бүжиглэх, баяртай.') print () зай.wait_for_press () хэвлэх ('Сонсож байна …') aiy.audio.say ("Захиалгаа өгнө үү",) led0.blink () # гэрэл текст анивчих = танигч.шинэх () хэрэв текст байхгүй бол: aiy.audio.say ('Уучлаарай, би таныг сонсоогүй.',) өөр: хэвлэх ('Та хэлсэн "', текст, '"') # Танд зөвшөөрөх Текстэд "баруун дээш" байвал системийн тайлбарыг шалгана уу: хэвлэх ('servo0 -ийг хамгийн дээд байрлал руу шилжүүлэх') servo0.angle = 35 elif 'баруун доош' текстэнд: хэвлэх ('servo0 -ийг хөдөлгөж байна') хамгийн бага байрлал руу ') servo0.angle = -35 elif' Баруун төв 'текст дээр: #зөв гарчиг нь чухал хэвлэмэл (' servo0-ийг дунд байрлал руу шилжүүлж байна ') servo0.angle = 0 elif' зүүн тийш 'текст дээр: хэвлэх (' Servo2-ийг хамгийн дээд байрлал руу зөөж байна ') servo2.angle = -35 elif' зүүн доош 'текст дээр: хэвлэх (' servo2-ийг хамгийн бага байрлал руу шилжүүлэх ') servo2.angle = 35 elif' зүүн төвд 'текстэнд: хэвлэх (' servo2-ийг хөдөлгөж байна дунд байрлал ') servo2.angle = 0 elif' гараа дээшлүүлэх 'текст дээр: хэвлэх (' Servo2-ийг хамгийн дээд байрлал руу шилжүүлэх ') servo2.angle = -35 servo0.angle = 35 elif' гараа доош нь 'текстэнд: хэвлэх (' Хөдлөх servo2 хамгийн бага байрлал руу ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'in text: хэвлэх (' Servo2-ийг дунд байрлал руу шилжүүлэх ') servo2.angle = 0 servo0.angle = 0 elif' LED унтраах ' текст дотор: хэвлэх ('гадаад LED 0 -ийг унтраах') led0.off () elif 'LED асаалттай' текстэнд: хэвлэх ('гадаад LED 0 -ийг асаах') led0.on () # гэрэл элиф 'бүжиг' гэсэн текст: хэвлэх ('одоо нэг номерын бүжиг хийж байна') aiy.audio.say ("За, би чадах бүхнээ хийх болно!",) led0.on () # гэрэл асаалттай байна i-ийн хувьд (3): servo0.angle = 0 servo2.angle = 0 унтах (1) servo0.angle = 35 servo2.angle = -35 унтах (1) servo0.angle = 0 servo2.angle = -35 унтах (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 () унтах (3) хэвлэх ('баяртай!') завсарлага өөр: хэвлэх ('түлхүүр үг танигдаагүй!') aiy.audio.say ("Уучлаарай, би чамайг ойлгосонгүй",) хэрэв _name_ == ' _main_ ': үндсэн ()

Зөвлөмж болгож буй: