HaaS600 Kit的JavaScript輕應用開發配置

1、前言

關於輕應用的文檔請參考輕應用總覽

image

HaaS600 Kit 是一款基於 HaaS600系列模組評估的高性價比開發板。可應用於共享控制、金融支付、智能語音、泛工業等場景的智能硬件產品開發。

HaaS600套件包含以下物料:

  • 開發板 x 1
  • micro-USB線纜 x 1
  • 5V/2A電源適配器  x 1
  • 4G天線 x 1
  • GPS天線 x 1

HaaS600 Kit在出廠時已經燒錄了輕應用固件,開發者不需要編譯燒錄。

 

2、系統環境

2.1、設備連接

按照下圖所示將開發電腦跟設備的調試/用戶串口通過MicroUSB連接,連接後,將在PC設備管理器中出現兩個串口,分別用於調試和用戶串口輸入輸出。

image

 

安裝USB轉串口驅動

2.2、系統環境

Windows

安裝USB轉串口驅動,在設備管理器中可以看到以下虛擬串口:

image.png

 

macOS

安裝驅動後,在dev目錄下可以看到以下虛擬串口:

image.png

Note:

1. 不同的電腦生成的串口號和名稱不一樣,以實際生成的爲準。

2. 生成的兩個串口,一個是debug串口(查看運行日誌,只讀),另一個是用戶串口(JavaScript交互式解釋器或其他用途)

2.3、開發工具

下載並瞭解輕應用開發工具

 

3、打開示例應用

3.1、下載示例應用代碼包

這裏通過一個簡單的LED閃燈的用例來介紹。

通過附件鏈接下載應用代碼包,代碼路徑 amp-examples/board/HaaS600Kit/basic/gpio

LED閃燈用例的代碼目錄如下所示:

app
├── app.json    # 應用與板級配置
└── app.js      # 用戶代碼
  • 查看設備連接狀態

   在命令行工具下使用該命令查看設備連接狀態

./amp.exe seriallist
COM194
COM195

Note:如果返回值跟設備管理器中生成的一致,說明設備連接和命令行工具運行正常

命令行工具默認示例代碼運行hello world程序,此處使用LED Blink來作爲第一個輕應用示例來介紹。

使用下面的app.jsapp.json文件替換命令行工具示例代碼目錄下的同名文件,如下:

LED Blink app.json

 

參考硬件資源介紹,已經在app.json中配置好User LED燈對應的port口爲33。

{
    "version": "1.0.0",
    "io": {
        "D13": {
            "type": "GPIO",
            "port": 33,
            "dir": "output",
            "pull": "pulldown"
        }
    },
    "debugLevel": "DEBUG"
}
在app.js中的用例邏輯如下:首先根據LED燈的配置創建一個GPIO實例,然後啓動定時器,週期性的通過GPIO讀寫接口開關LED燈,並讀取開關狀態。
var gpio = require('gpio');

var led = gpio.open({
  id: 'D13'
});

var vol = 0;

setInterval(function() {
 vol = 1 - vol;
  
 led.writeValue(vol);
 console.log('gpio: led set value ' + vol);
 
 vol = led.readValue();
 console.log('gpio: led get value ' + vol); 
}, 1000);

 

4、應用代碼熱更新到目標硬件

將應用代碼拷貝到amp工具的目錄下,然後用戶可以選擇任意一種熱更新方式(本地或在線)下載應用代碼到開發板。

4.1、本地熱更新

  • 切換到下載模式

下載/運行模式切換開關(MODE)撥到DL側,並通過電源選擇開關(POWER SWITCH)斷電重啓,稍等片刻待AMP_STU指示燈間歇性雙閃,如下圖,說明設備已經進入本地下載模式

image

  • 通過amp工具推送應用代碼到設備
./amp.exe seriallist
COM194
COM195
./amp.exe serialput ./app COM194

Note:Windows環境下,熱更新命令的串口號需要大寫。

  • 切換到運行模式(RUN)並復位
  • 運行效果如圖:

     測試使用的LED燈對應的絲印爲"USER",然後進入綠色閃爍狀態(如下圖所示)。

image

4.2、在線熱更新

在已插SIM卡有網絡連接的情況下,也可參考在線應用熱更新推送輕應用代碼到目標設備。

 

5、硬件資源

5.1、硬件資源介紹

image

 

5.2、硬件資源映射表

功能/接口 PIN/IO/資源映射 輕應用 port 配置
I2C0 SDA(IO50) SCL(IO49) 0
ADC0 A0

0

ADC1 A1

1

UART0 默認板級log打印 0
UART1

TXD(IO54)

RXD(IO53)

1
UART2

TXD(IO52)  

RXD(IO51)

