سر بالا! برنامه‌های پیش‌نمایش برنامه‌نویس جدید به‌زودی عرضه می‌شوند. اینجا درخواست دهید و یکی از اولین کسانی باشید که ابزارهای جدید را امتحان کرده و بازخورد ارائه می کنند.

NXP

K32W

این مثال به عنوان یک نوع دستگاه لامپ با قابلیت روشن/خاموش عمل می کند. مراحل روی برد توسعه NXP K32W (کیت توسعه IOTZTB-DK006) تأیید شد.

راه اندازی اولیه

  1. مطمئن شوید که Python3 و این بسته ها را نصب کرده اید. مراحل این سند با پایتون 3.8 تایید شده است.
  2. K32W061 MCUXpresso SDK 2.6.9 را دانلود و نصب کنید.
  3. هنگامی که SDK ساخته شد، بسته SDK را دانلود کرده و آن را در فهرست اصلی خود استخراج کنید. متغیر محیطی NXP_K32W0_SDK_ROOT را در جایی که SDK را استخراج کردید تنظیم کنید. همچنین توصیه می کنیم این دستور را به فایل .*rc برای پوسته ای که استفاده می کنید، مانند .zshrc :
    export NXP_K32W0_SDK_ROOT=$HOME/SDK_2_6_9_K32W061DK6/
    اضافه کنید.
  4. مخزن NXP/Micro را کلون کرده و مقداردهی اولیه کنید:

    git clone https://github.com/NXPmicro/matter.git
    cd matter
    git fetch origin v1.0-branch-nxp
    git checkout FETCH_HEAD
    git submodule update --init --recursive
    source ./scripts/activate.sh
    

  5. این مثال از پیکربندی " Geric Switch Node " استفاده می کند. مطمئن شوید که جامپرهای JP4/JP7 در سمت چپ ترین موقعیت قرار دارند (LPC-JN UART0):
    تصویر

  1. JLink را دانلود و بر روی کامپیوتر خود نصب کنید.
  2. روی برد، مطمئن شوید که DFU روی جامپر BOOT کنار درگاه USB انتخاب شده باشد و برد را با یک کابل mini USB به رایانه خود وصل کنید.
    تصویر
  3. LPCScrypt را دانلود و بر روی کامپیوتر خود نصب کنید.
    1. برای MacOS، روی بسته دانلود شده دوبار کلیک کنید تا آن را نصب کنید.
    2. برای لینوکس، به پوشه ای که بسته را دانلود می کنید بروید:
      chmod +x lpcscrypt-2.1.2_57.x86_64.deb.bin
      ./lpcscrypt-2.1.2_57.x86_64.deb.bin
  4. پس از نصب LPCScrypt، این اسکریپت را برای برنامه ریزی مجدد برد خود اجرا کنید ( <LPCScrypt_InstallDir> را با مسیر نصب واقعی LPCScrypt جایگزین کنید):
    <LPCScrypt_InstallDir>/scripts/program_JLINK
  5. شما باید پیام های مشابه زیر را ببینید. برای شروع برنامه نویسی، Space را فشار دهید. پس از اتمام، Enter را برای خروج فشار دهید.
    LPCScrypt - J-Link firmware programming script v2.1.2 Nov 2020.
    
    Connect an LPC-Link2 or LPCXpresso V2/V3 Board via USB then press Space.
    Booting LPCScrypt
    .
    LPCXpresso V2/V3 programmed with
    Firmware_JLink_LPCXpressoV2_20190404.bin
    -To use: remove DFU link and reboot the board
    
    Connect next board then press Space (or <return> to Quit)
  6. برد را از برق بکشید و جامپر BOOT را به حالت عادی برگردانید. برد شما اکنون برای استفاده از JLink برای فلش کردن یک تصویر پیکربندی مجدد شده است.
    تصویر

تصویر را بسازید

  1. مخزن را آماده کنید:
    source ./scripts/activate.sh
  2. وابستگی ها را نصب کنید:
    pip3 install pycrypto pycryptodome
  3. VENDOR_ID در پیکربندی پروژه نمونه خود به‌روزرسانی کنید ( CHIPProjectConfig.h ). این باید VID شما مطابق با مشخصات CSA Matter یا یک VID اختصاص داده شده برای اهداف آزمایشی باشد. مقداری که برای VENDOR_ID ارائه می‌کنید باید با مقداری که هنگام ایجاد ادغام Matter در Google Home Developer Console استفاده می‌کنید مطابقت داشته باشد.
    grep VENDOR_ID ./examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h
     * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
    #define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID your-hex-VID
  4. PRODUCT_ID در پیکربندی پروژه نمونه خود ( CHIPProjectConfig.h ) بررسی کنید. مقدار PRODUCT_ID می‌تواند مانند پیش‌فرض مثال باقی بماند یا به دلخواه تغییر کند، اما باید به محدودیت‌های شناسه محصول فعلی که در پیش‌نیازها توضیح داده شده است، پایبند باشد. همچنین توجه داشته باشید که مقداری که برای PRODUCT_ID ارائه می‌کنید باید با مقداری که هنگام ایجاد ادغام Matter در Developer Console استفاده می‌کنید مطابقت داشته باشد.
    grep PRODUCT_ID ./examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h
     * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
    #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x4B4C
  5. ساخت اپلیکیشن نورپردازی:
    1. اگر برد توسعه OM15082 به برد K32W شما متصل است ، مطمئن شوید که آرگومان ساخت chip_with_OM15082 را روی 1 تنظیم کنید:
      cd examples/lighting-app/nxp/k32w/k32w0/
      gn gen out/debug --args="k32w0_sdk_root="${NXP_K32W0_SDK_ROOT}" chip_with_OM15082=1 chip_with_ot_cli=0 is_debug=false chip_crypto="platform" chip_with_se05x=0 chip_pw_tokenizer_logging=true chip_enable_ota_requestor=false"
      ninja -C out/debug
    2. اگر برد توسعه OM15082 متصل نیست ، آرگومان ساخت chip_with_OM15082 حذف کنید:
      cd examples/lighting-app/nxp/k32w/k32w0/
      gn gen out/debug --args="k32w0_sdk_root="${NXP_K32W0_SDK_ROOT}" chip_with_ot_cli=0 is_debug=false chip_crypto="platform" chip_with_se05x=0 chip_pw_tokenizer_logging=true chip_enable_ota_requestor=false"
      ninja -C out/debug
      توجه داشته باشید که توکنایزر Pigweed ، که یک ماژول pigweed است که به هش رشته‌ها اجازه می‌دهد تا فلش مورد نیاز برای لاگ‌ها را تا حد زیادی کاهش دهد، با فعال کردن chip_pw_tokenizer_logging enabled می‌کند. به true . برای تجزیه اسکریپت های هش شده به اسکریپت detokenizer نیاز است. برای اطلاعات بیشتر اینجا را ببینید.
  6. برای کاربران MacOS (اگر روی MacOS نمی‌سازید از این مرحله صرفنظر کنید):

    اسکریپت sign_images.sh (واقع در $NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh ) را در یک ویرایشگر متن باز کنید و تغییرات زیر را اعمال کنید:

    1. برای رفع خطای «package not installed» در MacOS، این خطوط را نظر دهید یا حذف کنید:
      is_linux_package_installed "python3"
      is_linux_package_installed "python3-pip"
    2. آرگومان را در ابزار file ثابت کنید (" -ib " باید " -Ib " باشد)، در غیر این صورت اسکریپت امضا کننده به‌طور بی‌صدا قادر به تولید فایل .bin نمی‌شود:
      MIME_SET="$(file -ib $FILENAME)"
      تغییر به:
      MIME_SET="$(file -Ib $FILENAME)"
  7. تصویر را امضا کنید:

    chmod +x $NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh
    $NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh out/debug/

