最近幾年機器人的發(fā)展越來越快,因此市面上產(chǎn)生了很多各種各樣的機器人教學平臺。同時在國內(nèi)有Robocon和RoboMaster這兩個比較熱門的機器人大賽,國內(nèi)許多的高校也會以這兩個比賽為主題,開展相應(yīng)的競技與教學。在大多數(shù)參賽高校中,絕大多數(shù)高校都選用的Arduino、STM32作為機器人的控制平臺,其中STM32是意法半導(dǎo)體旗下的一個系列的微控制器,該芯片系列眾多,芯片資源豐富,適用于各個領(lǐng)域。因其工具及庫的普及與完善,越來越受到開發(fā)者的喜歡。同時STM32相對于Arduino而言,其性能強大,外設(shè)豐富,易于開發(fā)等等越來越受到大家的重視。市面上的STM32教學平臺,沒有針對機器人這領(lǐng)域,對開發(fā)板進行量體裁衣,導(dǎo)致性價比不高。同時新手在把普通的開發(fā)板用于項目時,常常因缺乏保護會導(dǎo)致各種損壞。因此,那些學習機器人技術(shù)的對于教學平臺的穩(wěn)定性、可靠性、可拓展性的要求會越來越高。接下來重點介紹此次設(shè)計的機器人基礎(chǔ)教學平臺的硬件設(shè)計與其搭建測試。
在設(shè)計整個教學平臺時需要考慮到整個硬件平臺的整體尺寸、外設(shè)功能和硬件平臺具備一定保護功能。因此,這個教學平臺的硬件設(shè)計分為主控核心板和控制器轉(zhuǎn)接板。該硬件平臺具有如下的特點:①主控核心板與控制器轉(zhuǎn)接板分離后可單獨使用;②接線方便,只需要一根micro-usb數(shù)據(jù)線就可以實現(xiàn)程序的燒錄以及仿真;③教學平臺硬件電路中帶有保護電路,在接錯線的情況下不易于燒毀;④教學平臺具有很好的通用性與可擴展性,以實現(xiàn)比較多的功能;⑤教學平臺的尺寸與樹莓派的尺寸相差不大,并且在外接12V電源的情況下可以給樹莓派供電。
教學平臺的硬件設(shè)計方案主要分為主控核心板的設(shè)計和控制器轉(zhuǎn)接板的設(shè)計。主控核心板是基于STM32F103RCT6芯片為核心,在這基礎(chǔ)上與其他的外圍電路進行配合而設(shè)計,同時根據(jù)此次教學平臺的設(shè)計要求,設(shè)計相應(yīng)的電源電路、保護電路、SD卡接口電路、程序仿真電路、按鍵電路、主控核心板通信電路、OLED接口電路。同時讓主控核心板可以實現(xiàn)與轉(zhuǎn)接板對接,將相應(yīng)的IO口引出來。
控制器轉(zhuǎn)接板的設(shè)計是以主控核心板為基礎(chǔ),擴展教學平臺的功能。根據(jù)此次教學平臺的設(shè)計要求,設(shè)計相應(yīng)的電源電路、保護電路、MPU6050電路、轉(zhuǎn)接板通信電路。同時,為了讓主控核心板安裝在控制器轉(zhuǎn)接板上時可以保持原本主控核心板的通用性,轉(zhuǎn)接板上大部分的功能可以使用撥碼開關(guān)選擇需要使用的功能。
主控核心板上控制芯片的選擇將決定教學平臺的性能和成本。本次設(shè)計所選用的控制芯片為STM32 F103RCT6,該芯片從的尺寸不大,但又擁有39個可用的IO引腳,可以滿足這次設(shè)計的需求。
3.1.1 主控核心板電源電路設(shè)計
在核心板上,輸入的電源為5 V,而核心板上的其它芯片全部都是3.3 V,所以需要進行穩(wěn)壓才能給板上的芯片供電。此次設(shè)計中,核心板上用了兩個3.3 V的穩(wěn)壓,一個用于給ST-LINK電路供電,另一個是給Zigbee、STM32F103RCT6以及它的外圍電路供電。圖1中,VBUS和5V-IN這兩個個網(wǎng)絡(luò)標號分別表示從micro-usb接入的5 V電源和從外部接入的5 V電源。VCC3.3和3.3 V這兩個網(wǎng)絡(luò)標號分別表示給ST-LINK供電的3.3 V電源和給Zigbee、STM32F103RCT6以及它的外圍電路供電的3.3 V電源。這樣的設(shè)計可以在使用外部電源供電的時候ST-LINK不會啟動,而使用micro-usb供電時ST-LINK才會啟動。這樣在既方便電路的調(diào)試,又可以減少在不需調(diào)試時的功耗。
圖1 主控核心板電源電路
3.1.2 主控核心板調(diào)試及通信電路設(shè)計
在僅僅使用主控核心板的情況下,調(diào)試電路只能夠通過micro-usb與電腦連接進行ST-LINK仿真調(diào)試。通信的部分可以采用硬件SPI、IIC通信以及串口通信。其中,串口通信可以使用ST-LINK電路中自帶的虛擬串口進行與電腦通信,或是開啟給Zigbee供電的撥碼開關(guān),用Zigbee轉(zhuǎn)串口的無線通信的方式進行通信,也可以使用USB轉(zhuǎn)串口的通信模塊進行與主控核心板進行通信。(圖2所示的是CAN通信電路,圖3所示的是以太網(wǎng)通信電路)
圖2 CAN通信電路
圖3 以太網(wǎng)通信電路
3.1.3 主控核心板的其他電路的介紹
主控核心板中,為了增加顯示的部分,板上留有六針的OLED屏的接口,這些接口可以使用硬件SPI,也可以使用軟件模擬SPI的方式來擴展學習功能。同時增加設(shè)計TF卡槽的電路,可以讓核心板運行RT-thread系統(tǒng)來實現(xiàn)文件系統(tǒng)功能。最后將一些比較經(jīng)常用到的IO口通過排針引出來。Zigbee使用的PA2、PA3引腳擁有的功能比較多,所以也將這兩個引腳在主控核心板中引出來,在不使用無線串口通信的情況下把開關(guān)關(guān)閉,這樣PA2和PA3這兩個引腳也可以當作普通的IO使用。
控制器轉(zhuǎn)接板的電路作用主要是將外面輸入的電源進行穩(wěn)壓,給主控核心板以及其他需要5 V或3.3 V電壓供電的外接模塊供電,若是用20到30 V的輸入電源,控制器轉(zhuǎn)接板還可以輸出13.5 V的穩(wěn)壓電源,可以給一些10 V到20 V電源的外接模塊供電。同時,轉(zhuǎn)接板中還集成了一些功能模塊,如CAN通信模塊、MPU6050模塊、W5500以太網(wǎng)通信模塊。在連接上主控核心板后,這些模塊在需要使用的時候可以打開對應(yīng)的撥碼開關(guān),給這些電路供電。若是不使用的情況下可以把對應(yīng)的開關(guān)關(guān)閉,這樣的話可以不占用IO口。最后,在轉(zhuǎn)接板上添加一個CH340G的電路,為了方便改寫Zigbee參數(shù)而使用的,只有使用電腦通過數(shù)據(jù)線接上控制器轉(zhuǎn)接板的microusb接口才會啟動,在其他情況下它不會啟動,也不會占用IO口的資源。(圖4所示的是控制器轉(zhuǎn)接板的模塊連接電路)
圖4 控制器轉(zhuǎn)接板模塊連接電路
基礎(chǔ)教學平臺的硬件組成主要由主控核心板、控制器轉(zhuǎn)接板和OLED顯示屏模塊組成的。
4.2.1 基礎(chǔ)教學平臺的硬件保護功能測試
為了避免教學平臺的硬件在測試的時候出現(xiàn)問題而導(dǎo)致主控核心板損壞,所以先對控制器轉(zhuǎn)接板進行測試。在沒有安裝主控核心板前先對電源的穩(wěn)壓效果以及防反接保護電路的效果進行逐個測試。經(jīng)過測試后,基本可以實現(xiàn)對應(yīng)保護效果,因此可以得知此硬件平臺的穩(wěn)壓電源方面沒有問題并且還具備一定的保護作用。測試防反接的效果如圖5、圖6所示。
圖5 硬件平臺外接供電正常接入的效果圖
圖6 硬件平臺外接供電反接的效果圖
4.2.2 關(guān)鍵部分功能模塊測試
把教學平臺安裝好了之后,再對該平臺所使用的關(guān)鍵部分進行獨立的編程測試,以下進行了OLED模塊、Zigbee無線模塊、W5500以太網(wǎng)通信電路、MPU6050電路的測試,觀察此部分的運行狀況。如圖7、圖8、圖9所示。
圖7 OLED顯示屏輸出測試
圖8 Zigbee與MPU6050電路同步測試
圖9 W5500以太網(wǎng)通信信測試
4.2.3 基礎(chǔ)教學平臺與樹莓派組合使用
如圖10,為基礎(chǔ)教學平臺與樹莓派的適配組合。教學平臺除了自身可以利用CAN擴展很多從機設(shè)備外,其也可以通過以太網(wǎng)與樹莓派進行通信,以此來擴展很多豐富的應(yīng)用場景。
圖10 基礎(chǔ)教學平臺與樹莓派的組合
如圖11,為實際對戰(zhàn)平臺項目的應(yīng)用組合案例。
圖11 基礎(chǔ)教學平臺與樹莓派組合應(yīng)用案例
圖12中,電腦上位機作為從節(jié)點,負責監(jiān)控與調(diào)試。樹莓派4B作為ROS主節(jié)點,負責激光雷達的數(shù)據(jù)處理,并通過串口rosserial協(xié)議與STM32主控作數(shù)據(jù)交互。STM32主控負責IMU陀螺儀數(shù)據(jù)處理,并把STM32電機控制器的電機信息上傳與其IMU數(shù)據(jù)一并通過USART,反饋到樹莓派上去,做綜合運算。STM32電機驅(qū)動控制器,負責4個電機的精準控制,并通過CAN通信,把速度與位置信息上傳。
圖12 機器人系統(tǒng)架構(gòu)
如圖13所示,描述了一個自主導(dǎo)航機器人項目應(yīng)用搭建出來的機器人系統(tǒng)運行時所描述的機器人節(jié)點關(guān)系圖,每一個節(jié)點都是一個機器人軟件功能包。/move_base節(jié)點提供了一個ROS接口,用于配置、運行和與機器人上的導(dǎo)航功能包集進行交互;/amcl節(jié)點用于根據(jù)已經(jīng)有的地圖進行定位;/map_server節(jié)點提供作為ROS服務(wù)的地圖數(shù)據(jù);/tf保持對多坐標系的跟蹤并維護坐標系之間的關(guān)系于樹型結(jié)構(gòu)中,該話題被分發(fā)所以在ROS網(wǎng)絡(luò)中的有關(guān)所有坐標系的信息每個節(jié)點都可以獲得;/odom話題分發(fā)關(guān)于機器人里程計的傳感器數(shù)據(jù);/base_control節(jié)點具備解析控制指令中速度、角度的能力,并且最終通過這些指令控制機器人完成相應(yīng)的運動目標;/rplidarNode節(jié)點發(fā)布關(guān)于激光雷達的掃描數(shù)據(jù)的/scan話題。
圖13 機器人節(jié)點關(guān)系圖
自主導(dǎo)航機器人搭建實物,如圖14所示。該機器人基礎(chǔ)教學平臺,可以很好地應(yīng)用在各種機器人項目種,所以該平臺具備很好的項目應(yīng)用價值,既能保證平臺不容易損壞,也能大大縮短開發(fā)周期。
圖14 機器人移動平臺
本文提出了基于STM32的機器人基礎(chǔ)教學平臺研究與設(shè)計的方法,具有通用性特點的同時,本身還具有比較多功能模塊,可以滿足許多基礎(chǔ)學習的功能,若不使用集成的模塊,也可以將相應(yīng)的模塊功能關(guān)閉,減少功耗并且可以空出對應(yīng)的IO口。該基礎(chǔ)教學平臺適用于較寬電壓的供電電源,同時具備一定的保護功能。通過一系列的硬件測試得出每一部分的模塊電路都可以正常長時間使用,同時結(jié)合機器人移動平臺開發(fā)項目總體上都取得良好的效果,表明該機器人基礎(chǔ)教學平臺穩(wěn)定可靠,可以適用于機器人領(lǐng)域?qū)W習用途以及各種實際項目的使用上,具備一定的教育與應(yīng)用發(fā)展前景。