所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

第三节:RobomasterTT灭火机器人

RobotDanny RobotDanny 2021-01-03 19:37:54

[1]课程引入和知识原理讲解(Think)

  火灾给人类带来巨大损失和伤亡。当前消防机器人越来越多的代替消防队员进入到火场一线进行灭火战斗。

通过无人机飞至火焰上空依靠火焰传感器定位火源位置,使用舵机模块投放灭火物质实现灭火。

 

projectImage

[2]项目描述和实施步骤(Doing)

(1)器材清单

①DFrobot火焰传感器

火焰传感器可以用来探测火源或其它波长在760纳米~1100纳米范围内的光源。在灭火机器人比赛中,火焰探头起着非常重要的作用,它可以用作机器人的眼睛来寻找火源,利用它可以制作灭火机器人等。

这款火焰传感器能在-25到85摄氏度下工作,性能稳定可靠。

尽管这款传感器是用来感知火焰,但是它并不防火。

因此使用时请与火焰保持距离,以免烧坏传感器。

projectImage

②DFrobot舵机9g。

③RobomasterTT无人机

(2)任务流程

RMTT无人机灭火机器人的工作流:

RMTT无人机灭火机器人经过改装之后,机器人的前方是火焰传感器,

后方设计了一个舵机机械爪,

   通过APP控制无人机在空中飞行巡逻,LED灯处于绿色闪烁状态,

当无人机的火焰传感器探测到着火点的时候,会释放灭火物质,

LED灯处于红灯闪烁状态。

 

projectImage
projectImage

(3)步骤图片

①机械结构设计

  为了固定灭火传感器和舵机机械臂,我们需要给无人机安装一个合适的保护桨,这里我们选择Tello-CYNOVA保护桨,

projectImage

②电控设计

这时我们把舵机和火焰传感器连接到开源控制器的IO端口上。

projectImage

1首先我们需要读取Flame sensor火焰传感器的数据:

 

 

projectImage

通官方提供的数据,我们知道这个传感器输出的是模拟信号:

下面我们来读取DFrobot Flame Sensor V2传感器的数据:

由于舵机需要5V的供电,我们可以把火焰传感器接在IO26端口,

projectImage

现实的世界是模拟的世界,各个物理量都是连续变化的,

计算机是无法理解这些模拟量的,RobomasterTT开源控制器ESP32要想读取模拟信号必须对模拟进行进行数字编码,它们必须经过模数转换后,变成数字量,才能被进一步处理。

   我们通过程序读取IO26引脚的模拟数据可以发现,

输出的数据范围是0-4095,这说明RMTT无人机扩展模块的模拟接口是12bit的模数转换器,每一个模数转换器的精度都是12bit,也就是说能够读取4096个状态(2^12 = 4096)。

 

projectImage

打开打火机,模拟火焰,可以看到串口输出的数据是1171(实际输出的数据可能有波动)火焰靠近传感器越近,输出的数据越大。大家在测试的时候,一定当心火灾,确保绝对的安全。

projectImage

关于RobomasterTT无人机灭火机器人的机械爪设计方案:

 

使用RobomasterTT开源控制器控制舵机的连接示意图:

注意舵机的电源线顺序与开源控制器的顺序不同,不要接反。

projectImage

接线完成之后,下面我们使用Mind+编程控制舵机的旋转:

Mind+(基于Scratch3.0)图形化编程

①  下载及安装软件。http://www.mindplus.cc

②  切换到“上传模式”。

③  “扩展”中选择“主控板”中的“RobomasterTT ESP32”,

④  “执行器”中加载“舵机模块”。

⑤  进行编程,程序如下图:

菜单“连接设备”,“上传到设备”

projectImage

下面我们编写程序控制舵机转动到指定的角度:

projectImage

上传程序,并运行,可以看到舵机转动到 30度,等待1秒后转动到180度。 

   在灭火机器人的工作中,需要根据传感器的数据空投灭火物质:

要想空投物质我们必须设计机械爪,可是TT无人机的载重有限,不能使用金属的机械爪,如何才能实现舵机转动的时候,物质就能降落呢?

   这时我们想能否直接使用舵机臂进行空投呢,当舵机转动的时候,

物质就会自动降落:

projectImage

下面我们把舵机固定在TT无人机上,进行空投实验:

①  当舵机处于30度位置的时候,舵机臂刚好挂住灭火物质:

为了避免舵机在0度抖动,我们控制舵机旋转到30度的时候停止,

把舵机臂平稳安装在舵机上,灭火物质通过一根线悬挂在舵机臂上,

projectImage

②当舵机旋转到180度的时候,灭火物质会下落:

 

projectImage

下面我们把舵机固定在无人机上进行空投实验:

首先手动把灭火物质安装到舵机臂上,编写程序上传到RMTT开源控制器,手动控制无人机起飞,红灯开始闪烁,10S后,舵机开始释放灭火物质。

projectImage

(4)完整的代码(算法设计)

灭火机器人的机械结构和电控结构结构完成以后,

我们需要编写程序,根据火焰传感器测量的数据,控制舵机的工作,

如果火焰传感器的数据小于100,说明没有探测到火焰,舵机保持不动,

绿色灯光的闪烁频率为1Hz,

如果数据大于100,红灯快速,频率为5Hz,

舵机转动到180度,释放灭火弹,然后自动复位。

 

projectImage

(5)视频演示

编写程序完成之后,我们需要把程序上传到开源控制器,

首先通过USB数据线,将开源控制器连接到电脑,

然后下载程序,即可看到舵机和LED的工作状态,

这里测试的时候,需要使用火机,一定注意消防安全。

 

projectImage

我把展示的效果视频上传到B站,大家可以去观看,

为了消防安全,视频测试过程中,没有使用明火,

只是模拟灭火机器人的工作过程:

RobomasterTT无人机空投灭火弹视频1

https://www.bilibili.com/video/BV1WT4y1N7iQ/

RobomasterTT无人机空投灭火弹视频2

https://www.bilibili.com/video/BV1hi4y1F7Wr

 

[3]项目拓展和理论总结(Theory)

  (1)我们使用mind+的实时模式,根据火警的位置(挑战卡ID),我们编程控制无人机沿挑战卡坐标进行飞行,

当飞行到指定的坐标点时,电脑打开Tello的摄像头,查看火情,

(2)在上传模式下,我们已经把火焰检测程序写入TT扩展控制器中,

无人机身上的火焰传感器开始检测是否有火焰,

当火焰传感器探测到火焰的时候,会控制舵机旋转释放灭火物质。

为了消防安全在录制视频的时候,没有使用明火,

这里我使用了时间参数,控制舵机自动释放灭火物质,模拟TT无人机火灾救援场景。

projectImage

下面我们在实时模式下编写程序,控制TT无人机沿挑战卡的坐标路线进行飞行 

 

projectImage

第三节RobomasterTT灭火机器人(实时编程控制,投放灭火弹)

视频地址:https://www.bilibili.com/video/BV1ar4y1T7df

[4]学生能力基础(3-4年级)

Makelog作者原创文章,未经授权禁止转载。
2
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]