可编程全地形机器人HEXA在正式面向用户时,曾发起“HEXA人类导师计划”,收到了来自全球各个国家机器人爱好者的购买和申请。经过一段时间的探索,有不少用户利用HEXA开发出了许多有趣的应用,我们将陆续把用户们开发的技能分享给大家,并分享出具体实现的代码,感兴趣的伙伴们可以尝试体验。
这次我们分享的是来自澳大利亚堪培拉的一名科学老师,他利用HEXA开发了一个可以追寻光的Skill(机器人应用),以下是他实现的经过:
我是一个科学老师,几个月前参与了HEXA人类导师计划。这几个月我都在各种倒腾HEXA,熟悉它的SDK,希望能给我的学生们开发一些新的好玩的skill。上个周末我在看小黄人电影得到了一个灵感,我想让HEXA变成一个小黄人一样的机器人,能追着舞台灯光跑,古怪又逗趣。
所以我开始考虑如何使用HEXA的传感器才能达到我想要的效果。本想用HEXA自带的传感器和摄像头的照相功能和寻找亮色,但结果不太让人满意。在一个明亮的房间里,HEXA开始无目的的乱走,我修改了两次感测到颜色的范围,但似乎没有帮助,测试结果依然不好。后来我考虑给HEXA安装一个光强传感器。看了Vincross论坛上其他用户的帖子,我把光强传感器装在硬件接口上并跑通了源代码。
现在它可以看到光了,而且迅速迎着光行动起来,就像个迷恋自拍的网红。但光线必须直接照在传感器上。对于那些没有感应到的光,目前HEXA还无能为力。这不是一个完美的skill,不过作为一个用来启发学生学习编程的硬件设备,这就足够了。
以下是我开发过程中的代码思路。
var direction float64
for {
// Rotating
hexabody.MoveHead(direction, 10)
direction += 1
if direction == 360 {
direction = 0
}
// set i2c parameters
err := i2c.Set(0x39, 0x80, 0x03)
if err != nil {
log.Error.Println(err)
}
raw, err := i2c.Value(0x39, 0xAC, 2)
light := int(raw[0]) + 256*int(raw[1])
// check the Luminosity of light
if light > 500 {
log.Info.Println(light, raw)
hexabody.WalkContinuously(0, WALK_SPEED)
time.Sleep(5000 * time.Millisecond)
hexabody.StopWalkingContinuously()
}
}
大家可能对HEXA有点不太熟悉,这里给大家简单介绍一下,感兴趣的朋友可以进一步了解: HEXA是一个可以灵活适应多种场景的全地形可编程机器人,它集成了各种必要的传感器,并搭载强大易用的机器人软件操作系统(MIND OS)。HEXA是主要面向技术发烧友和科技爱好者的机器人开发平台,官方提供了完整的开发工具,喜欢机器人或者想要做机器人开发的朋友,可以直接跳过底层的硬件电路和结构力学,用HEXA直接上手来学习和开发机器人应用。
最后打一个硬广:双十一期间,HEXA有优惠活动,感兴趣的同学可以去官网了解:Vincross官网