一直关注极术社区,参加过社区的好几个活动,这次在微信群得知有开发板使用活动,果断申请试用。一来想借此学习了解鸿蒙系统,再者学习工作中也确实会用到一些小工具。
之前因工作中因自动化测试需要和远程控制测试板子需要(重启板子和切换不同启动模式),买了一块树莓派和继电器连线来控制开发板,如下图。树莓派上可以直接运行python脚本,使用起来确实很方便,但其实只用到了树莓派上基本的GPIO读写功能,确实有点“大材小用”。用XR806来替换树莓派,发现使用起来也非常简单,也是几条命令就可以解决了。
- 环境搭建
代码获取,编译和烧录详见论坛其它攻略,本次试用只用到几个命令不需要改任何代码,因Win和Linux环境不同,涉及终端换行显示混乱的问题了,下面是MobaXterm上的设置方法。
MobaXterm显示问题解决
1 Setting->Configuration->Terminal->Terminal features 取消Paste using right-click
2 终端内右键选择"Change Terminal Settings"
3勾选"Implicit CR in every LF"
- 简单实验GPIO21驱动现成LED指示灯
从XR806原理图上看到,J1上的pin6脚是GPIO口已经默认连接上了一个LED灯,只需要控制这个GPIO口的输出就可以控制LED灯的灯亮和灯灭。
下面是XR806开发板启动后的默认界面,其已经集成了许多实用的命令,集中就包括控制GPIO的命令。和树莓派一样,操作一个GPIO只需要以下几个简单的步骤:
- 激活或初始化GPIO:
命令hm iot gpio init id=xx - 设置GPIO作为输入/输出口
命令hm iot gpio setdir id=xx dir=input/output - 设置GPIO高低电平:
命令hm iot gpio setoutputval id=xx v=0/1 - 释放GPIO
命令hm iot gpio deinit id=xx
控制LED的命令如下:
$ hm iot gpio init id=21
$ TGpioInit port0, pin21
$ CK> 200 OK
$ hm iot gpio setdir id=21 dir=output
$ CK> 200 OK
$ hm iot gpio setoutputval id=21 v=1
<ACK> 200 OK
$ hm iot gpio setoutputval id=21 v=0
<ACK> 200 OK
- GPIO控制继电器
因使用的是2路继电器分别控制控制板子的上下电和不同的启动模式,需要z占用XR806上的两个GPIO口作为输出电平使用, 另外需要连接电源线,所以选择J1上的GPIO引脚2和3作为继电器的控制信号, J2上的引脚8和9用来供电。本来继电器工作电压是5V的,但XR806的GPIO外部接口只能提供3.3V的电压,不过还是可以继续使用;市面上也有3.3V的继电器。
控制命令和上面一样,GPIO初始化和设置input/output后,通过设置高低电平就可以控制继电器了。
$ hm iot gpio init id=12
$ TGpioInit port0, pin12
$ CK> 200 OK
$ hm iot gpio init id=13
$ TGpioInit port0, pin13
$ CK> 200 OK
hm iot gpio setdir id=12 dir=output
hm iot gpio setdir id=13 dir=output
hm iot gpio setoutputval id=12 v=1
hm iot gpio setoutputval id=12 v=0
hm iot gpio setoutputval id=13 v=1
hm iot gpio setoutputval id=13 v=0
控制继电器和点亮LED的操作效果相同:
- 脚本和远程控制
TBD.
后续写个脚本来控制,另外WIFI设置好后,再通过远程来控制。