智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 15725|回复: 68
打印 上一主题 下一主题

【原创】K60之超声波测速方案(本人已验证)

  [复制链接]

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
跳转到指定楼层
1#
发表于 2014-5-23 13:57:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
技术不高,只为分享。

      有帖子说,因为看见“周期最好60ms以上,所以就不太想用超声波了”,确实,在没看到王童鞋的“建议重新学习计数器/定时器”时,我还没有什么灵感和想法。
      以前没灵感是因为野火的三天学会K60只给出了pit_init周期中断函数,如果用周期中断对 超声波的高电平测时间显然不可能,偶然发现了PIT模块中的Timer Load Value Register (PIT_LDVALn)、Current Timer Value Register (PIT_CVALn)这两个寄存器。
      PIT模块用bus_clock作频率源,从PIT_LDVALn递减到0,产生中断又装载PIT_LDVALn值。那么为测量echo端的高电平时间,只要知道如下图所示的第二个时间节点时的PIT_CVALn值就行。根据公式(PIT_LDVALn - PIT_CVALn)*总线时钟周期*声速/2。

实现过程如下:
1.trig脚  简单随意的来个10微秒以上的脉冲;
2.echo脚 设成跳变沿触发中断,在第1步之后,开启引脚中断;
             在第一个上升沿中断开启 PITn中断,中断周期可以设定为60毫秒(这个值PIT_LDVALn 自己设定);
             在第二个下降沿中断读取PIT_CVALn值,然后关闭PITn定时器和IO口中断,结束此次测量。
3.还有注意PITn产生中断就说明没有接收到返回来的波,(即前面没障碍或很远),也结束此次测量。


      虽然还没用砖头测试,但是测墙面还是很准的,1.5m还是可以保证的(若以直道4m/s的速度,假设完成一次测距要100ms,那么小车走过的距离是40cm,因此1.5m应该可以了)。

通过这次我发现仅用提供的库可能还是不够的,得看看K60内部强大的资源了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

0

主题

10

帖子

0

精华

高级会员

Rank: 4

积分
586
威望
256
贡献
162
兑换币
168
注册时间
2012-11-28
在线时间
84 小时
2#
发表于 2014-5-23 19:03:34 | 只看该作者
新版的野火库已经有PIT计时功能。
回复 支持 反对

使用道具 举报

26

主题

477

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12955
威望
5731
贡献
2614
兑换币
3012
注册时间
2011-7-19
在线时间
2305 小时
3#
发表于 2014-5-23 19:58:33 | 只看该作者
我能说我一直用PIT_CVAL0测算法的运行时间么
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
4#
 楼主| 发表于 2014-5-23 20:53:52 | 只看该作者
wensenchao 发表于 2014-5-23 19:58
我能说我一直用PIT_CVAL0测算法的运行时间么

自己研究得比较少,拿来主义多一点,所以……
回复 支持 反对

使用道具 举报

12

主题

875

帖子

0

精华

常驻嘉宾

删繁就简。

Rank: 8Rank: 8

积分
4602

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

QQ
威望
2924
贡献
594
兑换币
1807
注册时间
2013-7-20
在线时间
542 小时
5#
发表于 2014-5-23 21:46:42 | 只看该作者
用周期中断对超声波的高电平测时间是可以实现的`~~~
回复 支持 反对

使用道具 举报

3

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2494
威望
1216
贡献
730
兑换币
778
注册时间
2013-11-27
在线时间
274 小时
6#
发表于 2014-5-23 21:57:19 | 只看该作者
野火库里不是有个什么PIT_TIME_GET  

这个就是读的PIT_LDVALn 值吧
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
7#
 楼主| 发表于 2014-5-23 22:14:08 | 只看该作者
仰望,蘫迗 发表于 2014-5-23 21:46
用周期中断对超声波的高电平测时间是可以实现的`~~~

我知道是可以的,只是不太妥当,有更好更精确的方法而已
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
8#
 楼主| 发表于 2014-5-23 22:15:11 | 只看该作者
开灰机的灰机 发表于 2014-5-23 21:57
野火库里不是有个什么PIT_TIME_GET  

这个就是读的PIT_LDVALn 值吧

直接读寄存器就可以了
回复 支持 反对

使用道具 举报

2

主题

114

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3331
威望
1480
贡献
839
兑换币
972
注册时间
2013-9-11
在线时间
506 小时
毕业学校
9#
发表于 2014-5-24 13:48:02 | 只看该作者
是定时器的输入捕捉吗
回复 支持 反对

使用道具 举报

22

主题

425

帖子

0

精华

常驻嘉宾

追梦

Rank: 8Rank: 8

积分
5460
QQ
威望
2558
贡献
1504
兑换币
1706
注册时间
2013-1-27
在线时间
699 小时
10#
 楼主| 发表于 2014-5-24 20:42:17 | 只看该作者
emper 发表于 2014-5-24 13:48
是定时器的输入捕捉吗

普通的IO中断
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-27 19:25 , Processed in 0.098109 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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