劉衛華 戴健雄



摘要:結合華北五省擂臺機器人比賽規則,采用STM32微處理器為主控制器設計硬件系統, STM32微處理器具有設計周期短、成本低等優點。本文闡述基于STM32構建系統組成、工作原理及軟件設計。觀測數據可通過OLED顯示,也可通過串口傳給計算機。實驗結果表明,系統工作可靠,電路結構簡單。
Abstract: Combining the competition rules of the robot competition in the five provinces of North China, the STM32 microprocessor is used as the main controller to design the hardware system. The STM32 microprocessor has the advantages of short design cycle and low cost. This article describes the composition, working principle and software design of the STM32-based construction system. Observed data can be displayed via OLED or transmitted to a computer via a serial port. The experimental results show that the system works reliably and the circuit structure is simple.
關鍵詞:STM32;PI;傳感器;機器人
Key words: STM32;PI;sensor;robot
中圖分類號:TP242? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)09-0034-03
0? 引言
為了培養和開發大學生的聰明才智與創新精神,展示當代大學生機器人制作能力與高新技術應用水平,國內各類機器人大賽得到眾多大學生的積極響應和參與。其中擂臺機器人賽由于場地需求小、操作安全和觀賞性強,國內已有多所高校進行相關研究并設計了多種方案。由于我國51單片機課程開設廣泛,應用成熟,眾多方案中大多采用51單片機作為處理器,但由于51單片機運算速度慢,抗干擾能力不強,嚴重影響了機器人的快速和穩定。本文以高達72M時鐘的STM32處理器為機器人的主控器,使用模擬量紅外測距傳感器設計新型的擂臺機器人控制系統,具有探測目標精度高,速度快并能加入PI算法實現機器的快速、機動靈活控制。
1? 系統總體構成
系統選用ST公司的型號為STM32F103ZE微控制器作為主控制器,這是一款基于ARM公司Cortex.M3內核的STM32系列微處理器,秉承底層函數公開的原則,便于用戶更深層次的開發。STM32F103ZE具有112個GPIO端口和512KB閃存及64KB能以0周期訪問的SRAM,其豐富的外設接口USB、CAN、USART、ADC、PWM、SPI等,便于外設擴展,內置3個12位高速ADC模塊,便于模擬量的采集。
基于STM32微處理器設計擂臺機器人控制系統框圖,如圖1所示。測距傳感器、邊界傳感器、區域傳感器作為機器人的“眼睛”,完成對方機器人進行目標、邊界、區域的檢測。STM32微處理器通過12位AD數模轉換完成外部的信號采集、轉換和處理,經過PI算法處理形成快速反應,驅動j電路控制電機作出正確的方向運動。為了方便調試和操作,通過OLED模塊實時顯示采集的數據和運行狀態。
2? 主要硬件電路
2.1 傳感器模塊
測距傳感器使用夏普的紅外距離傳感器GP2Y0A02YK0F,其輸出模擬電壓與距離成反比關系。紅紅外距離傳感器由紅外發射管與接收管組成,紅外光照射到物體并反射,反射強度與物體距離有關,根據接收到的反射光強弱判斷距離,為模擬量輸出。邊界傳感器使用E18-D80NK,為開關量輸出。邊界測量可根據現場環境進行調節E18-D80NK上的電位器達合適的測量條件。擂臺上的顏色由中心向外漸變加深的,區域傳感器使用灰度傳感器來定位車體大致區域。
2.2 電機驅動
良好的電機驅動系統使武術擂臺機器人強勁有力,也是武術擂臺取勝的關鍵部件。由L293或L298全橋芯片構成的直流電機驅動系統,由于簡便、成本低廉,得到了廣泛應用,但由于內阻較大,在大電流時芯片發熱嚴重,系統的整體效率較低,表現在機器人上,由于電機控制芯片內阻過大導致機器人的加速度變小,不適合應用在需要快速機動的武術擂臺比賽場合。
基于STM32的擂臺機器人驅動電路,如圖2所示。Q1、Q3和Q2、Q4組成H橋,控制電機的正轉和反轉。驅動的MOS管均為N溝道器件,并且上下橋控制電壓不同,為了方便實現N溝道MOS管驅動,這里選用專門橋驅動芯片IR2104。STM32控制器產生的PWM信號輸入IR2014的SD引腳作為轉速信號,主控制器DIRA/DIRB輸出至驅動芯片IN管腳作為轉向信號。
2.3 電機過流保護電路
在控制電機過程中常常與對手碰撞,并且頻繁換向,為了防止電機出現超載或堵轉而使得電樞繞組電流過大燒毀電機甚至引發火災,以及解決電機啟動時啟動電流很大,不能直接啟動,需要等勵磁繞組逐漸建立磁場后再正常運行的問題,專門設計了電機過流保護電路。電機過流保護電路原理圖,如圖3所示。電機電流通過在康銅絲產生的壓降,經過運算放大器LM358對其電壓信號進行放大后的模擬量送至STM32控制器進行模數轉換,同時將經過LM339電壓比較器,比較后的數字量送至控制器,以上信息經處理后控制電機驅動電路起到過流保護作用。
3? 軟件設計
軟件設計思路是擂臺機器人根據傳感器的測量數據經處理后,通過PWM和DIR信號控制電機驅動電路實現直流電機的轉速和方向控制。系統軟件要實現的功能如下:采集各路傳感器數據;設定電機的轉速和方向;電機轉速連續可調并具有良好的動態和靜態性能;速度控制采用PI算法加快響應速度;具有電機保護功能,當電機出現堵轉、電流過大時能停止。系統整體流程圖,如圖4所示。
3.1 上臺程序
上臺程序主要完成擂臺機器人的自主上擂臺功能。比賽開始后機器人啟動,通過測距傳感器和邊界傳感器,找到最近的擂臺邊緣,并對正,然后快速啟動電機上擂臺。
3.2 目標檢測程序
目標檢測程序主要是完成對抗方機器人的位置檢測,同時保證通過邊界傳感器和區域傳感器,了解自己的位置,保證在進行攻擊時不掉下擂臺。因在整個比賽過程中需要實時檢測對方機器人的位置,所以目標檢測程序需一直循環進行。
3.3 電機控制程序
電機控制程序實現機器人靈活、高效及快速反應,根據上臺程序、目標檢測程序傳來的數據進行實時有效的分析,控制直流電機的轉速和方向,并根據過流保防電路提供的實時電流信息,實現電機的快速啟動和保護。
4? 結束語
本文設計的基于STM32的擂臺機器人,能實現擂臺機器人競賽的規則要求,具有低成本、控制方便、擴展方便等優點。此平臺可作為機器人基礎教學平臺,實現傳感器應用、電機控制、嵌入式系統程序設計等課題學習。
參考文獻:
[1]王永虹,徐煒,等.STM32 系列 ARM Cortex-M3 微控制器原理與實踐[M].2008:26-40.
[2]ARM Limited. ARM Cortex-M3 Technical Reference Manual, 2006.
[3]曾謝華,等.基于紅外傳感器的智能燈控裝置設計[J].昆明冶金高等專科學校學報,2011,27(1):31-35.
作者簡介:劉衛華(1977-),男,江蘇海安人,實驗師,研究方向為嵌入式系統。