中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

嵌入式系统

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 嵌入式系统 → 浏览主题: 【STM32 .Net MF开发板学习-22】超声波测距模块研究
发表新帖 回复该主题
回帖:0个,阅读:496 [上一页] [1] [下一页]
* 帖子主题:

【STM32 .Net MF开发板学习-22】超声波测距模块研究

分享到
884
yefanqiu
文章数:33
年度积分:50
历史总积分:884
注册时间:2004/8/19
发站内信
发表于:2010/11/30 23:50:46
#0楼
 
智能小车目前已经可以通过各种方式进行遥控了,不过做到这一步还远远不够,我们需要智能小车有自己的“思维”,根据需要进行进退、转向或停止。要做到这一步,必须让智能小车有自己的感知“器官”,第一步我们先添加测距传感器,以后我们会陆续研究寻际、摄像头等传感器,让所谓的智能小车,更加“智能”。
目前市面上的超声波模块有两种硬件接口,一种是触发和脉冲输出方式,一种是串口通信(rs232),后一种编写通信接口程序比较简单,就是简单的串口编程,不过售价比较高。前一种对实时性要求很高,其测量精度和你的程序实现相关。
我们仅介绍前一种通信方式,模块的工作原理如下:
(1)采用io触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过io输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.
测试距离=(高电平时间*声速(340m/s))/2;
从超声波模块的工作原理我们就可以知道,测距和高电平持续的时间相关,我们只要能准确获取高电平的持续时间,就可以精确获得探测的距离。
当然如此高精度,用c#托管代码是无法直接开发的,需要我们采用c/c++代码开发,并且必须用时钟进行信号采集,然后封装成一个接口供上层托管代码调用。

   (实际测试发现,该超声波的测量精度还是蛮高的,是3mm级别的)
接线方式如下:
序号
超声波模块
.net mf开发板
1
echo
pa0
2
trig
pc4
3
(gnd)
gnd
4
(vcc)
3.3v

封装后的托管库如下:
using system;
namespace yfsoft.hardware
{
       public sealed class ultrasonic
       {
          public ultrasonic(byte timer, int pin);
       public uint getvalue();
       }
}

相关的测试代码如下:
  public static void main()
   {
           //超声波探头
           //timer2 - 1(必须是1) pa0(必须是pa0) - echo pc4(可以任选一个空闲pin脚) - trig
           ultrasonic ultrasonic = new ultrasonic(1, (int)gpio_names.pc4);
           uint value = 0;
           graphics.clear(color.black);      
           while (true)
           {  
               value = ultrasonic.getvalue();
               debug.print(value.tostring());  
              // graphics.suspendlayout();
               graphics.fillrectangle(100, 100, 50, 20, color.black);
               graphics.drawstring(100, 100, value.tostring(), color.yellow);
              // graphics.resumelayout();
               thread.sleep(100);
           }                  
   }            
  使用非常简单,通过一个简单的getvalue函数就可以获取超声波模块的测距值了,所以这里就不过多介绍了,如果和智能小车配合使用,其安装后的效果图如下:
 
   和智能小车相配合,而表现出一定智能的代码,我们在后续的博文中再进行介绍,不过相关这部分的示例源码已经在本文的末尾列出,性急的网友可以先参考一下。

(1)、小车底盘

[URL=http://item.taobao.com/item.htm?id=7218838776]
http://item.taobao.com/item.htm?id=7218838776
[/URL]
(2)、四路直流电机驱动器
[URL=http://item.taobao.com/item.htm?id=7218717808]
http://item.taobao.com/item.htm?id=7218717808
[/URL]
(3)、.net micro framework开发板

[URL=http://item.taobao.com/item.htm?id=7117999726]
http://item.taobao.com/item.htm?id=7117999726
[/URL]
(4)、超声波模块

[URL=http://item.taobao.com/item.htm?id=8596342452]
http://item.taobao.com/item.htm?id=8596342452
[/URL]

 注:需要红牛开发板固件在 v1.1.0以上
本文源码:
[URL=http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/wmbluetooth.rar]
http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/ultrasonictest.rar
[/URL]
本文源码:
[URL=http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/bluetoothcar.rar]
http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/mf_car_01.rar
[/URL]
本文源码:
[URL=http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/bluetoothcar.rar]
http://www.sky-walker.com.cn/yefan/mfv40/sourcecode/ pc_control_01.rar
[/URL]
mf快速参考:
.net micro framework 快速入门
mf中文讨论组:
[URL=http://space.cnblogs.com/group/mfsoft/]
http://space.cnblogs.com/group/mfsoft/
[/URL]
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=129956&Name=yefanqiu
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003