فهرست مطالب:

جک پرش با کنترل صدا- نسخه Google Voice AIY: 3 مرحله
جک پرش با کنترل صدا- نسخه Google Voice AIY: 3 مرحله

تصویری: جک پرش با کنترل صدا- نسخه Google Voice AIY: 3 مرحله

تصویری: جک پرش با کنترل صدا- نسخه Google Voice AIY: 3 مرحله
تصویری: АСМР 🏆🔥[Гарри Поттер и Кубок огня] [Глава 20-29] Чтение шепотом 📚 ASMR whisper [Harry Potter] 2024, دسامبر
Anonim
جک پرش با کنترل صدا- نسخه AIY 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 voice HAT برای رزبری پای ساخته شود. این دستگاه از سیستم تشخیص صدای گوگل برای کنترل LED ها و دو سروو استفاده می کند و بازوها و پاهای یک جک پرش را با یک دنده بسیار ساده هدایت می کند.

نرم افزاری که در پس زمینه کار می کند ، اصلاح اسکریپت servo_demo.py است ، همانطور که در کتابچه راهنمای کیت صدای AIY توضیح داده شده است. فقط دستورالعمل های داده شده برای راه اندازی سخت افزار و نرم افزار را دنبال کنید. ساخت این دستگاه به راحتی امکان پذیر است و به مهارت های زیادی در کار دست نیاز ندارد. علاوه بر این ، یک چاقوی برش ، یک مته و یک آهن لحیم کاری مفید خواهد بود.

اگر با یک چشمک زدن سیستم تشخیص صدا را فعال کنید و بگویید "دست بالا" ، جک پرش دست ها و پاها را بالا می برد ، "دستان مرکز" هر دو سروو را به موقعیت میانی و دست ها و پاها را به سمت پایین حرکت می دهد. پایین بیاید در "چپ به بالا" دست چپ و پاها بالا و در "راست پایین" پاهای راست پایین آمده ، و در "راست بالا" برعکس. "رقص" ، آن را رقص می کند ، حداقل به نوعی. این همچنین صحبت می کند ، لطفاً ویدیوی پیوست را ببینید.

بنابراین با کمی تلاش ، می توانید ربات رقص ، چت و آواز خود را بسازید.

برای ساده سازی استفاده از آن به ویژه برای کودکان کوچکتر و افزایش عامل "جادویی" ، دکمه روی جعبه AIY به عنوان ماشه توسط سنسور مجاورت جایگزین شد. برای سادگی آن ، من از سنسور فاصله دیجیتال از Pololu استفاده کردم که تشخیص می دهد اگر یک جسم از 5 سانتی متر نزدیکتر باشد و می تواند بسیار شبیه به یک دکمه استفاده شود. LED ها نشان می دهند که دستگاه در انتظار سفارشات ، گوش دادن یا "فکر کردن" است. سرویس ، سنسور و LED ها توسط کتابخانه نرم افزار GPIOZero کنترل می شوند.

نمونه اولیه از Forex ، صفحات فوم PVC ساخته شده است که می توان آن را با چاقوی برش بسیار ساده برش داد و چسباند ، اما همچنین کاملاً پایدار است. در صورت تمایل می توانید یک نسخه بزرگتر ، زیبا تر ، بهتر یا فانتزی تر بسازید ، اما اگر پیشرفت های خود را مستند و ارائه دهید ، خوب خواهد بود.

بسته به این که بخواهید وسایل متحرک را ارائه دهید یا چیدمانی زیبا و دوستانه برای کودکان داشته باشید ، می توانید از هر دو طرف بدن استفاده کنید. --------- "Hampelmann" واژه آلمانی برای "جک پرش" است که دارای دلالت های خاصی است.

مرحله 1: مواد مورد استفاده

مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده

تمشک پای 3 ؛ 32 £ در Pimoroni ، انگلستان

کیت صدای AIY ؛ 25 £ در Pimoroni ، انگلستان

شکست سنسور فاصله دیجیتال Pololu با سنسور شارپ ، 5 سانتی متر ؛ 5.90 یورو در Exp-tec.de

دو سرو 9 گرم

دو LED سفید و یک مقاومت

برخی از سربرگ ها و کابل های جامپر

صفحه فارکس 2 میلی متر ، 250 500 500 میلی متر ؛ 1.70 یورو در Modulor ، برلین ، آلمان

پیچ M3 ، مهره و واشر ، برای اتصال همه قطعات متحرک. من از شش پیچ نایلونی 10 و چهار 16 میلی متری استفاده کردم.

شش پیچ و مهره M2 ، برای تعمیر سروو روی صفحات و اتصال بازوها و چرخ دنده های سروو.

چند قطره چسب پلاستیک

مرحله 2: مونتاژ و استفاده از دستگاه

