这是一款完全 3D打印的Tricopter无人机,可以使用亚马逊的Alexa地面站控制,通过语音控制进行飞行 。这种语音控制的Tricopter也被称为Oliver the Tri。
A Tricopter与Quadcopter更常见的无人机配置不同,只有3个螺旋桨。为了弥补一个较小程度的控制,其中一个转子由伺服电机倾斜。 Oliver the Tri配备了Pixhawk自动驾驶仪,这是一种先进的自动驾驶系统,主要用于研究或先进的无人机行业。该自动驾驶系统具有多种飞行模式,包括跟随我,航点导航和导航飞行。
亚马逊的Alexa将使用导航飞行模式。它将处理语音命令并将它们发送到地面站,地面站将这些命令映射到MAVLink(微型飞行器通信协议)并通过遥测将它们发送到Pixhawk。
这种小型飞机尽管很小但功能强大。它长约30厘米,重1.2公斤,但我们的螺旋桨和马达组合可以提升3公斤。
第1步:材料和设备
Tricopter
3无刷直流电机
3电机轴
8x4复合螺旋桨CCW
配电板
电线和连接器
TGY-777伺服电机
电池和电池连接器
6x 6-32x1“剪切螺栓,螺母*
3M Dual锁*
ZipTies *
自动驾驶仪
Pixhawk自动驾驶仪套件
GPS和外部指南针
900MHz遥测
安全RC控制
发射器和接收器对
PPM编码器
语音控制地面站
Raspberry Pi Zero W套件或Raspberry Pi 3
Amazon Echo Dot或任何Amazon Echo产品
设备和工具
焊接站
3D打印机
针鼻钳*
螺丝刀*
Allen Key Set *
*从本地硬件商店购买
第2步:内容组织
由于这是一个相当复杂的长期项目,我提供了一种方式将此构建组织为可以同时执行的三个主要部分:
硬件:三轴飞行器的物理框架和推进系统。
自动驾驶仪:飞行控制器计算PWM信号以提供每个3个无刷电机和伺服电机相应的用户命令。
语音控制:这允许用户使用语音命令控制无人机,并通过MAVLINK协议与Pixhawk板进行通信。
第3步:下载Tricopter框架部件
tricopter的整个框架是3D打印的在Ultimaker 2+上。框架分为5个主要部件,以便安装Ultimaker 2+的底板,并使其更容易重印和修理特定部件,以防它们在碰撞中受损。它们是:
2前电机臂(main-arm.stl)
1尾臂(tail-arm.stl)
1连接尾部和两个前部电机臂之间的一块(tail-arm-base.stl)
1尾部电机座(motor-platform.stl)
步骤4:3D打印Tricopter帧
使用至少50%的填充打印这些部件,并使用线作为填充图案。对于壳厚度,我使用 0.7mm 的壁厚和 0.75mm 的顶部/底部厚度。添加构建板粘合并在 8mm 处选择边缘。这个框架是用PLA塑料长丝印刷的,但如果你喜欢更坚固但更重的三角形,你可以使用ABS塑料长丝。使用这些设置,打印所需的时间不到20小时。
如果边缘没有粘在3D打印机的打印面上,请使用胶棒将裙边粘到打印面上。在打印结束时,取下底板,清洗多余的胶水,然后擦干,再将其放回打印机。
步骤5:去除支撑和边缘
3D打印部件将随处打印,并带有需要的外边缘在组装之前将其移除。
边缘是单层PLA,可以用手轻易地从零件上剥离。另一方面,支撑更难以移除。为此,您需要一把尖嘴钳和一把平头螺丝刀。对于不在封闭空间内的支撑,请使用尖嘴钳压碎支架并将其拉出。对于使用尖嘴钳难以触及的孔或封闭空间内的支撑,要么钻孔,要么使用平头螺丝刀从侧面撬开,然后用尖嘴钳将其拉出。当移除支撑件时,如果您对3D打印部件施加过大的压力,则可能会松开。
移除支撑件后,将支撑物所用的粗糙表面打磨掉或小心地雕刻用爱好刀保持支持。使用砂磨或研磨钻头和dremel来平滑螺孔。
步骤6:组装Tricopter框架
对于装配,你将需要六个螺栓(最好是剪切螺栓,6-32或更薄,1英寸长)将框架固定在一起。
采用名为main-arm.STL和tail-arm-base的3D打印部件。 STL。这些组件像拼图一样互锁,尾臂基座夹在两个主臂的中间。对齐四个螺孔,然后从顶部插入螺栓。如果零件不适合很容易,不要强迫它们。将尾臂基部打磨直到它们为止。
接下来,将尾臂滑到尾臂底部的突出端,直到螺丝孔对齐。同样,您可能需要在适合之前进行打磨。从顶部将其固定。
要组装电机平台,首先需要将伺服器插入尾臂上的开口,向后指。两个水平孔应与伺服系统上的螺孔对齐。如果摩擦配合不充分,可以通过这些孔将其固定到位。然后将控制喇叭放在伺服上,但不要将其拧入。稍等片刻。
将电机平台的轴滑入尾臂末端的孔中,另一侧在喇叭上。喇叭应该很好地适合平台上的插入物。最后,将喇叭螺丝穿过平台上的孔和喇叭,如上图所示。
步骤7:安装电机
无刷电机不会随附螺旋桨轴和安装的十字板预先连接,所以先将它们拧紧。接下来,使用随附的螺钉或M3机器螺钉和螺母将它们固定在电机平台和三轴飞行器的主臂上。您可以在此步骤安装螺旋桨以确保间隙并欣赏您的手工,但在飞行前测试之前将其移除。
步骤8:连接自动驾驶仪板
将传感器连接到Pixhawk Autopilot板,如上图所示。这些也在自动导航板本身中标记,并且连接非常简单,即蜂鸣器连接到蜂鸣器端口,开关连接到交换机端口,电源模块连接到电源模块端口,遥测连接到telem1端口。 GPS和外部罗盘将有两组连接器。将带有更多引脚的引脚连接到GPS端口,将较小引脚连接到I2C。
进入Pixhawk自动驾驶仪板的这些DF13连接器非常易碎,所以不要拉扯电线,直接推拉塑料外壳。
步骤9:连接无线电通信系统
无线电控制通信系统将用作安全备份来控制四轴飞行器,以防地面站或Alexa发生故障或错误命令另一个。
将PPM编码器连接到无线电接收器,如上图所示。 PPM编码器和接收器都有标签,因此将S1到S6连接到接收器的信号引脚1到6。 S1还将带有接地线和电压线,通过PPM编码器为接收器供电。
步骤10:焊接配电板
PDB将从锂聚合物(LiPo)电池输入电压和电流为11.1V和125A,并将其分配给三个ESC,并通过电源模块为Pixhawk Autopilot板供电。
这个电源模块是从之前与朋友合作完成的项目中重复使用的。
之前,焊接电线,切断热缩以适应每根电线,这样就可以了之后可以滑到暴露的焊接端,以防止短路。首先将公XT90连接器引线焊接到PDB焊盘,然后将16 AWG焊线焊接到ESC,然后将XT60连接器焊接到这些电线上。
要将导线焊接到PDB焊盘上,您需要将其直立焊接,以便热缩可以穿过并使端子绝缘。我发现最简单的方法是用伸出的手将电线直立(特别是大型XT90电缆)并将其放在桌子上的PDB顶部。然后在PDB焊盘周围焊接导线。然后,将热缩管向下滑动并加热以使电路绝缘。在ESC线的其余部分重复此操作。要焊接XT60,请按照上一步说明如何用XT60s替换ESC电池端子。
步骤11:连接电机和电子速度控制器
由于我们使用无刷直流电机,它们将配备三根电线,连接到电子设备的三个电线端子速度控制器(ESC)。电缆连接的顺序与此步骤无关。当我们第一次打开三轴飞行器时,我们会检查这个。
所有三个电机的旋转应逆时针旋转。如果电机没有逆时针旋转,则切换ESC和电机之间的三根导线中的任意两根以反转旋转。
将所有ESC连接到配电板,为每个ESC提供电源。然后将右前方的ESC连接到pixhawk的主输出1.将左前方的ESC连接到pixhawk的主输出2,将伺服系统连接到主输出7,将剩余的尾部ESC连接到主输出4。
步骤12:设置自动驾驶仪固件
为此选择的固件Tricopter构建是Ardupilot的Arducopter与Tricopter配置。按照向导中的步骤操作,在固件中选择tricopter配置。
步骤13:校准内部传感器
连接tricopter通过选择右上角的“自动”使用无线遥测模块,然后单击“连接”。由于它通过900MHz连接,因此无线连接需要一段时间。
按照向导中的步骤校准以下内部传感器:
加速度计
外部指南针
由于三旋翼底部有组件,因此在用加速度计校准水平位置之前,先用一个盒子支撑三轴飞行器。这是至关重要的,因为加速度计将用于确定三轴飞行器的姿态。
指南针需要从各种位置进行采样,因此您应该在校准过程中如上图所示移动直升机。
步骤14:使用亚马逊进行语音控制服务概述
我们将使用三种亚马逊开发人员工具和服务来为Oliver the Tri提供语音控制。这些工具和服务将允许我们处理语音命令,运行我们的代码,并通过MQTT与我们的地面站进行通信,然后将其转发到Tricopter Drone。
我们将在接下来的步骤中设置以下内容:
亚马逊网络服务Lambdas
亚马逊Alexa技能套件
此外,我们还将使用Raspberry Pi作为我们的地面站,运行自定义版本的Mission Planner,它在导航自主飞行模式下运行并使用MAVLink协议进行遥测。
AWSIoTCore 将通过MQTT与Raspberry Pi地面站的“物联网”(来自物联网)进行通信。与MAVlink一样,MQTT也是一种消息传递协议,但不是通过900MHz遥测,而是通过WiFi进行通信(在我们的例子中为2.4GHz)。简而言之,AWS IoT核心在自身,服务器和它的节点Raspberry Pi之间建立了连接。
AWS Lambdas是一个运行我们的NodeJS代码的云计算平台。 NodeJS代码将处理解析的语音命令并处理特定技能的意图。这包括Alexa的语音输出,命令,验证有效命令等。
Amazon Alexa Skills Kit将用于通过Amazon Alexa设备收听语音命令,并通过一组解析它我们定义的意图和样本话语。
步骤15:使用AWS IoT设置事物
首先,创建一个帐户并登录AWS控制台。您可以免费注册。
登录后,将服务器更改为N. Virginia,因为这是支持Alexa Skills Kit的地方。我的默认为俄亥俄州,所以我不得不为N. Virginia重做它。
转到服务并选择 AWS IoT Core。
选择管理》》内容并选择 注册商品
在下一个屏幕上,单击创建单个内容
给你的东西一个合适的名称,我打电话给我的PiGroundStation然后点击下一步。
我们现在为物联网创造了一件事。接下来我们需要设置证书和策略来提供我们的东西和lamda。
步骤16:设置安全证书
从AWS继续IoT Thing向导,我们将创建一个证书。
选择创建证书
然后,下载所有文件,证书,公钥,私钥和根CA 。将这些文件保存到安全的地方,因为我们稍后在配置地面站时需要它们,以便它可以与AWS通信。
导航至安全标签,找到您的证书。然后,选择附加内容,选择您的内容,并通过单击附加将证书附加到该内容。请注意证书ARN ,将其复制到记事本中,因为我们稍后会需要它。
现在,我们将收集一些更重要的信息,为地面站的配置做准备。
导航到 Interact 标签并复制 Rest API端点,这将是我们的主机信息,以及 MQTT Thing影即可。
步骤17:创建策略
理想情况下,Thing和Lambda都有自己的策略。为了演示,我们将创建一个非常开放和宽松的策略,可以被Thing和Lamda使用。
在安全》》政策标签下,选择创建政策
恰当地命名策略,我将其命名为very_permissive_policy
将操作指定为 iot:* ,将资源指定为 *
选择允许效果,然后点击创建。
完成后,就像在证书步骤中一样,将政策附加。请注意,策略ARN ,将其复制到记事本中。
步骤18:设置Lambdas
首先,确保您在N. Virginia服务器上,因为这将托管我们需要的Alexa技能套件。
导航到顶部面板并选择服务》》 Lamda 。然后单击,创建Lamda功能。
在创建功能窗口下,选择从头开始作业。为其指定名称 EchoDroneControl ,因为这需要匹配Raspberry Pi上目录的名称。运行时将是Node.js4.3 。
选择“创建自定义角色”;这将打开一个弹出窗口,并为其指定一个角色名称 lambda_basic_execution 。点击Lambda角色页面底部的允许。
返回Create Lamda Function页面,将其他选项保留为默认值,除了超时,将其增加到 10秒。然后点击下一步。
在触发器下,添加 Alexa技能套件从左侧窗格。
步骤19:创建新的Alexa技能
使用Alexa开发人员门户创建一个帐户。这是我们将创建自定义alexa技能的地方。
在顶部栏中,选择 Alexa技能套件》》开始技能。
为您的Alexa技能提供适当的名称和调用名称。我分别使用Drone Control和Drone作为我技能的名称和调用名称。然后单击下一步。
将意图架构代码复制到文本块。
将示例话语代码复制到底部文本块。然后单击下一步。
复制并粘贴之前步骤中保存在记事本中的 ARN链接,然后点击下一步。
现在,在测试技能之前,我们需要设置地面控制站,lambdas将在下一步中与之通信。
步骤20:将Raspbian安装到Raspberry Pi
从raspberry pi网站下载最新版本的noobs NOOB并解压缩内容。
将内容复制并粘贴到格式化的FAT32SD卡上。
然后将raspberry pi插入监视器和电源,并按照向导安装操作系统。
步骤21:安装AWS命令和配置参数
在我们上传文件并测试Lambda之前,我们首先需要安装AWS Commands并配置一些访问参数。
在Raspberry Pi上打开终端(或SSH)并运行以下命令来安装和验证AWS命令:
pip install awscli --user
aws --version
打开IAM控制台并设置用户详细信息如下所示
在角色标签下,附上显示在中的政策如下图所示,然后单击Next。这将用于在地面站上运行配置文件。
步骤22:在Rasberry pi上设置自定义地面控制站
SSH ,并使用默认密码raspberry登录。
登录后在终端上输入以下命令
cd ~
sudo apt-get install avahi-daemon
sudo chown pi /usr/local/ -R
sudo apt-get install nodejs npm -y
sudo apt-get install zip
sudo apt-get install screen
pip install awscli
pip install dronekit
pip install paho-mqtt
git clone https://bitbucket.org/veggiebenz/echodronecontrol/ dronecontrol
cd dronecontrol
mkdir certs
该代码是开源的,可以在这里找到。这将被克隆到覆盆子pi地面站。
下载 Cyberduck ,这是一个 SFTP 应用,可以与raspberry pi进行文件传输。
使用默认用户名pi和密码raspberry登录Cyberduck上的Raspberry pi。
将证书转移到证书文件夹。
在Raspberry Pi上,导航到〜/dronecontrol/EchoDroneControl/Lambda和Alexa技能所需的文件套件存储并编辑 upload.sh 文件,并进行以下更改:
将角色ARN值 e添加到第3行的变量中。
将 Rest API端点添加为主机。
添加 MQTT主题
添加 Alexa技能应用ID
然后,将您为Lambda创建和下载的所有证书添加到 config.js 文件中。
最后,运行upload.sh脚本文件,然后在终端中输入以下内容,输入您从配置步骤中保存的密码:
。 upload.sh
步骤23:享受飞行
找一个天气好的日子,享受你选择的任何模式飞行,无论是完全自主的航点导航,手动飞行或语音控制。
以下是一些可以帮助您入门的命令:
Alexa Launch
Alexa向左转
Alexa向前移动5米
Alexa Land
- 无人机
+关注
关注
225文章
10142浏览量
176921 - 语音控制
+关注
关注
5文章
471浏览量
28154 - 3D打印
+关注
关注
26文章
3506浏览量
108214 - 树莓派
+关注
关注
116文章
1659浏览量
105097
发布评论请先登录
相关推荐
评论