التعامل مع الأوامر

اتّبِع التعليمات التالية لتنفيذ رمز مخصّص على جهازك في الاستجابة للطلبات الواردة من مساعد Google.

تنفيذ النموذج

الآن بعد أن حددت سمة وقمت بتحديث النموذج، تحقق لجعل تأكَّد من أنّ "مساعد Google" يعيد إرسال أمر "تفعيل" أو "إيقاف" للصفحة المطلوبة طلب البحث.

googlesamples-assistant-hotword --device-model-id my-model

جرب الاستعلام التالي:

Ok Google، تفعيل

ومن المفترض أن تظهر لك العبارات التالية في ناتج وحدة التحكّم. إذا لم تكن تعرف، يمكنك تعليمات تحديد المشاكل وحلّها.

ON_RECOGNIZING_SPEECH_FINISHED:
  {'text': 'turn on'}
ON_DEVICE_ACTION:
  {'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
  'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
  'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}

ستجد مكان طباعة هذه الإقرارات في رمز المصدر.

الحصول على رمز المصدر

أنت الآن جاهز لبدء مشروعك الخاص:

git clone https://github.com/googlesamples/assistant-sdk-python

البحث عن معالج الأوامر

يستخدم ملف hotword.py في نموذج الرمز حزمة تطوير البرامج (SDK) لإرسال الطلبات تلقّي ردود من "مساعد Google"

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py

ابحث عن تعريف المعالج التالي:

def process_event(event):

تطبع هذه الدالة حاليًا جميع أسماء أحداث إجراءات الجهاز وأي بالسطر التالي:

print('Do command', command, 'with params', str(params))

يعالج هذا الرمز الأمر action.devices.commands.OnOff. هذا النمط يُعد جزءًا من عملية OnOff مخطط السمات. في الوقت الحالي، يطبع هذا الرمز فقط الناتج على وحدة التحكم. يمكنك أن تعدِّل هذا الرمز لتفعل ما تريده على مشروعك. أضِف المجموعة التالية ضمن الأمر print في process_event().

print('Do command', command, 'with params', str(params)) # Add the following:
if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
    else:
        print('Turning the LED off.')

شغِّل رمز المصدر المعدَّل مباشرةً للاطّلاع على الناتج.

python hotword.py --device-model-id my-model

استخدِم طلب البحث نفسه كما في السابق:

Ok Google، تفعيل

في حال توصيل مصباح LED إلى Raspberry Pi، واصِل القراءة لمعرفة كيفية إضاءة مصباح LED استجابةً أمر OnOff. وإذا لم تكن قد فعلت ذلك، فتخط القسم التالي لمعرفة كيفية إضافة المزيد من السمات والمعالجات.

الخطوات التالية: Raspberry Pi

الآن بعد أن عرفت كيفية التعامل مع الأمر الوارد، عدّل نموذج التعليمة البرمجية لإضاءة مصباح LED. سيتطلب هذا بعض الأجهزة الإضافية إذا كنت تستخدم صلصة التوت البري

استيراد حزمة GPIO

لتبسيط وصول البرامج إلى دبابيس الإدخال/الإخراج للأغراض العامة (GPIO) على جهاز Raspberry Pi، ثبِّت RPi.GPIO حزمة في بيئة افتراضية.

pip install RPi.GPIO

تعديل النموذج

افتح ملف hotword.py.

nano hotword.py

في ملف hotword.py، استورِد RPi.GPIO للتحكم في دبابيس GPIO على نظام Pi. ضع العبارة التالية بالقرب من عبارات import الأخرى:

import RPi.GPIO as GPIO

عدِّل الرمز البرمجي لضبط رقم التعريف الشخصي الناتج في البداية على حالة منطقية منخفضة. إجراء ذلك في الدالة main()، قبل معالجة الأحداث:

with Assistant(credentials, device_model_id) as assistant:
    events = assistant.start()

    device_id = assistant.device_id
    print('device_model_id:', device_model_id)
    print('device_id:', device_id + '\n')
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
        ...

عدِّل الرمز الذي أضفته في process_event(). عندما يتم تلقي أمر on، اضبط الدبوس على الحالة المنطقية العالية. عند تلقي الأمر off، قم بتعيين تثبيتها في حالة المنطق المنخفضة.

if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
        GPIO.output(25, 1)
    else:
        print('Turning the LED off.')
        GPIO.output(25, 0)

احفظ التغييرات وأغلق الملف.

تنفيذ النموذج

شغِّل نموذج الرمز المعدّل.

python hotword.py --device-model-id my-model

استخدِم طلب البحث نفسه كما في السابق. يُفترَض أن يتم تشغيل مصباح LED.

يتوفر العديد من الميزات الإضافية. تعرّف على كيفية إضافة المزيد من السمات والمعالجات.