感谢安信可官方的支持,申领的ai-wb2-32s板子到了,下面是板子实拍:
先观察一番,不难发现io口还是比较多的,集成了一个三色的rgb灯,比一般核心板的单色led色彩更丰富.话不多说,进入正题,本文将分at和sdk两种开发方式对板子的蓝牙/wifi,rgb,串口等功能进行验证.
首先是at开发,配置环境算是最简单的了,适合一些简单的开发工作,配置环境可参考这篇链接:
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=208&ctid=23
配好环境后,使用任意串口软件,设置波特率115200,0校验位,1停止位即可进行开发.at指令如下:
https://docs.ai-thinker.com/_media/combo_v4.18p_1.11.0.pdf
在这里踩了个坑,使用at指令的时候一直返回我发出的指令,而不是正常进行回应,最后发现是没敲空格...有的串口软件默认你的回车是发送信息,这个时候可以使用转义符\r\n就可以了,还有发送的时候要选择文本模式不要发hex数据.
上电后显示这个就说明环境配好了,简单测试一下.可以看到原理图上控制rgb的是3,14,17引脚,并且不是使用灌电流的方法驱动的,所以0对应灭1对应亮
at命令手册上可以看到:
先定义三个引脚: AT+SYSIOMAP=3,3,14,17 再随便挑一个引脚输出高电平,这里输出的是第二个引脚(io14) AT+SYSGPIOWRITE=2,1
可以看到红灯亮起,因此可以确定io14是红灯.
确定了板子正常,环境也正确配置后,我们开始尝试连接蓝牙 AT+BLEMODE=0,设置蓝牙为从机模式并开启蓝牙,找到ai-thinker即可,打开蓝牙调试助手,发送数据
可以看到成功通过串口传输接收到的数据
接下来测试wifi连接,由于是校园网,并没有路由器,所以直接用笔记本共享热点进行测试,看到这个板子的宣传页说兼容了主流的路由设备,那就顺便测试一下笔记本热点是否可以兼容吧. 和蓝牙连接类似,都是先指定模式再进行连接,不同的是由于蓝牙是从机设备,无须进行扫描,而wifi连接时,板子作为sta设备,需主动选择ap设备进行连接,所以多了一个扫描.不过如果直接就清楚具体的wifi名,可以跳过扫描 AT+WMODE=1,0,指定wifi工作模式 AT+WSCAN,扫描wifi 在这里出现了一个问题,由于热点设置的是5ghz,没有扫描到,在改成2.4ghz后就迎刃而解了.因此也说明,这个板子只支持2.4ghz的频段,无法兼容5ghz的频段.连接完成后如下:
接着打开tcp助手,设置pc作为服务端,打开端口,记住这个端口.通过at指令输入: AT+SOCKET=4,192.168.137.1,1024 意思是tcp客户端,连接电脑ip,1024端口 连接建立成功
能正常传输数据
以上就是at指令开发的尝试,可以发现at指令就像是一头懒驴,只能抽一鞭子动一下,没法做到复杂的控制,只能响应一个实时的,单一的指令,很显然,这是不够用的. 使用sdk开发,首先得重新配一个环境,可以参考以下链接: 这应该是园长的文章,还是挺详细且专业的,需要注意的点是eclipse这个软件挺奇怪的,建立工程后貌似不会自己弹出工作界面,你甚至不知道自己有没有创建成功工程... 经过一番琢磨后,要点在于上方有一个window选项,点进去->show view->C/C++ project创建好工程后按步骤点击即可
成功后如图就是这样了,但是现在只能build,还不能download到板子上,有两种方法,一个是使用类似刚才烧录固件的方法把build好的文件烧录进去,还有就是直接通过这个软件进行烧录,这里就不过多赘述,可以参考这个帖子:
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45221&ctid=23
浏览文件系统,applicantions存放着很多功能的范例,先试试能不能直接用.
选择蓝牙从机这个文件夹,浏览main.c文件发现应该是和at功能类似,连接蓝牙然后把收到的数据发送给串口.ble_interface.c中可以看到uuid和蓝牙名称.话不多少直接选择这个文件进行build,完成后提示"Please Press Reset Key!",按下rst后开始下载到片上,在手机上连接蓝牙,发送数据可以成功在串口助手中查看到数据.
这里应该需要以管理员方式打开eclipse,否则会提示无法打开串口.
既然验证了可行性,那么试试能不能改一改实现新的功能.在applicantions->peripherals中可以看到demo_gpio,就拿rgb练练手吧,先看看理解一下代码看看怎么怎么控制gpio以及蓝牙接收到的数据在哪.
可以看到这三个函数:
bl_gpio_enable_output
bl_gpio_output_set
和at指令类似,先使能,再赋值
查阅头文件可以看到,bl_gpio_enable_output函数三个参数分别为io口号以及是否上拉/下拉,如此一来便可以方便的控制gpio口了.
再看看蓝牙有关的文件.
可以看到这个函数,在接收到数据的时候通过串口发送出来,直接对这个函数进行一点调整,加入对接收到的数据进行判断就行了(当然这样做好像有点屎山了...)
11.mp4
(9.4 MB, 下载次数: 2)
最后看到可以成功运行,在原有的功能上,如果收到'1'就亮红灯,收到'0'就灭灯,收到其他的不变.当然,多加几个判断实现其他颜色的灯也没问题.
对这个板子的探索就暂时告一段落,还得准备六级和期末考试,之后有时间再看能不能拿它做点小项目吧.
总的来说,这块板子的性能是不错的,at指令也齐全,当然缺点也存在,eclipse这个软件实在不够好用,环境安装起来也不够方便.当然论坛有着颇为详细的资料,包括也有很多前人已经帮忙踩了很多坑,只要耐心相信都是可以克服的.
再次感谢官方,本人只是个菜鸟,有不足或者疏漏之处请大家多多指教.
|