HaaS600 Kit的JavaScript轻应用开发配置

简介: HaaS600 Kit 是一款基于 HaaS600系列模组评估的高性价比开发板。可应用于共享控制、金融支付、智能语音、泛工业等场景的智能硬件产品开发。

> 来源 | HaaS技术社区

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交互式解释器或其他用途)


3、打开示例应用

3.1、下载示例应用代码包

这里通过一个简单的LED闪灯的用例来介绍。

代码路径 amp-examples/board/HaaS600Kit/basic/gpio

LED闪灯用例的代码目录如下所示:

  1. app

  2. ├── app.json    # 应用与板级配置

  3. └── app.js      # 用户代码

  • 查看设备连接状态

  在命令行工具下使用该命令查看设备连接状态

  1. ./amp.exe seriallist

  2. COM194

  3. COM195

Note:如果返回值跟设备管理器中生成的一致,说明设备连接和命令行工具运行正常

命令行工具默认示例代码运行hello world程序,此处使用LED Blink来作为第一个轻应用示例来介绍。

使用下面的

app.js

app.json

文件替换命令行工具示例代码目录下的同名文件,如下:

LED Blink

app.json

参考硬件资源介绍,已经在app.json中配置好User LED灯对应的port口为33。

  1. {

  2. "version": "1.0.0",

  3. "io": {

  4. "D13": {

  5. "type": "GPIO",

  6. "port": 33,

  7. "dir": "output",

  8. "pull": "pulldown"

  9.        }

  10.    },

  11. "debugLevel": "DEBUG"

  12. }

在app.js中的用例逻辑如下:首先根据LED灯的配置创建一个GPIO实例,然后启动定时器,周期性的通过GPIO读写接口开关LED灯,并读取开关状态。

  1. var gpio = require('gpio');

  2. var led = gpio.open({

  3. id: 'D13'

  4. });

  5. var vol = 0;

  6. setInterval(function() {

  7. vol = 1 - vol;

  8. led.writeValue(vol);

  9. console.log('gpio: led set value ' + vol);

  10. vol = led.readValue();

  11. console.log('gpio: led get value ' + vol);

  12. }, 1000);

4、应用代码热更新到目标硬件

将应用代码拷贝到amp工具的目录下,然后用户可以选择任意一种热更新方式(本地或在线)下载应用代码到开发板。

4.1、本地热更新

  • 切换到下载模式

下载/运行模式切换开关(MODE)拨到DL侧,并通过电源选择开关(POWER SWITCH)断电重启,稍等片刻待AMP_STU指示灯间歇性双闪,如下图,说明设备已经进入本地下载模式

image

  • 通过amp工具推送应用代码到设备
  1. ./amp.exe seriallist

  2. COM194

  3. COM195

  4. ./amp.exe serialput ./app COM194

Note:Windows环境下,热更新命令的串口号需要大写。

  • 切换到运行模式(RUN)并复位
  • 运行效果如图:

    测试使用的LED灯对应的丝印为"USER",然后进入绿色闪烁状态(如下图所示)。

