練習 - 將 Altair 模擬器部署至 Azure Sphere
在此練習中,您將設定 Altair 模擬器,並將其部署至 Azure Sphere。
取得您的 Azure Sphere 租用戶識別碼
在下一個步驟中,您將需要您的 Azure Sphere 租用戶識別碼。 若要取得識別碼:
從 Windows PowerShell 命令列或 Linux 終端機中,執行下列命令:
azsphere tenant show-selected
此命令的輸出應該類似下列程式碼:
------------------------------------ ------------------- Id Name ======================================================== 99999999-e021-43ce-9999-fa9999499994 yourSphereTenant ------------------------------------ -------------------
將 Azure Sphere 租用戶識別碼複製至記事本。
使用 Visual Studio Code 開啟 Altair 模擬器
- 啟動 Visual Studio Code。
- 選取 [開啟資料夾]。
- 開啟您已複製至電腦的 Altair8800Emulator 資料夾。
設定 Azure Sphere 應用程式
從 Visual Studio Code,開啟 app_manifest.json 檔案。 此應用程式所需的資源必須在 [功能] 區段中加以宣告。
更新 Azure IoT Central 應用程式的連線屬性:
- 將 CmdArgs 更新為 Azure IoT Central 識別碼範圍。
- 使用 Azure Sphere 租用戶識別碼來更新 DeviceAuthentication。 租用戶識別碼是您已從執行
azsphere tenant show-selected
命令所取得的數值。
使用您在稍早課程模組中複製至記事本的 Azure IoT Central 應用程式端點,以更新 AllowedConnections。
在 AllowedAllowedConnections 清單中包括 test.mosquitto.org 的網路端點。
如果您想要,則請格式化 app_manifest.json,方法是以滑鼠右鍵按一下該檔案,然後從捷徑功能表中選取 [格式化文件]。
檢閱您已更新的 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" }
儲存已更新的 app_manifest.json 檔案。
設定開發人員面板設定
Altair 專案適用於 Avnet 和 Seeed Studio 的 Azure Sphere 開發人員面板。 預設開發人員看板設定是「沒有」前端面板的 Avnet Azure Sphere 入門套件修訂 1。
在 Visual Studio Code 中,移至 cmake 資料夾。
開啟 altair_config.cmake 檔案。
在
set AVNET
行的開頭新增#
以將其停用。取消註解化
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)") # ###################################################################################################################
選取您的前端面板設定。 取消註解化
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") # ###################################################################################################################
取消註解化
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") # ###################################################################################################################
根據預設,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) # ###################################################################################################################
儲存 altair_config.cmake 檔案。 儲存檔案時將會自動產生 CMake 快取。
啟用 Altair 前端面板的支援
如果您尚未建置 Altair 前端面板套件,則請忽略此步驟。
- 開啟 app_manifest.json 檔案。
- 移除
//
字元,以取消註解化// "SpiMaster": [ "$MT3620_ISU1_SPI" ],
行。
將應用程式部署到 Azure Sphere
開始應用程式的建置和部署程序
開啟 main.c。
從 Visual Studio Code 狀態列中選取 [CMake: [發行]: 準備就緒]。
從 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 毫秒。