智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2466|回复: 5
打印 上一主题 下一主题

舵机控制

[复制链接]

36

主题

302

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1930
威望
975
贡献
461
兑换币
558
注册时间
2013-11-17
在线时间
247 小时
毕业学校
北京工业大学
跳转到指定楼层
1#
发表于 2013-12-15 10:05:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
float  get_position(void){
   
    float N,result,base_pos,pos,pos_os;
    Max();
    SecondMax();
    Min();
    pos=(ad_value[num_second]-ad_value[num_min])*100;
    N=pos/(ad_value[num_max]-ad_value[num_min]);
    base_pos=num_max*weight;
    pos_os=(weight*N/100-weight/2);
    if(num_max>=num_second) {
      result=base_pos-pos_os;
    } else{
      result=base_pos+pos_os;
    }
    if((N<50)&(num_max==0))  {
      result=0;
    }
    if(result>(4*weight)){
      result=4*weight;
    }
    return result;
}//获取赛道位置//

void saveposition(void){
  unsigned int i;
  for(i=0;i<3;i++)
    save_position[i+1]=save_position[i];
  save_position[0]=position ;
}//保存位置//

unsigned int duoji_PD(void){
    float error,s_error,ss_error;
    unsigned int pwmdty_23;
    error=save_position[0]-save_position[1];
    s_error=save_position[1]-save_position[2];
    ss_error=save_position[2]-save_position[3];
     pwmdty_23=angle_mid+duoji_kp*(error-s_error)+duoji_kd*(error-2*s_error+ss_error);
     if(pwmdty_23>2060)
     pwmdty_23=2060;
      if(pwmdty_23<1420)
     pwmdty_23=1420;
      return pwmdty_23;
}//舵机PD控制//

这样写对么   明天准备去试车







137

主题

4169

帖子

1

精华

杰出人士

我认为最省轮子的跑法最快。曾经的西科4队

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
2#
发表于 2013-12-15 10:42:00 | 只看该作者
应该不会有人给你分析程序吧,除非他真的闲。反正我是最讨厌分析别人的程序。
回复 支持 反对

使用道具 举报

32

主题

978

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2834
QQ
威望
1620
贡献
482
兑换币
1009
注册时间
2012-11-29
在线时间
366 小时
3#
发表于 2013-12-15 12:35:20 | 只看该作者
留个记号,貌似……
回复 支持 反对

使用道具 举报

15

主题

223

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1451
威望
737
贡献
426
兑换币
424
注册时间
2013-9-25
在线时间
144 小时
4#
发表于 2013-12-15 13:21:34 | 只看该作者

电磁求解:XS128只有一路脉冲累加计数器,有什么好办法实现两路编码器计数?

Jyoun 发表于 2013-12-15 10:42
应该不会有人给你分析程序吧,除非他真的闲。反正我是最讨厌分析别人的程序。

电磁组用的是C车模,两个电机,用四路PWM控制两个电机正反转,再用两路级联控制舵机,一共用了六路。两个编码器,可是输入捕捉只有一路,该怎样解决?换一款单片机吗?求大神指导
回复 支持 反对

使用道具 举报

137

主题

4169

帖子

1

精华

杰出人士

我认为最省轮子的跑法最快。曾经的西科4队

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
5#
发表于 2013-12-15 14:01:50 | 只看该作者
奔逸绝尘子不语 发表于 2013-12-15 13:21
电磁组用的是C车模,两个电机,用四路PWM控制两个电机正反转,再用两路级联控制舵机,一共用了六路。两个 ...

编码器可以利用中断捕捉。
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

高级会员

Rank: 4

积分
697
威望
374
贡献
201
兑换币
208
注册时间
2013-11-6
在线时间
61 小时
毕业学校
武汉长江工商学院
6#
发表于 2014-3-2 15:42:52 | 只看该作者
你是做的是电磁组吧?问题怎么样?跑得还行吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 19:21 , Processed in 0.058479 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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