جدول المحتويات:

مقبس قفز يتم التحكم فيه بالصوت- إصدار Google Voice AIY: 3 خطوات
مقبس قفز يتم التحكم فيه بالصوت- إصدار Google Voice AIY: 3 خطوات

فيديو: مقبس قفز يتم التحكم فيه بالصوت- إصدار Google Voice AIY: 3 خطوات

فيديو: مقبس قفز يتم التحكم فيه بالصوت- إصدار Google Voice AIY: 3 خطوات
فيديو: حل مشكلة عد سماع الصوت رغم تعريف كارت الصوت | The Audio Is Not Running 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 للتحكم في مصابيح LED واثنين من الماكينات ، يقودان أذرع وأرجل جاك القفز بواسطة ترس بسيط للغاية.

البرنامج الذي يعمل في الخلفية عبارة عن تعديل للبرنامج النصي servo_demo.py ، كما تم وصفه في دليل مجموعة أدوات الصوت AIY. ما عليك سوى اتباع التعليمات الواردة هناك لإعداد البرامج الثابتة والبرنامجية. الجهاز نفسه سهل البناء ولا يتطلب الكثير من المهارات اليدوية. بالإضافة إلى ذلك ، سيكون من المفيد استخدام سكين القطع والمثقاب ومكواة اللحام.

إذا قمت بتنشيط نظام التعرف على الصوت بغمزة من يدك وقلت "رفع الأيدي" ، فسيقوم جاك القافز برفع اليدين والساقين ، وسينقل "مركز اليدين" كلا الماكينات إلى الموضع الأوسط وعلى اليدين والرجلين "لأسفل" تنخفض. على "اليسار لأعلى" ، سيتم رفع اليد اليسرى والساقين وعلى "اليمين لأسفل" ، يتم خفض اليد اليمنى ، على "اليمين لأعلى" والعكس صحيح. "الرقص" ، سيجعلها ترقص ، على الأقل نوعًا ما. إنه يتحدث أيضًا ، يرجى إلقاء نظرة على الفيديو المرفق.

لذلك مع القليل من الجهد ، يمكنك بناء الروبوت الخاص بك للرقص والدردشة والغناء.

لتبسيط استخدامه خاصة من قبل الأطفال الصغار ، ولتعزيز العامل "السحري" ، تم استبدال الزر الموجود في صندوق AIY كمشغل بواسطة مستشعر القرب. من أجل بساطته ، استخدمت مستشعر المسافة الرقمية من Pololu الذي يتعرف على ما إذا كان الكائن أقرب من 5 سم ، ويمكن استخدامه إلى حد كبير مثل الزر. تشير مصابيح LED إلى وقت انتظار الجهاز للأوامر أو الاستماع أو "التفكير". يتم التحكم في الماكينات والمستشعرات ومصابيح LED بواسطة مكتبة برامج GPIOZero.

تم بناء النموذج الأولي من Forex ، ألواح الرغوة البلاستيكية ، والتي يمكن قطعها بسهولة بالغة بسكين قاطعة ولصقها ، ولكنها أيضًا مستقرة تمامًا. لا تتردد في إنشاء نسخة أكبر أو أجمل أو محسّنة أو أكثر فخامة ، ولكن سيكون من اللطيف أن توثق وتقدم تحسيناتك.

يمكنك استخدام جانبي الجسم ، اعتمادًا على ما إذا كنت ترغب في تقديم العتاد المتحرك أو الحصول على تصميم لطيف ومناسب للأطفال. --------- "Hampelmann" هو المصطلح الألماني "القفز جاك" ، ولها دلالات معينة.

الخطوة 1: المواد المستخدمة

المواد المستخدمة
المواد المستخدمة
المواد المستخدمة
المواد المستخدمة

توت العليق باي 3 ؛ 32 جنيهًا إسترلينيًا في بيموروني ، المملكة المتحدة

مجموعة الصوت AIY ؛ 25 جنيهًا إسترلينيًا في Pimoroni ، المملكة المتحدة

مستشعر المسافة الرقمي Pololu مع مستشعر شارب ، 5 سم ؛ 5.90 يورو في Exp-tec.de

اثنين من الماكينات 9g

مصباحان أبيضان ومقاوم

بعض الرؤوس وكابلات التوصيل

لوحة فوركس 2 مم ، 250 × 500 مم ؛ 1.70 € في Modulor ، برلين ، ألمانيا

مسامير وصواميل وغسالات M3 لتوصيل جميع الأجزاء المتحركة. لقد استخدمت ستة مسامير من النايلون مقاس 10 و 4 مم.

ستة مسامير وصواميل M2 ، لتثبيت الماكينات على الألواح وتوصيل أذرع الماكينات والتروس.

بضع قطرات من الغراء البلاستيكي

