找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 5775|回复: 12

寻求帮助,找一个程序,用bricx 编写的单光感巡黑线

[复制链接]
发表于 2013-10-27 21:29:43 来自手机 | 显示全部楼层 |阅读模式
谢谢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-10-28 13:39:15 | 显示全部楼层
/*
   单光感巡线  boylong   2013/10/28/ 13:24

*/


#define WHITE    782     // 白色值
#define BLACK    453     // 黑色值
#define MIDDLE   ((WHITE-BLACK)/2+BLACK)     // 中间值
#define ERROR    7       // 误差


task main()
{
  int tmp = 0;
  int test = MIDDLE;
  int max = test + ERROR;
  int min = test - ERROR;
  int ps = 0;
  TextOut(25,32,"Ready ...",1);
  PlayToneEx(2000,400,100,0);
  Wait(1000);
  PlayToneEx(2000,400,100,0);
  Wait(1000);
  PlayToneEx(2000,400,100,0);
  Wait(1000);
  PlayToneEx(1000,700,100,0);
  TextOut(30,32,"GO !",1);
  Wait(1000);
  
  SetSensorLight(IN_3,1);
  test = MIDDLE;
  while(1){
  
           tmp = SensorNormalized(IN_3);
           TextOut(2,45,"Te : ");
           NumOut(30,45,test);
           TextOut(2,35,"Tm : ");
           NumOut(30,35,tmp);
           TextOut(3,25,"Ps : ");
           NumOut(30,25,ps);
           
           if(tmp > max){
                  ps = (tmp - test) / 2;
                  if(ps < 10)
                        ps = 10;
                  if(ps > 100)
                        ps = 100;
                        
                  OnFwd(OUT_C,ps);
           }
           
           if(tmp < min){
                  ps = (test - tmp) / 2;
                  if(ps < 10)
                        ps = 10;
                  if(ps > 100)
                        ps = 100;
                        
                  OnFwd(OUT_B,ps);
           }
           
           if( (tmp > min) && (tmp < max) ){
                  OnFwd(OUT_BC,50);
           }
           
  }
}












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

使用道具 举报

 楼主| 发表于 2013-10-28 20:27:45 来自手机 | 显示全部楼层
看不懂啊,能讲讲大概思路吗,谢谢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-10-28 20:45:03 | 显示全部楼层
fulimin 发表于 2013-10-28 20:27
看不懂啊,能讲讲大概思路吗,谢谢

pid,黑色到白色有过度变化段,通过变化量来修正转弯量
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-10-28 21:51:56 | 显示全部楼层
boylong 发表于 2013-10-28 20:45
pid,黑色到白色有过度变化段,通过变化量来修正转弯量

你这样回帖,我看不到通知
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-10-31 12:12:59 | 显示全部楼层
boylong 发表于 2013-10-28 13:39
/*
   单光感巡线  boylong   2013/10/28/ 13:24

请问白色的值怎么测?使用NXT不是50多吗?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-10-31 12:17:02 | 显示全部楼层
boylong 发表于 2013-10-28 13:39
/*
   单光感巡线  boylong   2013/10/28/ 13:24

TextOut(2,45,"Te : ");
           NumOut(30,45,test);
           TextOut(2,35,"Tm : ");
           NumOut(30,35,tmp);
           TextOut(3,25,"Ps : ");
           NumOut(30,25,ps);
显示test,tmp,ps的值是干什么呢?具体到场地如何测黑白的值?如何调试这个程序呢?谢谢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-10-31 13:36:16 | 显示全部楼层
fulimin 发表于 2013-10-31 12:12
请问白色的值怎么测?使用NXT不是50多吗?

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

使用道具 举报

发表于 2013-10-31 13:38:35 | 显示全部楼层
fulimin 发表于 2013-10-31 12:17
TextOut(2,45,"Te : ");
           NumOut(30,45,test);
           TextOut(2,35,"Tm : ");

test是中间值,也就是黑白相交的地方,tmp是光电读回来的实时数据,ps是电机的马力
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-10-31 17:09:23 来自手机 | 显示全部楼层
boylong 发表于 2013-10-31 13:36
要使用原始值

原始值如何测?还是说是固定的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-1 23:16:21 | 显示全部楼层
fulimin 发表于 2013-10-31 17:09
原始值如何测?还是说是固定的

因为Sensor()这个函数提供的返回值是0到100,这样的分辨率太低了,所以使用SensorNormalized()这个函数,有利于提高巡线的流畅度,原始值的意思就是只这个光电传感器读回来的原始数据,Sensor是处理过的,SensorNormalized()没有处理过
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-11-4 09:11:06 | 显示全部楼层
boylong 发表于 2013-11-1 23:16
因为Sensor()这个函数提供的返回值是0到100,这样的分辨率太低了,所以使用SensorNormalized()这个函数 ...

我试了试,走黑线直的可以,转弯就错了,我要走椭圆形轨迹,应该调试修改什么参数呢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-11-4 10:59:10 | 显示全部楼层
不一定是程序问题,有没测试视频?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 11:07 , Processed in 0.100709 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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