مونتاژ و استفاده از دستگاه
مونتاژ و استفاده از دستگاه
مونتاژ و استفاده از دستگاه
مونتاژ و استفاده از دستگاه
مونتاژ و استفاده از دستگاه
مونتاژ و استفاده از دستگاه

در مورد خود کیت صدای AIY ، فقط دستورالعمل های موجود در توضیحات همراه کیت ، از جمله بخش مربوط به سروو را دنبال کنید. توصیه می کنم چندین سرصفحه سه پین را به پورت های سرو در اتصال صوتی AIY بچسبانید ، بنابراین ممکن است سرویس ها ، سنسورها و LED ها را به راحتی با HAT متصل کنید.

در مورد جک پرش ، می توانید از نقشه هایی که در اینجا ارائه کرده ام به عنوان فایل svg- و PDF به عنوان الگو استفاده کنید ، یا فقط آنها را مطابق ایده های خود تغییر دهید. ممکن است دوست داشته باشید طرح اولیه چرخ دنده را که پاها و بازوی جک پرش را هدایت می کند حفظ کنید و اطمینان حاصل کنید که فاصله بین نقطه محوری و چرخ دنده در سروو ، بازو و پا یکسان است.

متناوبا ، شما همچنین می توانید نسخه ای بسازید که دست ها و پاها مستقیماً توسط چهار سروو جداگانه یا با دنده پیشرفته تر هدایت می شوند.

با استفاده از نقاشی ، قطعات را از یک صفحه فارکس ، مقوا یا تخته سه لا جدا کنید و سوراخ ها را در موقعیت های مناسب ایجاد کنید. قطعات فاصله را به نقاط محوری بازوها و پاها بچسبانید و از تراز خوب سوراخ ها اطمینان حاصل کنید.

سرووها و قطعات متحرک را به صفحه پایه ثابت کنید. حسگر فاصله و LED را مطابق شکل اضافه کنید. سرویس ها با پیچ M2 ثابت می شوند ، همه قسمت های متحرک با پیچ M3. من از پیچ های نایلون M3 استفاده کردم ، اما فقط به دلایل زیبایی.

بررسی کنید که آیا بازوهای سروو در موقعیت وسط قرار گرفته اند یا خیر. بازوها و چرخ دنده های سروو را وصل کنید ، من برای این منظور از پیچ M2 استفاده کردم.

سرووها ، LED ها و سنسور فاصله را به کانکتورهای سرو در برد AIY وصل کنید. ممکن است به برخی از کابل های کشش/بلوز نیاز داشته باشید. من سرووی سمت چپ را به "servo0" (GPIO 26) ، سرووی راست را به "servo2" (GPIO 13) ، LED ها را به "servo5" (GPIO 24) و سنسور را به "servo3" (GPIO 5) در AIY متصل کردم. صدا HAT

فایل ارائه شده "Hampelmann.py" را در زیر پوشه AIY "src" کپی کرده و مستقیماً برای هر کسی قابل اجرا کنید. برای انجام این کار ، می توانید فایل را در مدیریت فایل انتخاب کنید ، سپس راست کلیک کرده و Properties را انتخاب کنید ، Permissions را انتخاب کنید ، به Execute بروید ، ~ هر کسی را انتخاب کنید. یا "chmod +x src/Hampelmann.py" را در کنسول dev بنویسید.

بررسی کنید که آیا همه چیز در جای خود تنظیم شده و ثابت است یا در صورت لزوم قابل حرکت است یا خیر. خط فرمان Dev را باز کنید ، "src/Hampelmann.py" را وارد کرده و برنامه را شروع کنید. اگر دست یا انگشتان خود را مقابل سنسور فاصله حرکت دهید ، واحد AIY درخواست سفارش می کند و LED ها چشمک می زنند. دستورات اجرا شده عبارتند از "راست/چپ/دست بالا/پایین/مرکز" ، "رقص" ، "روشن/خاموش LED" و "خداحافظ".

بازی. دست خود را مقابل سنسور حرکت دهید ، در صورت درخواست از شما صحبت کنید و به دستگاه کمی زمان دهید تا واکنش نشان دهد. تاخیر نسبتاً زیاد است. Crtl+C یا "Goodbye" برنامه را متوقف می کند.

شما می توانید فایل را با استفاده از نانو یا ویرایشگر متنی ساده دیگر تغییر دهید.

نکات: لطفاً توجه داشته باشید که برخی از کلمات و اصطلاحات به عنوان کلماتی که با حروف بزرگ شروع می شوند ، به عنوان "مرکز" یا "مرکز راست" شناخته می شوند ، مانند برخی دیگر ، به عنوان مثال. 'راست تا'. شما باید از فرم دقیق ارائه شده توسط ماژول تشخیص صدا برای شروع برخی از اقدامات استفاده کنید.