الخطوة 2: تجميع واستخدام الجهاز

تجميع واستخدام الجهاز
تجميع واستخدام الجهاز
تجميع واستخدام الجهاز
تجميع واستخدام الجهاز
تجميع واستخدام الجهاز
تجميع واستخدام الجهاز

فيما يتعلق بمجموعة AIY الصوتية نفسها ، ما عليك سوى اتباع التعليمات الواردة في الوصف الذي يأتي مع المجموعة ، بما في ذلك القسم الخاص بالمؤازرة. أوصي بلحام عدة رؤوس ثلاثية الأطراف بمنافذ المؤازرة في الاختراق الصوتي AIY ، لذلك يمكنك توصيل الماكينات وأجهزة الاستشعار ومصابيح LED بسهولة بالغة باستخدام HAT.

فيما يتعلق بمقبس القفز ، يمكنك إما استخدام الرسومات التي قدمتها هنا كملفات svg و PDF كقالب ، أو تعديلها وفقًا لأفكارك الخاصة. قد ترغب في الحفاظ على التصميم الأساسي للعتاد الذي يقود أرجل وذراع رافعة القفز ، مما يضمن أن المسافة بين نقطة الدوران والترس هي نفسها في المؤازرة والذراع والساق.

بدلاً من ذلك ، يمكنك أيضًا إنشاء نسخة حيث يتم تحريك الذراعين والساقين مباشرة بواسطة أربع وحدات مؤازرة منفصلة ، أو بواسطة ترس أكثر تقدمًا.

باستخدام الرسم ، قم بقص القطع من لوحة الفوركس أو الكرتون أو الخشب الرقائقي وحفر الثقوب في المواضع المناسبة. ألصق قطع المسافة إلى النقاط المحورية للذراعين والساقين ، مما يضمن محاذاة جيدة للفتحات.

ثبت الماكينات والأجزاء المتحركة في اللوحة الأساسية. أضف مستشعر المسافة و LED كما هو محدد. يتم تثبيت الماكينات بمسامير M2 ، وجميع الأجزاء المتحركة بمسامير M3. لقد استخدمت مسامير Nylon M3 ، ولكن فقط لأسباب جمالية.

تحقق مما إذا كانت أذرع المؤازرة موضوعة في الموضع الأوسط. قم بتوصيل أذرع وتروس مؤازرة ، لقد استخدمت مسامير M2 لهذا الغرض.

قم بتوصيل الماكينات ، ومصابيح LED ومستشعر المسافة بموصلات المؤازرة على لوحة AIY. قد تحتاج إلى بعض كبلات الاستطالة / العبور. لقد أرفقت المؤازرة اليسرى بـ "servo0" (GPIO 26) المؤازرة اليمنى بـ "servo2" (GPIO 13) ، ومصابيح LED بـ "servo5" (GPIO 24) ، والمستشعر بـ "servo3" (GPIO 5) على AIY صوت HAT.

انسخ ملف "Hampelmann.py" المقدم إلى المجلد الفرعي AIY "src" واجعله قابلاً للتنفيذ مباشرة لأي شخص. للقيام بذلك ، يمكنك تحديد الملف في مدير الملفات ، ثم النقر بزر الماوس الأيمن وتحديد خصائص ، وتحديد الأذونات ، والانتقال إلى التنفيذ ، واختيار ~ أي شخص. أو اكتب "chmod + x src / Hampelmann.py" في وحدة تحكم المطورين.

تحقق مما إذا كان كل شيء مضبوطًا في مكانه وثابتًا ، أو متحركًا عند الحاجة. افتح سطر أوامر Dev ، وأدخل "src / Hampelmann.py" وابدأ البرنامج. إذا قمت بتحريك يدك أو أصابعك أمام مستشعر المسافة ، فستطلب وحدة AIY الأوامر وستومض مصابيح LED. الأوامر المنفذة هي "يمين / يسار / يدا أعلى / أسفل / مركز" و "رقص" و "تشغيل / إيقاف تشغيل LED" و "وداعًا".

يلعب. حرك يديك أمام المستشعر ، وتحدث عندما يُطلب منك ذلك ، وامنح الجهاز بعض الوقت للرد. الكمون مرتفع نوعًا ما. سيوقف Crtl + C أو "Goodbye" البرنامج.

يمكنك تعديل الملف باستخدام Nano أو أي محرر نصوص بسيط آخر.

ملاحظات: يرجى الانتباه إلى أن بعض الكلمات والمصطلحات يتم التعرف عليها على أنها كلمات تبدأ بحرف كبير ، مثل "الوسط" أو "المركز الأيمن" ، لأن البعض الآخر ليس كذلك ، على سبيل المثال "الحق". يجب عليك استخدام النموذج الدقيق الذي قدمته وحدة التعرف على الصوت لبدء بعض الإجراءات.

