《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 其他 > 教學:如何通過IIC或者485總線實現多個超聲波級聯

教學:如何通過IIC或者485總線實現多個超聲波級聯

2022-09-29
來源:古月居

  讀取多超聲波傳感器

  該模塊是一個開源模塊,并提供了配套的ROS節點,接收串口上傳的數據并發布到指定的Topic上面。

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

  同時讀取12個超聲波模塊數據,通過串口打包上傳,頻率為20Hz。

  提供配套ROS節點程序,可將測量數據發布到ROS Topic上。

  開源ROS節點程序[3],并提供單片機端hex文件下載,使用其他單片機開發板也可以輕易使用。

  背景

  在制作智能小車、自主導航小車的過程中我們通常會使用超聲波來彌補小車的測量盲區,或者直接設計基于超聲波的避障小車。

  這其中都涉及到多個超聲波模塊的讀取。一方面我們可以選取市面上已有的串行超聲波模塊通過IIC或者485總線實現多個超聲波級聯。

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

  另一方面超聲波在讀取的時候需要頻繁調用定時器中斷函數測量回波電平的寬度實現距離的測量。

  而這個過程會占用大量的cpu資源,因此我們將這部分功能獨立出來為一個模塊,單獨使用一個單片機去讀取超聲波模塊的數據并通過串口轉發出去。

 

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

  使用教程

  2.1 接線說明

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

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

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

  綠色燈為電源指示燈

  紅色燈閃爍頻率大約為20Hz 表示正常測量過程

114.JPG

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

113.JPG

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

112.JPG

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

  - 紅色--VCC

  - 黑色--GND

  - 黃色--Trig

  - 綠色--Echo

  

111.JPG

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

110.JPG

  2.2 上傳協議

  數據格式為:幀頭+數據長度+命令類型+數據+校驗+幀尾。數據上傳頻率為20Hz,波特率使用115200。

109.JPG

  幀頭:固定為兩個字節:0xAE, 0xEE

  數據長度:為所有字節的和(包含了幀頭和幀尾)

  命令類型:固定為:0xA1

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

  校驗位:所有數據位的加和取低八位(包括幀頭和幀尾)

  幀尾:固定為兩個字節 0xEF,0xFE

  ROS節點使用

  3.1 下載與配置

  安裝依賴項

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

  2.編譯代碼

  cd catkin_make

  3.啟動ROS節點

  roslaunch ultrasonic_ros ultrasonic_ros.launch

  啟動節點以后可以看到終端打印輸出的數據

  

116.JPG

  4.使用 echo 命令打印查看超聲波的數據

  rostopic echo /ultrasonic/data

117.JPG

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

  rostopic hz /ultrasonic/data

  

118.JPG

  3.3 常見問題-無串口權限

  啟動節點時候提示沒有串口設備或者沒有啟動權限,這時候需要修改串口權限。

  step1: 檢查是否識別到USB轉串口驅動

106.JPG

  查看設備的ID號 ls /dev/ttyUSB*

 

105.JPG

  這里我們可以通過一個簡單的方式來修改串口權限

  sudo chmod 766 /dev/ttyUSB0

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

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

  cd ultrasonic-ros/scriptsgedit ultrasonic.rules

 

104.JPG

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

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

  更新程序

  為了使得沒有購買這個板子的小伙伴使用我們的程序,我們提供了Hex文件下載。

  通過STLink進行燒寫程序,對照我們提供的原理圖接線也可以實現多個超聲波的讀取(需要一定的動手能力)。板載芯片為STM32F103C8T6。

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

103.JPG

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

  接下來點擊這個插頭一樣的東西(如果沒有識別到就拔插一下STLink下載器)

102.JPG

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

101.JPG

  接下來選中github網頁中目錄 ultrasonic-ros/reference/hex目錄下的hex文件 ultrasonic_V1.0.0.hex

100.JPG

  成功打開以后這兩個地方會有信息提示成功打開文件

99.JPG

  接下來點擊燒寫程序

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



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美一区二区三区网站 | 1024手机基地在线观看 | 高h喷水荡肉爽文np肉色文 | 三级全黄的全黄三级三级播放 | 天天艹夜夜艹 | 日韩中文字幕免费在线观看 | 日本午夜免费福利视频 | 欧美专区日韩 | 亚洲欧美日韩中文字幕在线一 | 在线亚洲欧美性天天影院 | 五月激情丁香 | 日日操操 | 一卡二卡在线 | 偷亚洲偷国产欧美高清 | 免费看午夜高清性色生活片 | 老湿影院福利社 | 一级黄色毛片播放 | 国产精品免费视频能看 | 欧洲一级毛片 | 一区二区三区日韩精品 | 国产亚洲成归v人片在线观看 | 九九九九九九伊人 | 黄色片在线视频 | 婷婷综合色 | 免费观看的黄色网址 | 在线精品国内外视频 | 欧美视频在线一区二区三区 | 中文字幕高清免费不卡视频 | 日韩精品亚洲专区在线观看 | 日韩欧美一及在线播放 | 2019亚洲日韩新视频 | 国产精品手机视频一区二区 | 青青草好 | 亚洲第一天堂无码专区 | 中文字幕精品一区二区日本大胸 | freexxx性欧美hd丝袜 | 国产清纯91天堂在线观看 | 亚洲成年人在线观看 | 男女午夜爽爽大片免费 | 亚洲观看视频 | 图片区 日韩 欧美 亚洲 |