智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10307|回复: 25
打印 上一主题 下一主题

提取中线后怎么控制舵机

  [复制链接]

4

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
威望
164
贡献
91
兑换币
102
注册时间
2014-2-19
在线时间
79 小时
跳转到指定楼层
1#
发表于 2014-3-4 22:06:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中线提取后,怎么反馈控制舵机的转动 ,求算法和公式。  
回复

使用道具 举报

4

主题

215

帖子

0

精华

高级会员

Rank: 4

积分
950
威望
490
贡献
234
兑换币
314
注册时间
2013-11-5
在线时间
113 小时
毕业学校
棣棠中心校
推荐
发表于 2014-3-8 03:39:39 | 只看该作者
调CCD的时候随便写的一个舵机控制,其实本质和电机控制一样
void servo_control(void)
{
  float s_kp=0.3,s_kd=0;                 //舵机 P,D初始化
  int8 servo_duty;
  servo_duty =(int)(s_kp*servo_err[0] +s_kd*(servo_err[0]-servo_err[1]));
if(servo_duty>20)
  {
    servo_duty=20;
  }
  if(servo_duty<=-20)
  {
    servo_duty=-20;
  }
   LPLD_FTM_PWM_ChangeDuty(FTM0, FTM_Ch0, angle_to_period(servo_duty));
}
回复 支持 1 反对 0

使用道具 举报

4

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
威望
164
贡献
91
兑换币
102
注册时间
2014-2-19
在线时间
79 小时
2#
 楼主| 发表于 2014-3-4 22:08:00 | 只看该作者
不要沉  ,  求各位大神不吝赐教
回复 支持 反对

使用道具 举报

51

主题

1633

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
7556

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章论坛骨干奖章

威望
3701
贡献
2453
兑换币
1398
注册时间
2012-5-3
在线时间
701 小时
3#
发表于 2014-3-4 22:28:35 | 只看该作者
你猜
回复 支持 反对

使用道具 举报

21

主题

896

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4068
威望
2252
贡献
1296
兑换币
1483
注册时间
2012-7-30
在线时间
260 小时
毕业学校
克莱德大学
4#
发表于 2014-3-5 01:53:09 | 只看该作者
我猜,我猜,我猜猜猜!
回复 支持 反对

使用道具 举报

4

主题

69

帖子

0

精华

高级会员

Rank: 4

积分
936
威望
483
贡献
279
兑换币
323
注册时间
2013-10-18
在线时间
87 小时
5#
发表于 2014-3-7 14:00:12 | 只看该作者
偏差值,在控制舵机转向
回复 支持 反对

使用道具 举报

4

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
威望
164
贡献
91
兑换币
102
注册时间
2014-2-19
在线时间
79 小时
7#
 楼主| 发表于 2014-3-8 17:08:32 | 只看该作者
stxhb 发表于 2014-3-8 03:39
调CCD的时候随便写的一个舵机控制,其实本质和电机控制一样
void servo_control(void)
{

LPLD_FTM_PWM_ChangeDuty(FTM0, FTM_Ch0, angle_to_period(servo_duty));  这个函数能给写一下吗
回复 支持 反对

使用道具 举报

6

主题

673

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357

优秀会员奖章活跃会员奖章

QQ
威望
1073
贡献
634
兑换币
740
注册时间
2013-7-5
在线时间
325 小时
8#
发表于 2014-3-8 21:08:13 | 只看该作者
好!
回复 支持 反对

使用道具 举报

4

主题

215

帖子

0

精华

高级会员

Rank: 4

积分
950
威望
490
贡献
234
兑换币
314
注册时间
2013-11-5
在线时间
113 小时
毕业学校
棣棠中心校
9#
发表于 2014-3-8 23:12:14 | 只看该作者
本帖最后由 stxhb 于 2014-3-8 23:31 编辑
wsxz-zyq 发表于 2014-3-8 17:08
LPLD_FTM_PWM_ChangeDuty(FTM0, FTM_Ch0, angle_to_period(servo_duty));  这个函数能给写一下吗


就是LPLD例程库里面的

uint32 angle_to_period(int8 deg)
{
  uint32 pulse_width = 500+2000*(96+deg)/180;
  return (uint32)(10000*pulse_width/20000);
}


舵机PWM频率50,直接更改占空比angle_to_period为0-10000,代表0%---100%占空比
回复 支持 反对

使用道具 举报

6

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
762
威望
404
贡献
206
兑换币
236
注册时间
2013-11-17
在线时间
76 小时
10#
发表于 2014-3-9 19:34:07 | 只看该作者
能分享一下你的中线提取程序吗?QQ:836365972
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:16 , Processed in 0.074398 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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