مرحله 3: اسکریپت پایتون

همانطور که قبلاً ذکر شد ، اسکریپت بر اساس اسکریپت servo_demo.py از دستورالعمل های صوتی AIY ، با برخی اضافات است. اولین نسخه فایل Hampelmann.py است که پیوست شده است. AngularServo از GPIOZero اجازه می دهد تا محدوده عملکرد سروو را محدود کرده و دقیقاً تعیین کنید که تا کجا باید حرکت کند. اما من صدای انگلیسی را بر صدای اصلی ترجیح می دهم. و دستگاه همچنین می تواند صحبت کند ، اما نمی فهمد (؟) ، انگلیسی ، آلمانی ، ایتالیایی ، فرانسوی و اسپانیایی. در زیر اسکریپت Hampelmann2.py ، با صدای انگلیسی و کمی ایتالیایی و آلمانی را می بینید. لطفاً به خاطر داشته باشید که برای اجرای آنها باید اسکریپت ها را اجرایی کنید.

#!/usr/bin/env python3 # این اسکریپت یک اقتباس از اسکریپت servo_demo.py برای صدای HAT AIY است ، # بهینه شده برای واردات جک پرش AIY aiy.audio import aiy.cloudspeech import aiy.voicehat از gpiozero import LED از gpiozero import AngularServo از gpiozero وارد کردن دکمه از زمان وارد کردن خواب def main main (): تشخیص دهنده = aiy.cloudspeech.get_recognizer () njohار. Expect_phrase ('راست بالا') تشخیص دهنده.expect_phrase ('راست پایین') تشخیص دهنده مرکز ') # حروف بزرگ عمدا وجود دارد. تشخیص دهنده ("دستها پایین").audio.get_recorder (). start () servo0 = AngularServo (26 ، min_angle = -40 ، max_angle = 40) # اتصال اول یا ، GPIO 26 servo2 = AngularServo (13 ، min_angle = -40 ، max_angle = 40) # کانکتور سوم ، GPIO 13 led0 = LED (24) # LED ها به سروو 5/GPIO 24 فاصله وصل می شوند = دکمه (5) # سنسور فاصله متصل می شود به servo3/GPIO 05 # دیگران: GPIO 6 در servo1 ، 12 در servo4 aiy.audio.say ("سلام!" ،) aiy.audio.say ("برای شروع ، دست خود را نزدیک سنسور حرکت دهید" ،) در حالی که True: led0.on () # LED در چاپ ("برای فعال کردن تشخیص صدا ، یک دست را به سنسور فاصله ببرید ، سپس صحبت کنید") چاپ ('کلیدواژه های مورد انتظار عبارتند از: دست/چپ/راست بالا/پایین/مرکز ،') چاپ ('روشن/خاموش LED ، رقص و خداحافظ.') چاپ () distance.wait_for_press () چاپ ('گوش دادن … چشمک زدن متن = تشخیص دهنده. تشخیص دهید () اگر متن هیچکدام نیست: aiy.audio.say ("ببخشید ، من صدایتان را نشنیدم." ،) دیگری: print ("شما گفتید" "، متن ،" ") در صورت "راست شدن" در متن ، تفسیر سیستم را بررسی کنید: print ("انتقال سروو 0 به حداکثر موقعیت") servo0.angle = 35 elif "راست پایین" در متن: چاپ ("جابجایی سرو 0 به حداقل موقعیت ') servo0.angle = -35 elif' مرکز راست 'در متن: #حروف اصلی صحیح چاپ مهمی هستند (' انتقال سروو به موقعیت میانی ') servo0.angle = 0 elif' left up 'در متن: print (' انتقال سروو 2 به حداکثر موقعیت ') servo2.angle = -35 elif' left down 'در متن: print (' انتقال سروو 2 به حداقل موقعیت ') servo2.angle = 35 elif' چپ مرکز 'در متن: چاپ (' انتقال سروو 2 به موقعیت میانی ') servo2.angle = 0 elif' hands up 'در متن: print (' انتقال سروو 2 به حداکثر موقعیت ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'در متن: print (' Moving servo2 به حداقل موقعیت ') servo2.angle = 35 servo0.angle = -35 elif' hands 'Center در متن: print (' انتقال سروو 2 به موقعیت میانی ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' در متن: چاپ ('خاموش کردن LED خارجی 0') led0.off () elif 'LED on' در متن: چاپ ('روشن شدن LED خارجی 0') led0.on () # light elif 'dance' در متن: print ("در حال حاضر رقص شماره یک را اجرا می کند") 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 () # light 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 ('bye!') break else: print ('هیچ کلید واژه ای شناخته نمی شود!') aiy.audio.say ("متاسفم ، من شما را متوجه نشدم" ،) اگر _name_ == " _main_ ': main ()

توصیه شده: