練習 - 將 Altair 模擬器部署至 Azure Sphere

已完成

在此練習中,您將設定 Altair 模擬器,並將其部署至 Azure Sphere。

取得您的 Azure Sphere 租用戶識別碼

在下一個步驟中,您將需要您的 Azure Sphere 租用戶識別碼。 若要取得識別碼:

  1. 從 Windows PowerShell 命令列或 Linux 終端機中,執行下列命令:

    azsphere tenant show-selected
    

    此命令的輸出應該類似下列程式碼:

    ------------------------------------ -------------------
    Id                                   Name
    ========================================================
    99999999-e021-43ce-9999-fa9999499994 yourSphereTenant
    ------------------------------------ -------------------
    
  2. 將 Azure Sphere 租用戶識別碼複製至記事本。

使用 Visual Studio Code 開啟 Altair 模擬器

  1. 啟動 Visual Studio Code。
  2. 選取 [開啟資料夾]
  3. 開啟您已複製至電腦的 Altair8800Emulator 資料夾。

設定 Azure Sphere 應用程式

  1. 從 Visual Studio Code,開啟 app_manifest.json 檔案。 此應用程式所需的資源必須在 [功能] 區段中加以宣告。

  2. 更新 Azure IoT Central 應用程式的連線屬性:

    • CmdArgs 更新為 Azure IoT Central 識別碼範圍。
    • 使用 Azure Sphere 租用戶識別碼來更新 DeviceAuthentication。 租用戶識別碼是您已從執行 azsphere tenant show-selected 命令所取得的數值。
  3. 使用您在稍早課程模組中複製至記事本的 Azure IoT Central 應用程式端點,以更新 AllowedConnections

  4. AllowedAllowedConnections 清單中包括 test.mosquitto.org 的網路端點。

  5. 如果您想要,則請格式化 app_manifest.json,方法是以滑鼠右鍵按一下該檔案,然後從捷徑功能表中選取 [格式化文件]

  6. 檢閱您已更新的 app_manifest.json 檔案。 程式碼看起來應如下所示:

    {
      "SchemaVersion": 1,
      "Name": "AltairHL_emulator",
      "ComponentId": "ac8d863a-4424-11eb-b378-0242ac130002",
      "EntryPoint": "/bin/app",
      "CmdArgs": [ "--ScopeID", "0ne0099999D" ],
      "Capabilities": {
        //  Uncomment the following line to enable SPI on ISU1 for the Altair front panel
        //  "SpiMaster": [ "$MT3620_ISU1_SPI" ],
        "MutableStorage": { "SizeKB": 8 },
        "Gpio": [
            "$MQTT_CONNECTED_LED",
            "$AZURE_CONNECTED_LED",
            "$SWITCHES_LOAD",
            "$SWITCHES_CHIP_SELECT",
            "$LED_MASTER_RESET",
            "$LED_STORE",
            "$LED_OUTPUT_ENABLE",
            "$BUTTON_A",
            "$BUTTON_B",,
            "$LED_RED",
            "$LED_GREEN",
            "$LED_BLUE"
        ],
        "Uart": [ "$MT3620_ISU3_UART" ],
        "I2cMaster": [ "$ISU2" ],
        "PowerControls": [ "ForceReboot" ],
        "AllowedConnections": [
            "test.mosquitto.org",
            "global.azure-devices-provisioning.net",
            "iotc-9999bc-3305-99ba-885e-6573fc4cf701.azure-devices.net",
            "iotc-789999fa-8306-4994-b70a-399c46501044.azure-devices.net",
            "iotc-7a099966-a8c1-4f33-b803-bf29998713787.azure-devices.net",
            "iotc-97299997-05ab-4988-8142-e299995acdb7.azure-devices.net",
            "iotc-d099995-7fec-460c-b717-e99999bf4551.azure-devices.net",
            "iotc-789999dd-3bf5-49d7-9e12-f6999991df8c.azure-devices.net",
            "iotc-29999917-7344-49e4-9344-5e0cc9999d9b.azure-devices.net",
            "iotc-99999e59-df2a-41d8-bacd-ebb9999143ab.azure-devices.net",
            "iotc-c0a9999b-d256-4aaf-aa06-e90e999902b3.azure-devices.net",
            "iotc-f9199991-ceb1-4f38-9f1c-13199992570e.azure-devices.net",
            "api.timezonedb.com",
            "api.openweathermap.org",
            "get.geojs.io"
        ],
        "DeviceAuthentication": "9d799999-9999-43ce-9999-fa8888888894"
        "AllowedApplicationConnections": [
            "2e319eae-7be5-4a0c-ba47-9353aa6ca96a",
            "9b684af8-21b9-42aa-91e4-621d5428e497"
        ]
      },
      "ApplicationType": "Default"
    }
    
  7. 儲存已更新的 app_manifest.json 檔案。

