找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2577|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

URM37V3.2超聲波測(cè)距傳感器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:213900 發(fā)表于 2017-6-25 12:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這個(gè)模塊是為了做ROBOT而開(kāi)發(fā)的東東。當(dāng)然,如果你有更好的想法,比如用于汽車(chē)倒車(chē)報(bào)警器、門(mén)鈴、警戒報(bào)警器、地鐵安全線提示、銀行及取款機(jī)的一米線提示等。 我們做ROBOT的想法是:把大部分功能集成化,從而解放主CPU。 自從我們的URM37 V1.0超聲波測(cè)距模塊推出后,網(wǎng)友們反饋回很多信息,他們希望模塊上安裝超聲波傳感器以方便使用。我們也發(fā)現(xiàn)不同傳感器在使用時(shí)差異很大,所以現(xiàn)在URM37 V3.1集成了一對(duì)經(jīng)過(guò)我們挑選好的傳感器可以減少不少的麻煩;也有不少的網(wǎng)友希望對(duì)模塊的編程控制能夠盡量的簡(jiǎn)單,比如可以輸出一個(gè)開(kāi)關(guān)量,在測(cè)量距離大于設(shè)定的值時(shí)輸出一個(gè)電平就可以了;比如直接和電腦串口相連接,用串口調(diào)試程序進(jìn)行操作;模塊可以控制一個(gè)舵機(jī)0~270度的旋轉(zhuǎn),可以組成一個(gè)空間掃描儀。還有的網(wǎng)友說(shuō)他想在一個(gè)機(jī)器人系統(tǒng)中使用多個(gè)URM37模塊,但是這樣通訊的控制線就將增加不少因?yàn)閁RM37 V1.0不是標(biāo)準(zhǔn)的IIC總線。還有很多網(wǎng)友提出了很多寶貴的意見(jiàn),這里一并向他們表示感謝,當(dāng)然如果要滿(mǎn)足所有給我們提出改進(jìn)意見(jiàn)的網(wǎng)友的需求是不可能的。在現(xiàn)在的URM37 V3.1上已經(jīng)很好的實(shí)現(xiàn)了上面提到的功能。在此基礎(chǔ)上升級(jí)為URM37 V3.2,機(jī)械尺寸與引腳接口以及通信命令兼容V3.1,在V3.1基礎(chǔ)上做了如下更改:
1.串口電平由跳線選擇,用戶(hù)可以輕松的選擇TTL電平輸出或是RS232電平輸出。
2.修改了測(cè)距算法,使測(cè)距耗時(shí)更少。
3.當(dāng)檢測(cè)不到障礙物測(cè)距失敗的時(shí)候?qū)⒘⒓捶祷?XFFFF,方便進(jìn)行判斷。
4.測(cè)量溫度分辨率改為0.1攝氏度,測(cè)量溫度范圍:-10度~+70度,輸出格式也做了變化。
5.模塊串口波特率9600,無(wú)奇偶效驗(yàn),一位停止位。
性能描述
1.工作電源:+5V
2.工作電流:<20mA
3.工作溫度范圍 :-10℃~+70℃
4.超聲波距離測(cè)量:
最大測(cè)量距離―500cm
最小測(cè)量距離―4cm
分辨率-1cm
誤差-1%
5.由于使用了更好的超聲波處理方法,使測(cè)量距離更遠(yuǎn)更穩(wěn)定。
6.模塊使用RS232串口通訊可靠性更高,同時(shí)可以通過(guò)電腦串口采集數(shù)據(jù),編寫(xiě)通訊程序非常的便捷。
7.模塊可以通過(guò)脈寬輸出的方式將測(cè)量數(shù)據(jù)輸出,這樣使模塊使用更簡(jiǎn)單。
8.模塊可以預(yù)先設(shè)定一個(gè)比較值,在測(cè)量距離小于這個(gè)值后管腳輸出一個(gè)低電平,這樣模塊能夠方便的作為一個(gè)超聲波接近開(kāi)關(guān)使用。
9.模塊提供一個(gè)舵機(jī)控制功能,可以和一個(gè)舵機(jī)組組成一個(gè)270度測(cè)量組件用于機(jī)器人掃描0~270度范圍障礙物。
10.模塊內(nèi)帶溫度補(bǔ)償電路提高測(cè)量的精度。
11.模塊內(nèi)帶253字節(jié)內(nèi)部EEPROM,可以用于系統(tǒng)記錄一些調(diào)電不丟失的系統(tǒng)參數(shù)。
12.模塊內(nèi)帶一個(gè)溫度測(cè)量部件,可以通過(guò)通訊口讀出分辨率0.1攝氏度的環(huán)境溫度數(shù)據(jù)。
13.模塊尺寸22mm × 51 mm
14.模塊重量:約30g
模塊測(cè)量角度
[size=14.1376px]




