杭州科技職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院 杭州 311402
象棋作為中國(guó)傳統(tǒng)文化的一部分,是一種在人們業(yè)余休閑生活中極常見的娛樂(lè)方式[1]。較多研究機(jī)構(gòu)采用機(jī)器視覺作為識(shí)別定位棋子的方法[2-5],在考慮研制成本、應(yīng)用范圍、娛樂(lè)性和觀賞性等方面后,筆者研制了一款基于無(wú)線射頻識(shí)別(RFID)技術(shù)的自識(shí)別象棋機(jī)[6],并在文獻(xiàn)[6]的基礎(chǔ)上,對(duì)自識(shí)別象棋機(jī)的控制系統(tǒng)進(jìn)行設(shè)計(jì)。
控制系統(tǒng)采用STC12C5A60S2單片機(jī)對(duì)各個(gè)模塊進(jìn)行控制[7-8]。集棋模塊電路包括一個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)器和一個(gè)RFID檢測(cè)模塊,用于棋子的收集、分離和檢測(cè)。擺棋模塊電路包括兩個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)器、兩個(gè)光電傳感器和一個(gè)機(jī)械卡爪舵機(jī),用于棋子的精確擺放。升降模塊電路主要由支撐架、電動(dòng)推桿和棋面平臺(tái)組成。電源模塊采用LM2596電源芯片,可將24 V輸入電壓降壓為5 V,為單片機(jī)供電??刂葡到y(tǒng)電路框圖如圖1所示。
▲圖1 控制系統(tǒng)電路框圖
集棋模塊電路主要由電機(jī)驅(qū)動(dòng)電路和RFID檢測(cè)電路組成。步進(jìn)電機(jī)驅(qū)動(dòng)器與電機(jī)連接比較簡(jiǎn)單,直接與電機(jī)繞組相連即可。電機(jī)驅(qū)動(dòng)電路中,步進(jìn)電機(jī)驅(qū)動(dòng)器的CP+控制脈沖信號(hào)正極連單片機(jī)的P0.4引腳,DIR+方向信號(hào)正極連單片機(jī)的P0.5引腳[9]。RFID檢測(cè)電路中,MF-RC522讀取芯片有IRQ (中斷請(qǐng)求)、NSS(串行數(shù)據(jù)信號(hào))、SCK(串行時(shí)鐘)、MOSI(主出從入)、MISO(主入從出)、RST(復(fù)位電路)等數(shù)據(jù)接口,其中:IRQ接口可以不連接;NSS接口與P2.7引腳相連,是進(jìn)行數(shù)據(jù)傳輸時(shí)向數(shù)據(jù)連接線輸出數(shù)據(jù)的接口;SCK接口與P2.6引腳相連,向單片機(jī)提供時(shí)鐘信號(hào);MOSI接口與P2.5引腳相連,實(shí)現(xiàn)主器件數(shù)據(jù)的輸出及從器件數(shù)據(jù)的輸入;MISO接口與P2.4引腳相連,實(shí)現(xiàn)主器件數(shù)據(jù)的輸入及從器件數(shù)據(jù)的輸出;RST接口與P2.3引腳相連,實(shí)現(xiàn)電路復(fù)位。集棋模塊電路連接如圖2所示。
▲圖2 集棋模塊電路連接
擺棋模塊電路包括三坐標(biāo)定位機(jī)構(gòu)的兩路步進(jìn)電機(jī)驅(qū)動(dòng)電路、兩路光電傳感器連接電路和舵機(jī)連接電路,如圖3所示。步進(jìn)電機(jī)驅(qū)動(dòng)器將單片機(jī)發(fā)出的脈沖信號(hào)轉(zhuǎn)換為步進(jìn)電機(jī)的角位移信號(hào),CP+控制脈沖信號(hào)正極連單片機(jī)P1.3和P1.5引腳,DIR+方向信號(hào)正極連單片機(jī)P1.4和1.6引腳。舵機(jī)轉(zhuǎn)動(dòng)帶動(dòng)齒輪實(shí)現(xiàn)機(jī)械卡爪抓取的功能,舵機(jī)的信號(hào)口與單片機(jī)的P0.0引腳相連。光電傳感器起限位作用,其中,光電傳感器1的信號(hào)口與P0.1引腳相連,光電傳感器2的信號(hào)口與P0.2引腳相連,兩者的控制方式為低電平有效。
▲圖3 擺棋模塊電路連接
升降模塊電路主要由電動(dòng)推桿連接電路和直流電機(jī)驅(qū)動(dòng)電路組成,如圖4所示。直流電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)電動(dòng)推桿,單片機(jī)向直流電機(jī)驅(qū)動(dòng)器發(fā)送信號(hào)。電壓從直流電機(jī)驅(qū)動(dòng)器A端輸出,連接到電動(dòng)推桿VCC和GND端。單片機(jī)的P1.0和P1.1引腳與直流電機(jī)驅(qū)動(dòng)器的信號(hào)口連接,當(dāng)P1.0置1、P1.1置0時(shí),電機(jī)正轉(zhuǎn),反之,則電機(jī)反轉(zhuǎn)。
▲圖4 升降模塊電路連接
以RFID識(shí)別反饋和單片機(jī)控制電機(jī)運(yùn)動(dòng)為主程序,具體運(yùn)行過(guò)程是:把棋子集入集棋模塊,按下啟動(dòng)按鈕,在延時(shí)10 s后棋面下降;此時(shí)棋子分離機(jī)構(gòu)的電機(jī)轉(zhuǎn)動(dòng),帶動(dòng)凹形輪使一顆棋子落到夾取平臺(tái);再通過(guò)MF-RC522芯片進(jìn)行棋子識(shí)別,如果棋子被檢測(cè)到,那么分離機(jī)構(gòu)電機(jī)停止轉(zhuǎn)動(dòng),否則繼續(xù)轉(zhuǎn)動(dòng);被檢測(cè)到的棋子被機(jī)械卡爪夾取,并由三坐標(biāo)機(jī)構(gòu)進(jìn)行擺放,直至32顆棋子擺放完成后,棋面上升。
棋子放入集棋機(jī)構(gòu),步進(jìn)電機(jī)轉(zhuǎn)動(dòng),使其中一顆棋子下落到夾取平臺(tái)。通過(guò)MF-RC522芯片對(duì)棋子進(jìn)行身份識(shí)別,識(shí)別身份反饋給單片機(jī)進(jìn)行信息處理。棋子識(shí)別完畢后,電機(jī)停止工作,若未識(shí)別完成,則電機(jī)繼續(xù)轉(zhuǎn)動(dòng)。集棋模塊程序流程如圖5所示。
▲圖5 集棋模塊程序流程
擺棋模塊由三坐標(biāo)定位機(jī)構(gòu)和機(jī)械卡爪組成,能夠?qū)崿F(xiàn)棋子抓取與棋子擺放的功能。其中:舵機(jī)控制卡爪,然后由三坐標(biāo)定位機(jī)構(gòu)實(shí)現(xiàn)棋子的位移;夾取平臺(tái)處的檢測(cè)模塊將檢測(cè)到的棋子信息發(fā)至單片機(jī)進(jìn)行識(shí)別,之后單片機(jī)將脈沖脈沖數(shù)據(jù)發(fā)送至步進(jìn)電機(jī),使機(jī)械卡爪運(yùn)動(dòng)到夾取平臺(tái)處;卡爪夾起棋子,并把棋子抓取至指定位置。擺棋模塊程序流程如圖6所示。
▲圖6 擺棋模塊程序流程
升降模塊由支撐架、電動(dòng)推桿和升降棋面組成,利用單片機(jī)對(duì)電動(dòng)推桿進(jìn)行控制,實(shí)現(xiàn)升降功能。當(dāng)識(shí)別完32顆棋子信號(hào)并擺放完成后,將信號(hào)反饋給單片機(jī),再由單片機(jī)發(fā)送信號(hào)至直流電機(jī)驅(qū)動(dòng)器,使電動(dòng)推桿上升。下降時(shí),觸發(fā)啟動(dòng)按鈕,并由定時(shí)器產(chǎn)生20 ms延時(shí),然后單片機(jī)發(fā)送信號(hào),使電動(dòng)推桿下降。升降模塊程序流程如圖7所示。
▲圖7 升降模塊程序流程
為了驗(yàn)證控制系統(tǒng)的正確性,采用3030鋁合金型材搭建了實(shí)物模型,進(jìn)行了大量試驗(yàn)。試驗(yàn)結(jié)果表明,自識(shí)別象棋機(jī)控制系統(tǒng)能按分離棋子(圖8)、抓取棋子(圖9)、擺放棋子(圖10)和升降棋子(圖 11)的步驟完成象棋的自動(dòng)擺放,節(jié)省了整理象棋的時(shí)間,提高了弈者的興趣。
▲圖8 分離棋子
▲圖9 抓取棋子
▲圖10 擺放棋子
▲圖11 升降棋子