2
GPIO

IO51

IO52

IO17

IO16

IO59

IO121

IO54

IO53

IO124

IO122

IO34

IO36

IO35

IO33

IO57

IO0

IO1

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

D16

SPI0

MISO(IO35)

MOSI(IO36)

SCK(IO33)

0

6、功能

6.1、功能列表(部分)

  • 文件系統 FS
  • 系統信息 SYSTEM
  • 鍵值對存儲 KV
  • 電源管理 PM
  • 硬件I/O
    • UART
    • GPIO
    • I2C
    • SPI
    • ADC
    • DAC
    • PWM
    • TIMER
    • RTC
    • WDG
  • 網絡協議
    • UDP
    • TCP
    • MQTT
    • HTTP
  • 高階功能
    • IoT  阿里雲IoT平臺連接組件
    • audioplayer 音頻播放組件

6.2、app.json 參考示例

{
  "version": "1.0.0",
  "io": {
    "I2C0": {
      "type": "I2C",
      "port": 0,
      "addrWidth": 7,
      "freq": 400000,
      "mode": "master",
      "devAddr": 72
    },
    "ADC0": {
      "type": "ADC",
      "port": 0,
      "sampling": 12000000
    },
    "ADC1": {
      "type": "ADC",
      "port": 1,
      "sampling": 12000000
    },
    "UART1": {
      "type": "UART",
      "port": 1,
      "dataWidth": 8,
      "baudRate": 9600,
      "stopBits": 1,
      "flowControl": "cts",
      "parity": "none"
    },
    "UART2": {
      "type": "UART",
      "port": 2,
      "dataWidth": 8,
      "baudRate": 115200,
      "stopBits": 1,
      "flowControl": "disable",
      "parity": "none"
    },
    "SPI1": {
      "type": "SPI",
      "port": 1,
      "mode": "master",
      "freq": 3250000
    },
    "PWM0": {
      "type": "PWM",
      "port": 31,
      "mode": "master",
      "freq": 3250000
    },
    "PWM1": {
      "type": "PWM",
      "port": 32,
      "mode": "master",
      "freq": 3250000
    },
    "D0": {
      "type": "GPIO",
      "port": 51,
      "dir": "output",
      "pull": "pulldown"
    },
    "D1": {
      "type": "GPIO",
      "port": 52,
      "dir": "output",
      "pull": "pulldown"
    },
    "D2": {
      "type": "GPIO",
      "port": 17,
      "dir": "irq",
      "pull": "pulldown",
      "intMode": "both"
    },
    "D3": {
      "type": "GPIO",
      "port": 16,
      "dir": "irq",
      "pull": "pullup",
      "intMode": "both"
    },
    "D4": {
      "type": "GPIO",
      "port": 59,
      "dir": "output",
      "pull": "pulldown"
    },
    "D5": {
      "type": "GPIO",
      "port": 121,
      "dir": "output",
      "pull": "pulldown"
    },
    "D6": {
      "type": "GPIO",
      "port": 54,
      "dir": "output",
      "pull": "pulldown"
    },
    "D7": {
      "type": "GPIO",
      "port": 53,
      "dir": "output",
      "pull": "pulldown"
    },
    "D8": {
      "type": "GPIO",
      "port": 124,
      "dir": "output",
      "pull": "pulldown"
    },
    "D9": {
      "type": "GPIO",
      "port": 122,
      "dir": "output",
      "pull": "pulldown"
    },
    "D10": {
      "type": "GPIO",
      "port": 34,
      "dir": "output",
      "pull": "pulldown"
    },
    "D11": {
      "type": "GPIO",
      "port": 36,
      "dir": "output",
      "pull": "pulldown"
    },
    "D12": {
      "type": "GPIO",
      "port": 35,
      "dir": "output",
      "pull": "pulldown"
    },
    "D13": {
      "type": "GPIO",
      "port": 33,
      "dir": "output",
      "pull": "pulldown"
    },
    "D14": {
      "type": "GPIO",
      "port": 57,
      "dir": "output",
      "pull": "pulldown"
    },
    "D15": {
      "type": "GPIO",
      "port": 32,
      "dir": "output",
      "pull": "pulldown"
    },
    "D16": {
      "type": "GPIO",
      "port": 31,
      "dir": "output",
      "pull": "pulldown"
    },
    "D17": {
      "type": "GPIO",
      "port": 76,
      "dir": "output",
      "pull": "pulldown"
    }
  },
  "debugLevel": "DEBUG",
  "repl": "disable"
}

6.3、更多示例代碼

如需更多技術支持,可加入釘釘開發者羣

更多技術與解決方案介紹,請訪問阿里雲AIoT首頁https://iot.aliyun.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章