50 使 用 无 人 机 自 带 的 USB 数 据 线 将 拓 展 模 块 与 电 脑 连 接, 然 后 单 击 屏 幕 右 上 角 的“ 模 式 切 换” 按 钮 ,进入上传模式界面,单击“拓展”按钮 , 在 主 控 板 模 式 下 选 择“RoboMaster TT (ESP32)”,如图 2.1.7 所示,最后单击 按钮进入 上传模式的编程界面。 在上传模式的编程界面下,如图 2.1.8 所示,在第一 次连接拓展模块时,需要从菜单栏中单击“连接设备”, 在弹出的列表中选择“一键安装串口驱动”,串口驱动 安装成功后,后期就不再需要该操作了,单击“连接设备”, 在弹出的列表中选择“COM××-CP210×”,如图 2.1.9 所示。 图 2.1.8 上传模式编程界面 图 2.1.9 连接拓展模块 图 2.1.7 RoboMaster TT (ESP32) ~~ 试一试 使用拓展模块显示自己的名字拼音,尝试使用不同的文字滚动方向、移动频率和 颜色。 2.1.5 程序按顺序运行 设计程序,在点阵屏上显示一个点,并不断地向右移动。 在“显示图案”模块 的预设图案中没有点图,因此需要手动绘制点图, 单击模块的“图案”按钮 进入图案选择和绘制模式,如图 2.1.18 所示。第一排为预设 图案,进行图案绘制时需要先单击右侧的“清空”按钮 ,然后单击“点亮”按钮 , 通过鼠标在左侧点阵屏区域单击小格子进行图案绘制。 运行程序如图 2.1.19 所示,我们能够看到点阵屏上有一个红色小点会严格按照编 程模块的顺序从左向右移动,每隔一秒移动一格,最后停在第六个格子,程序运行结束。 图 2.1.18 图案绘制 图 2.1.19 小点移动的程序 顺序结构是最简单的程序结构,也是最常用的程序结构,人们可以按照解决问题 的顺序写出相应的程序,当启动程序时,程序就会严格按照自上而下的顺序依次执行。 ~~ 试一试 设计一个七彩灯循环闪烁的程序。 2.1.7 程序的条件选择 设计一个胸牌,以拼音来显示你的名字,如 *TTUAV*,当拓展模块侧面的按键被 按下时,显示你的班级,如五(1)班显示为 5(1)。 程序在运行时面临两个选择:如果按键被按下,显示班级;如果按键松开,显示 名字。这时候程序需要使用选择模块,如图 2.1.22 所示,有三种模块可供编程时选择。 图 2.1.22 三种选择模块 在选择模块中,如果设定的条件成立,那么就执行第一个程序框内 的程序, 否则就执行第二个程序框内 的程序。本程序可以使用第二种或第三种模块进 行程序设计,如图 2.1.23 所示。 图 2.1.23 胸牌显示的程序 ~~ 试一试 使用拓展模块上的按键控制 LED 灯的颜色或亮度。 2.3.2 Tello 摄像头模块 在无人机飞行程序中添加“开启”Tello 摄像头 模块 ,当程序运行到该模块时,在 电脑端就会实时显示无人机摄像头拍摄的画面, 如图 2.3.2 所示,直到程序运行到“关闭”Tello 摄像头模块 时,电脑端的视频画 面才会关闭。在无人机编程飞行中,Tello 摄像 头模块可以用来在电脑端实时查看无人机前方 的画面。 2.3.3 编程探究遥控杆量模块 探究活动 1:遥控杆量模块有 4 个参数,只设置一个杆量参数不等于 0(大于 0 或 小于 0),而其他三个参数都为 0,起飞无人机,探究不同动作下的杆量对无人机飞行 的影响,如果四个参数值都为 0,无人机将如何运动? 程序设计参考图 2.3.3,无人机起飞至约 80 厘米的高度,循环 { 如果电脑键盘 图 2.3.3 探究活动 1 的程序 图 2.3.2 电脑端显示的拍摄画面 ~~ 试一试 在以上程序中,改变遥控杆量模块的其他参数,一次只能改变两个参数值,其他 参数值为 0,探究不同参数值对无人机飞行的影响。 探究结论 通过探究发现,当只改变遥控杆量模块的“横滚”“俯仰”“油门”三个参数中 的两个参数时(模块中的其他参数都为 0),无人机会沿着直线飞行,例如,沿着无 人机的左前方直线飞行,或者沿着斜向上直线飞行,等等。 当只改变油门值和偏航值时,无人机会做直线升降运动的同时旋转。 当只改变横滚值(或俯仰值)和偏航值时,无人机在空中沿圆形航线运动。 ~~ 试一试 设计程序,探究无人机飞行的圆形轨迹的半径是由哪些因素决定的(可以先思考, 再编写程序探究)? 探究活动 3:只改变遥控杆量模块 4 个参数中的 3 个,另一个参数值为 0,无人机 将做什么运动,画出无人机的飞行航线。 程序设计参考图 2.3.5,无人机起飞,循环 { 如果电脑键盘的方向键“↑”键被按下, 无人机沿直线斜向上飞行;如果电脑键盘的方向键“↓”键被按下,无人机沿着螺旋线 上升飞行;如果电脑键盘的空格键被按下,无人机降落;如果电脑键盘的方向键“→” 键被按下,无人机起飞;否则,当没有按键被按下时,无人机在空中悬停 }。 图 2.3.5 探究活动 3 的程序 红外光发射器 发射光线 反射光线 TOF 传感器 障碍物 图 2.4.1 TOF 传感器原理图 也可表达为 s=vt 以上计算出的是红外光经过的全路程,而实际上传感器到物体之间的距离只有红 外光经过距离的一半,再进行一次计算可得 TOF 传感器到物体的距离(d): d=2 s 前视 TOF 测距传感器属于单点测距,如图 2.4.2 所示,需要障碍物在传感器的正 前方才能被探测到。下视 TOF 高度传感器可以测量高度数据,无人机使用此传感器可 控制飞行高度。 图 2.4.2 拓展模块上的前视 TOF 测距传感器 2.4.2 下视 TOF 高度传感器 TOF 高度传感器探究 在无人机机身下方的 TOF 高度传感器可以用来测量无人机与地面的距离,探究无 人机 TOF 传感器的测量范围。 无人机编程飞行很多时候是在室内进行,想要获得近 10 米高度的室内空间还是很 难的。如图 2.4.3 所示,我们可以尝试手持无人机,并将无人机侧过来,让 TOF 高度传 感器朝向墙壁,先让无人机紧贴墙壁,然后逐渐远离,同时读取 TOF 高度传感器的数值。 2.4.3 前视 TOF 测距传感器 无人机的前视 TOF 传感器安装在拓展模块上,只有当无人机上方加装拓展模块后, 无人机才具有前视避障的功能。下面将探究无人机前视 TOF 传感器的量程以及超量程 状态下传感器获取的数据值。 翻开无人机的说明书,如图 2.4.5 所示,可以查阅到以室内白墙为红外光的反射面, TOF 的最大测量距离是 1.2 米。拓展模块的点阵屏每次仅可显示一个数字,而 TOF 测 距是以毫米(mm)为单位,为了显示方便,将以厘米为单位通过点阵屏的文字滚动模 式来显示测量的距离,这样一来,一个距离值最多由 3 个数字组成,读取起来会稍方 便些。可同时使用卷尺测量实际距离。 米 图 2.4.5 说明书里拓展模块的参数 在编程积木区的功能模块里找到“读取 TOF 测距”模块 ,通过编 写程序让点阵屏显示实时测量的距离值,而且不必起飞无人机。运行程序后,将无人 机朝向墙壁,无人机由近及远慢慢地远离墙壁,在这个过程中使用卷尺测量实际距离, 同时从点阵屏中正确地读取距离数据,程序设计如图 2.4.6 所示。 图 2.4.6 TOF 测距程序 本程序中使用了“除法”模块 和“四舍五入”模块 ,先将 TOF 测距传感器测量的距离除以 10,再通过“四舍五入”模块对计算的结果进行四舍五入 后得到整数。由滚动显示模块将这个整数在点阵屏上以蓝色字体滚动显示,“等待 1.5 图 2.4.7 TOF 高度编程 表 2.4.3 数据记录表 次数 1 2 3 4 5 高度值 / 厘米 平均值 / 厘米 无人机在起飞后程序设置的高度为 80 厘米,但实际飞行中,由于多种因素的干扰 以及无人机飞控的稳定性限制,所以无人机会在 80 厘米高度附近悬停。 ~~ 试一试 (1)无人机在缓慢上升和缓慢下降过程中,实时显示无人机飞行的高度。 (2)在无人机飞行时,实时显示无人机与前方墙壁的距离。 2.4.5 无人机测量桌子的高度 ~~ 飞行任务 起飞无人机,让无人机自主飞行并测量桌子的高度。 桌子的高度可以理解为地面与桌面之间的高度差,无人机若要测量桌子的高度, 就意味着无人机需要从地面上空飞到桌面的上空,既要测量无人机到桌面的距离,也 要测量无人机到地面的距离,如图 2.4.8 所示,通过实时数据获取二者的距离值,然后 计算二者的距离差值,这个差值即为桌子的高度。 图 2.4.12 无人机越障的程序 ~~ 试一试 (1)设计程序,让无人机自主从障碍物的上方绕过并回到原来的高度继续飞行。 (2)设计程序,无人机优先从上方绕过障碍物,如果上方还有障碍,无人机自动 选择从障碍物的左侧或右侧绕过并继续向前飞行。 2.4.8 无人机跟随 在无人机航拍中有一个智能跟随拍摄的功能,通过视觉跟踪技术让无人机识别被 拍摄的物体并进行跟踪拍摄,如图 2.4.13 所示。智能跟随功能不仅可识别并且自主追 踪拍摄对象,而且在跟随过程中,机头朝向飞行方向,还能够实时避障。根据特殊飞 对象保持 1 米(1000 毫米)左右的距离,当不等式 成立时,意 味着无人机与跟随对象的距离超过 1 米,则无人机向前运动靠近跟随对象;当不等式 成立时,意味着无人机与跟随对象的距离小于 1 米,则无人机 向后运动远离跟随对象。 ~~ 试一试 (1)设计程序,当无人机跟随飞行的任务完成后,控制无人机降落。 (2)设计程序,无人机飞向你的头顶上方,当你蹲下时,无人机自动下降,当你 站起时,无人机上升。 (3)使用遥控杆量模块控制无人机的运动,让无人机跟随你的运动,尝试添加灯 光和点阵屏显示。 2.5 无人机坐标编程 学 (1) 目 习 标 认识二维坐标系和三维坐标系,知道坐标在坐标系中的位置并理解其意义。 (2)认识无人机的坐标系以及坐标飞行模块。 (3)通过坐标飞行模块探究式编程,理解坐标和坐标飞行模块中各参数的功能。 (4)学会使用坐标飞行模块设计程序,让无人机按规划的航线飞行。 (5)认识坐标弧线飞行模块,学会使用坐标弧线飞行模块编程。 蜀山公园现在需要无人机对公园的重点区域进行巡逻,如图 2.5.1 所示,但本次巡 逻的任务比较特殊,要求无人机以 A → B 的朝向、从公园的 A 点起飞,沿 A、B、C 三 点围成的直角三角形进行一圈的巡逻飞行,在无人机飞行的过程中,由于巡逻视角的 需要,无人机自身不能旋转,即要求无人机的朝向不能改变。 B A C 图 2.5.1 蜀山公园 y A x y P x z 图 2.5.4 二维坐标系中的 A 点坐标位置 图 2.5.5 三维坐标系中的 P 点坐标位置 2.5.2 编程探究飞行坐标模块 如图 2.5.6 所示,无人机飞行坐标模块可以控制无人机以三维坐标的方式实现空间 任意两点间的飞行,无人机可以以自己当前的位置为坐标原点飞往下一个坐标,空间 坐标有三个参数,分别用 x、y、z 表示前后、左右、上下这六个飞行方向和距离。 图 2.5.6 无人机飞行坐标模块 在如图 2.5.6 所示的飞行坐标模块中,无人机飞往的坐 x z y 图 2.5.7 无人机的坐标飞行航线示意图 标(A 点)x=50、y=60、 z=80 可以写成(50,60,80),那么无人机在开始飞行之前的坐标为(0,0,0),如图 2.5.7 所示,图中带有箭头的红色虚线代表无人机的飞行航线。 飞行探究 探究无人机飞行坐标模块中三个坐标参数 x、 y、z 对无人机飞行方向和距离的影响。 可以尝试采用控制变量的方式来设置坐标参 数,先探究一个坐标值的变化对无人机运动的影 响,例如在探究坐标值 x 时,飞行坐标(x,y,z) 可设置为(30,0,0)、(50,0,0)、(–50,0,0)等; 探究两个坐标值的变化对无人机运动的影响时, 飞行坐标(x,y,z)可设置为(50,100,0)、(50,50,0)、 探究结论 y x z O 图 2.5.9 无人机飞行坐标 以无人机当前悬停的位置为坐标原点建立坐标 系,如图 2.5.9 所示,在无人机飞往的坐标(x,y,z)中, 当只有一个坐标值不为 0 时,坐标 x(x ≠ 0)控制无 人机的前后飞行,x > 0 时,无人机向前飞,x < 0 时, 无人机向后飞;坐标 y(y ≠ 0)控制无人机的左右飞行, y > 0 时,无人机向左飞,y < 0 时,无人机向右飞; 坐标 z(z ≠ 0)控制无人机的升降飞行,z > 0 时, 无人机向上飞,z < 0 时,无人机向下飞。坐标值的 大小代表着无人机移动的距离。 在无人机飞往目标位置的坐标(x, y, z)中,当有两个以上的坐标参数不为 0 时, 无人机飞行的动作相当于这两个或三个坐标参数飞行动作的合成,如图 2.5.10 所示的 是无人机飞行的俯视图,无人机飞往目标位置的坐标是(50,100,0),由于坐标 z 的值 为 0,无人机在坐标 z 的方向上没有运动(无升降运动),无人机飞行的目标位置在 x 轴正方向 50 厘米(无人机的前方)、y 轴正方向(无人机的左侧)100 厘米处,无人 机以直线从坐标原点(0,0,0)飞往坐标(50,100,0),图中带有箭头的红线即为无人机 实际飞行的航线,由于坐标 z 的方向垂直于纸面向外,所以图中未标出坐标轴 z。 y y x x z o 图 2.5.10 无人机飞行坐标示意图 ~~ 试一试 使用坐标飞行模块设计程序,完成蜀山公园飞行任务。让无人机在不旋转的情况 下以边长 60 厘米、80 厘米、100 厘米的直角三角形为航线飞行,航线规划如图 2.5.11 所示。 假设山坡的高度是 35 厘米,山的右侧斜坡的长度是 100 厘米,左侧斜坡的长度是 50 厘米,斜坡的宽度是 120 厘米,无人机来回飞行航线的间距为 30 厘米,飞行时无 人机距离茶树的高度保持在 80 厘米。 程序设计参考图 2.5.20,无人机从平地起飞,然后向前飞行 30 厘米,到达茶园上 空区域,绿灯亮起,无人机开始模拟喷洒作业,循环 2 次后,红灯亮起,任务完成, 无人机继续向后飞行 30 厘米,离开茶园区域,最后无人机降落到水平面上。 图 2.5.20 无人机模拟茶园灌溉的程序 ~~ 试一试 重新规划航线,设计程序,使用 TT 无人机对山上的茶树模拟喷洒补水。 ~~ 试一试 (1)无人机以半径为 100 厘米、垂直于地面的圆形航线飞行 5 圈。 (2)无人机以某一半径飞行一个“8”字形。 (3)无人机以半径为 100 厘米、平行于地面的圆形螺旋上升轨迹飞行 3 圈。 (4)无人机以半径为 100 厘米、垂直于地面的圆形航线飞行 3 圈。 2.6 无人机挑战卡坐标编程 学 (1) 目 习 标 认识无人机飞行挑战卡和挑战卡中图案的含义。 (2)认识挑战卡上的坐标,学会使用挑战卡坐标模块编程。 (3)运用多张挑战卡编程飞行,掌握无人机精准飞行和精准降落的技巧。 悬停在空中的 TT 无人机,采用坐标飞行模块可实现无人机每开始一次飞行动作, 都将以当前悬停的位置作为参考点(坐标原点)进行一段距离的飞行。除此之外,TT 无人机还可以使用带有编号和坐标的挑战卡进行多样化的、可精确定位的飞行。 2.6.1 挑战卡与坐标 TT 无人机套装配有 4 张挑战卡,4 张挑战卡的正反面共绘有 8 种图案,如图 2.6.1 所示,每种图案代表一个编号数字,通过无人机下方的视觉传感器可探测识别不同挑 战卡的编号,让无人机执行相应的编程命令。 图 2.6.1 挑战卡(编号:1 ~ 8) 挑战卡上的图案主要由火箭、编号、星球三部分组成,如图 2.6.2 所示,火箭的朝 向代表该挑战卡坐标系 x 轴的正方向,星球是用于视觉传感器识别挑战卡编号的,视 觉传感器通过检测星球排列的图案来识别挑战卡的编号,并获取无人机在该挑战卡坐 标系中的坐标值。 挑战卡上的图案还包含着该挑战卡三维坐标的信息,如图 2.6.3 所示,坐标原点在 挑战卡的正中心,挑战卡所在的平面为 x 轴和 y 轴所在的平面,坐标轴 z 垂直挑战卡 平面向上,每个挑战卡都是一个独立的坐标系,不同挑战卡的坐标系互不影响,因此 可以根据需要对一张或多张挑战卡进行任意摆放和组合。 无人机对挑战卡的探测位置为“下视” ,如图 2.6.5 所示,然后选择挑战 卡探测模块并设置挑战卡探测的模式为“打开” ,这时候无人机可以探 测到其下方的挑战卡;如果设置挑战卡探测位置为“前视”,则无人机可以探测其前 方的挑战卡;如果探测位置设置为“所有”,则无人机在一次飞行中可以识别前方的 挑战卡,也可以识别下方的挑战卡。 图 2.6.5 挑战卡探测模块 飞往挑战卡模块含有挑战卡坐标(x,y,z)、飞行速度和挑战卡编号(Mid),在挑 战卡编号中设有 12 种编号,如图 2.6.6 所示,其中“m-1”表示无人机可以识别任意一 张挑战卡编号,并在这张挑战卡的坐标系中飞行。“m-2”表示无人机没有识别到挑战 卡,“m11”和“m12”表示无人机识别到飞行地图中的坐标。 图 2.6.6 飞往挑战卡模块中的挑战卡编号 飞弧线经挑战卡模块可以实现无人机在一个挑战卡上开始一段圆弧线飞行,例如 在如图 2.6.7 所示的模块中,无人机悬停在挑战卡 2 的上空,然后从当前位置以圆弧航 线依次飞往坐标(20,20,80)和坐标(40,60,80),飞行速度是 60 厘米 / 秒。 ~~ 试一试 无人机起飞后在空中 150 厘米的高度悬停,手持挑战卡放在无人机的正下方,无 人机识别挑战卡并通过点阵屏显示挑战卡的编号,同时利用挑战卡编号控制无人机的 上下、前后、左右等飞行动作,例如编号为 1 时,无人机向上飞行 30 厘米,编号为 2 时, 无人机向下飞行 30 厘米……。 2.6.5 无人机跟随挑战卡 无人机起飞后在空中 150 厘米的高度悬停,在无人机的下方手持挑战卡并不断移 动,无人机跟随挑战卡并飞往挑战卡的正上方,飞行过程中,无人机相对挑战卡的高 度不变(建议为 80 厘米),当挑战卡编号为 1 时,无人机以此挑战卡坐标飞行,移动 这个挑战卡的位置,无人机始终以相同的挑战卡坐标飞行,实现无人机跟随挑战卡飞行, 当挑战卡编号为 2 时,无人机自动降落。 程序设计参考图 2.6.15,无人机起飞,然后上升到距离地面 150 厘米的高度并悬停, 打开挑战卡探测,探测位置设置为下视,循环 { 无人机飞往挑战卡坐标(0,0,80),即 无人机始终保持在挑战卡 1 的正上方 80 厘米的高度,直到识别的挑战卡编号等于 2 时, 循环结束 },无人机降落。 图 2.6.15 无人机跟随挑战卡的程序 ~~ 试一试 (1)无人机起飞后在空中 150 厘米的高度悬停,在无人机的前方手持挑战卡并上 下左右移动,无人机跟随挑战卡并飞往挑战卡的正前方。无人机跟随挑战卡飞行的过 (2)大家一起合作,分别利用八张挑战卡模拟完成篮球场边界巡逻程序的编写, 如图 2.6.23 所示,实现无人机倒计时 30 秒后,开始自动起飞巡逻篮球场后安全降落, 飞行过程中无人机始终朝向航线方向并显示挑战卡的编号,无人机完成巡逻任务后进 行精准着落。 100 厘米 150 厘米 图 2.6.23 无人机篮球场巡逻示意图 无人机在空中完成任务后都需要进行降落,如图 2.6.24 所示,甚至在完成任务的 过程中也需要进行一次降落后再起飞,而无人机的自主精准降落直接影响着无人机自 主飞行的能力。无人机在起飞时可以大致获取起飞区域的 GPS 信息,同时获取起飞点 的目标图案,当无人机完成任务时,无人机根据起飞点的GPS信息飞到降落区域的上方, 运用图像识别技术,使无人机识别地面目标降落点,根据目标降落点与无人机的相对 位置调整无人机的飞行姿态,实现精准降落。 图 2.6.24 无人机精准降落到标有“H”的飞行平台上 我们乘坐飞机在即将到达机场时需要对准跑道准备降落,稍有偏差都会给飞机降 落带来危险,在早期的飞机降落中是依靠飞行员通过目视跑道操控飞机对准,但若是 碰到大雾等能见度较差的降落环境,飞行员就很难控制飞机安全降落。现在的飞机有 2.7.2 无人机公路巡逻 如果公路上行驶的车辆较多,或者驾驶员违规驾驶车辆,极容易造成道路的拥堵, 引起交通事故,为了及时了解道路情况、疏通道路、劝阻违规驾驶,可以使用无人机 对城市的机场道路进行巡检工作,如图 2.7.2 所示,机场道路用红线标出,保证前往机 场出行的旅客能够按时登机。 图 2.7.2 前往机场的路线(来源:百度地图) ~~ 飞行任务 使用 TT 无人机模拟道路的巡逻任务,开启摄像头,根据道路的曲折和长度规划出 无人机的飞行航线。 110 厘米 100 厘米 120 厘米 100 厘米 F E D A C80 厘米B 图 2.7.3 无人机航线规划示意图 可以使用彩色胶带在地上大致贴出道路的走向,选择自定义飞行航线,将道路进 行分段,用测量工具测出每段道路的长度以 及相邻两条路段之间的转弯角度,如图 2.7.3 所示,由于无人机不能接近机场上空,所以 只能飞到远离机场 F 点的安全位置,最后 将测量的数据写入程序中,无人机放置在 A 点,并朝着 B 点的方向,无人机起飞后上 升到一个安全的高度,这里模拟飞行的安全 高度可以设在 150 厘米,然后开始对机场道 路进行巡逻,程序设计参考图 2.7.4。 图 2.7.12 无人机植保的程序 ~~ 试一试 现在有一块田地,田地中有一栋房屋,如图 2.7.13 所示,使用 TT 无人机来模拟植 保无人机作业,规划飞行航线,实现无人机对这片田地以自主飞行的模式进行农药喷洒。 图 2.7.13 需要植保的田地 快递无人机通过网络与物流集散中心、无人机调度中心等进行数据传输,并实时 向无人机调度中心发送自己的地理坐标和状态信息,接收调度中心发来的指令。待无 人机进入用户区域后向调度中心或用户发出着陆请求或投掷包裹请求,在收到着陆指 令后,无人机着陆停机,卸货签收并返航;在有些情景下无人机可选择不着陆,而是 低空投掷包裹。 无人机快递有着得天独厚的技术优势,在效率、成本和到达准确率方面,尤其是 以自动化飞行和配送的模式完成“最后一公里”的送达任务,具有极大的想象空间, 并能有效克服人工短缺等难题。 快递无人机能够按设定的航线自主飞行、人工控制飞行和定点悬停,无人机自身 还装载了黑匣子(飞行状态记录仪),以便记录无人机飞行过程等信息。同时无人机 还具有失控保护功能,一旦无人机因某种因素失去飞行能力,失控的无人机能够自动 开启降落伞,或启动应急避险程序,将危险和损失降到最低。既要考虑到无人机因坠 落而影响地面行人的安全,也要考虑无人机和货物因坠落而造成的财产损失。所以快 递无人机需要具有自动安全飞行、高精度定位和控制、自动适应地势和气候变化、自 动避障、自动规划飞行路径、用户端任务规划和监控、远程监控及分析的能力。 2.8 无人机飞行特技与交互 学 (1) 目 习 标 知道什么是特技飞行。 (2)掌握无人机翻滚模块的编程,学会设计程序让无人机进行特技飞行。 (3)通过使用 TOF 测距和 TOF 高度编程,学会设计程序实现无人机与人的交互。 2.8.1 特技飞行 固定翼飞机可以在跑道上进行正常的加速起飞、爬升、平飞和降落,直升机和多 旋翼飞机还具有空中悬停的能力。除此之外,具有特技飞行能力的固定翼飞机和单旋 翼直升机还能够进行倒飞、筋斗飞行等特殊的飞行。如图 2.8.1 所示,两架战斗机在空 中高速飞行,其中一架正飞、另一架倒飞。 特技飞行的起源是偶然的,在早期的战争中,有些飞行员的飞行技术十分高超, 甚至在无意中就能够飞出特别的动作,而且有的飞行员驾驶着飞机,当生命受到威胁时, 急中生智发明了许多惊险动作,这就是最初的特技飞行。特技飞行在后来随着飞机性 能的改进以及空战与表演的需要得到了迅速发展。 2.8.2 TT 无人机的特技飞行 TT 无人机可以进行掌上抛飞(图 2.8.3)、全向翻滚(图 2.8.4)这样的特技飞行, 使用抛飞编程模块,当静止在手中的 TT 无人机向外抛出时,无人机通过传感器判断自 己已被抛出,立即启动螺旋桨让无人机在空中悬停;使用翻滚模块进行编程,悬停在 空中的 TT 无人机还可以前后或左右进行 360°翻滚动作的飞行。 图 2.8.3 无人机掌上抛飞 图 2.8.4 无人机翻滚 用手托起无人机,使用“5 秒内抛飞”模块 ,当程序 图 2.8.5 翻滚模块 运行后,无人机的螺 旋桨会开始旋转,然后将手上水平拿着的无人机向前抛出,之后无人机会自动悬停在 一个高度。若 5 秒内未将无人机抛出,无人机自动退出抛飞模式,螺旋桨停止旋转。“翻 滚”模块 可选择“向前”“向后”“向左”“向 右”模式控制无人机向各个方向进行 360°翻滚,如 图 2.8.5 所示,需要注意的是无人机在进行翻滚动作 时的电量必须在 50% 以上,否则翻滚任务不执行。 2.8.3 无人机姿态检测 ~~ 飞行任务 无人机自动检测自己是否处于水平状态(或接近水平状态),如果无人机处于水 平状态,那么 LED 灯绿灯闪烁,点阵屏显示“Y”,无人机进入起桨模式,否则无人 机 LED 灯红灯闪烁,点阵屏显示“N”,无人机螺旋桨停止旋转。 无人机处于水平状态,意味着无人机的俯仰姿态角和横滚姿态角等于 0°,为了操 作容易,只要求俯仰姿态角和横滚姿态角接近 0°,我们可以设计当姿态角在 –5°~ 5° 时,即认为无人机接近水平状态。本程序可用于检测并提示无人机是否处于水平状态, 为无人机抛飞做准备,程序设计参考图 2.8.6。 次结束 };对无人机 5 秒内抛飞进行倒计时,以此来提醒使用者及时抛飞手上的无人机。 回到左边的程序:无人机成功抛飞后,LED 灯以呼吸模式亮蓝灯,等待 3 秒,最后 降落。 图 2.8.7 无人机计时抛飞的程序 ~~ 试一试 通过程序来提示当手上的无人机接近水平姿态时,倒计时开始,5 秒内抛飞无人机, 然后无人机以翻滚的方式飞出正方形航迹,翻滚时点阵屏指示无人机翻滚的方向。 2.8.5 跟无人机打招呼 ~~ 飞行任务 无人机起飞后悬停在与眼睛相同的高度,如果在无人机的前方挥一挥手,无人机 显示出微笑的表情,同时向前翻滚,否则,无人机显示沮丧的表情,当与无人机打招 呼超过 10 秒时,无人机自动降落。 测量自己的身高(可以使用无人机来测量),如果你的身高为 160 厘米,无人机 大约需要飞行至 155 厘米的高度才能与你的视线齐平。设定在无人机前方 120 厘米以 内挥手,前视 TOF 测距传感器能够准确测出距离,无人机做出相应的动作。超出 120 厘米挥手或不挥手都默认为没有挥手,无人机显示沮丧的表情。 程序设计参考图 2.8.8,无人机起飞,上升到 155 厘米的高度,无人机在你目视的 正前方,计时器重置为 0,循环 { 如果 TOF 测距小于 1200 毫米,说明无人机检测到前 方有挥手动作,点阵屏显示笑脸图案,向前翻滚一次等待 1 秒;否则显示沮丧的表情, 直到计时超过 10 秒,循环结束 };LED 灯以呼吸模式亮红灯,等待 3 秒,最后降落。 图 2.8.9 无人机左右躲闪的程序 ~~ 试一试 (1)悬停的无人机,当有人出现在无人机的正前方时,无人机随机向左、向右、 向上、向后躲闪,超时 10 秒后,无人机自动降落。 (2)悬停的无人机,当有人出现在无人机的正前方时,无人机随机地向左、向右、 向后转弯,超时 10 秒后,无人机自动降落。 2.8.7 掌上降落 ~~ 飞行任务 悬停在空中的无人机,当手掌平放在无人机的正下方时,如果 TOF 高度传感器检 测到无人机与手的距离超过 50 厘米且小于 100 厘米,无人机向后翻滚一次;如果 TOF 高度传感器检测到无人机与手的距离不超过 50 厘米,直接降落在手上。 2.8.8 寻找主人 ~~ 飞行任务 悬停在空中的无人机,当有人随机站在无人机某个方位的附近时,无人机自动搜 寻人所在位置的方向并靠近。 程序设计参考图 2.8.11,无人机起飞并升至 120 厘米的高度,循环 { 无人机以偏 航杆量 20 开始旋转,直到前视 TOF 测距小于 1200 毫米时,即无人机检测到这个方向 上有人出现,循环结束 },无人机悬停不动,然后向前飞至人的前方 30 厘米处悬停, 等待 3 秒,无人机降落。 图 2.8.11 无人机寻找主人的程序 ~~ 试一试 (1)悬停在空中的无人机,当你随机站在无人机某个方位的附近时,无人机自动 搜寻你的位置并向你靠近,之后,你又再次远离无人机,并躲到无人机的某个方位, 无人机还能够将你寻到并向你靠近。 (2)将无人机以任意朝向抛飞出去,然后无人机自动飞行到你的跟前,并显示微 笑的表情。 ~~ 试一试 在无人机的下方放置挑战卡,无人机根据挑战卡的编号执行翻滚的次数,同时显 示挑战卡编号。如果挑战卡编号是奇数,无人机向左翻滚对应的次数;如果挑战卡编 号是偶数,无人机向右翻滚对应的次数。 2.9 保护无人机 学 (1) 目 习 标 认识无人机飞行潜在的危险,学会设计程序保护无人机。 (2)了解冗余系统,通过编程让无人机的飞行更安全。 2.9.1 保护飞行的无人机 无人机的广泛应用让越来越多爱好摄影和旅行的人们开始起飞无人机,记录自己 的城市和生活,越来越多的农场、茶林使用无人机管理田园。但是,无人机的飞行门 槛并没有完全消失,在我们熟悉的城市上空,其实是一个危机四伏的空间,因为有越 来越多的无人机在我们的头顶上空飞行。无人机的坠落除了会造成无人机自身的损坏, 同时还会危及地面上行人的安全。 为了实现无人机的自主飞行,无人机上需要安装像人一样具备“看”的本领的传 感器—视觉传感器,使用声波和红外传感器可以辅助视觉传感器更准确地识别和避 开障碍物,而无人机的识别距离往往比较有限,大约 15 米。其中声波传感器使用类似 蝙蝠的超声波来探测物体,通常用于无人机的自动着陆。这些传感器组成的视觉系统 能够协助操控者在大多数情况下避免无人机发生碰撞和损坏。但仍需要记住的是,对 飞行安全最终负责的还是操控者,避障系统是有用的,但不是绝对的。 为了 TT 无人机的飞行安全,TT 无人机给螺旋桨添加了桨叶保护罩,虽然桨叶保 护罩使无人机的安全性得到了不小的提升,但这只是无人机飞行中的一道保险,也不 是万无一失。 TT 无人机配有前视 TOF 测距传感器、前视摄像头、下视 TOF 高度传感器和下 视摄像头,使用这些视觉设备再结合程序可以让无人机避障,也可保护飞行中的无 人机。 2.9.4 万一故障发生时—冗余系统 虽然无人机拥有避障系统,能够在天空自主飞行,但是我们或许还会担心,如果 遇到一个电机损坏、电路或电池供电故障、飞控系统失效等问题该怎么办?我们不妨 可以想像一下,如果无人机的一个电机损坏,余下的电机依然可以正常旋转并让无人 机缓缓降落,如果供电电路断开,无人机还有另一个电路代替原有电路让无人机正常 工作,同样的道理,我们给无人机配备两块供电电池,两个飞控系统,当其中一个出 现故障时,另一个依然能够保障无人机正常飞行。这就好像我们平常使用电脑备份资 料一样,当储存重要资料的电脑损坏或丢失时,我们仍然可以从 U 盘里找回。无人机 设计也可以使用这种备份的方法,我们把这个方法的应用叫作无人机的冗余系统。 无人机的 TOF 高度传感器和气压高度计都可以测量无人机飞行的高度。由于无人 机室内不能飞行太高,否则会触及天花板,为了飞行安全,我们可以设计程序,只要 检测到其中一个超高,无人机自动降落。 设计程序对无人机进行限高飞行,无人机相对地面的最大飞行高度不能超过 250 厘米,开启无人机,测得即将起飞的无人机在地面时的气压计高度值为 –56.92 米,如 图 2.9.4 所示,无人机达到最大飞行高度对应的气压计高度值为: –56.92 米 +2.5 米 = –54.42 米 图 2.9.4 测量当前地面的气压高度值 程序设计参考图 2.9.5,起飞无人机,无人机的以油门杆量 30 上升,直到 TOF 高 度值大于 250 厘米或气压计高度值大于 –54.42 米时,无人机悬停,最后降落。 图 2.9.5 无人机限高飞行程序 2.10.4 地形高度测绘 ~~ 飞行任务 图 2.10.6 模拟的地形 利用课桌、凳子以及其他物体搭建 一个高低起伏的地形,如图 2.10.6 所示, 无人机飞行到一定的海拔高度,然后对 地形进行测绘,记录地形上方的 TOF 高度数据。 程序设计参考图 2.10.7,无人机从 地面起飞,然后上升到距离地面 150 厘 米的高度(高于地面所有物体),如果“←”键被按下,无人机前进飞往高低起伏的 地形上方进行地形测量,如果“→”键被按下,无人机向后飞行,如果没有按键被按下, 无人机悬停,当键盘的空格键被按下,无人机降落。 图 2.10.7 地形高度测绘的程序 在无人机的飞行过程中记录 TOF 高度传感器测量的地形高度数据,并将数据填入 表 2.10.1 中,最后根据测量的地形数据绘制地形图,地形图的绘制参考图 2.10.8 和 图 2.10.9。 2.11 无人机自主返航 学 (1) 目 习 标 掌握无人机返航的原理,认识无人机安全返航的重要性。 (2)学会多种方法设计程序让无人机按规划的航线返航。 2.11.1 超视距飞行与自动返航 无人机在很多时候是处于超视距飞行,地面操控人员往往只能通过无人机传回来 的实时画面监视或控制无人机的飞行,呈现的画面多是空中无人机前方的景物,视野 非常有限。为了保证无人机的安全,自动返航系统是相当必要的。自动返航是无人机 在飞行过程中,当无人机失去控制方向、电池的电量偏低,或是遇到突起的山峰、大风、 雷雨或其他恶劣的自然环境导致无人机与地面端失去联系时,无人机能够清楚判断自 身的处境,自动做出返航的决断。无人机在返航过程中,为了避开返回途中可能遇到 的障碍物,可按照原来的飞行航线返回,也可以在返航时先飞到预先设定的返航高度, 然后再根据 GPS 坐标飞往起点上空,最后着落。 为了判断无人机是否已经与地面端失去联系,地面站的程序会在空闲时每过一段 时间向无人机发送一个信息,当无人机在规定的时间内没有接收到这个消息时,就判 断无人机处于失联状态,然后无人机会按照设定的返航程序自动返航。 2.11.2 原航线返航 小桥流水可以为城市增添一份灵动的景色,可是狭长的河道容易出现漂浮物、违 章建筑、非法捕鱼、非法排污等现象,为了高效管理河道,保护河流的洁净和生态, 我们可以使用无人机进行巡逻。 使用 TT 无人机来模拟河道的巡检工作,如图 2.11.1 所示,无人机需要对 H 点至 C 点间的河道进行巡检,当无人机遇到突发情况时,电脑空格键被按下,无人机按原 来的航线自动返回。为了飞行安全,无人机返回时始终朝向飞行方向。 使用彩色胶带在地面上贴出弯曲的线条来模拟一条河流,通过测量线条的曲直和 长度来规划无人机的飞行航线。根据巡检河段的特点,可将无人机的航线规划为三段, 如图 2.11.2 所示。经测量,无人机在 A 点需要顺时针转弯 70°,在 B 点需要顺时针转 弯 65°,在 C 点需要逆时针旋转 75°。河道 H → A 段长度为 120 厘米,A → B 段长 度为 80 厘米,B → C 段长度为 100 厘米。用彩色胶带在地面上按一定比例大致贴出河 道的弯曲走向。 图 2.11.3 河道巡检与返航的程序 ~~ 试一试 如图 2.11.2 所示,使用 TT 无人机模拟整个河道的巡检工作,无人机满电起飞, 当电量下降超过 30% 时,无人机沿原路径返回至起点。使用彩色胶带在地面上按一定 比例大致贴出河道的弯曲走向。 2.11.3 坐标返航 ~~ 飞行任务 无人机从挑战卡上起飞,随机飞往挑战卡上的一个坐标点,然后开始返航,先飞 往设定的安全高度 120 厘米,然后以这样的高度飞往挑战卡的正上方,最后降落,如 图 2.12.3 右倾姿态角 图 2.12.4 左倾姿态角 “平移轴姿态角”模块 可以检测无人机向左或向右偏转的角度。平 移轴姿态角的变化范围是 –179°~ 179°,无人机开机时的方向为无人机的平移轴姿 态角 0°的方向,无人机顺时针旋转,平移轴姿态角朝正数方向增加,无人机逆时针旋转, 平移轴姿态角朝负数方向递减,如图 2.12.5 所示。 图 2.12.5 平移轴姿态角(参数要测试) 无人机加速度模块有 X 轴加速度模块、Y 轴加速度模块、Z 轴加速度模块三种, 如图 2.12.6 所示,加速度的数值大小代表着加速度是重力加速度 0.001 克的倍数。无 人机在静止、悬停和匀速直线运动的状态下,无人机速度的大小和方向不发生变化, 其加速度值等于 0。无人机在加速、减速、曲线、撞击、坠地等飞行过程中的速度大 小或方向发生了变化,其加速度不为 0,例如无人机从静止到运动是加速过程,从飞 行到悬停是减速过程,无人机发生正面撞击或坠地是减速过程,无人机被追尾撞击是 加速过程。往往无人机坠地或撞击过程的最大加速度要比无人机正常加速或减速运动 过程产生的最大加速度大得多。 图 2.12.6 加速度模块 无人机加速度的正方向如图 2.12.7 所示,当无人机向前、向右加速运动时,无人 机的加速度值为正值,无人机向后、向左加速运动时,加速度值为负值,由于重力加 速度的存在,所以无人机水平静止时其 Z 轴方向上的加速度约为 –1000,无人机向上 加速运动,加速度值减小,无人机向下运动,加速度值增大。 轴姿态角赋值给变量,否则变量值不变。如此重复比较,即只要遇到俯仰轴姿态角比 变量值大,就将这个俯仰轴姿态角赋值给变量,最后这个变量值就是我们要测量的最 大俯仰轴姿态角,程序设计参考图 2.12.9。 图 2.12.9 主线程程序(左)与分线程程序(右) 在编程界面的积木区勾选变量“最大俯仰轴姿态角”模块 。无人 机飞行完成后,记录对应飞行速度下的最大俯仰轴姿态角,如表 2.12.1 所示。修改无 人机的飞行速度,多次起飞无人机,并将数据填写到表 2.12.1 中。 表 2.12.1 数据记录表 飞行速度 /(厘米 / 秒) 最大俯仰轴姿态角 /(. ) 20 40 60 80 100 探究结论 无人机向后飞行,俯仰轴姿态角为正值,随着无人机飞行速度的逐渐增大,无人 机的最大俯仰轴姿态角也逐渐变大。 ~~ 试一试 (1)探究正常飞行状态下,无人机以不同速度向前、向左、向右飞行对应的“最 大姿态角”。