博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
这个机器人应用,可以让机器人变成火警情报员
阅读量:6084 次
发布时间:2019-06-20

本文共 1814 字,大约阅读时间需要 6 分钟。

hot3.png

可编程全地形机器人HEXA在正式面向用户时,曾发起“HEXA人类导师计划”,得到不少用户的购买申请,随着体验的深入,不少用户开发出了许多有趣实用的机器人应用,我们将陆续把这些应用的代码分享出来,感兴趣的伙伴们可以尝试体验。今天分享的是用户RiverLLZ开发的火情警报的机器人应用(Skill)——Fire Marshall Rob

输入图片说明

我在入手HEXA之前,曾玩过Arduino套件。所以在拿到HEXA之后很自然就想把两样”混搭”一下。在Arduino套件里我有一个火焰传感器,是之前在网上买的,非常便宜。要是能把它装在HEXA上,这就是个救火队长机器人了。

这个传感器是3pin的,介绍里写它能探测看到80cm以内的火焰。3个针脚分别是3.3V电压和模拟地,以及一个GPIO接口。根据HEXA的开发文档介绍: ,HEXA的硬件接口可以很方便接上。检测原理是,当传感器的红外元件检测到火焰时,就会将HEXA GPIO接口的电压拉低。

gpio, _ = gpio.High(2); // I connect the sensor to GPIO pin 2if !gpio {    // detected fire, do something}

运行这个skill时,HEXA的头部会持续转动,检测周边环境。当它检测到火焰时,会对着火焰的方向拍张照片,而刚刚拍摄的火场照片会自动通过Base64编码的方式传到与机器人连接的手机的相册里。然后在完成了报警任务后,HEXA会自动转过头向着相反的方向逃跑(挺贵的,心疼)。以下是调用的核心函数。

gpio2, _ = gpio.High(2); // initialize// detectedif !gpio2 {   time.Sleep(800 * time.Millisecond)   // take photo   log.Info.Println("DETECTED")   buf := new(bytes.Buffer)   log.Info.Println("JPEG")   jpeg.Encode(buf, media.SnapshotYCbCr(), nil)   log.Info.Println("BASE64")   str := base64.StdEncoding.EncodeToString(buf.Bytes())   log.Info.Println("SENDING")   framework.SendString(str)   log.Info.Println("Sent:", str[:20], len(str))   // turn back and leave   hexabody.MoveHead(hexabody.Direction()-180, 100)   hexabody.WalkContinuously(0, WALK_SPEED)   time.Sleep(Waiting * time.Millisecond)} else {   hexabody.StopWalkingContinuously()   hexabody.MoveHead(hexabody.Direction()-60, MOVE_HEAD_DURATION)}

现在这个skill更像个理想形态的功能,它展示了HEXA怎么检测和应对火情的。它还需要更多改进,无论是硬件方面还是编程方面,也许有一天HEXA真的能够成为保护人类生命的火场英雄呢?!

简单介绍一下HEXA,它是一个可以灵活适应多种场景的全地形可编程机器人,集成了各种必要的传感器,并搭载强大易用的机器人软件操作系统( MIND OS )。作为一个机器人开发平台,官方提供了完整的开发工具,喜欢机器人或者想要做机器人开发的朋友,可以直接跳过底层的硬件电路和结构力学,用 HEXA 直接上手来学习和开发机器人应用。对于HEXA开发感兴趣的朋友可以加入交流群,QQ群:455783546;微信群可以扫下面二维码:

输入图片说明

最后打一个硬广:双十一期间,HEXA工程机正在低价发售,可以直接优惠1111元,另外现货发售。活动时间到11月11日,近期想要入手的话是一个合适的机会。

购买地址:

输入图片说明

转载于:https://my.oschina.net/u/3629723/blog/1571017

你可能感兴趣的文章
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>