首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第十六期:EV3——指南车编程

皇帝大战蚩尤——指南车

指南车这一节课大家在上9686的时候利用齿轮传动和差速器就能基本实现指南车的功能,这里提供一个EV3指南车,偏重的是陀螺仪传感器的编程使用。课程设置在刚接触陀螺仪传感器的第3节课,前两节课是利用陀螺仪传感器设计完成可拐指定弯道的任务和设计画特殊形状(如:五角星、六芒星)。

本节课通过结合上古神话“皇帝大战蚩尤”,指南车由来之一、西晋崔豹所著《古今注》及《志林》等古籍说皇帝与蚩尤作战时,蚩尤作大雾,黄帝造指南车为士兵领路。引出指南车,神话中的指南车功能我们有办法实现吗?引发讨论。

讨论一:指南车的功能是什么?

不管车子怎么拐弯,指南车上木人的手都指向固定的方向。

讨论二:EV3怎么实现这个功能?

1、使用陀螺仪传感器记录车拐过的度数

2、指南车上指南的装置(木人或手或其它)和车转的方向相反。

引导建构:

1、指南车是一个可以移动的车

2、上面有一个装置可以指南(装置可以转动)

引导编程:

关键在讨论二,陀螺仪记录转过的度数,这个数假设是50度,指南装置应该怎么转?反转50度,也就是负50度。讲解方向相反,就是度数变成相反(运算*-1)

这里有两个困难点:

一、因为陀螺仪传感器是实时检测的所以会有不断的数据给电机,不会等电机执行完才继续下一个次度数,这样出来的编程指南装置会一直转。另外有一种情况,假设角度检测出来的是50度,电机需要反转50度,但是当下一次检测出来是49度的时候,本该反转正转1度的,可结果是电机还要反转49度,这样就没办法指南了。所以前面需要加入重置模块。

二、如果限定一个“开始”(也就是说我先转动指南车,等指南车停下的时候我再来检测转过的角度,如上程序的等待碰撞检测),然后读取陀螺仪的度数通过计算执行完指南的动作(让中型电机完成负角度的运转),之后再进行下一次,这样虽然能完成指南的功能,但是多了一个传感器,还有最大的问题是不能实时指南,也就是这个指南车是间歇性工作的。这样子就不能很好的还原指南车实时指南功能。

如何更好的设计这个“开始”呢?经过几次测试目前为止能想到的最简单的指南编程如下:

这个程序考虑:陀螺仪传感器每偏转一度指南装置就要做出反应,通过简单的等待模块检测陀螺传感器改变1度,把这个作为一个“开始”的节点,每运行一次都重置。

以下是视频效果(视频忘记处理杂音,播放前请静音):

如果大家有更好更简单的编程方式,欢迎分享给我,也欢迎大家关注和推荐给身边的机器人老师。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730G0IB9900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券