الخطوة الثالثة: نص بايثون

كما ذكرنا سابقًا ، يعتمد البرنامج النصي على البرنامج النصي servo_demo.py من الإرشادات الصوتية AIY ، مع بعض الإضافات. الإصدار الأول هو ملف Hampelmann.py الذي ستجده مرفقًا. يسمح AngularServo من GPIOZero بتقييد نطاق عمل المؤازرة وتحديد المسافة التي يجب أن تتحرك بالضبط ، لكنني أفضل الصوت البريطاني على الصوت الأصلي. ويمكن للجهاز أيضًا التحدث ولكن لا يفهم (؟) والإنجليزية والألمانية والإيطالية والفرنسية والإسبانية. تجد أدناه نص Hampelmann2.py بصوت بريطاني وقليلًا من اللغة الإيطالية والألمانية. يرجى أن تضع في اعتبارك أنه يتعين عليك جعل البرامج النصية قابلة للتنفيذ لتشغيلها.

#! / usr / bin / env python3 # هذا البرنامج النصي هو تعديل للنص servo_demo.py لـ AIY voice HAT ، # محسن لمقبس القفز AIY استيراد aiy.audio import aiy.cloudspeech import aiy.voicehat من gpiozero import LED من gpiozero ، قم باستيراد AngularServo من gpiozero import Button من وقت استيراد وضع تعريف السكون الرئيسي (): Recognizer = aiy.cloudspeech.get_recognizer () Recognizer.expect_phrase ('right up') أداة التعرف.expect_phrase ('right down') أداة التعرف. في الوسط ') # الأحرف الكبيرة موجودة عن قصد أداة التعرف. ("وضع اليد") أداة التعرف. expect_phrase ("مركز الأيدي") أداة التعرف. expect_phrase ("الرقص") أداة التعرف. expect_phrase ("LED on") أداة التعرف. expect_phrase ("LED off") أداة التعرف..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 متصلة بـ servo5 / GPIO 24 مسافة = زر (5) # مستشعر المسافة متصل إلى servo3 / GPIO 05 # الآخرين: GPIO 6 في servo1 ، 12 في servo4 aiy.audio.say ("مرحبًا!" ،) aiy.audio.say ("للبدء ، حرك يدك بالقرب من المستشعر" ،) بينما صحيح: led0.on () # مصابيح LED عند الطباعة ("لتنشيط التعرف على الصوت ، حرك يدًا بالقرب من مستشعر المسافة ، ثم تحدث") طباعة ("الكلمات الرئيسية المتوقعة هي: اليدين / اليسار / اليمين أعلى / أسفل / المركز ،") print ("تشغيل / إيقاف LED ، والرقص ، وداعًا.") print () Distance.wait_for_press () print ("Listening…") aiy.audio.say ("يرجى إعطاء طلباتك" ،) led0.blink () # light blink text = Recognizer.recognize () إذا كان النص بلا: aiy.audio.say ('عذرًا ، لم أسمعك.' ،) وإلا: print ('You said "'، text، '"') # Lets you تحقق من تفسير الأنظمة إذا كان 'right up' في النص: print ('Moving servo0 إلى أقصى موضع') servo0.angle = 35 elif 'right down' في النص: print ('Moving servo0 إلى الحد الأدنى للموضع ') servo0.angle = -35 elif' Right Center 'في النص: #correct captions هي طباعة حاسمة (' نقل servo0 إلى الموضع الأوسط ') servo0.angle = 0 elif' left up 'في النص: print (' تحريك servo2 إلى أقصى موضع ') servo2.angle = -35 elif' left down 'في النص: print (' Moving servo2 إلى الحد الأدنى للموضع ') servo2.angle = 35 elif' left Center 'في النص: print (' Moving servo2 إلى الوضع الأوسط ') servo2.angle = 0 elif' hands up 'في النص: print (' Moving servo2 إلى أقصى موضع ') servo2.angle = -35 servo0.angle = 35 elif' hands down 'في النص: print (' Moving servo2 إلى الحد الأدنى للموضع ') servo2.angle = 35 servo0.angle = -35 elif' hands Center 'في النص: print (' Moving servo2 إلى الوضع الأوسط ') servo2.angle = 0 servo0.angle = 0 elif' LED off ' في النص: print ('إيقاف تشغيل LED الخارجي 0') led0.off () elif 'LED on' في النص: print ('switching on خارجي 0') led0.on () # light elif 'dance' في النص: طباعة ("أداء الرقص رقم واحد الآن") 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 سكون (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 ('no keyword المعرفة!') aiy.audio.say ("عذرًا ، لم أفهمك" ،) إذا _name_ == ' _الرئيسية الرئيسية()

موصى به: