智能小车目前已经可以通过各种方式进行遥控了,不过做到这一步还远远不够,我们需要智能小车有自己的“思维”,根据需要进行进退、转向或停止。要做到这一步,必须让智能小车有自己的感知“器官”,第一步我们先添加测距传感器,以后我们会陆续研究寻际、摄像头等传感器,让所谓的智能小车,更加“智能”。
目前市面上的超声波模块有两种硬件接口,一种是触发和脉冲输出方式,一种是串口通信(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函数就可以获取超声波模块的测距值了,所以这里就不过多介绍了,如果和智能小车配合使用,其安装后的效果图如下:
和智能小车相配合,而表现出一定智能的代码,我们在后续的博文中再进行介绍,不过相关这部分的示例源码已经在本文的末尾列出,性急的网友可以先参考一下。
本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/UltrasonicTest.rar
本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/MF_Car_01.rar
本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/ PC_Control_01.rar
MF快速参考: .NET Micro Framework 快速入门
MF中文讨论组:http://space.cnblogs.com/group/MFSoft/
最近参加了2010中国十大杰出IT博客大赛,请大家投票支持一下,谢谢!
http://2010blog.51cto.com/1635641
分享到:
相关推荐
在正点原子Mini开发板上实现HCSR04超声波测距,亲测可用
STM32_Nano开发板--原理图 很完整 不错,欢迎下载
哈信息20级 基于STM32L475开发板以及HC-SR04超声波传感器进行超声波测距 压缩包内包括cubeMX工程文件以及keil工程源码
【STM32基础】基于STM32F4xx的超声波测距 https://blog.csdn.net/weixin_53403301/article/details/121845118
STM32F407开发板-标准例程-寄存器版本。有59个例子。涉及所有试验。
利用STM32开发板驱动HC-SR04超声波模块和语音模块,可以实现基本的测距功能和语音播报功能。亲测在精英板和mini板上可行。程序做了详细的注释,程序也很规范,可以拓展使用。具体问题和一些小建议也在工程中做了说明...
两块STM32,一个做主机一个做从机,能够实现主机发送数据以及主机读取从机数据。通过串口调试,以及LED灯来提示工作状态。
STM32F103C8T6开发板实验例程:超声波测距实验程序源代码。 1、单片机型号:STM32F103C8T6。 2、开发环境:KEIL。 3、编程语言:C语言。 4、提供配套PDF格式STM32F103C8T6单片机开发板电路原理图。
STM32F407开发板作为客户端进行网络通信,解压即用
该程序使用开发板的是STM32F103C8T6核心板,模块是HY-SRF05超声波测距模块,在一定的范围内,板子上的指示灯就会亮
普中STM32-PZ6806L开发板资料光盘结构 | |---1--用户必看 | |--KEIL5安装教程 | |--普中ARM仿真器使用说明 | |--普中PZ6806L开发板入门教程 | |---2--开发板原理图 | |--彩屏原理图-----------------对应...
此资源是《基于探索者stm32f407开发板ucos-iii+lwip1.4.1的tcp server并发服务器解决例程》配套的源码压缩包
超声波开发板ad工程,配套资料,PCB图,原理图、各模块测试程序,源代码,测试结果图。 资源详情https://blog.csdn.net/weixin_46163097/article/details/122857482
安富莱_STM32-V7开发板资料
STM32开发板 ATK-RM04 WIFI模块测试实验
FS-MP1A开发板是基于ST(意法半导体)公司的STM32MP1系列微处理器而设计的开发板,该系列处理器提供了集成 Arm® Cortex®-A7 和 Cortex®-M4 两种内核的异构架构,在实现高性能且灵活的多核架构以及图像处理能力基础...
基于STM32F103ZET6芯片的超声波模块(HC-SR04)
安富莱_STM32-V5开发板_RL-TCPnet网络教程
使用STM32单片机,使用HC-SR04超声波模块测距,测试距离以厘米为单位显示在数码管上,数码管使用TM1640驱动。
基于STM32F103ZET6开发板,同时控制两个超声波测距模块的工程源码,经测试可以正常工作,并且排除两个超声波测距模块相互干扰。