image


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 参考示例

  1. {

  2. "version": "1.0.0",

  3. "io": {

  4. "I2C0": {

  5. "type": "I2C",

  6. "port": 0,

  7. "addrWidth": 7,

  8. "freq": 400000,

  9. "mode": "master",

  10. "devAddr": 72

  11.    },

  12. "ADC0": {

  13. "type": "ADC",

  14. "port": 0,

  15. "sampling": 12000000

  16.    },

  17. "ADC1": {

  18. "type": "ADC",

  19. "port": 1,

  20. "sampling": 12000000

  21.    },

  22. "UART1": {

  23. "type": "UART",

  24. "port": 1,

  25. "dataWidth": 8,

  26. "baudRate": 9600,

  27. "stopBits": 1,

  28. "flowControl": "cts",

  29. "parity": "none"

  30.    },

  31. "UART2": {

  32. "type": "UART",

  33. "port": 2,

  34. "dataWidth": 8,

  35. "baudRate": 115200,

  36. "stopBits": 1,

  37. "flowControl": "disable",

  38. "parity": "none"

  39.    },

  40. "SPI1": {

  41. "type": "SPI",

  42. "port": 1,

  43. "mode": "master",

  44. "freq": 3250000

  45.    },

  46. "PWM0": {

  47. "type": "PWM",

  48. "port": 31,

  49. "mode": "master",

  50. "freq": 3250000

  51.    },

  52. "PWM1": {

  53. "type": "PWM",

  54. "port": 32,

  55. "mode": "master",

  56. "freq": 3250000

  57.    },

  58. "D0": {

  59. "type": "GPIO",

  60. "port": 51,

  61. "dir": "output",

  62. "pull": "pulldown"

  63.    },

  64. "D1": {

  65. "type": "GPIO",

  66. "port": 52,

  67. "dir": "output",

  68. "pull": "pulldown"

  69.    },

  70. "D2": {

  71. "type": "GPIO",

  72. "port": 17,

  73. "dir": "irq",

  74. "pull": "pulldown",

  75. "intMode": "both"

  76.    },

  77. "D3": {

  78. "type": "GPIO",

  79. "port": 16,

  80. "dir": "irq",

  81. "pull": "pullup",

  82. "intMode": "both"

  83.    },

  84. "D4": {

  85. "type": "GPIO",

  86. "port": 59,

  87. "dir": "output",

  88. "pull": "pulldown"

  89.    },

  90. "D5": {

  91. "type": "GPIO",

  92. "port": 121,

  93. "dir": "output",

  94. "pull": "pulldown"

  95.    },

  96. "D6": {

  97. "type": "GPIO",

  98. "port": 54,

  99. "dir": "output",

  100. "pull": "pulldown"

  101.    },

  102. "D7": {

  103. "type": "GPIO",

  104. "port": 53,

  105. "dir": "output",

  106. "pull": "pulldown"

  107.    },

  108. "D8": {

  109. "type": "GPIO",

  110. "port": 124,

  111. "dir": "output",

  112. "pull": "pulldown"

  113.    },

  114. "D9": {

  115. "type": "GPIO",

  116. "port": 122,

  117. "dir": "output",

  118. "pull": "pulldown"

  119.    },

  120. "D10": {

  121. "type": "GPIO",

  122. "port": 34,

  123. "dir": "output",

  124. "pull": "pulldown"

  125.    },

  126. "D11": {

  127. "type": "GPIO",

  128. "port": 36,

  129. "dir": "output",

  130. "pull": "pulldown"

  131.    },

  132. "D12": {

  133. "type": "GPIO",

  134. "port": 35,

  135. "dir": "output",

  136. "pull": "pulldown"

  137.    },

  138. "D13": {

  139. "type": "GPIO",

  140. "port": 33,

  141. "dir": "output",

  142. "pull": "pulldown"

  143.    },

  144. "D14": {

  145. "type": "GPIO",

  146. "port": 57,

  147. "dir": "output",

  148. "pull": "pulldown"

  149.    },

  150. "D15": {

  151. "type": "GPIO",

  152. "port": 32,

  153. "dir": "output",

  154. "pull": "pulldown"

  155.    },

  156. "D16": {

  157. "type": "GPIO",

  158. "port": 31,

  159. "dir": "output",

  160. "pull": "pulldown"

  161.    },

  162. "D17": {

  163. "type": "GPIO",

  164. "port": 76,

  165. "dir": "output",

  166. "pull": "pulldown"

  167.    }

  168.  },

  169. "debugLevel": "DEBUG",

  170. "repl": "disable"

  171. }

6.3、更多示例代码


如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
53 1
|
1月前
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
48 13
|
2月前
|
存储 JavaScript 前端开发
深入浅出Node.js后端开发
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。
|
2月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
2月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
在这篇文章中,我们将一起探索Node.js的奇妙世界。无论你是刚接触后端开发的新手,还是希望深化理解的老手,这篇文章都适合你。我们将从基础概念开始,逐步深入到实际应用,最后通过一个代码示例来巩固所学知识。让我们一起开启这段旅程吧!
|
1月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。
|
2月前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带你走进Node.js的世界,从基础到进阶,逐步解析Node.js在后端开发中的应用。我们将通过实例来理解Node.js的异步特性、事件驱动模型以及如何利用它处理高并发请求。此外,文章还会介绍如何搭建一个基本的Node.js服务器,并探讨如何利用现代前端框架与Node.js进行交互,实现全栈式开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
37 4
|
2月前
|
前端开发 JavaScript 关系型数据库
基于 Vue2.0 + Nest.js 全栈开发的后台应用
Vue2 Admin 是一个基于 Vue2 和 Ant Design Pro 开发的前端项目,配合 Nest.js 构建的后端,提供了一个完整的全栈后台应用解决方案。该项目支持动态国际化、用户权限管理、操作日志记录等功能,适合全栈开发者学习参考。线上预览地址:https://vue2.baiwumm.com/,用户名:Admin,密码:abc123456。
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
46 2