設定開發人員面板設定

Altair 專案適用於 Avnet 和 Seeed Studio 的 Azure Sphere 開發人員面板。 預設開發人員看板設定是「沒有」前端面板的 Avnet Azure Sphere 入門套件修訂 1。

  1. 在 Visual Studio Code 中,移至 cmake 資料夾。

  2. 開啟 altair_config.cmake 檔案。

  3. set AVNET 行的開頭新增 # 以將其停用。

  4. 取消註解化 set 命令,而此命令對應至您的 Azure Sphere 開發人員面板。 確定只啟用一個開發人員面板。

    # SELECT DEVELOPER BOARD ##########################################################################################
    #
    set(AVNET TRUE "AVNET Azure Sphere Starter Kit Revision 1 ")   
    # set(AVNET_REV_2 TRUE "AVNET Azure Sphere Starter Kit Revision 2 ")  
    # set(SEEED_STUDIO_RDB TRUE "Seeed Studio Azure Sphere MT3620 Development Kit (aka Reference Design Board or rdb)")
    #
    ###################################################################################################################
    
  5. 選取您的前端面板設定。 取消註解化 set 命令,而此命令對應至您的前端面板設定。 確定只啟用一個前端面板設定。

    # SELECT FRONT PANEL CONFIG #######################################################################################
    #
    set(ALTAIR_FRONT_PANEL_NONE TRUE "Altair on Azure Sphere with no panel.")
    # set(ALTAIR_FRONT_PANEL_RETRO_CLICK TRUE "Avnet with the MikroE 8800 Retro Click")
    # set(ALTAIR_FRONT_PANEL_KIT TRUE "Altair front panel board")
    #
    ###################################################################################################################
    
  6. 取消註解化 set 命令,以啟用 SD 記憶卡支援。 此步驟僅適用於具有 MikroE microSD Click 的 Avnet Azure Sphere 入門套件。

    # ENABLE SD CARD ##################################################################################################
    #
    # The MikroE microSD Click must be placed in socket 1 of the Avnet Azure Sphere Starter Kit
    # Uncomment the "set(MICRO_SD_CLICK" line below to enable the MikroE microSD Click
    #
    # set(MICRO_SD_CLICK TRUE "MikroE microSD Click for CP/M read/write to SD Card")
    #
    ###################################################################################################################
    
  7. 根據預設,Altair 模擬器會在啟動時啟動 CP/M。 如果您想要啟動 Altair BASIC,則請註解化 add_compile_definitions(BOOT_CPM) 命令。

    注意

    您無法將檔案從 Altair BASIC 儲存至 SD 記憶卡或虛擬磁碟伺服器。

    # BOOT CONFIG #####################################################################################################
    #
    # Comment out the "add_compile_definitions(BOOT_CPM) line below to boot Altair BASIC 4.0
    #
    add_compile_definitions(BOOT_CPM)
    #
    ###################################################################################################################
    
  8. 儲存 altair_config.cmake 檔案。 儲存檔案時將會自動產生 CMake 快取。

啟用 Altair 前端面板的支援

如果您尚未建置 Altair 前端面板套件,則請忽略此步驟。

  1. 開啟 app_manifest.json 檔案。
  2. 移除 // 字元,以取消註解化 // "SpiMaster": [ "$MT3620_ISU1_SPI" ], 行。

將應用程式部署到 Azure Sphere

開始應用程式的建置和部署程序

  1. 開啟 main.c

  2. 從 Visual Studio Code 狀態列中選取 [CMake: [發行]: 準備就緒]

    Screenshot that shows CMake status.

  3. 從 Visual Studio Code 中,選取 [Ctrl+F5] 以在 Azure Sphere 裝置上建置、部署和啟動應用程式。

檢視偵錯工具輸出

選取 Visual Studio Code 的 [輸出] 索引標籤,以查看程式碼中 Log_Debug 陳述式的輸出。 您將會看到與 Azure IoT Central 交涉安全性的裝置。

提示

您也可以使用 Visual Studio Code [Ctrl+Shift+U] 快速鍵來開啟 [輸出] 索引標籤。

觀察裝置行為

觀察開發人員面板上的 WLAN 狀態 LED,而裝置會建立與 Azure IoT Central 和 MQTT 訊息代理程式的安全連線:

  • 裝置建立 Wi-Fi 連線時,WLAN LED 將會閃爍 700 毫秒,然後關閉 700 毫秒。
  • 裝置建立與 Azure IoT Central 和 MQTT 訊息代理程式的連線時,WLAN LED 將會閃爍 100 毫秒,然後關閉 1,300 毫秒。
  • 與 Azure IoT Central 建立連線時,WLAN LED 將會閃爍 1,400 毫秒,然後關閉 100 毫秒。