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

اتّبِع هذه التعليمات لتنفيذ رمز مخصّص على جهازك استجابةً لأوامر "مساعد 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. وسيتطلب ذلك بعض الأجهزة الإضافية إذا كنت تستخدم جهاز Raspberry Pi.

استيراد حزمة 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

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

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.

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