HaaS100快速开始

简介

硬件

下面是HaaS100的简单介绍, 详细功能和参数可以参考HaaS100的产品说明书。

haas100-board

软件

HaaS100搭载AliOS Things物联网操作系统, 点击查看AliOS Things简介 。

环境

AliOS Things提供两套开发环境:

1、针对初学者,建议参考开发环境一键安装文档,搭建环境、下载代码、编译和烧录等。(使用本方式的开发者可以跳过本文档)

2、针对有经验的嵌入式开发者,AliOS Things的开发环境准备, 点击查看相应的开发环境搭建文档:Linux环境安装;Windows环境安装;macOS环境安装。

快速开始

下载代码

git clone https://github.com/alibaba/AliOS-Things.git -b dev_3.1.0_haas

对于国内用户,为避免从github下载速度较慢,可以从gitee上下载。

git clone https://gitee.com/alios-things/AliOS-Things.git -b dev_3.1.0_haas

编译

进入代码的顶层目录如AliOS-Things进行编译。可以直接编译application/example/目录下的demo app,或者自己开发的app。下面以编译helloworld_demo为例。

aos make helloworld_demo@haas100 -c config
aos make

烧录

准备

给HaaS100插上电源(电源正常的情况下板子右上角LED灯会亮),在Micro USB口插上usb线并连接到烧录主机。等待烧录主机发现新插入的usb设备并识别成串口。

如果您的烧录主机没有自动识别usb并安装驱动, 您可以点击这里 USB转UART驱动 手动下载对应的版本并安装。

识别成功后,可以在计算机管理->设备管理器中发现串口设备。

【备注】如果发现PC无法识别出HaaS板的USB/UART端口,例如"Silicon Labs CP210X USB to UART Bridge (COM5)",那么可以尝试换个USB线试试,市面上存在部分劣质的USB线可以充电用,但是数据通信异常。建议可以拿线和手机连接,确认下USB线和手机之间的数据通信是否正常。

使用命令行方式烧录

打开命令行工具,进入到代码顶层目录,然后输入命令aos upload,选择相应的串口即可开始烧录。

serialport烧录成功后,显示“Firmware upload succeed“字样。

烧录成功后,也自动将串口信息保存在当前目录下的.aos_config_burn文件中。如果后续烧录时,串口号有变化,可以删除该文件,再使用aos upload命令烧录。

如果在烧录期间,提示“Please reboot the board manually“,请按复位键复位开发板。

若复位无效,还是一直打印“Please reboot the board manually“,则需要将板子完全断电,再上电,然后重新使用aos upload命令烧录。

reboot

使用GUI工具烧录

第一次编译后从代码顶层目录拷贝platform/mcu/haas1000/release/write_flash_gui目录下的所有文件到windows环境。 后续再编译可以只替换write_flash_gui/ota_bin/ota_rtos.bin即可。

在windows环境下进入write_flash_gui目录,双击运行haas1000_write_flash_main,出现烧录软件的主界面。

image.png

点击Port Config

image.png

按钮,出现串口配置界面。

image.png

点击List按钮,选择HaaS100连接的串口。

image.png

选择后,点击Ok按钮确认关闭串口配置界面,此时主界面如下,烧录状态是Closed。

image.png

点击Start All

image.png

按钮,进入烧录状态,此时烧录状态是Idle,等待设备重启。

image.png

短按板子上的重启键或者插拔电源对板子上下电,开始烧录,此时烧录状态是Burning,可以看到烧录的进度。

image.png

等待烧录成功,此时烧录的状态的Success,进度是100%。

image.png

点击Exit

image.png

退出即可。

串口打印

使用串口工具如Putty/SecureCRT,设置串口波特率1500000。

Putty设置

设置串口波特率1500000,并关闭Parity 和 Flow control,并设置字符编码为UTF-8,否则打印会乱码。

putty1putty2

SecureCRT设置

设置串口波特率1500000,并关闭Parity 和 Flow control, 并设置字符编码为UTF-8,否则打印会乱码。

启动log

设置好串口后, 重启设备就可以看到AliOS Things的启动log,和最后hello world的打印了。

     1569/main | app_status_indication_set 1
     1569/main | platform_init_step1 done, user_init=3, ret=0
     1569/main | platform_init_step1 enter temprature cali on signal
     1569/main | board_init platform_init_step1 done
     1573/main_task | sys_init go
     1573/main_task | sys freq calc : 320000000, wifi init 1 
     1573/main_task | sys_init soc_peripheral_init done
             Welcome to AliOS Things           
     1574/main_task | sys_init aos_components_init done
     1574/main_task |         mesh has been opened        
[Jan 01 00:00:01.482]<I>ULOG-test sys_init aos_components_init done

nano entry here!
hello world! count 0 
hello world! count 1 
hello world! count 2
hello world! count 3

如何点亮一个LED灯

上面看过了简单的打印后, 我们做一个简单的点灯实践来练练手。

如下简单修改application/example/helloworld_demo/appdemo.c,增加点灯的代码。

说明:灯的编号,右边从上到下分别是0, 1 , 2;左边从上到下分别是3, 4, 5。 编号0是电源指示灯,不可修改。

--- a/application/example/helloworld_demo/appdemo.c
+++ b/application/example/helloworld_demo/appdemo.c
@@ -8,6 +8,7 @@
 #include "aos/init.h"
 #include "board.h"
 #include <k_api.h>
+#include "led.h"
 
 int application_start(int argc, char *argv[])
 {
@@ -18,6 +19,13 @@ int application_start(int argc, char *argv[])
     //fd = board_lcd_create("name");
     //board_lcd_write(fd,buffer,len);
 
+    printf("Light all the led switch of the left.\r\n");
+    /* Sleep 1 second to avoid that led switch on/off while the boad boot up. */
+    aos_msleep(1000);
+    led_switch(3,LED_ON);
+    led_switch(4,LED_ON);
+    led_switch(5,LED_ON);
+
     while(1) {
         printf("hello world! count %d \r\n", count++);

代码改完后,参考上面的步骤编译烧录,最后启动板子就能看到左边的灯都已经被点亮。

IMG_20200918_165633.jpg

怎么样? 用HaaS进行开发是不是很简单, 远远不止这些哦,HaaS已经做了很多简化开发的工作, 快来动手探索一下吧。