引腳定義
[size=14.1376px]
URM37 V3.2模塊正面管腳




1: +VCC           電源+5V輸入 2: GND             電源地 3: nRST            模塊復(fù)位,低電平復(fù)位 4: PWM            測(cè)量到的距離數(shù)據(jù)以PWM脈寬方式輸出0-25000US,每50US代表1厘米 5: MOTO           舵機(jī)控制信號(hào)輸出 6: COMP/TRIG                COMP:          比較模式開(kāi)關(guān)量輸出,測(cè)量距離小于設(shè)置比較距離時(shí)輸出低電平     TRIG:           PWM模式觸發(fā)脈沖輸入          7: NC               空腳 8: RXD             異步通訊模塊接收數(shù)據(jù)管腳,RS232電平或者TTL電平 9: TXD             異步通訊模塊發(fā)送數(shù)據(jù)管腳,RS232電平或者TTL電平
功能描述
模塊最基本的一個(gè)接口是RXD腳和TXD腳組成的RS232電平或者TTL電平串口,通過(guò)串口可以對(duì)模塊進(jìn)行全面的控制。RS232電平可以直接和電腦的串口進(jìn)行連接,這樣可以方便的通過(guò)串口調(diào)試軟件輕易的對(duì)模塊進(jìn)行操作。如果需要用單片機(jī)TTL電平的異步口控制模塊,只需要設(shè)置一下串口選擇跳線,模塊就可以在RS232輸出與TTL輸出之間切換了(如下圖跳線短路帽設(shè)置位置)。
[size=14.1376px]
RS232模式




[size=14.1376px]
TTL模式




