?

基于機器視覺的寫字機器人實驗系統設計

2020-07-11 14:41張清勇高曉宇夏慧雯郭廣淼
實驗室研究與探索 2020年5期
關鍵詞:驅動器電動機寫字

張清勇,高曉宇,夏慧雯,郭廣淼

(武漢理工大學自動化學院,武漢430070)

0 引 言

隨著機器人技術的不斷發展,寫字機器人逐步進入人們的視野。針對高校機器人教學,設計一種基于機器視覺的寫字機器人系統可以更好地幫助學生掌握相關知識。

目前出現的寫字機器人主要是在對于文字信息提取方法、機器人結構類型、軌跡規劃方法幾個方面有所不同[1]。文字信息提取主要有兩種方式。一種是在字符結構完整的情況下進行提取。王光建等[2-3]使用Windows系統矢量字符進行信息提取。張傳劍等[4]使用Visual Basic語言編寫程序借助AutoCAD 擴展工具將文字進行分解并提取線段頂點坐標。何薇等[5]通過機器視覺獲取字符圖像,使用開源計算機視覺庫(Open Source Vision Computer Library,OpenCV)完成對圖像的處理和信息提取。

另一種是在書寫的過程中實現提取。Franke等[6]使用數字手寫板獲取書寫信息。李芳等[7]使用實驗研制的基于多維力傳感器數字手寫設備[8],以獲取書寫壓力、筆記坐標和紙筆接觸點處的其他力學信息,并轉換為時間序列,之后對獲得的數據進行特征提取,所設計的機器人獲得了較好的書寫效果。Matsui等[9]使用所設計的書寫筆在三維空間進行書寫,使機器人獲取空間位置時間序列,但由于懸空書寫,該設計存在書寫軌跡難以控制的問題。

本文使用OpenMV機器視覺模塊,結合所編寫的腳本實時獲取書寫筆的位置信息,實現人和寫字機器人的同步書寫,使用較為簡單的方案獲得了較好的書寫精度。

1 系統機械結構設計

基于機器視覺的寫字機器人系統機械結構的核心為2 自由度運動單元,該系統采用圖1 所示的機械結構。電動機1、2 分別安裝在橫、縱向軌道上,電動機1控制書寫機構橫向運動;電動機2 控制書寫機構縱向運動。兩個電動機可以實現書寫機構的2 自由度運動。書寫機構上安裝舵機,實現對筆起落的控制。

圖1 系統機械結構圖

2 系統硬件設計

2.1 硬件總體設計

寫字機器人系統需要實現的功能有:通過識別模塊識別動態手勢,控制書寫機構的運動;通過識別手寫筆的運動來控制書寫機構進行同步書寫。

寫字機器人系統硬件由主控制器、識別模塊、運動控制模塊和人機交互模塊構成,系統硬件總體框圖如圖2 所示。主控制器負責驅動各種傳感器、執行相關運算并負責輸出控制信號。識別模塊包含一個電容數字轉換器、一個攝像頭和一個輕觸開關。電容數字轉換器通過集成電路總線(Inter-Integrated Circuit,IIC)與主控制器通信。攝像頭上自帶微處理器,運行相關圖像處理算法,將獲得的結果通過通用同步/異步串行接收/ 發送器(Universal Synchronous/Asynchronous Receiver/Transmitter,USART)發送給主控制器。運動控制模塊包含控制筆桿起落的舵機、步進電動機及相應驅動器。人機交互模塊包含有機發光二極管(Organic Light-Emitting Diode,OLED)顯示屏和紅外遙控接收、發送裝置,實現模式的選擇和相關信息的顯示。OLED 通過串行外設接口(Serial Peripheral Interface,SPI)與主控制器通信。

圖2 系統硬件總體框圖

2.2 主控模塊

寫字機器人系統主控模塊選用STM32F407ZGT6芯片,該款微處理器采用ARM?Cortex?M4 核心,最高工作頻率168 MHz[10]。閃存大小為1 024 KByte,共有82 個通用輸入/輸出口,具有10 個16 bit通用定時器、2 個16 bit 高級定時器和2 個16 bit 基本定時器。其性能滿足系統設計要求。其上有10.5 Mbit/s 的串口4 個,通過串口可以和OV7725 攝像頭系統進行通信,使系統獲取目標點的位置信息,從而實現對手寫筆位置的獲取。

2.3 識別模塊

寫字機器人系統識別模塊中包含有FDC2214 電容數字轉換器、基于OV7725 攝像頭的OpenMV Cam M7 視覺模塊以及手寫筆上的輕觸開關,如圖3 所示。

圖3 FDC2214、OpenMV Cam M7視覺模塊和輕觸開關

FDC2214 是一款抗電磁干擾設計的高分辨率、高速、多通道的電容數字轉換器,采用了基于窄帶的架構,可以高度抑制噪聲等干擾信號[11-12],在高速的條件下提供高分辨率信息,常用于接近感測和液位感測。在本系統設計中,使用4 片極板,通過判斷手對于單方向上兩片極板接近的先后順序進行運動手勢判別。

