3)开发环境搭建
a)开发软件准备
b)硬件连接
参照上图进行开发板与PC的连接。
4)不同开发环境下运行
a)Windows环境开发
本章节介绍Windows开发环境下的上手操作,操作步骤如下:
● 安装剑池CDK。
● 参照《源码获取》下载相应版本的SDK源码。
● 重要步骤:进入solutions/smart_speaker_v2目录切换yaml文件。比如使用package_d1_mind.yaml替换package.yaml。
● 双击project.cdkproj工程文件,先Clean Project,再开始编译和调试。
编译
单击工具栏的【Clean Project】,再单击【Build】或者【Rebuild】按键,开发编译。
注意:
编译的速度依赖于WINDOWS下是否有安装杀毒软件或者监控软件,比如杀毒卫士360,卡巴斯基,赛门铁克等。通过尝试删除或停止该类软件运行,可以提高编译速度。
烧录
① 先连接好硬件JTAG。然后单击工具栏按钮开始烧写。
② 烧写完毕之后,按开发板复位键复位设备。
b)Linux环境开发
本章节介绍Linux开发环境下的上手操作,推荐安装Windows+WSL环境。请参照《源码获取》下载相应版本的SDK源码和yoctools工具,同时搭建好开发环境。
编译
root@DESKTOP-xxx:/sdk_longyuan# cd solution/smart_speaker_v2 ### 查看yoctools版本指令 root@DESKTOP-xxx:smart_speaker_v2# YoC--version 2.0.32 ### 更新yoctools版本指令 root@DESKTOP-xxx:smart_speaker_v2# sudo pip install yoctools -U ... Successfully installed yoctools-x.x.xx ### 安装/更新工具链版本指令 root@DESKTOP-xxx:smart_speaker_v2# YoCtoolchain --RISC-V-f Start to download toolchain: RISC-V 64-unknown-elf 100.00% [##################################################] Speed: 5.428MB/S Start install,wait half a minute please. Congratulations! ### 查看工具链版本指令 root@DESKTOP-xxx:smart_speaker_v2# RISC-V 64-unknown-elf-gcc -v ... gcc version 10.2.0(XuanTie-900 elf newlib gcc Toolchain V2.4.0 B-20220427) ### 选择D1的yaml文件 root@DESKTOP-xxx:smart_speaker_v2# cp package_d1_mind.yaml package.yaml ### WSL环境下,需要先执行下面的命令,支持32位程序的生成 root@DESKTOP-xxx:smart_speaker_v2# sudo service binfmt-support start ### 编译 root@DESKTOP-xxx:smart_speaker_v2# make clean;make ... Create yoc_rtos_8M.img in out directory Success! scons: done building targets. YoCSDK Done
注意:
● 工具链版本需要与开发软件准备中的说明一致。
● yoctools版本需要与开发软件准备中的说明一致。
● 编译时需要选择D1的yaml文件。
● 编译前先执行下“sudo service binfmt-support start”命令。
烧写
① PC机上启动DebugServer,确认提示如下信息:
② 命令行下执行烧录命令:
### 烧录镜像指令
root@DESKTOP-xxx:smart_speaker_v2# make flashall
scons: Reading SConscript files ...
...
want to burn all
[2022-08-03 22:01:20] I am RISC-V
...
program 00x007e9000,100%
burn all over!
root@DESKTOP-xxx:smart_speaker_v2#
注意:
● 烧写前会执行根目录下的gdbinitflash脚本进行DebugServer的连接,默认的连接是target remote localhost:1025,如果无法连接请根据调试工具的提示修改IP地址和端口后重试。
● Windows+WSL环境,请确认系统防火墙为关闭状态。
5)例程运行
由于语⾳交互流程涉及云端处理,故本章节主要描述了如何使设备联⽹,最后描述了如何去⼈机交互。
a) 配置串口
① 打开串⼝调试⼯具,配置波特率为115200,数据位8,校验位None,停⽌位1,流控None。
② 重新上电或按下RST键,系统启动,串⼝会有以下打印信息,表示系统运⾏成功 。
[34]HELLO! BOOT0 is starting![Sep 18 2021,11:27:51]
[39]BOOT0 commit : 3b45046
……(省略)……
[264]Jump to second Boot.
[266]jump to bootloader,[0x40000000]
Welcome boot2.0!
build: Feb 15 2022 15:41:15
cpu clock is 1008000000Hz
jump to [0x40040000]
j m
j 0x40040000
(cli-uart)# ###YoC###[Apr 11 2022,11:36:32]
cpu clock is 1008000000Hz
……(省略)……
[ 0.320]<I>init app_init.c[80]: find 8 partitions
[ 0.330]<I>init app_init.c[51]: filesystem init ok.
[ 0.340]<D>smart_audio smart_audio.c[389]: Enter smtaudio_init
b) 配置WiFi
使用下面命令配置WiFi名称和密码,并重启系统。
kv set WiFi_ssid0 {ssid}
kv set WiFi_psk0 {password}
reboot
注意:
WiFi密码设置重启⽣效。
c)语音交互
WiFi连接成功后,使用“天猫精灵”语音唤醒,等提示音播放完成后说出命令词。
在线交互示例命令如下:
⼈:你好芯宝
机:咚
⼈:播放⾳乐
机:如实播放
⼈:你好芯宝
机:咚
⼈:上海天⽓
机:上海市今天多云转阴,2到8摄⽒度,东北⻛微⻛。PM2.5指数39。……(省略)……
⼈:⾳量最⼤
机:好的
d) 日志解析
### 上电启动 HELLO! BOOT0 is starting![Sep 18 2021,11:27:51] BOOT0 commit : 3b45046 ……(省略)…… [264]Jump to second Boot. [266]jump to bootloader,[0x40000000] Welcome boot2.0! build: Feb 15 2022 15:41:15 cpu clock is 1008000000Hz jump to [0x40040000] j m j 0x40040000 (cli-uart)# ###YoC###[Apr 11 2022,11:36:32] cpu clock is 1008000000Hz ……(省略)…… [ 0.320]<I>init app_init.c[80]: find 8 partitions [ 0.330]<I>init app_init.c[51]: filesystem init ok. [ 0.340]<D>smart_audio smart_audio.c[389]: Enter smtaudio_init ……(省略))…… ### 成功联网 <D>WiFil8723ds_devops.c[557]: @@@@@@@@@@@@@@ Connection Success @@@@@@@@@@@@@@ <I>netmgr netmgr_service.c[187]: start dhcp <I>netmgr netmgr_service.c[211]: IP: 192.168.1.2 <D>NTP ntp.c[200]: ntp1.aliyun.com <D>NTP ntp.c[259]: NTP sec: 1649650295 usec: 746033 <D>NTP ntp.c[288]: sync success
6)创意应用开发:分布式能源系统
能源和环保是关乎人类未来的重要课题。为实现碳中和目标,大力发展可再生清洁能源以替代传统化石能源,提高能源系统监控和消费的智能化水平,是可行的重要途径之一。
本项目以RISC-V架构的D1 Dock Pro和D1 Nezha开发板为硬件平台,应用物联网和区块链技术,设计开发一套分布式能源智慧管理小型示范系统,在该系统上实现能源生产和消费数据的实时监测。
项目使用D1DockPro开发板设计开发一款专用网关,实时采集电池控制器、气象环境传感器等其它传感器的数据,并通过无线通信方式(WiFi)以HTTP协议或MQTT协议将传感器数据上传至物联网后台。如下所示为专用网关的示意图和实物图。
智能开关用于能源消费端,实现对能源消费者(电器负载)的供电控制、电能消费数据的采集和传输等功能。该智能开关基于D1DockPro开发板进行设计开发,通过开发板的I/O口控制继电器、UART接收电能计量模块的数据。
设计一个扩展电路板与开发板配合使用,扩展电路板集成电能计量模块、继电器等。本文设计的智慧开关的功能主要是控制电器开关与计量电器用电参数以及环境参数并上传到云端服务器。如下所示为智能开关的示意图和实物图。
关于分布式能源系统详细的介绍信息可以进入平头哥芯片开放社区(OCC)查看。