通過(guò)串口可以讀寫(xiě)模塊內(nèi)部EEPROM的0x00、0x01、0x02單元來(lái)設(shè)置模塊的工作模式。
第一模式:PWM被動(dòng)控制模式和串口被動(dòng)模式(該模式一直存在)。
在串口被動(dòng)模式下,模塊處于等待狀態(tài),通過(guò)串口發(fā)出的距離測(cè)量命令啟動(dòng)一次距離測(cè)量,串口將測(cè)量到的距離數(shù)據(jù)返回,命令中帶的舵機(jī)旋轉(zhuǎn)度參數(shù)改變模塊MOTO腳產(chǎn)生的舵機(jī)控制脈沖從而改變測(cè)量舵機(jī)的旋轉(zhuǎn)度數(shù)。EEPROM的0x03到0xff是EEPROM的用戶(hù)區(qū)也可以通過(guò)串口進(jìn)行讀寫(xiě),還可以通過(guò)串口讀取一個(gè)高精度的溫度。 在PWM被動(dòng)控制模式下,外部控制COMP/TRIG端上產(chǎn)生一個(gè)低電平的觸發(fā)脈沖信號(hào)啟動(dòng)一次距離測(cè)量操作,這個(gè)低電平脈沖寬度同時(shí)代表控制舵機(jī)轉(zhuǎn)動(dòng)的角度控制參數(shù),將270度旋轉(zhuǎn)角度分為46個(gè)角度控制參數(shù),每個(gè)控制參數(shù)代表5.87度,數(shù)字范圍是范圍是0到46,脈沖每50US代表一個(gè)控制角度。當(dāng)發(fā)出觸發(fā)脈沖后,模塊的MOTO腳產(chǎn)生舵機(jī)控制脈沖從而改變測(cè)量舵機(jī)的旋轉(zhuǎn)度數(shù),接下來(lái)PWM端將測(cè)量到的距離數(shù)據(jù)以脈寬方式輸出一個(gè)低電平脈沖,每50US代表1厘米,可以通過(guò)對(duì)這個(gè)低電平脈沖寬度的測(cè)量讀取距離數(shù)據(jù)。當(dāng)測(cè)量無(wú)效時(shí)將返回一個(gè)50000US的脈沖表示這次的測(cè)量是無(wú)效的。
第二模式:自動(dòng)測(cè)量模式。模塊每隔25MS自動(dòng)測(cè)量,將測(cè)量到的數(shù)據(jù)和比較值做比較,如果測(cè)量距離等于或者小于比較值COMP/TRIG腳輸出低電平。另外每啟動(dòng)一次測(cè)量模塊的PWM端將測(cè)量到的距離數(shù)據(jù)以脈寬方式輸出一個(gè)低電平脈沖,每50US代表1厘米,可以通過(guò)對(duì)這個(gè)低電平脈沖寬度的測(cè)量讀取距離數(shù)據(jù)。設(shè)置好比較距離值后可以簡(jiǎn)單的把模塊當(dāng)一個(gè)超聲波開(kāi)關(guān)使用。
通訊協(xié)議
模塊串口波特率9600,無(wú)奇偶效驗(yàn),一位停止位。控制命令通過(guò)一致的幀結(jié)構(gòu)通訊,幀長(zhǎng)度4字節(jié):命令+數(shù)據(jù)0+數(shù)據(jù)1+校驗(yàn)和。效驗(yàn)和=命令+數(shù)據(jù)0+數(shù)據(jù)1的相加和的低8位。模塊可以直接通過(guò)PC串口或單片機(jī)串口進(jìn)行操作。
命令格式
功 能
說(shuō)明
0x11+NC+NC+校
啟動(dòng)16位溫度的讀取命令
命令啟動(dòng)一次讀取命令,測(cè)量溫度完畢后模塊發(fā)出帶相同命令頭的數(shù)據(jù)加兩字節(jié)的溫 度數(shù)據(jù):0x11+溫度高+溫度低+SUM(SUM代表效驗(yàn)和,NC代表任意數(shù)據(jù))。溫度高字節(jié)的高4位代表溫度正負(fù),當(dāng)高4位都是1時(shí)說(shuō)明是負(fù)溫度,當(dāng)高4位都是0時(shí)是正溫度,除去溫度高字節(jié)的高4位后是12位的溫度。分辨率0.1度,每個(gè)數(shù)字代表0.1攝氏度。當(dāng)測(cè)量無(wú)效時(shí)返回的溫度高位和低位數(shù)據(jù)都是0xff。
0x22+度數(shù)+NC+SUM
啟動(dòng)16位距離的讀取命令
度數(shù)是控制舵機(jī)先旋轉(zhuǎn)到一個(gè)度數(shù)后再進(jìn)行測(cè)距。270度分為46個(gè)角度,每角度5.87度,數(shù)字范圍是十進(jìn)制0到46,如果數(shù)字超過(guò)46電機(jī)將不動(dòng)作。上電初始,舵機(jī)將旋轉(zhuǎn)到當(dāng)中即135度的位置。當(dāng)指令是0時(shí),舵機(jī)逆時(shí)針旋轉(zhuǎn)到0度,當(dāng)指令是46時(shí),舵機(jī)順時(shí)針旋轉(zhuǎn)到270度。當(dāng)測(cè)量完畢這時(shí)返回的數(shù)據(jù)是0x22+距離高+距離低+SUM。當(dāng)測(cè)量無(wú)效時(shí)返回的距離高位和低位數(shù)據(jù)都是0xff。
0x33+地址+NC+SUM
啟動(dòng)內(nèi)部EEPROM的讀
寫(xiě)入命令后,讀取數(shù)據(jù)返回0x33+地址+數(shù)據(jù)+SUM。
0x44+地址+寫(xiě)數(shù)據(jù)+SUM
啟動(dòng)內(nèi)部EEPROM的寫(xiě)
寫(xiě)數(shù)據(jù)范圍包括0-255單元,其中地址0x00-0x02的據(jù)是模塊使用的配置字,操作時(shí)需謹(jǐn)慎!可以通過(guò)讀指令來(lái)效驗(yàn)數(shù)據(jù)是否被寫(xiě)入。寫(xiě)入成功返回0x44+地址+寫(xiě)數(shù)據(jù)+SUM。模塊內(nèi)部的EEPROM地址0x00到0x02用于配置模塊參數(shù),分別是:比較距離低(0x00)、比較距離高(0x01)、模式(0x02)。對(duì)模式寄存器寫(xiě)入0xaa自動(dòng)測(cè)量模式開(kāi)啟。





















