超聲波測(cè)距儀是各種現(xiàn)實(shí)生活和機(jī)器人應(yīng)用中的有用工具,例如避障和距離測(cè)量系統(tǒng)。超聲波測(cè)距儀通過(guò)發(fā)射 40 kHz 的超聲波脈沖來(lái)測(cè)量距離,該脈沖在空氣中傳播直到它擊中物體,然后測(cè)量反射信號(hào)的延遲并向其他單元發(fā)送適當(dāng)?shù)拿睢?/font>
我使用了 SRF05 超聲波傳感器和 ATtiny85 微控制器。距離數(shù)據(jù)顯示在 128 × 64 OLED 屏幕上,以厘米和英寸為單位。此外,水平條形圖提供了距離的視覺(jué)估計(jì)。MCU 代碼是使用 Arduino IDE 開(kāi)發(fā)的。
為了設(shè)計(jì)原理圖和 PCB,我使用了 Altium Designer 22 和 SamacSys 組件庫(kù)(Altium 插件)。為了獲得高質(zhì)量的 PCB,我將 Gerber 發(fā)送到 PCBWay,并使用 ComponentSearchEngine.com 購(gòu)買(mǎi)了原始組件。為了檢查電路的電流消耗,我使用了 Sigilent SDM3045X 萬(wàn)用表。
規(guī)格
- 輸入電壓:6–24 VDC
- 電流消耗:24毫安
- 檢測(cè)范圍:2–400 cm(見(jiàn)正文)
- 距離數(shù)據(jù):厘米、英寸、條形圖
- 顯示:128×64黃藍(lán)OLED
電路分析
圖1為超聲波測(cè)距儀裝置示意圖。很明顯,該電路由四個(gè)主要部分組成:傳感器、電源、MCU和顯示器。我分別解釋每個(gè)部分。
圖1:超聲波測(cè)距儀示意圖(來(lái)源:Altium)
SRF05超聲波傳感器
我在電路中使用了 SRF05 超聲波模塊。市場(chǎng)上有多種SRF05模塊;我使用了圖 2 中所示的那個(gè)。
模塊的質(zhì)量可能會(huì)有所不同,因此無(wú)法保證最大檢測(cè)范圍。其中一些有藍(lán)色阻焊層,一些是綠色的;此外,不同的制造商提供這樣的模塊。
根據(jù) SRF05 模塊數(shù)據(jù)表:“SRF05 是 SRF04 的進(jìn)化步驟,旨在提高靈活性、擴(kuò)大范圍并進(jìn)一步降低成本。因此,SRF05 與 SRF04 完全兼容。射程從 3 米增加到 4 米。一種新的操作模式(將模式引腳接地)允許 SRF05 使用單個(gè)引腳來(lái)觸發(fā)和回波,從而節(jié)省控制器上寶貴的引腳。當(dāng)模式引腳未連接時(shí),SRF05 使用單獨(dú)的觸發(fā)和回波引腳運(yùn)行,如 SRF04。SRF05 在回波脈沖之前包含一個(gè)小延遲,以便為較慢的控制器(例如 Basic Stamp 和 Picaxe)提供時(shí)間來(lái)執(zhí)行它們的脈沖命令。”
圖 2:SRF05 超聲波模塊(藍(lán)色阻焊層)
電源
電源的主要部件是 TS2937CW50 1穩(wěn)壓器(REG1)。它是一個(gè) 5V SOT-223 LDO 穩(wěn)壓器。根據(jù) TS2937 數(shù)據(jù)表:“TS2937 固定電壓?jiǎn)纹⒐β史€(wěn)壓器專為廣泛的應(yīng)用而設(shè)計(jì)。該器件是電池供電應(yīng)用的絕佳選擇。此外,靜態(tài)電流在壓降時(shí)略有增加,從而延長(zhǎng)了電池壽命。該系列固定電壓穩(wěn)壓器具有極低的接地電流(典型值 200uA)和極低的壓降輸出電壓(典型值在輕負(fù)載時(shí)為 60mV,在 500mA 時(shí)為 600mV)。這包括 2% 的嚴(yán)格初始容差、0.05% 典型值的極好線路調(diào)節(jié)以及非常低的輸出溫度系數(shù)?!?/font>
FB1 和 C5 降低輸入電壓噪聲。D1 是一個(gè)藍(lán)色 0805 LED,用于指示電源連接是否正確,R2 限制 D1 的電流。C4 和 C6 用于降低 5V 電源軌的噪聲。P1 是一個(gè) XH-2P 母連接器,用于將電源線連接到電路板。
微控制器
IC1 是一個(gè) ATtiny85 MCU,2這是電路的核心。我選擇了這款芯片的貼片封裝。根據(jù) Tiny85 數(shù)據(jù)表:“ATtiny25/45/85 提供以下特性:2/4/8K 字節(jié)系統(tǒng)內(nèi)可編程閃存、128/256/512 字節(jié) EEPROM、128/256/256 字節(jié) SRAM、6 個(gè)通用用途 I/O 線、32 個(gè)通用工作寄存器、一個(gè) 8 位定時(shí)器/計(jì)數(shù)器(帶比較模式)、一個(gè) 8 位高速定時(shí)器/計(jì)數(shù)器、通用串行接口、內(nèi)部和外部中斷、一個(gè) 4 通道、10-位 ADC、帶內(nèi)部振蕩器的可編程看門(mén)狗定時(shí)器和三種軟件可選的省電模式。空閑模式停止 CPU,同時(shí)允許 SRAM、定時(shí)器/計(jì)數(shù)器、ADC、模擬比較器和中斷系統(tǒng)繼續(xù)工作。掉電模式保存寄存器內(nèi)容,禁用所有芯片功能,直到下一次中斷或硬件復(fù)位。ADC 降噪模式會(huì)停止 CPU 和除 ADC 之外的所有 I/O 模塊,以最大限度地減少 ADC 轉(zhuǎn)換期間的開(kāi)關(guān)噪聲。該器件采用 Atmel 的高密度非易失性存儲(chǔ)器技術(shù)制造。片上 ISP 閃存允許程序存儲(chǔ)器通過(guò) SPI 串行接口、傳統(tǒng)的非易失性存儲(chǔ)器編程器或運(yùn)行在 AVR 內(nèi)核上的片上引導(dǎo)代碼在系統(tǒng)內(nèi)重新編程?!?/font>
C1、C2 和 C3 是去耦電容,用于降低噪聲。R1 是一個(gè)上拉電阻,用于避免不必要地觸發(fā) MCU 的 RESET 引腳。
OLED顯示屏
該顯示器由一個(gè) 0.96 英寸 128 × 64 OLED 模塊和一個(gè) SSD1306 控制器芯片組成。模塊的數(shù)據(jù)/命令接口為 I2C。圖 3 顯示了該模塊的圖片。I2C 由需要使用兩個(gè)電阻上拉的 SDA 和 SCL 線組成。該模塊已經(jīng)實(shí)現(xiàn)了上拉,因此無(wú)需在線路上添加更多電阻。
圖 3:設(shè)備的 OLED 顯示屏(0.96 英寸,128 × 64,I2C)
PCB布局
圖 4 顯示了電路的 PCB 布局。它是兩層PCB,所有組件都是SMD。顯示器應(yīng)位于 PCB 上方幾毫米處,以保持組件與顯示器背面之間的距離,以避免短路。PCB 設(shè)計(jì)緊湊且易于使用。
圖 4:超聲波測(cè)距儀的 PCB 布局(來(lái)源:Altium)
當(dāng)我決定為這個(gè)項(xiàng)目設(shè)計(jì)原理圖和 PCB 時(shí),我意識(shí)到我的元件庫(kù)存儲(chǔ)中沒(méi)有 REG1 3和 IC2 4的元件庫(kù)。因此,像往常一樣,我選擇了 IPC 級(jí) SamacSys 組件庫(kù),并使用免費(fèi)的 SamacSys 工具和服務(wù)安裝了缺少的庫(kù)(原理圖符號(hào)、PCB 封裝、3D 模型)。導(dǎo)入庫(kù)有兩種方法:您可以訪問(wèn) ComponentSearchEngine.com 并手動(dòng)下載和導(dǎo)入庫(kù),或者您可以使用 SamacSys CAD 插件并自動(dòng)將庫(kù)導(dǎo)入/安裝到設(shè)計(jì)環(huán)境中。圖 5 顯示了所有支持的電子設(shè)計(jì) CAD 軟件。5很明顯,所有著名的球員都得到支持。我使用 Altium Designer,因此我使用 SamacSys Altium 插件安裝了缺少的庫(kù)(圖 6)。6圖 7 顯示了電路板的 3D 視圖和 PCB 的兩個(gè)裝配圖。
圖 5:SamacSys 插件支持的所有電子設(shè)計(jì) CAD 軟件
圖 6:SamacSys Altium 插件中的選定組件庫(kù)
圖 7:PCB 的 3D 視圖和兩個(gè)裝配圖
代碼
MCU的代碼編寫(xiě)如下。您需要安裝 ATtinyCore Board Manager 7并從菜單中選擇 ATtiny25/45/85(無(wú)引導(dǎo)加載程序)(圖 8)。然后選擇芯片為 ATtiny85 并選擇 8MHz(內(nèi)部)作為時(shí)鐘源(圖 9)。
然后你需要安裝 NewPing 8和 Tiny4KOLED 9庫(kù)。之后,只需轉(zhuǎn)到“Sketch”菜單并選擇“Export compiled binary”(圖 10)。您可以在與您的代碼相同的文件夾中找到已編譯的 HEX 文件。只需使用 AVR ISP 編程器(例如 USBasp 或其他)使用 PCB 背面的可用引腳(GND、RESET、MISO、MOSI、SCK)對(duì)芯片進(jìn)行編程。按照程序?qū)θ劢z位進(jìn)行編程,如圖 11 所示。斷開(kāi)編程器和電路板上的電線,僅此而已。
uS = ;
;
CM = , IN = ;
cnt = ;
{
oled.begin(、 ) 、tiny4koled_init_128x64br);
奧萊德.on();
oled.setCursor( , );
oled.setFont(FONT8X16);
oled.clear();
oled.print( );
}
{
uS = sonar.ping();
CM = sonar.convert_cm(uS) + CM;
IN = sonar.convert_in(uS) + IN;
cnt++;
(cnt == )
{
oled.setCursor( , );
oled.print(CM / );
(CM / < )
? ? {
? ? ? oled.setCursor( , );
? ? ? oled.print( );
? ? }
? ? {
? ? ? oled.setCursor( , );
? ? ? oled.print( );
? ? }
? ? oled.setCursor( , );
? ? oled.print(IN / );
? ? (IN / < )
? ? {
? ? ? oled.setCursor( , );
? ? ? oled.print( );
? ? }
? ? {
? ? ? oled.setCursor( , );
? ? ? oled.print( );
? ? }
? ? (CM / )
? ? {
? ? ? :
? ? ? ? oled.setCursor( , );
? ? ? ? oled.print( );
? ? ? ? ;
? ? ? ... :
? ? ? ? oled.setCursor( , );
? ? ? ? oled.print(
圖 8:從菜單中選擇合適的芯片系列(ATtiny25/45/85 [no bootloader])
圖 9:ATtiny85 時(shí)鐘源選擇(8 MHz,內(nèi)部)
圖 10:在哪里可以找到和導(dǎo)出 HEX 文件(草圖菜單)
圖 11:如何使用 AVR ISP 編程器對(duì)電路板進(jìn)行編程
組裝和測(cè)試
圖 12 顯示了組裝好的 PCB。我在顯示器和 PCB 之間放了一塊雙面膠帶,以避免任何可能的短路。從圖片中可以清楚地看到,OLED屏幕上的文字非常鮮艷生動(dòng)。
圖 12:超聲波測(cè)距儀的組裝 PCB
如果您計(jì)劃使用電池為電路板供電,則設(shè)備的電流消耗很重要。所以我使用了 Siglent SDM3045X 臺(tái)式萬(wàn)用表10,測(cè)得電流為 24 mA。圖 13 顯示了萬(wàn)用表屏幕。
圖 13:超聲波測(cè)距儀電路的電流消耗
材料清單
圖 14 顯示了該項(xiàng)目的材料清單。
圖 14:物料清單
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2565文章
53008瀏覽量
767475 -
超聲波
+關(guān)注
關(guān)注
63文章
3140瀏覽量
141412 -
測(cè)距儀
+關(guān)注
關(guān)注
0文章
119瀏覽量
18968
發(fā)布評(píng)論請(qǐng)先 登錄
超聲波測(cè)距儀研究
數(shù)字超聲波測(cè)距儀的詳細(xì)剖析
如何去實(shí)現(xiàn)一種HY-SRF05超聲波測(cè)距模塊呢
HC-SRF05超聲波測(cè)距模塊的原理是什么
基于SRF05和ATtiny85的超聲波測(cè)距儀
電子設(shè)計(jì)應(yīng)用超聲波測(cè)距儀的設(shè)計(jì)
超聲波測(cè)距儀的設(shè)計(jì)
基于SRF05和ATtiny85實(shí)現(xiàn)的超聲波測(cè)距儀設(shè)計(jì)

使用SRF05和ATtiny85的超聲波測(cè)距儀

使用Arduino的超聲波測(cè)距儀

超聲波測(cè)距儀設(shè)計(jì)案例

使用帶有Raspberry Pi的超聲波測(cè)距模塊構(gòu)建超聲波測(cè)距儀GUI

探究SRF05和ATtiny85的超聲波測(cè)距儀

評(píng)論