機器視覺模塊由板載微處理器和攝像頭構成。其具有216 MHz 的主頻、128 Kb 的RAM 和2 Mb 的Flash,可以使用MicroPython 對其進行編程,實現機器視覺相關任務[13],在顏色追蹤[14]、形狀識別、邊緣檢測、特征點追蹤、3D 定位識別[15]和特征檢測人臉識別[16]等領域均獲得了應用。在本系統的設計中,通過對目標顏色進行識別,將獲取到的坐標點發送給主控芯片以進行后續的運算與處理。

輕觸開關安裝在手寫筆的筆頭,當落筆時開關導通,此時主控芯片檢測到落筆,從而控制書寫機構執行落筆動作;當抬筆時,開關斷開,主控芯片檢測到抬筆,從而控制書寫機構執行抬筆動作。

2.4 運動控制模塊

寫字機器人系統運動控制模塊由1 個小型舵機、2個步進電動機及其驅動器組成。步進電動機選用2 個42 式二相四線步進電動機,步距角均為1.8°。步進電動機驅動器采用TB6600,該款驅動器具有電動機脫機控制和正反轉控制的功能。共有7 檔細分選擇,最大32 細分;共有8 檔電流控制,可以實現從0.5 ~3.5 A電流選擇。通過撥碼開關可以方便調節步進電動機細分數及電流。該款驅動器具有震動低、噪聲小的特點。驅動器如圖4 所示。

圖4 TB6600步進電動機驅動器

2.5 人機交互模塊

系統人機交互模塊由一片24.384 mm OLED 屏幕、紅外接收頭HS0038 和紅外遙控器組成。

系統中OLED 屏幕采用24.384 mm 128 ×64 的OLED屏,如圖5 所示。該屏使用的總線形式為SPI或IIC。其OLED顯示驅動器為SSD1306,該屏具有以下特點:對比度高,顯示清晰;接線方式豐富,具有串行SPI和IIC接口方式,且接線方便、節約微處理器的輸入、輸出端口。OLED屏用來顯示當前的模式和相關信息。

圖5 OLED屏幕

紅外遙控器使用協議,數據格式為:同步碼頭、地址碼、地址反碼、控制碼和控制反碼。同步碼由一個低電平和一個高電平組成,低電平時長9 ms、高電平時長4.5 ms,數據中剩下的4 部分均由8 bit數據組成。

2.6 硬件電路設計

(1)運動控制模塊電路設計。步進電動機驅動器TB6600 采用共陰極接法。將2 個驅動器的DIR-和PUL-引腳與STM32F407ZGT6 的GND端相連。2 個步進電動機驅動器的DIR + 和PUL + 引腳與STM32F407ZGT6 的接線方式見表1。

表1 TB6600 驅動器與STM32F407ZGT6 接線方式

舵機的PWM 信號線與STM32F407ZGT6 的PA2引腳相連。

(2)識別模塊電路設計。FDC2214 模塊的UCC引腳連接電源正極,電壓為3.3 V。FDC2214 采用I2C通訊協議,故需要兩根信號線,FDC2214 模塊的SCL 引腳和SDA引腳與微處理器的接線方式見表2。

表2 FDC2214 與STM32F407ZGT6 接線方式

機器視覺模塊使用串口與STM32F407ZGT6 微處理器進行通訊。機器視覺模塊的VIN 引腳連接電源正極,使用5 V電源進行供電,P4、P5 引腳與微處理器的接線方式見表3。

表3 OpenMV Cam M7 與STM32F407ZGT6 接線方式

輕觸開關A 端連接微處理器的PD0,令B 端與GND相連。

(3)人機交互模塊電路設計。紅外接收頭HS0038 與STM32F407ZGT6 的PB1 通過10 kΩ 電阻相連。

OLED 顯示屏,采用4 線串口模式,通過UCC給OLED屏進行供電,使用3.3 V 電源,OLED 屏的D0、D1、RES、DC和CS 引腳與微處理器的接線方式見表4。機器人視覺系統的硬件電路如圖6 所示。

表4 OLED屏幕與STM32F407ZGT6 接線方式

圖6 系統硬件電路圖

3 系統軟件設計

機器人系統軟件設計部分主要包括STM32F407ZGT6 主程序設計、Bresenham 插補算法的實現、基于FDC2214 電容數字轉換器的手勢識別實現,以及同步書寫功能實現。

3.1 主程序設計

寫字機器人系統軟件設計中采用狀態機的思想,主程序流程圖如圖7 所示。打開系統后,首先完成STM32 主控芯片的系統配置:初始化中斷優先級、定時器中斷、USART中斷和相關輸入、輸出端口;之后對外設模塊進行初始化配置:FDC2214 模塊和OLED 顯示屏初始化。之后進入任務控制死循環,通過等待紅外遙控的輸入信號來進行任務的選擇。當任務標志變量(TASK)被置為相應序號,則進行相應指令的執行。

