cyq456 发表于 2013-7-16 16:25:20

刚做了一个光线追踪系统,不太完美,请问大家有什么改进方法

本帖最后由 cyq456 于 2013-7-16 16:25 编辑

#include<Servo.h>
Servo Pservo; //仰角
Servo Yservo;//旋转角
int PPosition=0;//用于记录最大光线的仰角
int YPosition=0;//用于记录最大光线的旋转角
int count;
float MaxV=0;//用于记录最大光线的电压值


void detection()//寻找最大光线的函数
{
float n=0;
for(int i=0;i<180;i=i+10)
{
Yservo.write(i);
delay(100);
for(int j=0;j<180;j=j+10)
{
Pservo.write(j);
delay(50);
while(count<10)//将光线电压值相加然后取平均值
{
n=n+analogRead(A0);
delay(10);
count=count+1;
}
Serial.print("count:");
Serial.print(count);
n=n/(count);
count=0;

// Serial.print("n:");
//Serial.print(n);
//Serial.println();
if(n>MaxV)//记录目前最大值的位置
{
MaxV=n;
YPosition=i;
PPosition=j;
}
// Serial.print("MaxV:");
// Serial.print(MaxV);
//Serial.print("Position:");
//Serial.print(Position);
//Serial.println();
n=0;
}
}
Yservo.write(YPosition);//返回最大值位置
Pservo.write(PPosition);//返回最大值位置
MaxV=0;
}
void setup()
{
Serial.begin(9600);
Pservo.attach(9);
Yservo.attach(10);
delay(100);
Pservo.write(90);
Yservo.write(90);
delay(1000);

}
void loop()
{
detection();
delay(10000);//每10秒进行一次
}这是代码,以下是图片




以这种方式实现,舵机会出现抖动,还有寻找最大光线过程时间比较长,大家有什么解决方法?

陪你看日落 发表于 2013-7-16 20:52:37

上传个视频看看

迷你强 发表于 2013-7-16 22:17:05

多个光敏管,推荐四个组成矩阵,然后加高遮光罩。。

cyq456 发表于 2013-7-16 22:24:17

迷你强 发表于 2013-7-16 22:17 static/image/common/back.gif
多个光敏管,推荐四个组成矩阵,然后加高遮光罩。。

请问如何摆,有实例吗?

迷你强 发表于 2013-7-16 23:08:35

矩阵,矩形的四个点

szpapas 发表于 2013-7-17 00:36:21

这么慢,不行的,应该采用图像识别的方法。OpenCV 来实现吧。

拾瑞 发表于 2013-7-17 08:37:37

你的算法当中还有改进的地方的!比如你现在是扫描180度,扫一次后确认最大值,可以改为一边扫一边计算最大值,如果前进方向上扫到的值小于当前的值,就停止下来,就可以省去一部份扫描时间和重新定位时间!

fish6823 发表于 2013-7-17 17:01:55

用四个光敏管组成矩阵的话要用透镜来聚光,把光敏管放在焦点上,当四个管输入相等时就正好对准光源了.

cyq456 发表于 2013-7-17 22:37:02

fish6823 发表于 2013-7-17 17:01 static/image/common/back.gif
用四个光敏管组成矩阵的话要用透镜来聚光,把光敏管放在焦点上,当四个管输入相等时就正好对准光源了.

不太懂,总共有四个光敏管,是把哪个光敏管放在焦点上?

cyq456 发表于 2013-7-17 22:43:27

拾瑞 发表于 2013-7-17 08:37 static/image/common/back.gif
你的算法当中还有改进的地方的!比如你现在是扫描180度,扫一次后确认最大值,可以改为一边扫一边计算最大值,如 ...

噢,这算法好,先谢啦,我回去试试

cyq456 发表于 2013-7-17 22:45:32

szpapas 发表于 2013-7-17 00:36 static/image/common/back.gif
这么慢,不行的,应该采用图像识别的方法。OpenCV 来实现吧。

我才刚入门,这个太复杂了吧:o

学慧放弃 发表于 2013-7-18 12:24:09

光线追踪系统!!!!!

学慧放弃 发表于 2013-7-18 12:24:34

光线还能追踪码????

cyq456 发表于 2013-7-18 13:48:37

学慧放弃 发表于 2013-7-18 12:24 static/image/common/back.gif
光线还能追踪码????

就是探测周围最强光方向的系统

学慧放弃 发表于 2013-7-18 20:09:33

cyq456 发表于 2013-7-18 13:48 static/image/common/back.gif
就是探测周围最强光方向的系统

谢谢楼主!!!!!1
页: [1] 2
查看完整版本: 刚做了一个光线追踪系统,不太完美,请问大家有什么改进方法