杭州科技職業技術學院機電工程學院 杭州 311402
象棋作為中國傳統文化的一部分,是一種在人們業余休閑生活中極常見的娛樂方式[1]。較多研究機構采用機器視覺作為識別定位棋子的方法[2-5],在考慮研制成本、應用范圍、娛樂性和觀賞性等方面后,筆者研制了一款基于無線射頻識別(RFID)技術的自識別象棋機[6],并在文獻[6]的基礎上,對自識別象棋機的控制系統進行設計。
控制系統采用STC12C5A60S2單片機對各個模塊進行控制[7-8]。集棋模塊電路包括一個步進電機驅動器和一個RFID檢測模塊,用于棋子的收集、分離和檢測。擺棋模塊電路包括兩個步進電機驅動器、兩個光電傳感器和一個機械卡爪舵機,用于棋子的精確擺放。升降模塊電路主要由支撐架、電動推桿和棋面平臺組成。電源模塊采用LM2596電源芯片,可將24 V輸入電壓降壓為5 V,為單片機供電。控制系統電路框圖如圖1所示。

▲圖1 控制系統電路框圖
集棋模塊電路主要由電機驅動電路和RFID檢測電路組成。步進電機驅動器與電機連接比較簡單,直接與電機繞組相連即可。電機驅動電路中,步進電機驅動器的CP+控制脈沖信號正極連單片機的P0.4引腳,DIR+方向信號正極連單片機的P0.5引腳[9]。RFID檢測電路中,MF-RC522讀取芯片有IRQ (中斷請求)、NSS(串行數據信號)、SCK(串行時鐘)、MOSI(主出從入)、MISO(主入從出)、RST(復位電路)等數據接口,其中:IRQ接口可以不連接;NSS接口與P2.7引腳相連,是進行數據傳輸時向數據連接線輸出數據的接口;SCK接口與P2.6引腳相連,向單片機提供時鐘信號;MOSI接口與P2.5引腳相連,實現主器件數據的輸出及從器件數據的輸入;MISO接口與P2.4引腳相連,實現主器件數據的輸入及從器件數據的輸出;RST接口與P2.3引腳相連,實現電路復位。集棋模塊電路連接如圖2所示。

▲圖2 集棋模塊電路連接
擺棋模塊電路包括三坐標定位機構的兩路步進電機驅動電路、兩路光電傳感器連接電路和舵機連接電路,如圖3所示。步進電機驅動器將單片機發出的脈沖信號轉換為步進電機的角位移信號,CP+控制脈沖信號正極連單片機P1.3和P1.5引腳,DIR+方向信號正極連單片機P1.4和1.6引腳。舵機轉動帶動齒輪實現機械卡爪抓取的功能,舵機的信號口與單片機的P0.0引腳相連。光電傳感器起限位作用,其中,光電傳感器1的信號口與P0.1引腳相連,光電傳感器2的信號口與P0.2引腳相連,兩者的控制方式為低電平有效。

▲圖3 擺棋模塊電路連接
升降模塊電路主要由電動推桿連接電路和直流電機驅動電路組成,如圖4所示。直流電機驅動器驅動電動推桿,單片機向直流電機驅動器發送信號。電壓從直流電機驅動器A端輸出,連接到電動推桿VCC和GND端。單片機的P1.0和P1.1引腳與直流電機驅動器的信號口連接,當P1.0置1、P1.1置0時,電機正轉,反之,則電機反轉。

▲圖4 升降模塊電路連接
以RFID識別反饋和單片機控制電機運動為主程序,具體運行過程是:把棋子集入集棋模塊,按下啟動按鈕,在延時10 s后棋面下降;此時棋子分離機構的電機轉動,帶動凹形輪使一顆棋子落到夾取平臺;再通過MF-RC522芯片進行棋子識別,如果棋子被檢測到,那么分離機構電機停止轉動,否則繼續轉動;被檢測到的棋子被機械卡爪夾取,并由三坐標機構進行擺放,直至32顆棋子擺放完成后,棋面上升。
棋子放入集棋機構,步進電機轉動,使其中一顆棋子下落到夾取平臺。通過MF-RC522芯片對棋子進行身份識別,識別身份反饋給單片機進行信息處理。棋子識別完畢后,電機停止工作,若未識別完成,則電機繼續轉動。集棋模塊程序流程如圖5所示。

▲圖5 集棋模塊程序流程
擺棋模塊由三坐標定位機構和機械卡爪組成,能夠實現棋子抓取與棋子擺放的功能。其中:舵機控制卡爪,然后由三坐標定位機構實現棋子的位移;夾取平臺處的檢測模塊將檢測到的棋子信息發至單片機進行識別,之后單片機將脈沖脈沖數據發送至步進電機,使機械卡爪運動到夾取平臺處;卡爪夾起棋子,并把棋子抓取至指定位置。擺棋模塊程序流程如圖6所示。

▲圖6 擺棋模塊程序流程
升降模塊由支撐架、電動推桿和升降棋面組成,利用單片機對電動推桿進行控制,實現升降功能。當識別完32顆棋子信號并擺放完成后,將信號反饋給單片機,再由單片機發送信號至直流電機驅動器,使電動推桿上升。下降時,觸發啟動按鈕,并由定時器產生20 ms延時,然后單片機發送信號,使電動推桿下降。升降模塊程序流程如圖7所示。

▲圖7 升降模塊程序流程
為了驗證控制系統的正確性,采用3030鋁合金型材搭建了實物模型,進行了大量試驗。試驗結果表明,自識別象棋機控制系統能按分離棋子(圖8)、抓取棋子(圖9)、擺放棋子(圖10)和升降棋子(圖 11)的步驟完成象棋的自動擺放,節省了整理象棋的時間,提高了弈者的興趣。

▲圖8 分離棋子

▲圖9 抓取棋子

▲圖10 擺放棋子

▲圖11 升降棋子