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

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

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

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

googlesamples-assistant-pushtotalk

اضغط على مفتاح Enter وجرب الاستعلام التالي:

تفعيل

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

INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.

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

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

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

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

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

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

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

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

device_handler = device_helpers.DeviceRequestHandler(device_id)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
    else:
        logging.info('Turning device off')

يعالج الرمز في onoff() الأمر action.devices.commands.OnOff. هذا النمط يُعد جزءًا من عملية OnOff مخطط السمات.

في الوقت الحالي، يتم إخراج سجلّات تعريف onoff() في وحدة التحكّم. يستخدم المساعد في device_helpers.py لتحليل استجابة JSON وتخزين الأمر المعاملات في المتغيرات لسهولة الاستخدام. يمكنك تعديل هذا الرمز لتنفيذ أي إجراء التي تريدها في مشروعك.

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

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

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

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

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

pip install RPi.GPIO

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

افتح ملف pushtotalk.py.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

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

import RPi.GPIO as GPIO

عدِّل الرمز البرمجي لضبط رقم التعريف الشخصي الناتج في البداية على حالة منطقية منخفضة. عندما عند استلام الأمر، اضبط الدبوس على حالة منطقية عالية. عندما إيقاف، اضبط الدبوس على حالة منطقية منخفضة.

device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
        GPIO.output(25, 1)
    else:
        logging.info('Turning device off')
        GPIO.output(25, 0)

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

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

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

python pushtotalk.py

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

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