如果是一个硬件产品,如何能够通过语音与它交互呢? 马上出现在脑海里一个词——人工智能(AI)。实现一个具有人工智能的产品是不是太难了呢?幸运的是,拥有了DuerOS,这件事远没有你想象中的那么困难。当前,前提是这个产品有对外的通信接口,否则,就没有了与之交互的可能性。
为了展示DuerOS 的能力,本文以DIY 一个机器狗为例,描述如何让一只机器狗听懂你说的话, 并做出相应的动作。一只机器狗变成了真正听话的电子宠物,嗯, 这一定是一件挺开心的事。
别急,实际上需求或者目标的描述并没有那么清楚。如果我通过与手机或者智能音箱的语音交互, 远程控制机器狗,可以么?还是要给机器狗配上麦克风、扬声器,直接交互呢?不同的目标意味着不同的实现方案,也意味不同的设计权衡,前者的方式可以在《DuerOS 的AI 实战》中找到相关的指导性文字,这里是DIY,当然要展示从硬件到软件的全部过程。
整个实战是一个循序渐进的过程,不断返工才会极大地影响效率和心情,主要步骤如下:
- 选择一只机器狗,验证机器狗是否动作正常
- 为了简化流程,选择串口通信,实现电脑简单地控制机器狗
- 深入通信协议,丰富机器狗的动作
- 通过串口协议,小度音箱直接控制机器狗
- 通过DBP 平台创建bot,语音简单控制机器狗
- 丰富话术,完善机器狗的语音交互
等不及了, 正式开始——
1.机器狗的选择与验证先要有一个硬件,然后再通过DuerOS 赋能,选择了一个创业团队的机器狗——Xgo(https://www.xgorobot.Com/2021/08/15/XGOmini/)。
“勿在浮沙筑高塔”,硬件的验证非常重要,如果硬件自身出了问题,一切免谈。那么,如何验证Xgo是否工作正常呢?根据官网的说明,可以通过对应的手机App 完成功能的展示。 下载手机App,根据操作说明,采用蓝牙连接Xgo, 就可以实现一般的操控了,详见官网说明, 这里就不赘述了。
2.串口通信,电脑控制为了简化开发的流程,这里选择了串口通信,目的是电脑通过串口通信来控制机器狗,为后面的语音控制奠定基础。
2.1 确定机器狗的串口端口Xgo 是一个机器狗,那么串口端口在哪呢?需要拆机,到京东上买个内梅花螺丝刀(https://item.jd.com/4859309.html ),打开外壳,串口的端口就在主板上。
主板丝印中 PC6 是TX, PC7 是RX,右下G 为地线。
串口端口找到了, 杜邦线连接,而Mac 电脑是Type-c,如何连接呢?
2.2 Mac 电脑与Xgo 的串口连接一时没有找到 串口到Type-c 的适配器,只得先将串口转成USB(
https://ic-item.jd.com/10028368158142.html),再将USB转成Type-C(
https://item.jd.com/100009644462.html),为了调试方便,还使用的UBB 延长线(https://item.jd.com/4721781.html), 最后的物理连接如下:
需要注意的是, 一定要地线对接,否则TTL 电平无法正常工作。
大家经常谈到面向测试的设计或者面向接口的设计,在硬件领域更是如此,每个环节和步骤都需要验证的。
如何验证串口是否正常呢?
登录苹果的AppStore,有很多串口调试工具,找一个免费的即可,这里选择了“串口调试助手”。安装完成后,线路连接好,打开串口,测试是否正常响应。