Alexa 控制 ARDrone 2.0 演示:树莓派 + Hologram Nova 语音激活无人机
实操指南:利用 Amazon Alexa、树莓派和 Hologram Nova USB 调制解调器,将 ARDrone 2.0 变为语音控制伴侣。
故事
动机
在前一个项目掌握 ARDrone 2.0 后,我们希望集成 Alexa 语音接口提升体验。Alexa & Arduino 智能家居挑战赛激励我们构建功能完整的语音控制无人机演示。
下面是简明流程演示。
涵盖树莓派软件设置、Alexa 技能配置和最终部署步骤。
树莓派软件设置
在 Pi 上安装 Flask-Ask 库以暴露 Alexa 兼容端点:
$ sudo pip install flask-ask
接着克隆 ARDrone Wi-Fi 控制仓库并运行提供的 install.sh 脚本启用 Python 远程控制。
设置 Alexa 技能与应用
我们构建自定义 Alexa 技能与 Pi 上运行的 Flask 服务器通信。Ngrok 为服务器提供 Alexa 所需的公共 HTTPS 端点。
下面是最小 Flask-Ask 应用示例(保存为 app.py):
#!/usr/bin/env python
from flask import Flask
from flask_ask import Ask, statement
import ardrone
import time
app = Flask(__name__)
ask = Ask(app, "/")
# 初始化无人机并给予短暂复位时间
drone = ardrone.ARDrone()
time.sleep(5)
drone.reset()
@app.route("/")
def home():
return "Ground Control to Major Tom"
@ask.intent("reset")
def reset():
drone.reset()
return statement("resetting")
运行服务器:
python app.py
启动 Ngrok 并保留子域名以保持 HTTPS URL 稳定:
./ngrok http -subdomain=<your-subdomain-here> 5000
注意: Pi 连接 ARDrone Wi-Fi,Hologram Nova 提供蜂窝连接供 Alexa 请求。
我们用 Nova 250MB 月套餐,表现可靠。
配置 Alexa 技能:进入 Amazon Developer Console → Alexa Skills Kit → + Add a New Skill。按向导完成各标签页直到所有状态指示变绿。
- 交互模型 – Intent Schema:将下方 JSON 复制到编辑器。
{ "intents": [ {"intent": "reset"}, {"intent": "takeoff"}, {"intent": "land"}, {"intent": "hover"}, {"intent": "goForward"}, {"intent": "goBackward"}, {"intent": "goLeft"}, {"intent": "goRight"}, {"intent": "AMAZON.PreviousIntent"}, {"intent": "AMAZON.NextIntent"}, {"intent": "AMAZON.HelpIntent"}, {"intent": "AMAZON.ScrollUpIntent"}, {"intent": "AMAZON.ScrollLeftIntent"}, {"intent": "AMAZON.ScrollDownIntent"}, {"intent": "AMAZON.ScrollRightIntent"}, {"intent": "AMAZON.PageUpIntent"}, {"intent": "AMAZON.PageDownIntent"}, {"intent": "AMAZON.MoreIntent"}, {"intent": "AMAZON.NavigateSettingsIntent"}, {"intent": "AMAZON.StopIntent"} ] } - Sample Utterances – 填入 "takeoff", "land", "go forward" 等短语(见原始列表)。
- 配置 – 端点选 HTTPS,将 Ngrok URL 粘贴到 Default 字段。演示禁用账户关联。
- SSL 证书 – 选中间项:“我的开发端点是拥有通配符证书域名的子域名”。
- 测试 – 用内置模拟器验证每个 intent 工作正常。
所有标签页显示绿色检查后,通过测试链接发布技能到 Echo 设备。
运行
启动完整系统:
- 开启 ARDrone 并连接 Pi 到其 Wi-Fi。
- Pi 上激活 Hologram Nova 蜂窝网络:
$ sudo hologram network connect
Nova LED 变固态蓝表示蜂窝链路激活。 - 用保留子域名启动 Ngrok(见前)。
- 运行 Flask 应用:
$ python app.py
- 无人机 LED 变绿后,可通过 Alexa 控制。若无响应,说 "Alexa, ask Major Tom to reset"。
来源: MajorTom: Alexa Voice Controlled ARDrone 2.0
制造工艺
- 温控风扇DIY:媒体柜散热的继电器驱动方案
- 树莓派控制水培养殖系统:构建指南与代码
- 在 MATRIX Voice 树莓派上安装 Google Assistant:分步指南
- 树莓派 + Python 让 Amazon Alexa 控制 Google Chromecast
- 树莓派 + PIR 传感器 + MQTT 打造 AWS IoT 运动触发按钮
- 用 Python 构建 Wi-Fi 控制的树莓派机器人:分步指南
- 通过树莓派用 Alexa 控制 LED - 简单分步指南
- 改造大嘴鲈鱼玩具:Arduino + L293D + LM386 打造 Alexa 互动智能鱼
- 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- 2017年为何成为语音交互元年
- 借助开发套件与参考设计加速Alexa集成