《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 其他 > 教學(xué):如何通過(guò)IIC或者485總線實(shí)現(xiàn)多個(gè)超聲波級(jí)聯(lián)

教學(xué):如何通過(guò)IIC或者485總線實(shí)現(xiàn)多個(gè)超聲波級(jí)聯(lián)

2022-09-29
來(lái)源:古月居
關(guān)鍵詞: 超聲波傳感器 超聲波

  讀取多超聲波傳感器

  該模塊是一個(gè)開源模塊,并提供了配套的ROS節(jié)點(diǎn),接收串口上傳的數(shù)據(jù)并發(fā)布到指定的Topic上面。

  目前支持 HC-SR04 、HY-SRF05和US-015這幾個(gè)型號(hào)超聲波模塊。主要功能如下:

  同時(shí)讀取12個(gè)超聲波模塊數(shù)據(jù),通過(guò)串口打包上傳,頻率為20Hz。

  提供配套R(shí)OS節(jié)點(diǎn)程序,可將測(cè)量數(shù)據(jù)發(fā)布到ROS Topic上。

  開源ROS節(jié)點(diǎn)程序[3],并提供單片機(jī)端hex文件下載,使用其他單片機(jī)開發(fā)板也可以輕易使用。

  背景

  在制作智能小車、自主導(dǎo)航小車的過(guò)程中我們通常會(huì)使用超聲波來(lái)彌補(bǔ)小車的測(cè)量盲區(qū),或者直接設(shè)計(jì)基于超聲波的避障小車。

  這其中都涉及到多個(gè)超聲波模塊的讀取。一方面我們可以選取市面上已有的串行超聲波模塊通過(guò)IIC或者485總線實(shí)現(xiàn)多個(gè)超聲波級(jí)聯(lián)。

  但是如下面表格1所示,市面上級(jí)聯(lián)的超聲波模塊最便宜的也需要100元一個(gè),這樣12個(gè)成本約為1200元。如果使用其他模塊則更貴。

  另一方面超聲波在讀取的時(shí)候需要頻繁調(diào)用定時(shí)器中斷函數(shù)測(cè)量回波電平的寬度實(shí)現(xiàn)距離的測(cè)量。

  而這個(gè)過(guò)程會(huì)占用大量的cpu資源,因此我們將這部分功能獨(dú)立出來(lái)為一個(gè)模塊,單獨(dú)使用一個(gè)單片機(jī)去讀取超聲波模塊的數(shù)據(jù)并通過(guò)串口轉(zhuǎn)發(fā)出去。

 

6326df38-3a03-11ed-9e49-dac502259ad0.png

  使用教程

  2.1 接線說(shuō)明

  如下圖所示,使用模塊時(shí)需連接超聲波模塊

  P1-P12 為超聲波連接1-12通道

  電源輸入電壓為直流5-12V DC-DC圓孔2.5mm

  綠色燈為電源指示燈

  紅色燈閃爍頻率大約為20Hz 表示正常測(cè)量過(guò)程

114.JPG

  SWD下載接口線序如下圖所示

113.JPG

  超聲波接線說(shuō)明:目前支持 HC-SR04 超聲波模塊

112.JPG

  HC-SR04模塊接線如下圖所示:

  - 紅色--VCC

  - 黑色--GND

  - 黃色--Trig

  - 綠色--Echo

  

111.JPG

  板子安裝孔位置和外形尺寸如下:

110.JPG

  2.2 上傳協(xié)議

  數(shù)據(jù)格式為:幀頭+數(shù)據(jù)長(zhǎng)度+命令類型+數(shù)據(jù)+校驗(yàn)+幀尾。數(shù)據(jù)上傳頻率為20Hz,波特率使用115200。

109.JPG

  幀頭:固定為兩個(gè)字節(jié):0xAE, 0xEE

  數(shù)據(jù)長(zhǎng)度:為所有字節(jié)的和(包含了幀頭和幀尾)

  命令類型:固定為:0xA1

  數(shù)據(jù)位:包含12個(gè)通道的超聲波測(cè)量值,每個(gè)通道占用2個(gè)字節(jié),共計(jì)24字節(jié),采用高位在前方式(大端數(shù)據(jù)模式)發(fā)送,測(cè)量數(shù)據(jù)的單位為mm。即為:[CH1_HSB CH1_LSB … CH12_HSB CH12_LSB]

  校驗(yàn)位:所有數(shù)據(jù)位的加和取低八位(包括幀頭和幀尾)

  幀尾:固定為兩個(gè)字節(jié) 0xEF,0xFE

  ROS節(jié)點(diǎn)使用

  3.1 下載與配置

  安裝依賴項(xiàng)

  sudo apt-get install ros-melodic-rosserialcd catkin_ws/srcgit clone https://github.com/RuPingCen/ultrasonic-ros.git

  2.編譯代碼

  cd catkin_make

  3.啟動(dòng)ROS節(jié)點(diǎn)

  roslaunch ultrasonic_ros ultrasonic_ros.launch

  啟動(dòng)節(jié)點(diǎn)以后可以看到終端打印輸出的數(shù)據(jù)

  