تخته را فلش کنید

  1. خط فرمان JLink را با برد متصل به یک کابل USB کوچک راه اندازی کنید:
    JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
  2. در خط فرمان JLink، دستور erase را وارد کنید تا تصویر موجود روی برد پاک شود. اگر قبلاً برد را فلش کرده باشید، این مورد نیاز است.
    erase
    Without any give address range, Erase Chip will be executed
    Erasing device...
    J-Link: Flash download: Total time needed: 2.878s (Prepare: 0.051s, Compare: 0.000s, Erase: 2.789s, Program: 0.000s, Verify: 0.000s, Restore: 0.037s)
    Erasing done.
  3. سپس با استفاده از دستور loadbin :
    loadbin out/debug/chip-k32w061-light-example.bin, 0
    Downloading file [out/debug/chip-k32w061-light-example.bin]...
    J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (586752 bytes)
    J-Link: Flash download: Total: 7.492s (Prepare: 0.054s, Erase: 2.738s, Program & Verify: 4.661s, Restore: 0.037s)
    J-Link: Flash download: Program & Verify speed: 122 KB/s
    O.K.
    تصویر را فلش کنید
  4. با تایپ کردن exit از JLink CLI خارج شوید.
  5. راه اندازی مجدد JLink:
    JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
  6. تصویر را دوباره فلش کنید، این بار از دستور erase صرفنظر کنید :
    loadbin out/debug/chip-k32w061-light-example.bin, 0
    Downloading file [out/debug/chip-k32w061-light-example.bin]...
    J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (586752 bytes)
    J-Link: Flash download: Total: 7.492s (Prepare: 0.054s, Erase: 2.738s, Program & Verify: 4.661s, Restore: 0.037s)
    J-Link: Flash download: Program & Verify speed: 122 KB/s
    O.K.
  7. پس از انجام فرمان loadbin ، دکمه SW2 را روی برد توسعه فشار دهید تا تنظیمات کارخانه انجام شود، سپس دکمه SW4 RESET را روی برد اصلی فشار دهید تا تصویر شروع به اجرا کند.

مثال را تایید کنید

  1. دستگاه باید خود را به عنوان یک دستگاه سریال USB در رایانه شما نشان دهد. می‌توانید آن را در /dev/ جستجو کنید:
    ls -la /dev/tty*
    می‌توانید کنسول سریال را با اسکریپت python3 detokenizer.py باز کنید، که اسکریپتی است که گزارش‌های توکن شده Pigweed را از یک پورت سریال رمزگشایی می‌کند. برای مثال، اگر دستگاه در /dev/ttyACM0 باشد:
    python3 ./scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w061-light-example-database.bin
  2. برای ریست فکتوری برد، دکمه SW2 را فشار دهید. LED2 و LED3 برای مدتی با هم چشمک خواهند زد. شما باید پیام هایی مانند این را در کنسول سریال ببینید:
    [Info]Factory Reset Triggered. Push the RESET button within 6000 ms to cancel!
    [Info]Device will factory reset...
    [Info]Performing factory reset
  3. برای تغییر وضعیت لامپ (روشن/خاموش)، روی دکمه SW3 کلیک کنید. باید LED D3 را تغییر دهید.

پیش نیازهای راه اندازی

قبل از راه اندازی برد توسعه NXP K32W، به موارد زیر توجه داشته باشید:

  1. تبلیغات BLE باید قبل از کشف و راه اندازی دستگاه در اکوسیستم Google Home فعال شود. برای فعال کردن موقت تبلیغات (به مدت 15 دقیقه، طبق مشخصات Matter )، دکمه USERINTERFACE را فشار دهید.
  2. بدون ماژول شتاب‌دهنده سخت‌افزار رمزنگاری، برد توسعه K32 ممکن است نتواند راه‌اندازی را قبل از پایان زمان جریان از سمت دستگاه تلفن همراه Android کامل کند. با استفاده از adb logcat از رایانه ای که به تلفن شما متصل است، می توانید تشخیص دهید که مهلت زمانی رخ داده است. هنگامی که یک مهلت زمانی رخ می دهد، یک پیام گزارش مانند:

    Device connection failed. Error third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:275: CHIP Error 0x00000032: Timeout
    را خواهید دید

    برای اطلاعات بیشتر در مورد راه اندازی و استفاده از adb به عیب یابی مراجعه کنید.

مراحل بعدی

وقتی مثال Matter شما با موفقیت ساخته شد، یک پروژه توسعه دهنده ایجاد کنید .