康俊杰 路明 羅馮婭 黎宇彬
摘? 要 系統(tǒng)主要由OpenMV、LCD屏、單片機(jī)和一臺(tái)小型機(jī)器人組成。OpenMV是系統(tǒng)的信號(hào)檢測(cè)傳感器,32單片機(jī)是系統(tǒng)的控制核心,機(jī)器人是由三個(gè)步進(jìn)電機(jī)和一個(gè)氣泵驅(qū)動(dòng)組成,作為系統(tǒng)的執(zhí)行器,LCD屏幕作為系統(tǒng)的反饋,以便觀察OpenMV與單片機(jī)是否通信成功。當(dāng)OpenMV攝像機(jī)開始檢測(cè)時(shí),攝像頭將對(duì)物塊的顏色進(jìn)行識(shí)別檢測(cè),并與事先按要求設(shè)定的參數(shù)進(jìn)行對(duì)比,從而判斷出當(dāng)前所檢測(cè)的物塊是否符合要求的,若符合要求,OpenMV攝像機(jī)就把數(shù)據(jù)傳輸給單片機(jī),單片機(jī)驅(qū)動(dòng)執(zhí)行器對(duì)該物塊進(jìn)行抓取,并在LCD屏幕上顯示該物塊的坐標(biāo),若不符合要求,則執(zhí)行器不動(dòng)。LCD屏幕上顯示“NO FIND”本文設(shè)計(jì)的自動(dòng)抓取裝置具有效率高、應(yīng)用廣、易操控等優(yōu)點(diǎn),在零售、工業(yè)抓取等領(lǐng)域有一定參考價(jià)值。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);OpenMV;自動(dòng)抓取;圖像識(shí)別
課題主要研究的內(nèi)容
在工業(yè)生產(chǎn)過程中,會(huì)需要搬運(yùn)一些零部件,目前,更多采用的是人工搬運(yùn),但人工效率低,且成本高。同時(shí),由于人會(huì)感覺累,需要休息一會(huì)后再開始搬運(yùn)。所以可以考慮機(jī)器人自動(dòng)抓取方式,這個(gè)過程就要求對(duì)物塊的顏色外觀進(jìn)行相應(yīng)的判斷,從而取抓取物塊。當(dāng)智能相機(jī)對(duì)物塊的顏色特征進(jìn)行檢測(cè),通過檢測(cè)幾何特征參數(shù)與先前拍取的完好的物塊或者符合要求的物塊進(jìn)行比對(duì),判斷物塊的形狀或顏色后,智能相機(jī)把數(shù)據(jù)傳輸給單片機(jī),單片機(jī)再將相應(yīng)數(shù)據(jù)輸出到步進(jìn)電機(jī)通過電機(jī)進(jìn)行控制機(jī)器人將符合設(shè)計(jì)要求的物塊抓取出去,然后放置在指定位置或者需要的地方。
1? 系統(tǒng)設(shè)計(jì)方案
見圖1所示。本設(shè)計(jì)是運(yùn)用OPENMV攝像頭、32單片機(jī)和機(jī)器人組成。主要實(shí)現(xiàn)機(jī)械臂對(duì)物塊的自動(dòng)抓取并放置,同時(shí)實(shí)現(xiàn)LCD模塊上顯示坐標(biāo)、手動(dòng)按鍵控制抓取等功能。本文主要從OPENMV、機(jī)械臂、LCD顯示屏、主控和PCB板五個(gè)方面介紹該系統(tǒng)的硬件設(shè)計(jì)。
1.1 OpenMV相機(jī)模塊
OpenMV的概述:: OpenMV是一個(gè)非常易用且低價(jià)的機(jī)器視覺開發(fā)組件,由于其強(qiáng)大的圖像處理能力,豐富的開源功能代碼庫,深受國內(nèi)外數(shù)十萬開發(fā)者的歡迎。OpenMV項(xiàng)目旨在通過開發(fā)一個(gè)用戶友好的、開源的、低成本的機(jī)器視覺平臺(tái),使機(jī)器視覺更易于初學(xué)者使用。OpenMV支持幀差分(運(yùn)動(dòng)檢測(cè))、標(biāo)記跟蹤、顏色跟蹤(最多同時(shí)支持32種顏色)、圖像捕獲(BMP/JPG/PPM/PGM)、視頻錄制(MJPEG/GIF)等功能。編程是在OpenMV IDE中使用微python語言完成的。你可以在OpenMV Cam文檔中找到更多詳細(xì)信息。
1.2 機(jī)械臂的選擇
本設(shè)計(jì)選擇的PL42B010B減速步進(jìn)電機(jī)小機(jī)械臂,2.5kG負(fù)載機(jī)械手減速步進(jìn)電機(jī),電機(jī)的機(jī)身長(zhǎng)34mm ,減速機(jī)的長(zhǎng)度:35mm,電機(jī)的扭力為:3N·m。該機(jī)械臂主要由三個(gè)步進(jìn)電機(jī)和一個(gè)氣泵直流電機(jī)組成,三個(gè)步進(jìn)電機(jī)控制機(jī)器人的底座、前軸、后軸的運(yùn)動(dòng),直流電機(jī)控制機(jī)器人末端的氣泵開關(guān),通電則開啟氣泵,斷電則關(guān)閉氣泵。
1.3 LCD顯示屏
本設(shè)計(jì)使用LCD12864模塊作為顯示部分。該模塊內(nèi)含簡(jiǎn)體中文字庫,可以顯示漢字和數(shù)字。該點(diǎn)陣的顯示屏成本相對(duì)較低,適用于各類儀器,小型設(shè)備的顯示領(lǐng)域。
1.4 主控
本設(shè)計(jì)使用stm32f103c8t6微控制器作為主控制器,STM32F103xx性能線系列結(jié)合了高性能ARM Cortex-M332位RISC核心,以72MHz頻率、高速嵌入內(nèi)存(閃存高達(dá)128K字節(jié)、SRAM高達(dá)20K字節(jié))以及連接到兩個(gè)APB總線的各種增強(qiáng)型I/O和外圍設(shè)備運(yùn)行。所有設(shè)備提供兩個(gè)12位ADC,三個(gè)通用16位定時(shí)器加上一個(gè)PWM定時(shí)器,和標(biāo)準(zhǔn)和高級(jí)通信接口[1]:多達(dá)兩個(gè)LC計(jì)算機(jī)和SPI,三個(gè)USART,一個(gè)USB和一個(gè)CAN。
1.5 PCB板設(shè)計(jì)
本設(shè)計(jì)是以stm32f103c8t6為主控芯片,設(shè)計(jì)出一塊實(shí)現(xiàn)驅(qū)動(dòng)步進(jìn)電機(jī)、串口通信、按鍵控制、LCD屏幕顯示等功能的PCB板。主要分為電源、驅(qū)動(dòng)器、燒錄口、LCD顯示、串口通信部分等。首先設(shè)計(jì)電源部分,通過兩個(gè)穩(wěn)壓芯片來保持+5V的電壓,為了實(shí)現(xiàn)對(duì)三個(gè)步進(jìn)電機(jī)的控制,運(yùn)用三個(gè)TB6612驅(qū)動(dòng)及逆行驅(qū)動(dòng),再設(shè)定兩個(gè)通信串口與LCD顯示屏和OPENMV進(jìn)行驅(qū)動(dòng),再設(shè)定手動(dòng)控制部分,程序燒錄部分支持USB和Jink燒錄。如圖2所示。
2 系統(tǒng)軟件設(shè)計(jì)
控制系統(tǒng)軟件與硬件電路緊密結(jié)合實(shí)現(xiàn)對(duì)機(jī)械臂的控制,本文主要從步進(jìn)電機(jī)的控制、坐標(biāo)轉(zhuǎn)換、顏色識(shí)別、串口通信和LCD顯示五個(gè)板塊進(jìn)行論述。
2.1步進(jìn)電機(jī)控制部分
目前市面上的步進(jìn)電機(jī)驅(qū)動(dòng)電路通常使用的驅(qū)動(dòng)芯片,缺點(diǎn)是驅(qū)動(dòng)能力弱。本設(shè)計(jì)選用的是基于 TB6612 驅(qū)動(dòng)芯片的步進(jìn)電機(jī)驅(qū)動(dòng)板,不僅驅(qū)動(dòng)能力強(qiáng),單路最大輸出電流 3A,而且采用了高速光耦,做到高速狀態(tài)不失步,可以很好的驅(qū)動(dòng)機(jī)械臂采用的步進(jìn)電機(jī)。步進(jìn)電機(jī)與控制板連接正確后,通過主控板向控制板的CW端輸入 5V 的高電平,電機(jī)反向旋轉(zhuǎn),輸入低電平正向旋轉(zhuǎn); EN 端低電平電機(jī)轉(zhuǎn)動(dòng),高電平則停止轉(zhuǎn)動(dòng)。CLK 端輸入脈沖,電機(jī)運(yùn)行,無脈沖式鎖定電機(jī)。通過上面三個(gè)端口控制步進(jìn)電機(jī)的正反轉(zhuǎn),轉(zhuǎn)動(dòng)的步數(shù),實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)動(dòng)角度的控制。STM32 芯片的定時(shí)器可以直接 PWM ( Pulse Width Modulation) 輸出,只需要設(shè)置CCRX,ARR等寄存器,就可以實(shí)現(xiàn)頻率、占空比的調(diào)節(jié),以及 PWM 輸出的打開與關(guān)閉,從而根據(jù)需要對(duì)步進(jìn)電機(jī)進(jìn)行控制。
2.2坐標(biāo)轉(zhuǎn)換
本文設(shè)計(jì)的小型機(jī)械臂,采用了直角坐標(biāo)系的機(jī)械結(jié)構(gòu),擁有多個(gè)直線運(yùn)動(dòng)軸,以及一個(gè)旋轉(zhuǎn)軸,可以對(duì)應(yīng)直角坐標(biāo)系中互相垂直的 X、Y 軸。因?yàn)椴竭M(jìn)電機(jī)的轉(zhuǎn)動(dòng)量不能直接對(duì)應(yīng)到坐標(biāo)系的坐標(biāo)變化量,所以在控制時(shí),需要通過軟件算法將輸入的坐標(biāo)移動(dòng)量轉(zhuǎn)換為可以提供給步進(jìn)電機(jī)的控制量。市面上的機(jī)械臂多采用伺服電機(jī)進(jìn)行控制,雖然本設(shè)計(jì)采用的步進(jìn)電機(jī)與之有一定的差距,但是都可以等效為控制轉(zhuǎn)動(dòng)角度。因此運(yùn)用軟件先將坐標(biāo)的變換根據(jù)現(xiàn)有公式轉(zhuǎn)換為角度的變換,再將角度的變換轉(zhuǎn)換為給步進(jìn)電機(jī)的控制量,最終達(dá)到了對(duì)機(jī)械臂坐標(biāo)位置的控制。
2.3 OPENMV的顏色識(shí)別
顏色識(shí)別程序中白平衡校正是不可或缺的。在白光照射下,RGB 顏色傳感器的輸出并不相等,通常情況下,綠色傳感器的輸出值較之其他會(huì)更大一點(diǎn)。除此之外,顏色檢測(cè)系統(tǒng)的白平衡還會(huì)受到照明燈的色溫差異干擾。在OPENMV中可以運(yùn)用Sensor模塊進(jìn)行處理,其程序可以在OPENMV-IDE中進(jìn)行編輯。之后通過調(diào)節(jié)閾值來進(jìn)行顏色的識(shí)別。
2.4串口通信
一般來說,OPENMV的通信串口必須是UART3,32單片機(jī)的通信波特率一般是115200。本設(shè)計(jì)使用的通信串口設(shè)置是使用的默認(rèn)值。
2.5 LCD顯示
系統(tǒng)軟件設(shè)計(jì)主要包括LCD初始、寫數(shù)據(jù) 、寫命令,以及畫點(diǎn)、字符顯示等 程序設(shè)計(jì)。液晶顯示模塊正常工作前,需要對(duì)其進(jìn)行初始化,主要包括復(fù)位液晶、確定顯示對(duì)比度、偏壓比等參數(shù),然后才能實(shí)現(xiàn)字符、圖形以及其他的顯示功能。 在向液晶顯示模塊寫入數(shù)據(jù)或者命令時(shí),一定要注意寫入的時(shí)序,只有嚴(yán)格地按 照時(shí)序編寫驅(qū)動(dòng)程序才能正常工作。
3? 結(jié)論
本文設(shè)計(jì)的機(jī)械臂方案由于運(yùn)用了更快速的處理器并且優(yōu)化了顏色識(shí)別算法,相較于市面上的小型機(jī)械臂,在多種光線環(huán)境下具有檢測(cè)正確率高、抓取穩(wěn)定性高等優(yōu)點(diǎn)。隨著社會(huì)工業(yè)化發(fā)展,機(jī)械臂越來越小型化、智能化,應(yīng)用范圍逐漸向社會(huì)各行各業(yè)滲透,將會(huì)有更多的智能機(jī)械臂走進(jìn)人們?nèi)粘I?,?duì)我國的穩(wěn)定發(fā)展也具有重要作用。
參考文獻(xiàn)
[1]滕高飛,周國政,周天悅,張銳.基于STM32F103VBT6的焊接監(jiān)測(cè)系統(tǒng)[J].電子設(shè)計(jì)工程,2020,28(02):169-172+179.
[2]李慧敏,樊記明,楊笑.基于STM32和OV7670的圖像采集與顯示系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2016,35(09):114-117.
[3]孟建平.基于STM32的多自由度機(jī)械臂設(shè)計(jì)研究[J].時(shí)代農(nóng)機(jī),2017,44(07):106.
[4]謝懿.基于stm32與ov7725的嵌入式工件尺寸檢測(cè)系統(tǒng)的設(shè)計(jì)[J].電子世界,2017(24):110-111.
[5] 林健全,劉浩捷,孫偉卿.基于STM32的智能物料搬運(yùn)小車[J].軟件,2020,41(07):27-30.
作者簡(jiǎn)介:
康俊杰(1999-),男,漢族,江西萍鄉(xiāng)人,三江學(xué)院本科在讀,主要研究方向:圖像識(shí)別