116.JPG

  4.使用 echo 命令打印查看超聲波的數(shù)據(jù)

  rostopic echo /ultrasonic/data

117.JPG

  5.使用 hz 命令查看話題發(fā)布的頻率

  rostopic hz /ultrasonic/data

  

118.JPG

  3.3 常見問(wèn)題-無(wú)串口權(quán)限

  啟動(dòng)節(jié)點(diǎn)時(shí)候提示沒(méi)有串口設(shè)備或者沒(méi)有啟動(dòng)權(quán)限,這時(shí)候需要修改串口權(quán)限。

  step1: 檢查是否識(shí)別到USB轉(zhuǎn)串口驅(qū)動(dòng)

106.JPG

  查看設(shè)備的ID號(hào) ls /dev/ttyUSB*

 

105.JPG

  這里我們可以通過(guò)一個(gè)簡(jiǎn)單的方式來(lái)修改串口權(quán)限

  sudo chmod 766 /dev/ttyUSB0

  上述的方式每次拔插串口以后都需要執(zhí)行修改權(quán)限的命令比較麻煩,可以使用我們的腳本文件把串口權(quán)限寫入rule文件中。

  step2: 用記事本打開“ultrasonic-ros/scripts/ultrasonic.rules” 目錄下的文件,會(huì)看到如下內(nèi)容

  cd ultrasonic-ros/scriptsgedit ultrasonic.rules

 

104.JPG

  step3: 這里的1a86和7523 就是上面圖中我設(shè)備的ID號(hào),這里修改成為你自己的ID號(hào)以后,把文件拷貝到/etc/udev/rules.d目錄下就可以使用 /dev/ultrasonic 替代 /dev/ttyUSB0 來(lái)訪問(wèn)模塊了

  sudo cp ultrasonic.rules /etc/udev/rules.d/

  更新程序

  為了使得沒(méi)有購(gòu)買這個(gè)板子的小伙伴使用我們的程序,我們提供了Hex文件下載。

  通過(guò)STLink進(jìn)行燒寫程序,對(duì)照我們提供的原理圖接線也可以實(shí)現(xiàn)多個(gè)超聲波的讀取(需要一定的動(dòng)手能力)。板載芯片為STM32F103C8T6。

  SWD下載接口線序如下圖所示:

103.JPG

  從ST官方的下載燒寫軟件:STM32 ST-LINK uTIlity 4.5.0 安裝時(shí)候一直下一步默認(rèn)即可,安裝完成以后打開軟件,使用STLink連接到STM32板子。

  接下來(lái)點(diǎn)擊這個(gè)插頭一樣的東西(如果沒(méi)有識(shí)別到就拔插一下STLink下載器)

102.JPG

  成功以后就可以看到芯片的信息

101.JPG

  接下來(lái)選中g(shù)ithub網(wǎng)頁(yè)中目錄 ultrasonic-ros/reference/hex目錄下的hex文件 ultrasonic_V1.0.0.hex

100.JPG

  成功打開以后這兩個(gè)地方會(huì)有信息提示成功打開文件

99.JPG

  接下來(lái)點(diǎn)擊燒寫程序

98.JPG

  程序下載完成以后扳子上的紅色LED開始閃爍表示程序下載成功了

  參考資料:

  [1]https://github.com/RuPingCen/ultrasonic-ros/tree/master/reference/hex

  [2]https://www.st.com/en/development-tools/stsw-link004.html

  [3]https://github.com/RuPingCen/ultrasonic-ros



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 在线免费观看一区二区三区| 你好老叔电影观看免费| 国模吧双双大尺度炮交gogo| 在线观看91精品国产不卡免费| 国内精品久久久久国产盗摄| 国产成人精品一区二区三区| 国产成人久久精品| 国产成人无码精品久久久露脸| 国产精品亚洲一区二区三区久久| 好男人好视频手机在线| 大学生一级毛片免费看**| 国产精品亚洲二区在线播放| 国产羞羞视频在线播放| 日本黄大片在线观看| 婷婷色天使在线视频观看| 国产精品视频李雅| 另类人妖交友网站| 亚洲国产成AV人天堂无码| 久久精品国产成人AV| 久久久www免费人成精品| 一级成人黄色片| 国产手机在线αⅴ片无码观看 | 大看蕉a在线观看| 国色天香精品一卡2卡3卡| 国产叼嘿久久精品久久| 婷婷六月综合网| 国内自拍成人网在线视频| 国产日韩精品欧美一区喷水| 国产农村乱子伦精品视频| 噗呲噗呲捣出白沫蜜汁| 亚洲码欧美码一区二区三区| 亚洲成人福利在线| 久久精品电影院| 欧美精品在线免费| 男人边吃奶边爱边做视频国产| 精品国产自在在线在线观看| 欧美性生交活XXXXXDDDD| 成人3d黄动漫无尽视频网站| 国产成人无码午夜视频在线观看| 国产精品线在线精品| 午夜电影免费观看|