找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 18178|回复: 21

刚写好的光感在黑线上校准的程序

  [复制链接]
发表于 2017-12-17 01:37:26 | 显示全部楼层 |阅读模式
本帖最后由 batu 于 2018-1-24 21:03 编辑

我参加fll比赛的时候就写过一个,但是因为很慢就没用
这次又看到有人在论坛里问怎么用两个光电校准黑线,就又写了一个新的,相比原来的适用的车更多(毕竟原来我是专门给我们自己的车写的,不用考虑到怎么最大限度的适用的问题)
提前说一句
这程序可能会出bug。。。因为我不知道对数函数怎么打到电脑里
而且我还没来得及试
所以麻烦各位大佬们有空帮我试试然后顺便告诉我一下都有什么问题,我会尽力修改的!
拜谢!

注意
1.用这个模块的时候需要在光感都不在”开始校准颜色“上不然会出现修正方向不对的问题
2.最大转向功率和目标转向功率不要设的太高(出事以后记得给自己点一首大风车。。。)
3.如果不想让转向的速度有变化的话可以让输入的最大转向功率小于或等于目标转向功率
4.区间写的小一点会更精确,但当然也别太小了,不然该检测不到了。
微信截图_20171216231301.png
我把校准的程序写成了一个自定义模块,方便以后用
    从左到右的值依次是(具体是啥一会再解释):
        开始光感校准标志的光感区间的最大值
        开始光感校准标志的光感区间的最小值
        目标停止线的光感区间的最大值
        目标停止线的光感区间的最小值
        转向目标功率
        最大转向功率


下面是喜闻乐见的程序:
烦请大佬有空的话帮我看看哈
谢谢啦
tip:最上面是最新的

2018-1-24light_correct.ev3 (35.75 KB, 下载次数: 132)

light_correct_test1.ev3 (21.76 KB, 下载次数: 129)



我把校准的过程分成了两段
第一段是走到要校正的线的过程,也是确定方向的过程。因为在你校正的时候需要根据机器人实际的方向来调整,比如说机器人向左偏了你就需要向右转来修正。那怎样才能确定呢?其实也挺简单就是向着开始校准颜色的线走,那一个光感先检测到开始校准颜色的那条线那方向不就确定了:左边的先检测到就需要向左转,右边的先检测到就需要向右转。


1.png 2.png

我这里的程序是这样的:
微信截图_20171217000351.png
那个interval的模块是用来输出区间的,因为软件自带的光感模块只能写0-x或者x-100的区间而不能写不包括最大值或者最小值的区间(就是不能写等待光感值20<x<50这样的区间)于是我就自己搞了一个:
微信截图_20171217000916.png
只需要输入区间的最大值的最小值以及端口号就行了,输出的是一个逻辑值,需要搭配循环或者判断使用


继续说刚才的程序
就是一直向前走直到任何一个光感检测到区间内的值就停止,并且如果是左边的光感检测到的就给turn赋值为1,如果是右边的光感检测到的就给turn赋值为2。


然后是第二段的
我让校正的程序和判断结束的程序同时运行,这样可以达到只要两个光感同时在停止线上的时候就停止的目的。
这是具体的程序:
微信截图_20171217003721.png
当一和二同时为真时跳出循环
下面说说校正的程序
先来一张全景图

微信截图_20171217004027.png
然后我们一点一点看
微信截图_20171217004210.png
最一开始的就是一个让机器人继续向前走直到让刚才先看到开始校准颜色的光感看到停止线,在这之前都没有转过弯所以现在需要转的方向和刚才我们判断的一样。


然后是
(因为上下是相反的所以我们只说一个另一个自己推好了)
微信截图_20171217004829.png
上面的是当turn=1时的,也就是左边的光感先看到的开始校准颜色,所以现在需要向左转修回来
这里电机规定是左b右c
先判断后看到的光感是不是看到了停止线:
如果是的话就向后退一直到先看到开始校准颜色的光感看到的不是停止线
如果不是的话就让右边的电机向前,直到右边的光感在停止线上
这里用了一个对数函数来增加速度
[log(时间+1)+1]*转向速度=当前转向速度

同时判断当前转向速度是否大于输入的最大转向速度
若果是的话转向速度就等于最大转向速度不再继续增加,不然等增加到一百的话那就变成小陀螺了
如果不是的话转向速度就等于公式输出的值


到这里该说的就都说完了,如果有错误麻烦在回复里告诉我一下谢谢!
拜托拜托拜托

18/1/24
考完试终于有空继续玩机器人了
今天我终于把这程序在车上运行了一下,一看吓了一跳,根本就用不了,带着这么大的一个bug我就直接发上来了,我是很服气我当时在想什么,稍微修了一下,现在应该好了。

我觉得问题的真正原因应该是我用的那个乱七八糟的公式,于是我就把那个公式改成了这样:
目标功率+时间*系数
简单了许多吧
哪个系数一般不用动,如果要用的话就到里面去找好了,我在里面标注了
搜狗截图18年01月24日2056_2.png
这里有两处要改的话记得一起改
搜狗截图18年01月24日2058_3.png





如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2017-12-31 16:17:05 | 显示全部楼层
C:\Users\zt-PC\Pictures\捕获.JPG
区间可以这么写
捕获.JPG
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复 1 0

使用道具 举报

发表于 2017-12-17 10:14:15 | 显示全部楼层

回帖奖励 +1 乐币

好好研究下
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-17 10:21:14 | 显示全部楼层

回帖奖励 +1 乐币

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-17 10:28:31 | 显示全部楼层

回帖奖励 +1 乐币

66666
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-17 14:37:37 | 显示全部楼层

回帖奖励 +1 乐币

过来学习
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-18 14:18:49 | 显示全部楼层

回帖奖励 +1 乐币

学习一下,感谢楼主
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-19 12:07:16 | 显示全部楼层

回帖奖励 +1 乐币

先学习 谢谢!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-19 14:21:13 | 显示全部楼层

回帖奖励 +1 乐币

666,学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-19 15:51:13 | 显示全部楼层

回帖奖励 +1 乐币

好贴,谢谢分享
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-21 19:08:19 | 显示全部楼层

回帖奖励 +1 乐币

感谢分享给非常及时
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-12-22 18:15:36 | 显示全部楼层

回帖奖励 +1 乐币

谢谢楼主。。。。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-1-5 21:08:00 | 显示全部楼层
点睛 发表于 2017-12-31 16:17
区间可以这么写

谢谢,涨姿势了,我还真没用过这个模块,我马上就改
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2018-1-11 03:38:53 | 显示全部楼层
实在是太有帮助了!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2018-1-24 21:04:35 | 显示全部楼层
之前发的有bug我改了一下,现在应该好了,抱歉
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-3-28 19:47 , Processed in 0.608789 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表