注:NC代表任意數(shù)據(jù),SUM代表效驗(yàn)和。
1.PWM被動(dòng)控制模式可以將多個(gè)模塊數(shù)據(jù)線并聯(lián)使用。
2.為了方便客戶(hù)使用模塊在出廠時(shí)可以根據(jù)客戶(hù)需要配置其相應(yīng)的參數(shù)。URM37 V3.2超聲波測(cè)距模塊硬件也可以根據(jù)特殊的客戶(hù)定制改變軟件使他成為一個(gè)專(zhuān)用的模塊。
3.舵機(jī)旋轉(zhuǎn)角度參考表:
DEC
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HEX
0
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
度數(shù)
0
6
12
18
24
29
35
41
47
53
59
65
70
76
82
88
DEC
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HEX
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
度數(shù)
94
100
106
112
117
123
129
135
141
147
153
159
164
170
176
172
DEC
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46


HEX
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E


度數(shù)
188
194
200
206
211
217
223
229
235
241
247
252
258
264
270
















注:藍(lán)色數(shù)據(jù)為舵機(jī)轉(zhuǎn)軸指向正前方的度數(shù)。
模塊的連接與測(cè)試
電腦9針串口(公頭)功能定義:
[size=14.1376px]




URM37V3.2超聲波測(cè)距模塊與電腦串口的連接(請(qǐng)將模塊串口設(shè)置為RS232模式):
[size=14.1376px]




URM37V3.2超聲波測(cè)距模塊與單片機(jī)串口的連接(請(qǐng)將模塊串口設(shè)置為T(mén)TL模式):
[size=14.1376px]




伴侶的使用
當(dāng)您按照上圖連接好模塊后,就可以使用我們的“URM37 V3.2伴侶”對(duì)模塊進(jìn)行在線測(cè)試了。
[size=14.1376px]




軟件的使用極其簡(jiǎn)單:先保證電腦上沒(méi)有其他軟件占用串口,然后運(yùn)行伴侶,先選擇COM口,再點(diǎn)擊“打開(kāi)串口”,右邊窗口選擇探測(cè)功能,選擇“16位溫度讀取”可以進(jìn)行溫度測(cè)量,選擇“16位距離讀取”可以進(jìn)行距離測(cè)量,“控制指令”窗口同時(shí)顯示將要發(fā)送的指令,點(diǎn)擊“啟動(dòng)功能”便完成操作。此時(shí),“返回?cái)?shù)據(jù)”窗口中間兩位顯示的是16進(jìn)制數(shù)據(jù),軟件下方狀態(tài)欄內(nèi)也會(huì)顯示出溫度及距離的10進(jìn)制數(shù)據(jù)。該軟件使用方便、數(shù)據(jù)直觀。
如果您還購(gòu)買(mǎi)了我們的專(zhuān)用舵機(jī),便可以使用舵機(jī)控制部分。如圖所示,在“舵機(jī)角度”窗口內(nèi)選擇要執(zhí)行的角度,同時(shí)在選擇“16位距離讀取”,然后點(diǎn)擊“啟動(dòng)功能”,舵機(jī)便旋轉(zhuǎn)到相應(yīng)的角度上,同時(shí)超聲波測(cè)量該方向上障礙物的距離。由此URM37V3.2配合舵機(jī)就可以完成空間障礙物掃描功能。

