MajorTom:Alexa 语音控制的 ARDrone 2.0
带有 Hologram Nova 的蜂窝后门在 Raspberry Pi 烧瓶询问服务器上 - 亚马逊 Alexa 控制。
故事
动机
我们之前的 ARDrone 2.0 项目帮助我们了解了一个新项目。我们当前的 Alexa 和 Arduino 智能家居挑战条目向我们介绍了为声控无人机创建工作演示所需的技能。
这是我们想出的:
图>下面,我们概述了我们的流程。
Pi 软件设置
要使用必要的软件设置 Pi,请安装flask-ask:
$ sudo pip install flask-ask
您还需要通过 WiFi 控制 ARDrone 的库。克隆这个 repo 并运行提供的 install.sh 脚本。
设置 Alexa 技能和应用
我们创建了一项技能,该技能与运行树莓派的服务器相关联。 Flask 是一个易于使用的 Python 库来为应用程序提供服务。使用烧瓶询问,我们可以配置服务器与我们的 Alexa 技能进行通信。我们使用 Ngrok 在外部为应用程序提供服务,并为我们提供了一个 https 链接,我们将需要我们的 Alexa 技能。这是该应用程序的一段代码。完整的 app.pyscript 将附在下面。
#!/usr/bin/env pythonfrom flask import Flaskfrom flask_ask import Ask, statementimport ardroneimport timeapp =Flask(__name__)ask =Ask(app, '/')drone =ardrone.ARDrone() time.sleep(5)drone.reset()@app.route('/')def home():返回'地面控制给汤姆少校'@ask.intent('reset')def reset():drone.reset () Speech_text ='resetting' 返回语句(speech_text)
要运行这个应用程序,只需输入:
python app.py
对于这个项目,我们使用 ngrok 通过 https 为应用程序提供服务。我们使用了保留的子域名,因此链接可以与 Amazon Alexa 技能配置保持一致。要为应用程序提供服务,请运行:
./ngrok http -subdomain=5000
由于 Raspberry Pi 加入了 ARDrone 的 WiFi 接入点,我们使用 Hologram Nova USB 调制解调器作为蜂窝后门,使 Alexa 能够与flask-ask 服务器进行通信。
我们发现该应用程序使用 hologram nova 运行顺利,每月数据计划为 250mb。您可以使用全息图仪表板进行设置并激活 SIM 卡。
设置 Alexa 技能,导航到亚马逊开发者仪表板并登录。点击 Alexa 并开始 使用 Alexa 技能套件。然后点击添加新技能以创建新技能。 按照他们的说明开始完成左侧的选项卡。
按照 gui 的说明进行操作。
- 在交互模型下, 使用以下内容填写 Intent Schema 框:
{ "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" } ]}
- 在“示例话语”框中,写下:
reset resettakeoff takeofftakeoffliftofftakeoff上升uptakeoffblast offtakeoffriselandlandland come down to earthland come downland get on the groundland ground controlhover hoverhover 停留puthover 停留在你所在的地方Forward move forwardgoForward go forwardgoForward comegoBackward go backgoBackward go backsgoBackward move backsgoBackward get backgoLeft 左移goLeft 左转goLeft 左转goRight 右转goRight 右转goRight 右转
- 在配置中 选项卡,确保将服务端点选择为 HTTPS。复制您的 https 链接并将其粘贴到下方的默认框中。帐号关联可以留为否。
- 在 SSL 证书中 选择中间选项,“我的开发端点是一个域的子域,该域具有来自证书颁发机构的通配符证书”。
- 测试 选项卡将允许您通过输入您的示例命令之一来测试新技能。
填写最后两个选项卡,直到所有复选标记都为绿色。然后使用 Beta 测试功能启动您的技能。这允许您在发布之前在任何回声设备上托管您的技能。按照电子邮件链接上的说明在您的 Echo 设备上安装该技能。
运行
要运行整个应用程序,首先要确保您的无人机已开启并且其 wifi 连接已开启。在 Raspberry Pi 服务器上,连接到 ARDrone 的网络。在终端中,运行以下命令连接到 Hologram 的网络:
$ sudo hologram 网络连接
一旦 Nova 上的蓝色 LED 灯常亮并且此过程完成,您就进入了蜂窝网络。在单独的选项卡上,运行我们之前提到的 ngrok 命令:
$ ./ngrok http -subdomain=5000
最后,在另一个选项卡中,运行应用程序
$ python app.py
如果无人机的灯是绿色的,你就可以飞行了。如果没有,请让 Alexa 重置它,说:“Alexa,请 MajorTom 重置。”
来源: MajorTom:Alexa 语音控制 ARDrone 2.0
制造工艺