【STM32 .Net MF開發板學習-22】超聲波測距模塊研究

智能小車目前已經能夠經過各類方式進行遙控了,不過作到這一步還遠遠不夠,咱們須要智能小車有本身的「思惟」,根據須要進行進退、轉向或中止。要作到這一步,必須讓智能小車有本身的感知「器官」,第一步咱們先添加測距傳感器,之後咱們會陸續研究尋際、攝像頭等傳感器,讓所謂的智能小車,更加「智能」。編程

目前市面上的超聲波模塊有兩種硬件接口,一種是觸發和脈衝輸出方式,一種是串口通訊(RS232),後一種編寫通訊接口程序比較簡單,就是簡單的串口編程,不過售價比較高。前一種對實時性要求很高,其測量精度和你的程序實現相關。ide

咱們僅介紹前一種通訊方式,模塊的工做原理以下:函數

(1)採用IO觸發測距,給至少10us的高電平信號;測試

(2)模塊自動發送840khz的方波,自動檢測是否有信號返回;ui

(3)有信號返回,經過IO輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間.this

測試距離=(高電平時間*聲速(340M/S))/2;spa

從超聲波模塊的工做原理咱們就能夠知道,測距和高電平持續的時間相關,咱們只要能準確獲取高電平的持續時間,就能夠精確得到探測的距離。.net

固然如此高精度,用C#託管代碼是沒法直接開發的,須要咱們採用C/C++代碼開發,而且必須用時鐘進行信號採集,而後封裝成一個接口供上層託管代碼調用。htm

 

    (實際測試發現,該超聲波的測量精度仍是蠻高的,是3mm級別的)blog

接線方式以下:

序號

超聲波模塊

.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)、小車底盤

 http://item.taobao.com/item.htm?id=7218838776

2)、四路直流電機驅動器

http://item.taobao.com/item.htm?id=7218717808

3)、.NET Micro Framework開發板

 http://item.taobao.com/item.htm?id=7117999726

4)、超聲波模塊

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

 

   注:須要紅牛開發板固件在 V1.1.0以上

本文源碼: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

相關文章
相關標籤/搜索