这个机器人应用,可让机器人变成火警情报员

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

输入图片说明

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

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

gpio, _ = gpio.High(2); // I connect the sensor to GPIO pin 2

if !gpio {
    // detected fire, do something
}

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

gpio2, _ = gpio.High(2); // initialize

// detected
if !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日,近期想要入手的话是一个合适的机会。开发工具

购买地址:Vincross官网ui

输入图片说明

相关文章
相关标签/搜索