配置串口中斷,在中斷中編寫校驗協議,以實現對OpenMV數據的解析,這樣STM32F4 芯片就可以通過串口接收到筆尖的坐標信息。使用通用定時器TIM7實現10ms 中斷,在中斷中完成采集極板電容值并進行相關計算。

圖7 主程序流程圖

3.2 插補算法

插補算法采用計算機圖形學中經典的Bresenham算法[17],此種算法可以在不進行小數和取整運算的基礎下上,實現直線像素點的生成。本文使用直線

將二維平面分為8 個區域。在平面區域

中的算法流程圖如圖8 所示,其他區域使用坐標變換的方式進行實現[18]。該算法中,(x0,y0)為插補的起始坐標;(x1,y1)為插補的終止坐標;(x,y)為筆的當前位置坐標。變量dx、dy、d、incrE和incrNE為算法臨時變量。

圖8 Bresenham算法流程圖

3.3 手勢識別算法

手勢識別算法參照應用于電容式按鈕的手勢識別算法進行設計[19]。本系統的識別模塊分別在x、y方向上固定有兩片金屬極板,與FDC2214 相連接。獲取每片極板所測量的電容值并換算成手的接近度,通過計算手對于兩片極板接近的先后順序進行運動手勢判別。

3.4 同步書寫功能實現

使用機器視覺模塊實時監測手寫筆的坐標信息,由于筆頭處設計為綠色,在白色書寫平面上書寫時,可以采用顏色追蹤的方式進行坐標識別。OpenMV使用MicroPython進行編程,對攝像頭寄存器進行配置:使用RGB565 色彩模式和320 ×240 級別分辨率,關閉白平衡和自動增益。進入程序主循環,不斷進行色塊檢測并將色塊位置使用串口發送給STM32F407ZGT6。由于USART每次傳輸8 bit 數據,攝像頭圖像平面坐標水平方向數據范圍為0 ~319,因此將水平方向數據拆成兩次進行發送,STM32F407ZGT6 端將數據重新組合進行使用。

STM32F407ZGT6 接收到坐標信息后,進行數據校驗和濾波等預處理,接著進行坐標變換,然后驅動電動機控制寫字機器人書寫機構的位置。與此同時,通過輕觸開關識別書寫人員的起落筆姿勢,控制書寫機構的起筆和落筆,實現寫字機器人的同步書寫功能。

4 測試與分析

整個運動框架由2020 鋁型材搭建,寫字機器人實物如圖9 所示。電動機1 使用同步帶結合滑輪結構,實現在運動框架上的X向運動;電動機2 以同樣的方式實現在運動框架上的Y向運動。書寫機構通過亞克力材質結構與電動機2 固定在一起。

圖9 寫字機器人實物圖

4.1 運動手勢識別繪制測試

進行運動手勢控制書寫機構功能測試,測試方法為:將手放到手勢識別感應區內,按照向上、向下、向左和向右的方向在感應區內滑動,觀察此時書寫機構的運行狀態是否與手勢的運動方向一致。測試時方向選擇隨機,每個方向進行20 次測試,求取系統執行的正確率。測試結果表明,寫字機器人系統可以通過識別模塊準確識別手的運動方向,相關測試結果見表5。

表5 手勢控制書寫機構運動功能測試

4.2 同步書寫功能測試

進行同步書寫功能測試,測試方法為,使用手寫筆在識別模塊規定范圍中進行書寫,此時寫字機器人在繪圖平面上根據實時識別到的位置信息進行繪制,測試時書寫“寫字”兩字,測試結果如圖10 所示。

圖10 同步書寫功能測試結果

5 結 語

本文設計了一種基于機器視覺的寫字機器人實驗系統,該系統結合了視覺與圖像處理技術以及接近感測技術,實現了通過運動手勢識別控制書寫機構運動的功能;通過實時識別手寫筆的運動來控制書寫機構進行書寫的功能。系統使用較為簡單的方案實現了較高書寫準確性。該系統應用于教學與實驗,可以幫助學生更好地掌握機器人和計算機視覺領域相關知識。

整個系統仍有一定改進空間:通過引入軌跡規劃實現運動速度的控制,確保書寫機構的平穩運行;通過提高采樣圖像的分辨率,提高書寫機構的書寫精度,使系統的書寫效果進一步提高。

猜你喜歡
驅動器電動機寫字
淺析電動機日常維護與保養
永磁同步電動機的節能計算
氣動網絡多腔室彎曲軟體驅動器結構優化
我學寫字
藏起驅動器號確保數據安全
學寫字
寫字好看,需從小“練”起
我學寫字
空間大載荷石蠟驅動器研制
基于KB0的電動機軟啟動控制系統
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合