HaaS600 Kit的JavaScript轻应用开发配置
1、前言
关于轻应用的文档请参考轻应用总览
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设备管理器中出现两个串口,分别用于调试和用户串口输入输出。
安装USB转串口驱动
- Windows XP/Vista
- Windows7/8/8.1
- Windows10
- MacOS
2.2、系统环境
Windows
安装USB转串口驱动,在设备管理器中可以看到以下虚拟串口:
macOS
安装驱动后,在dev目录下可以看到以下虚拟串口:
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.js
和 app.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指示灯间歇性双闪,如下图,说明设备已经进入本地下载模式。
- 通过amp工具推送应用代码到设备
./amp.exe seriallist
COM194
COM195
./amp.exe serialput ./app COM194
Note:Windows环境下,热更新命令的串口号需要大写。
- 切换到运行模式(RUN)并复位
- 运行效果如图:
测试使用的LED灯对应的丝印为"USER",然后进入绿色闪烁状态(如下图所示)。
4.2、在线热更新
在已插SIM卡有网络连接的情况下,也可参考在线应用热更新推送轻应用代码到目标设备。
5、硬件资源
5.1、硬件资源介绍
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、更多示例代码
- Git 仓库:
https://gitee.com/alios-things/amp-examples/tree/master/board/HaaS600Kit - 打包下载(需注册gitee账号):
https://gitee.com/alios-things/amp-examples/repository/archive/master.zip
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
HaaS600 Kit的JavaScript轻应用开发配置相关推荐
- Javascript轻应用命令行工具
1.前言 这里主要介绍轻应用的命令行工具,即用于轻应用的辅助开发,以简单的命令行方式运行在Mac或Windows电脑上的工具.命令行工具主要是用来推送设备应用脚本到设备端,并拥有一套完整的命令,可以完 ...
- HaaS学习笔记 | 最详细的HaaS Python轻应用开发快速入门教程
[1]摘要 本教程主要讲述HaaS框架开发环境的搭建以及在ESP32开发板上进行HaaS Python轻应用开发的基本流程,结合小蜜蜂老师研制的蓝蜻蜓ESP32开发套件,通过"Hello ...
- 预告:Javascript全栈开发的系列文章
自从一年前发布了Vuejs小书的电子书,也有些日子没有碰过它们了,现在因为项目的缘故,需要使用JavaScript全栈开发.所以,我得把这个全栈环境搭建起来. 说起来搭建JS全栈开发环境,设计到的东西 ...
- Script Lab 续:为 Officejs 开发配置 VSCode 环境
垫场AA:深度:从 Office 365 新图标来看微软背后的设计新理念 -------------------------------------------------- 前期01:尝试:Scri ...
- mac开发配置手册(全)
Mac 开发配置手册 手册内容为「如何让一部全新的 MacBook 快速完成开发环境配置」,主要面向 Web 开发者.其中的指导,在 Mavericks 和 Yosemite 上有效,其他版本系统并未 ...
- 微信公众号支付开发配置
一.微信公众平台配置 登陆微信公众平台 微信支付->开发配置 1.测试白名单:把自己的微信号加上 2.测试授权目录:修改为项目所属域名,不加端口号.例如:http://d****n.g**.ne ...
- NCC轻量化开发数据结构总结
NCC轻量化开发数据结构总结 ·目录 NCC轻量化开发数据结构总结 1.树形结构Tree 返回json示例 2.表单结构Form 2.1 前端Form转VO 请求json示例 2.2 后端VO转For ...
- 游历 JavaScript IoT 应用开发平台
物联网(Internet of Things,简称IoT)时代的脚步声已经越来越响亮,每个程序员都希望跟上时代的步伐,不为时代浪潮所淘汰.面对IoT这个纷争初起的领域,程序员们该何去何从?本文将带领诸 ...
- ue编辑器c语言语法高亮文件,再见UE之VS Code初体验---实现远端Linux C开发配置,ue初体验...
再见UE之VS Code初体验---实现远端Linux C开发配置,ue初体验 一.引言 笔者以前使用的远端开发工具为 Xshell5 + Xftp5 + Source Insight4++Uedit ...
最新文章
- linux文件自动删除,自动删除文件脚本(Linux shell脚本)
- JQuery操作checkbox、radio
- websocket心跳链接代码_Hyperf+RabbitMQ+WebSocket实现大屏幕消息推送
- 2020中级财管(押题班)
- 每日一题——Leetcode203 移除链表元素
- 从减少DNS查找来优化网站
- 【形状检测】基于matlab Hough变换形状检测【含Matlab源码 468期】
- java流程语句_java流程控制语句总结
- nandflash驱动详解
- realtek高清晰音频管理器打不开怎么办?
- 安装西门子博图一直重启_西门子博图重启后继续安装没完成的程序怎么去除?...
- OpenWrt自定义luci页面来修改配置文件
- Kafka+Spark Streaming+Redis实时计算整合实践
- 携程旅行网的盈利模式
- 如何在1到100的整数数组中找到缺失的数字
- 谷歌与Facebook的关系数据库之战
- Effectively Learning Spatial Indices(VLDB)
- H264中4x4、8x8和16x16尺寸对应场景
- 洛谷P1244青蛙过河
- 罗永浩还有家关联公司,月流水10亿,谁在抖快中“躺赚”
热门文章
- 求e的近似值 (15 分)
- python3.7 openpyxl 在excel单元格中写入数据
- 考研英语长难句(刘晓燕)笔记 第六课 唱着歌去考研——英语的特殊结构
- PyCharm中import显示灰色解决方案
- ☀️光天化日学C语言☀️(31)- break 关键字 | 当断则断!
- java 调用 C# 类库搞定,三步即可,可以调用任何类及方法,很简单,非常爽啊...
- 【已解决】No module named “win32com“ win32com 无法导入
- Windows中文账户名修改为英文
- HTML快速入门-01
- 牛客每日练习----一个背包问题,判断奥运年,沃老师学生的成绩