樣例// # Editor    :Jiang from DFRobot// # Data      :18.09.2012//#PWM output mode Arduino sample code// # Product name:ultrasonic scanner // # Product SKU:SEN0001// # Version :  0.2 // # Description:// # The Sketch for scanning 180 degree area 4-500cm detecting range // # Connection:// #       Pin 1 VCC (URM V3.2) -> VCC (Arduino)// #       Pin 2 GND (URM V3.2) -> GND (Arduino)// #       Pin 4 PWM (URM V3.2) -> Pin 3 (Arduino)// #       Pin 6 COMP/TRIG (URM V3.2) -> Pin 5 (Arduino)// #// # Description:// # The Sketch for scanning 180 degree area 4-500cm detecting range // # Connection:// #       Pin 1 VCC (URM V3.2) -> VCC (Arduino)// #       Pin 2 GND (URM V3.2) -> GND (Arduino)// #       Pin 4 PWM (URM V3.2) -> Pin 3 (Arduino)// #       Pin 6 COMP/TRIG (URM V3.2) -> Pin 5 (Arduino)// #int URPWM = 3; // PWM Output 0-25000US,Every 50US represent 1cmint URTRIG=5; // PWM trigger pin unsigned int Distance=0;uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01};    // distance measure command void setup(){                                 // Serial initialization  Serial.begin(9600);                         // Sets the baud rate to 9600  PWM_Mode_Setup();} void loop(){ PWM_Mode(); delay(20);}                      //PWM mode setup function void PWM_Mode_Setup(){   pinMode(URTRIG,OUTPUT);                     // A low pull on pin COMP/TRIG  digitalWrite(URTRIG,HIGH);                  // Set to HIGH    pinMode(URPWM, INPUT);                      // Sending Enable PWM mode command    for(int i=0;i<4;i++)  {      Serial.write(EnPwmCmd);  } } void PWM_Mode(){                              // a low pull on pin COMP/TRIG  triggering a sensor reading    digitalWrite(URTRIG, LOW);    digitalWrite(URTRIG, HIGH);               // reading Pin PWM will output pulses         unsigned long DistanceMeasured=pulseIn(URPWM,LOW);         if(DistanceMeasured>=10200)    {              // the reading is invalid.      Serial.println("Invalid");        }    else    {      Distance=DistanceMeasured/50;           // every 50us low level stands for 1cm      Serial.print("Distance=");      Serial.print(Distance);      Serial.println("cm");    }}模塊的應(yīng)用
[size=14.1376px]
URM37 V3.2模塊的AVR評(píng)估板電路圖




[size=14.1376px]
由舵機(jī)組成的270度距離測(cè)量組合




AVR評(píng)估板的操作:電路通過(guò)74HC125三態(tài)門(mén)使單片機(jī)的一個(gè)串口分時(shí)復(fù)用來(lái)接收電腦輸入的指令和控制讀寫(xiě)URM37 V3.2模塊。配置WINDOWS自帶的超級(jí)終端作為電腦端的控制平臺(tái)。
評(píng)估板除了可以通過(guò)串口控制還可以通過(guò)操作URM37 V3.2模塊PWM腳和COM\TRIG腳來(lái)進(jìn)行數(shù)據(jù)的讀取。當(dāng)設(shè)置為自動(dòng)測(cè)量模式時(shí)評(píng)估板上的一個(gè)LED可以指示比較結(jié)果,當(dāng)測(cè)量距離小于設(shè)置比較距離時(shí)LED亮
使用中常遇到的問(wèn)題:
1.由于超聲波在空氣中衰減很厲害(與距離d的平方成反比),同時(shí)聲音在障礙物表面反射時(shí)會(huì)受很多因素 (如障礙物形狀、方向、質(zhì)地)的影響,因此超聲波測(cè)量的距離是有限的。
2.本系統(tǒng)遠(yuǎn)距離測(cè)試被測(cè)物是一面墻,近距離測(cè)試被測(cè)物可以是一支筆。根據(jù)使用環(huán)境和被測(cè)物的質(zhì)地的不同,將可能造成測(cè)量結(jié)果與提供的數(shù)據(jù)不符。差距不大,屬于正常情況。
3.上述所提及的舵機(jī)是我們專(zhuān)用的舵機(jī),可以旋轉(zhuǎn)270度。如果使用者自備舵機(jī),可能控制時(shí)序就有所不同,請(qǐng)使用者注意(舵機(jī)旋轉(zhuǎn)角度參考表內(nèi)數(shù)據(jù)參考使用)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表