主要内容

开始使用键盘控制鹦鹉迷你无人机

本示例向您展示如何创建一个Simulink®模型,该模型使用主机计算机的键盘来金宝app控制Parrot微型无人机的电机。

简介

Parr金宝appot m金宝appiniidrones的Simulink支持包提供了一个键盘读取块,当Simulink模型在无人机上运行时,它可以读取在主机键盘上按下的键。这个Keyboard Read块的输出是所按字符的相应ASCII码,您可以使用它来触发任何控制逻辑。

键盘读取块可以在Simulink库中找到。金宝app从Simulink Library浏览器访问该块:金宝app

1.输入slLibraryBrowser在MATLAB提示符下。

2.在Simuli金宝appnk库浏览器中,导航到金宝appParr金宝appot迷你无人机的Simulink支持包

open_system (“parrotlib”);

在本例中,您将学习如何使用键盘读取块代码生成模板使用键盘上的两个不同键来设置Parrot迷你无人机上一个马达的速度。

先决条件

所需的硬件

要运行这个例子,你需要以下硬件:

  • “鹦鹉滚动蜘蛛”或“鹦鹉曼波”,电池充满电,螺旋桨与马达相连。

  • 蓝牙低能耗(BLE) 4.0支持主机金宝app

任务1 -添加一个键盘读块和模型的逻辑检测接收字符

1.在“Simul金宝appink开始”页面中,导航到金宝appParr金宝appot迷你无人机的Simulink支持包并选择代码生成模板

2.在Simuli金宝appnk模型中,导航到飞行控制系统,并插入键盘读从库中阻塞。

3.添加两个与常量比较并将键盘读取块的输出连接到两个Compare to Constant块的输入。

在这个例子中,我们假设键盘上的字符“a”将用于启动电机,字符“s”将用于停止电机。您可以使用其中一个“与常量比较”块将接收到的字符与“a”的ASCII码进行比较97),并使用另一个块将接收到的字符与ASCII码“s”(即115).

4.双击“与常量比较”块,设置操作符价值= =,常数价值97而且115分别。

任务2 -增加额外的逻辑控制电机

在本任务中,需要执行以下操作:

  • 使用映射到“a”的Compare to Constant块的输出来运行Parrot迷你无人机的马达1

  • 使用从比较到常量块映射到's'的输出来停止Parrot迷你无人机的电机1。

1.插入一个添加块,并使用Add块组合两个输出(来自两个Compare to Constant块)。

2.插入一个开关块,并将Add块的输出连接到Switch块的输入2。

3.添加一个带值的增益块400,并将其连接到为字符'a'配置的Compare to Constant块的输出。将增益块的输出连接到Switch块的输入1。

4.对于Switch块的Input 3,我们将从Switch块的输出中获得延迟反馈。插入一个延迟块,并连接到输入3。

5.将开关块的输出连接到电机1。

6.添加一个常数带值的块200把它连接到其他马达上。

完整的逻辑如下所示:

预先配置的模型(parrot_keyboard_control),以方便浏览。双击该模型中的飞行控制系统子系统,查看控制逻辑。

open_system (“parrot_keyboard_control”);

任务3 -部署模型和使用键盘来控制无人机

在本任务中,您将Simulink模型部署到Parrot迷你无人机上,金宝app启动模型,并使用上位机键盘控制电机1的速度。

1.在“Simul金宝appink”工具栏上,单击部署到硬件按钮。该模型部署到鹦鹉迷你无人机。

如果您已选择建立后自动启动PARROT飞行控制界面选项中的“配置参数”(硬件实现面板>目标硬件资源>构建选项),在成功完成构建后,Parrot飞行控制界面会自动打开。

也可以通过执行该命令启动接口Parrot_FlightInterface在MATLAB命令提示符。

2.在鹦鹉飞行控制界面,单击开始.部署的模型现在可以接受键盘按键操作了。

3.在鹦鹉飞行控制界面,单击显示键盘控制面板

4.点击启用键盘控制

5.属性下面的字段中放置光标启用键盘控制按钮,并输入字符一个在主机的键盘上。

马达开始运转。

6.输入字符年代在主机的键盘上。马达停止运转。

7点击停止在飞行控制界面上停止模型在无人机上运行。

详情请参见键盘控制鹦鹉迷你无人机

使用MATLAB脚本控制无人机

以上行为可以使用MATLAB脚本重现。有关更多详细信息,请参阅主题使用MATLAB脚本进行键盘控制

下面提供了一个示例脚本,其中打开电机3秒,然后关闭电机3秒,共10个循环。

您需要首先将Simulink模型部署到无人机,使用飞行控制金宝app接口启动模型,然后在MATLAB命令提示符下运行下面的脚本。

try tcpphandle = tcpclient('192.168.3.1',26061);
for i = 1:10 write(tcpHandle, uint8('a'));暂停(3);写(tcpHandle uint8 (s));暂停(3);end catch ex if(isequal(ex.identifier,'MATLAB:networklib:tcpclient:cannotCreateObject'))错误('包含键盘金宝app读取块的Simulink模型必须在无人机中运行才能启用键盘控制。');否则错误('传输键盘字符到无人机失败。检查Simulin金宝appk模型是否在无人机中运行。');结束结束

点击停止在飞行控制界面上停止模型在无人机上运行。