張健 蒙靚
摘 要自主移動機器人是經(jīng)過內(nèi)外部傳感器分析外部環(huán)境與自身情況,在障礙物環(huán)境中實現(xiàn)對目標的自主移動,進而實現(xiàn)相關操作的機器人系統(tǒng)。其含有單片機、傳感器、通信接口以及人工智能等領域的相關技術,本文將研究的為基于STM32輪式移動機器人。
【關鍵詞】移動機器人 傳感器 人工智能
STM32為系列微控制器,是ST公司推出的基于Cortex-M3內(nèi)核處理器,其可以實現(xiàn)高速的運算,同時外設的配置可以帶來極為優(yōu)異的控制與連接能力。具有先進的內(nèi)核結構、優(yōu)異的功耗控制以及性能出眾的高度集成,可以作為智能移動機器人的控制芯片系統(tǒng)。
1 輪式移動機器人的硬件設計
1.1 系統(tǒng)的總體方案
對于輪式移動機器人的總體設計,控制系統(tǒng)極為重要,其是整個系統(tǒng)的核心。本文設計的智能輪式移動機器人,含有障礙物檢測、自主定位以及避障等功能。依賴于這些功能,研究的控制系統(tǒng)含有:電源模塊、微控制器模塊、電機驅(qū)動模塊、通訊擴展模塊等。系統(tǒng)的結構如圖1所示。
1.2 電源系統(tǒng)的設計
主控器的電壓為+3.3V,電機驅(qū)動所需要的電源為+12V,為此選擇+12V作為系統(tǒng)的主電源,+3.3V經(jīng)過電路內(nèi)部添加電源轉(zhuǎn)換芯片獲取。轉(zhuǎn)換芯片為LM1117進行,在輸入與輸出兩側(cè)添加電容,降低了電源擾動的干擾,使得系統(tǒng)的可靠性大幅度提升。
1.3 微控制器模塊的設計
本系統(tǒng)采用的為ST公司半導體生產(chǎn)的STM32芯片作為移動機器人的中央控制器,工作的頻率可以達到72MHz,實現(xiàn)高速的運轉(zhuǎn)。內(nèi)含有高速儲存器,豐富的增強型I/O端口與連接兩條APB總線外設,實現(xiàn)了對于外設備的控制與聯(lián)通。處理器含有多種低功耗模式與靈活的時鐘控制模式,可以依賴于設計的需要開展合理的配置。
基于主控器STM32的最小系統(tǒng)硬件電路含有電源控制、復位電路、晶振電路以及JTAG接口電路等。對于電源控制電路,為提升轉(zhuǎn)換的精確度,ADC使用的是獨立電源,自動屏蔽來自印刷電路板上面的毛刺干擾。在復位電路模塊,復位操作主要是對于系統(tǒng)開展新的初始化,除了開展正常的開啟之外,在程序運行出錯或者是系統(tǒng)鎖死的情況下,都是可以通過復位開展系統(tǒng)的初始化,本文采用的按鈕復位的模式。
對于晶振電路,STM32上電復位之后默認使用其內(nèi)部的晶振,如果外部連接的為8MHz晶振,可以自動的切換到外部的8MHz晶振,并最終PLL倍頻率到72MHz,本系統(tǒng)設計的為8MHz外部晶振,同時連接的32KHz是為RTC提供時鐘信號。向主控制器下載程序采用的為JTAG接口,其為國際標準的測試協(xié)議,其應用于實現(xiàn)ISP,也就是對于控制器所含有的FLASH等器件進行編程操作。
1.4 障礙物的檢測
本文采用的為紅外光電傳感器,其通過物體對紅外光電輻射出的紅外線產(chǎn)生的有無強弱而檢測物體的有無。光電開關會將輸入的電流 轉(zhuǎn)變?yōu)楣庑盘栞敵?,接收模塊通過判定接收的光線強弱與有無對于目標進行探測。
本文選擇的紅外開關性能參數(shù)如下所示:電壓為5VDC,電流為100mA,測量的范圍是3-50cm。本文選擇的紅外開關為數(shù)字型傳感器,正常情況下沒有檢測到障礙物時傳感器輸出為高電平,在檢測到障礙物的時候傳感器輸出的為低電平。實際測量的死后,將光電開關連接的I/O口設置為下降沿觸發(fā)中斷,如果主控器檢測是障礙物引起的中斷后,就可以判斷到底為哪一路光電開關檢測到的障礙物,進而判定障礙物的確切位置,進而采取相關的措施來規(guī)避。
1.5 電機驅(qū)動模塊
輪式移動機器人使用的為直流電機實現(xiàn)其行走功能,行走的時候為前后兩個方向,避開障礙物的時候需要調(diào)速電機調(diào)節(jié)速度實現(xiàn)轉(zhuǎn)向。轉(zhuǎn)動方向的變換通過改變所加載的電壓極性實現(xiàn),電機的驅(qū)動芯片為L293D,不僅使得硬件的電路極為簡化,同時輸出功率大幅度增加,有利于電機轉(zhuǎn)速的穩(wěn)定。
L293D電機驅(qū)動芯片服從的為TTL接口的標準,其直接的用來驅(qū)動一些功率較大的負載,通過對于芯片的控制信號輸入端開展邏輯的編輯就可以實現(xiàn)電機驅(qū)動電壓的極性變化,也就是形式方向的調(diào)整。同時因為L293D芯片在工作的時候發(fā)熱量較低,體積小等特色,芯片可以獨立的控制兩個電機,為此十分適合于本文的需求。
2 系統(tǒng)的程序設計
輪式移動機器人控制的程序主要任務是實現(xiàn)系統(tǒng)的初始化,處理紅外傳感器測距、電機驅(qū)動以及轉(zhuǎn)速檢測、外部無線通信指令接收等。在接收得到外部指令的時候,會執(zhí)行相關的程序,假如沒有接收指令,則運算的是障礙物的檢測程序,假如檢測前方?jīng)]有障礙物出現(xiàn),移動機器人向目標行走。如果傳感器檢測到前方具有障礙物,則進入到避障處理的子程序,移動機器人實施其含有的避障操作,最后通過CAN實現(xiàn)數(shù)據(jù)的收發(fā)。如圖2所示。
3 結束語
本文設計的輪式移動機器人,不管是在科學探索領域還是工業(yè)領域都具有十分重要的應用,其是基于STM32為主控器,系統(tǒng)完成的工作含有以下幾個層面:
首先在充分考慮智能輪式移動機器人結構的技術上,通過STM32作為移動機器人的控制核心,實現(xiàn)各個功能為電源模塊、微控制模塊、障礙物檢測模塊以及電機驅(qū)動模塊等。通過Keil MDK開展軟件的編寫,為后續(xù)的維護以及代碼升級等提供了便利。
參考文獻
[1]徐鼎新,符秀輝.基于STM32芯片的移動機器人的避障研究[J].電子技術與軟件工程,2016(20):132-133.
[2]萬軍,呂值敏,文方國.基于STM32平衡兩輪移動機器人的設計與實現(xiàn)[J].電子世界,2016(07):145-147.
[3]沈友建,黃孝鵬,肖建東等.基于STM32的機器人自主移動控制系統(tǒng)設計[J].微型機與應用,2016,35(18):58-61.
[4]邊明明.基于STM32F103的移動智能車硬件設計[J].煤炭技術,2014,33(08):183-185.
作者單位
長沙理工大學物理與電子科學學院 湖南省長沙市 410114