華永翔 宮麗娜 謝柏蓉











摘要:21世紀(jì)是一個智能化的時代,各種智能化設(shè)備正在逐步替代人為的操作。隨著科學(xué)技術(shù)的迅速發(fā)展,關(guān)于智能機器人的研究也就越來越受人關(guān)注。系統(tǒng)采用STM32F103C8T6作為系統(tǒng)主控芯片,采用L293D大功率H橋電機驅(qū)動芯片完成對機器人小車的兩只電機進(jìn)行驅(qū)動,當(dāng)檢測到小車與障礙物距離較近時會自動轉(zhuǎn)動方向行駛避開與障礙物直接碰撞。總的來說,基于STM32的智能載重機器人小車的設(shè)計,可以提高自動化水平,減輕人力勞動,提高生產(chǎn)效率,具有非常重要的現(xiàn)實意義和社會價值。
關(guān)鍵詞:STM32最小系統(tǒng);傳感器;智能載重;自動循跡;機器人小車
中圖分類號:TP302? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)31-0110-05
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)
0 引言
隨著社會經(jīng)濟(jì)和科學(xué)技術(shù)的發(fā)展,為解決城市中剩余的部分特殊人群(低保戶、喪失勞動力、鰥寡孤獨等)缺乏勞動力問題,設(shè)計一款智能機器人解放人們的雙手是非常有必要的,同時搭載人工智能和大數(shù)據(jù)技術(shù),為了方便一些特殊人群,機器人同樣具備人臉識別功能,然后通過大數(shù)據(jù)來分析是否為服務(wù)對象,該幫助人們在有需要的時刻提供一定載重,或能夠?qū)⑽锲匪椭林付ǖ攸c,并且自動判斷地形及優(yōu)化最佳路線,形成智能送快遞等服務(wù),為城市新型智能化公共服務(wù)發(fā)展起到推進(jìn)作用,造福于民[1]。
智能載重機器人小車是一種自動導(dǎo)引機器人系統(tǒng),能夠在無人值守的情況下自動識別路線并選擇正確的路線。該機器人運用了傳感器、開發(fā)板、電機驅(qū)動及自動控制等技術(shù),使其能夠在不同的環(huán)境下行走、搬運物品,極大地提高了生產(chǎn)效率,降低了勞動成本。因此,基于STM32的智能載重機器人小車的設(shè)計,旨在提高自動化水平,減輕人力勞動,提高生產(chǎn)效率,具有非常重要的現(xiàn)實意義和社會價值[2]。
1 設(shè)計思路
隨著社會的不斷發(fā)展,人們的生活變得智能化和科技化,智能家居開始走進(jìn)人們的生活。而對于智能載重機器人,傳統(tǒng)的載重機器人功能相對簡單,就是將重物送到地方后,然后就停止工作了,并且耗電量很大,而且后續(xù)的工作還是需要人來完成,對人的身體健康是一種消耗,同時也大大降低了人們的工作效率。現(xiàn)在市面上的很多智能載重機器人附帶按鍵、顯示屏,但是對于更為關(guān)鍵的人臉識別、遠(yuǎn)程控制和軟件一體化等問題卻并沒有很好的解決方案。
智能載重機器人小車運行中所用電磁鐵智能載重技術(shù)、自動循跡、避障傳感器、電機驅(qū)動、STM32最小系統(tǒng)的開發(fā)及微電子技術(shù)得到了迅速發(fā)展,其主要表現(xiàn)在傳統(tǒng)人工搬運貨物被智能載重機器人小車所替代,智能載重控制中所用先進(jìn)技術(shù)為控制的高效運行提供了有利條件,因此,智能載重技術(shù)已經(jīng)成為自動化系統(tǒng)的發(fā)展趨勢。本設(shè)計利用計算機技術(shù)并輔助以其他手段,編寫適合的程序,實現(xiàn)機器人小車的按預(yù)定路徑行進(jìn)、避障、搬運等功能。需要利用控制器的定時器、PWM輸出等功能,對電機進(jìn)行精確控制,同時對傳感器進(jìn)行數(shù)據(jù)采集和處理,實現(xiàn)機器人小車的感知和決策。
本系統(tǒng)是以STM32最小系統(tǒng)為控制器的核心,主要由電源電路、電機調(diào)速電路、復(fù)位電路、循跡傳感器模塊、紅外避障傳感器模塊、按鍵模塊、電磁鐵控制模塊、左電機和右電機組成。工作時,紅外線傳感器采集物品的輕重、判斷附近是否有物品等信息送到STM32單片機最小系統(tǒng),STM32最小系統(tǒng)根據(jù)這些信息通過控制電路對電磁鐵設(shè)備進(jìn)行開關(guān)操作,從而實現(xiàn)搬運貨物控制,以達(dá)到智能載重的目的。系統(tǒng)的硬件設(shè)計原理圖如圖1所示。
2 主要硬件電路的設(shè)計
STM32核心板電路:選擇適合的STM32核心板,根據(jù)其規(guī)格書和原理圖設(shè)計核心板的電路。包括電源電路、晶振電路、復(fù)位電路、通信接口電路等。
傳感器接口電路:根據(jù)所選傳感器的接口規(guī)范,設(shè)計傳感器與STM32核心板的接口電路。例如,如果選擇紅外傳感器,需要設(shè)計紅外傳感器的信號放大、濾波、解調(diào)等電路;如果選擇超聲波傳感器,需要設(shè)計超聲波發(fā)射和接收電路等。
電機驅(qū)動電路:選擇適合的電機和驅(qū)動器,根據(jù)其規(guī)格書和驅(qū)動電壓、電流等要求,設(shè)計電機驅(qū)動電路。考慮電機的轉(zhuǎn)速控制、轉(zhuǎn)向控制、電流控制等問題,以及驅(qū)動器與STM32核心板的接口設(shè)計。
稱重傳感器接口電路:選擇合適的稱重傳感器,根據(jù)其規(guī)格書和接口要求,設(shè)計稱重傳感器接口電路。考慮傳感器的量程、精度、穩(wěn)定性等因素,以及如何減小系統(tǒng)誤差和提高測量準(zhǔn)確性[3]。
通信接口電路:根據(jù)系統(tǒng)需求,設(shè)計與其他設(shè)備或計算機通信的接口電路,如串口通信、藍(lán)牙通信、Wi-Fi通信等。
電源電路:設(shè)計整個系統(tǒng)的電源電路,考慮電源的穩(wěn)定性、功耗、噪聲等問題,以及各個模塊所需的電壓和電流要求。系統(tǒng)總體設(shè)計結(jié)構(gòu)框架圖如圖2所示。
2.1 STM32最小系統(tǒng)
STM32F103C8T6增強型系列使用高性能的ARM/Cortex-M3/32位的RISC內(nèi)核,它是一種低功耗、高性能的32位微控制器,工作頻率為72MHz,內(nèi)置高速存儲器(高達(dá)128KB字節(jié)的閃存和20KB字節(jié)的SRAM),豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個I2C和SPI、3個USART、一個USB和一個CAN[4]。
STM32F103C8T6增強型系列工作于-40℃至+105 ℃的溫度范圍,供電電壓2.0V至3.6V,一系列的省電模式保證低功耗應(yīng)用的要求。
完整的STM32F103C8T6增強型系列產(chǎn)品包括從36腳至100腳的五種不同封裝形式;根據(jù)不同的封裝形式,器件中的外設(shè)配置不盡相同。下面給出了該系列產(chǎn)品中所有外設(shè)的基本介紹。
這些豐富的外設(shè)配置,使得STM32F103C8T6增強型微控制器適合于多種應(yīng)用場合:電機驅(qū)動和應(yīng)用控制;醫(yī)療和手持設(shè)備;PC外設(shè)和GPS平臺;工業(yè)應(yīng)用:可編程控制器、變頻器、打印機和掃描儀;警報系統(tǒng)、視頻對講和暖氣通風(fēng)空調(diào)系統(tǒng)。STM32最小系統(tǒng)原理圖如圖3所示。
2.2 電源電路
電源輸入一般通過電源適配器或電池提供,輸入電壓可能為直流電壓或交流電壓。根據(jù)實際需求選擇適合的電源輸入方案。電源管理單元一般包括電源轉(zhuǎn)換電路、穩(wěn)壓電路等,用于將輸入電壓轉(zhuǎn)換為系統(tǒng)所需的各種穩(wěn)定電壓,為芯片和其他外設(shè)提供穩(wěn)定的電源供應(yīng)。電源保護(hù)電路主要包括過電壓保護(hù)、過電流保護(hù)等,用于保證電源電路的安全穩(wěn)定運行,防止因異常電壓或電流對電路和芯片造成損害。外設(shè)電源根據(jù)系統(tǒng)需求,可能需要為其他外設(shè)提供電源,如傳感器、電機驅(qū)動器等[5]。需要根據(jù)外設(shè)的供電需求,設(shè)計相應(yīng)的電源電路。本次設(shè)計的電源電路如圖4所示。
2.3 電機調(diào)速電路
2.3.1 脈寬調(diào)制原理
PWM(脈沖寬度調(diào)制)是通過控制固定電壓的直流電源開關(guān)頻率,改變負(fù)載兩端的電壓,從而達(dá)到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,比如:電機調(diào)速、溫度控制、壓力控制等。
在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來達(dá)到改變平均電壓大小的目的,從而來控制電動機的轉(zhuǎn)速。也正因為如此,PWM又被稱為“開關(guān)驅(qū)動裝置”,如圖5所示。
設(shè)電機始終接通電源時,電機轉(zhuǎn)速最大為[Vmax],設(shè)占空比為[D=t1/T],則電機的平均速度為[Va = Vmax × D],其中Va指的是電機的平均速度;[Vmax]是指電機在全通電時的最大速度;[D=t1/T]是指占空比。
由上面的公式可見,當(dāng)改變占空比[D=t1/T]時,就可以得到不同的電機平均速度[Vd],從而達(dá)到調(diào)速的目的。嚴(yán)格來說,平均速度[Vd]與占空比[D]并非嚴(yán)格的線性關(guān)系,但是在一般的應(yīng)用中,可以將其近似地看成是線性關(guān)系[6]。
2.3.2 電機調(diào)速電路設(shè)計
L293D為SGS-THOMSON Microelectronics 所出產(chǎn)的雙全橋步進(jìn)電機專用驅(qū)動芯片(Dual Full-Bridge Driver) ,內(nèi)部包含4信道邏輯驅(qū)動電路,它是一種二相和四相步進(jìn)電機的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進(jìn)電機,內(nèi)含二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號,可驅(qū)動46V、2A以下的步進(jìn)電機,且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號,但在本驅(qū)動電路中用L293D來提供時序信號,節(jié)省了單片機IO 端口的使用。L293D內(nèi)部的原理圖如圖6所示,Pin1 Pin15 與電流偵測用電阻連接來控制負(fù)載的電路;OUTl、OUT2和OUT3、OUT4之間分別接2個步進(jìn)電機;input1~input4 輸入控制電位來控制電機的正反轉(zhuǎn);Enable則控制電機停轉(zhuǎn)。
OUT1與OUT2與小車的一個電機的正負(fù)極相連,OUT3與OUT4與小車的另一個電機的正負(fù)極相連,單片機通過控制IN1與IN2,IN3與IN4分別控制電機的正反轉(zhuǎn)。ENA與ENB分別控制兩個電機的使能。L293D控制表如表1所示。
2.3.3 L293DN驅(qū)動電路設(shè)計
2.4 復(fù)位電路
STM32F103C8T6最小系統(tǒng)無論在剛開始接上電源時,還是運行過程中發(fā)生故障都需要復(fù)位。復(fù)位電路用于將單片機內(nèi)部各電路的狀態(tài)恢復(fù)到一個確定的初始值,并從這個狀態(tài)開始工作。然而,關(guān)于電容大小對復(fù)位時間的影響,這取決于具體的應(yīng)用環(huán)境和電路設(shè)計。復(fù)位電路的電容大小主要決定了復(fù)位所需的電壓閾值以及復(fù)位的時間。通常情況下,較大的電容可以提供更長的復(fù)位時間。
2.5 循跡傳感器模塊
TCRT5000傳感器的紅外發(fā)射二極管不斷發(fā)射紅外線,當(dāng)發(fā)射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,紅外接收管一直處于關(guān)斷狀態(tài),此時模塊的輸出端為高電平,指示二極管一直處于熄滅狀態(tài);被檢測物體出現(xiàn)在檢測范圍內(nèi)時,紅外線被反射回來且強度足夠大,紅外接收管飽和,此時模塊的輸出端為低電平,指示二極管被點亮。
2.6 紅外避障傳感器模塊
該傳感器模塊對環(huán)境光線適應(yīng)能力強,其具有一對紅外線發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線,當(dāng)檢測方向遇到障礙物(反射面)時,紅外線反射回來被接 收管接收,經(jīng)過比較器電路處理之后,綠色指示燈會亮起,同時信號輸出接口輸出數(shù)字信號(一個低電平信號),可通過電位器旋鈕調(diào)節(jié)檢測距離,有效距離范圍 2~30cm,工作電壓為3.3V~5V。該傳感器的探測距離可以通過電位器調(diào)節(jié)、具有干擾小、便于裝配、使用方便等特點,可以廣泛應(yīng)用于機器人避障、避障小車、流水線計數(shù)及黑白線循跡等眾多場合[7]。
2.7 電磁鐵控制模塊
電磁鐵控制模塊可以通過STM32的GPIO口進(jìn)行控制,電磁鐵控制模塊需要一個GPIO口來控制繼電器通斷,從而實現(xiàn)電磁鐵的通斷。另外,也可以使用PWM(脈沖寬度調(diào)制)控制電磁鐵的通電時間,以控制電磁鐵吸附物體的時間。
具體來說,如果電磁鐵需要通電10秒,然后斷電5秒,可以通過STM32的定時器進(jìn)行PWM輸出。定時器每計時10秒輸出一個高電平信號,然后通過GPIO口控制繼電器通電,從而實現(xiàn)電磁鐵通電吸附物體。5秒后,定時器再次計時10秒輸出一個高電平信號,然后通過GPIO口控制繼電器斷電,從而實現(xiàn)電磁鐵斷電釋放物體。
另外,如果需要實現(xiàn)電磁鐵的通斷頻率可調(diào),可以使用STM32的PWM通道進(jìn)行PWM輸出。通過調(diào)整定時器的計時周期和占空比,可以實現(xiàn)電磁鐵通斷頻率的調(diào)整。
需要注意的是,電磁鐵控制模塊需要考慮到電磁鐵的吸力大小和通電時間,以確保電磁鐵可以正確地吸附和釋放物體。同時,也需要考慮到電磁鐵的發(fā)熱問題,如果連續(xù)通電時間過長,可能會造成電磁鐵過熱而損壞。因此,需要進(jìn)行合理的控制和保護(hù)。
2.8 按鍵模塊
按鍵電路采用獨立按鍵通過程序進(jìn)行控制,通過按鍵進(jìn)行電路的控制檢測是自動控制還是手動控制,然后另有兩個按鍵是控制檢測的開或是關(guān)。當(dāng)用戶按下按鍵后會輸出低電平給STM32最小系統(tǒng),松開后輸出高電平這樣就知道按鍵是否被按下,通過程序?qū)懭氚存I掃描函數(shù)就執(zhí)行所需要實現(xiàn)的功能。
3 系統(tǒng)軟件設(shè)計
3.1 發(fā)射系統(tǒng)程序流程圖
發(fā)射系統(tǒng)部主要完成鍵盤掃描發(fā)送。用戶需要選擇機器人把自己的物品搬到相應(yīng)的位置,并且發(fā)送指令給機器人。發(fā)射系統(tǒng)流程圖如圖8所示。
3.2 接收系統(tǒng)程序流程圖
接收系統(tǒng)部主要完成掃描按鍵接收與轉(zhuǎn)換,控制電機驅(qū)動芯片驅(qū)動機器人到需要去的地方。接收系統(tǒng)流程圖如圖9所示。
4 系統(tǒng)調(diào)試
4.1 硬件調(diào)試
在充分了解電路功能的基礎(chǔ)上做好檢驗文件,如原理圖、PCB圖、功能圖等,測試的參數(shù)及位置,需要達(dá)到的技術(shù)要求,了解電路的基本工作原理、主要技術(shù)性能指標(biāo)、各參數(shù)的調(diào)試方法和步驟等。
儀器的使用:本次使用的儀器包括數(shù)字電源、萬用表、示波器等檢測儀器,首先檢查儀器是否能正常工作,并將儀器設(shè)置到所需要的范圍內(nèi)。
調(diào)試前檢查:調(diào)試前要檢查被調(diào)試電路是否按電路設(shè)計要求正確安裝連接,有無虛焊、脫焊、漏焊等現(xiàn)象,檢查元器件的好壞及其性能指標(biāo),檢查被調(diào)試設(shè)備的功能選擇開關(guān)、量程擋位和其他面板元器件是否安裝在正確的位置。經(jīng)檢查無誤后方可按調(diào)試操作程序進(jìn)行通電調(diào)試[8]。
對被調(diào)試電路的準(zhǔn)備具體分為以下幾點:
1) 連線是否正確
檢查電路連線是否正確,包括錯線、少線和多線。按照電路圖檢查安裝的線路這種方法的特點是,根據(jù)電路圖連線,按一定順序逐一檢查安裝好的線路。由此,可比較容易查出錯線和少線。
2) 元、器件安裝情況
由于元器件比較多,使用萬用表檢查二極管元、器件引腳之間是否有短路,連接處有無接觸不良,二極管、三極管、集成電路和電解電容極性等具有極性的是否連接有誤。
3) 電源供電、信號源連線是否正確,否則一旦上電電位是反的就很容易使芯片燒壞,檢查直流極性是否正確,信號線是否連接正確。在通電前,使用萬用表檢查電源端對地(⊥) 是否存在短路,可以斷開一根電源線。直流穩(wěn)壓電源通電正常,且其他方面也都沒有問題的話,就可轉(zhuǎn)入調(diào)試。
4.2 軟件調(diào)試
軟件調(diào)試是通過 keil、連接以及執(zhí)行用戶程序來找尋程序中存在的語法錯誤和邏輯錯誤 ,然后加以排除糾正的一個過程。程序運行后,編輯查看程序是否存在邏輯錯誤。本系統(tǒng)的軟件程序完全用C語言編寫。調(diào)試過程中采用的是自上至下的調(diào)試方法 分別調(diào)試好每一個模塊,最后再連接成一個完整的系統(tǒng)調(diào)試。
具體的調(diào)試過程為:先由單片機最小系統(tǒng)向外搭建外圍電路組成的模型電路,將編寫好的程序燒寫進(jìn)STM32最小系統(tǒng)運行,通過觀察外圍電路和使用萬用表檢測相對應(yīng)的參數(shù)對程序和模型電路進(jìn)行檢測,對軟件和硬件正確性和實用性進(jìn)行驗證。智能載重機器人實物如圖10所示。
5 結(jié)束語
本設(shè)計完成了基于STM32最小系統(tǒng)的智能載重機器人小車的設(shè)計,此課設(shè)的過程主要包括了硬件電路設(shè)計和軟件程序的編寫兩個部分。從確定此次的設(shè)計,到查閱資料確定總體方案設(shè)計,總體方案論證,硬件電路的設(shè)計、硬件電路的優(yōu)化、軟件的設(shè)計、軟件的優(yōu)化、焊制硬件電路板、檢驗硬件電路、調(diào)試軟件程序到最后的軟硬件聯(lián)調(diào),其中的每一個過程都是精心設(shè)計、仔細(xì)完成的。通過本課題的研究,讓智能載重機器人小車的功能與技術(shù)得到了驗證。
在設(shè)計基于STM32的智能載重機器人小車的過程中,不僅實現(xiàn)了小車的自動控制和路徑規(guī)劃,還通過集成多種傳感器和執(zhí)行器,實現(xiàn)了小車的智能感知和交互。通過這一設(shè)計過程,不僅提高了自身的技術(shù)水平,也深刻理解了智能載重機器人小車在現(xiàn)代工業(yè)自動化和物流運輸領(lǐng)域的重要作用。
總之,基于STM32的智能載重機器人小車的設(shè)計過程是一次富有挑戰(zhàn)和創(chuàng)新的實踐。通過這一過程,不僅提高了自身的技術(shù)水平,也深刻認(rèn)識到了智能機器人技術(shù)在現(xiàn)代工業(yè)自動化和物流運輸領(lǐng)域的重要作用。在未來,我們將繼續(xù)努力,不斷提高自身的技術(shù)能力和創(chuàng)新能力,為智能機器人技術(shù)的發(fā)展和應(yīng)用做出更大的貢獻(xiàn)。
參考文獻(xiàn):
[1] 黃文智,李玲.基于STM32單片機的自動繞障行走小車設(shè)計[J].通信與信息技術(shù),2023(5):29-32.
[2] 田杰,胡秋霞,楊畢康.基于STM32的物流搬運小車控制系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2023,46(18):172-176.
[3] 姚慶,穆懷輝,王瑞紅.智能避障小車的設(shè)計與開發(fā)[J].南方農(nóng)機,2023,54(18):161-164.
[4] 付裕.基于單片機STM32的搬運機器人控制系統(tǒng)設(shè)計與實現(xiàn)[J].無線互聯(lián)科技,2023,20(5):39-42.
[5] 劉昌林.基于STM32單片機的智能避障小車設(shè)計[J].科技風(fēng),2022(23):1-3.
[6] 周健,徐志國.基于STM32的智能循跡機器人的設(shè)計[J].集成電路應(yīng)用,2020,37(2):45-47.
[7] 陳桐煥,賴忠喜,金煒翔.基于STM32的運輸機器人小車設(shè)計[J].電子技術(shù)與軟件工程,2022(17):124-127.
[8] 王輝,沈淑濤,鞠昊翀.基于STM32單片機的智能搬運機器人的設(shè)計[J].計算機產(chǎn)品與流通,2020(2):90-91.
【通聯(lián)編輯:朱寶貴】