返回 登录
0

Skill精选:让HEXA追逐光,或者帮你预警火情

阅读844

  图片描述
  地形适应、搭载丰富传感器和二次硬件拓展接口、强大易用的操作系统和开发环境……面对集这些优势与一身的HEXA,不少同学还是会问,HEXA究竟可以干嘛?

  它不仅是你学习和探索机器人的平台,你开发出的每个机器人应用(Skill),还将赋予HEXA独特的技能,如科研探索、抢险救灾、家庭陪伴、智能管家……在我们发起的“HEXA人类导师计划”中,收到了来自全球各个国家和地区的申购。在经过探索之后,这些人类导师也陆续开发出许多有趣的Skill,这次我们分享两个精选的Skill推荐给大家。

  当然,如果大家对Skill开发有什么更好的创意与想法,也欢迎在我们的论坛中分享和讨论。后续我们将发起#ChallengeHEXA#活动,将对最具创意的Skill赠予HEXA或现金奖励,没准能靠开发几个Skill赚回HEXA的钱哦,届时不要错过。以下是本期的Skill 推荐:

图片描述

  开发者:Maria Clark,澳大利亚堪培拉

  我是一个科学老师,几个月前参与了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()

  }

  }

  Fire Marshall Rob——HEXA变身出色的火警情报员
图片描述
  开发者:RiverLLZ

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

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

  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工程机限量来袭,售价直降1111元,现货发售。**HEXA工程机是我们正式量产前的最后一批定版机型,和正式发售的HEXA机型完全一致,没有拆封,正常享受国家规定的“三包”政策,各位可以放心购买。

  活动时间截止至11月11日,点击链接(超链:https://www.vincross.com/cn/order/hexa?utm_source=Nov11&utm_campaign=CSDN_Nov11),立即下单,你将成为最早一批获得这台未来黑科技的用户。
  图片描述

评论