一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的製作方法
2023-09-12 19:15:25 1

本發明涉及一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車,其中SVG,即Scalable Vector Graphics,含義為:可伸縮矢量圖,尤其涉及一種客戶端控制的具備手繪輸入和導入SVG格式文件兩種圖樣輸入方式的自定義繪圖比例繪圖小車,屬於繪圖工具技術領域。
背景技術:
在現代社會,人們使用各種各樣的繪圖工具來繪製圖案。普通辦公印表機滿足了列印日常文檔的需求,卻不能列印大尺寸圖樣。對於列印大尺寸圖案而言,目前主要使用繪圖儀,這是一種能按照用戶要求自動實現繪製圖形的設備,主要用於繪製大型精細圖標、設計圖紙等。繪圖儀一般是由驅動電機、機械傳動、繪圖臺、控制電路、繪圖臺、筆架、機械傳動等部分構成。但是其存在著明顯的缺點。首先,繪圖儀造價昂貴且維護成本高。其次,其體積龐大,平臺固定,不易攜帶和搬運。
當今國內外有團隊從事新型繪圖工具的開發,比如機械臂式繪圖工具。機械臂式繪圖工具依靠機械臂的運動來繪製圖形,但存在著繪圖範圍受機械臂長度限制和平臺固定等不足。3D印表機器人3&Dbot,利用小車端平臺移動,將3D印表機裝在上面,可以「列印」大尺寸物體。此外,當前很多繪圖工具缺少能提供個性化服務的客戶端和繪圖工具之間進行通信。
技術實現要素:
本發明的目的是為了克服當前普通印表機不能繪製大尺寸圖形和大型繪圖儀昂貴且笨重的不足,提出了一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車。
一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車主要包括小車端和客戶端;
其中,小車端主要包括主控模塊、無線傳輸模塊、運動控制模塊、抬筆落筆模塊、蜂鳴器提醒裝置和電源模塊;
其中,主控模塊由單片機MCU及外圍輸出電路組成;無線傳輸模塊由能無線傳輸數據的設備組成;運動控制模塊主要由電機驅動板、步進電機和全向輪組成;抬筆落筆模塊由舵機和筆組成;蜂鳴器提醒裝置由蜂鳴器及其控制電路組成;電源模塊由移動電源和電池組組成;
小車端各組成部分的連接關係是:
主控模塊的單片機的輸出信號線分別與運動控制模塊的電機驅動板、抬筆落筆模塊的舵機以及蜂鳴器相連;主控模塊和無線傳輸模塊相連;電源模塊中的移動電源和主控模塊的單片機相連,電池組分別和運動控制模塊的電機驅動板和抬筆落筆模塊的舵機相連;
運動控制模塊各部分的連接關係是:
電機驅動板的控制線和步進電機相連,步進電機通過同軸連接器和全向輪相連;
小車端的各個組成模塊的功能如下:
主控模塊中的單片機MCU是整個小車端的控制中心;無線傳輸模塊的主要功能就是聯繫客戶端和小車端,客戶端發出的以指令、坐標和比例尺為主的信息被無線傳輸模塊接收,然後再轉給單片機MCU,MCU才能做下一步的處理;
運動控制模塊主要功能是實現小車端沿任意方向和速度運動,其中的全向輪能沿任意方向運動,而步進電機接收來自電機驅動板的控制信號,能實現運動速度的設置,電機驅動板上的信號來源於主控模塊的輸出信號;
抬筆落筆模塊主要功能是接收主控模塊的控制信號來控制筆的升降,在繪圖過程中,落筆使筆接觸到紙面或其他平面,小車端移動時,才會畫出線條;反之,若抬筆使筆不能接觸到紙面或其他平面,則小車端移動時,不會畫出線條;
蜂鳴器提醒裝置主要功能是在小車端繪圖過程中,繪製每一個短線段時都會發出「嘀」的一聲;
電源模塊主要是給主控模塊、運動控制模塊和抬筆落筆模塊為主的模塊供電;
其中,客戶端可以是Android平臺,也可以是iOS設備平臺,包括手繪畫板繪製圖樣和導入SVG格式文件繪製圖樣的兩種輸入圖樣方式、繪圖相關操作和客戶端設置;
繪圖相關操作主要包括新建畫板、保存畫板、清除圖樣以及撤銷線條;
客戶端設置包括網絡設置、畫板設置和繪圖設置;網絡設置包括繪圖車IP位址設置和繪圖車埠設置;畫板設置包括畫筆寬度設置、擬合區間長度設置和定位點大小設置;繪圖設置包括繪圖比例設置和貝塞爾曲線擬合精度設置;
客戶端的工作過程如下:
首先,客戶端將指令、坐標和比例尺為主的信息傳到無線傳輸模塊,無線傳輸模塊再將信息傳給單片機MCU;
然後,單片機MCU經過處理後執行相關指令,通過其引腳產生不同的控制信號;再分別傳送給運動控制模塊、抬筆落筆模塊和蜂鳴器提醒裝置,來控制這三個模塊的工作狀態;
最後,根據手繪畫板繪製圖樣或者導入SVG格式文件繪製圖樣的操作過程完成畫圖工作;
手繪畫板繪製圖樣的方式,具體通過以下步驟實現:
步驟1、在客戶端新建畫板,進行畫板設置;
其中,畫板設置包括畫筆寬度M、擬合區間長度N和定位點大小P的設置;
所述的畫筆寬度設置指的是繪製過程中屏幕顯示的線條寬度;
所述的擬合區間長度指的是用線段擬合連續路徑點的個數;具體為直接在客戶端的觸控螢幕幕上繪製圖樣,會留下很多連續的路徑點,取相鄰N個路徑點作為擬合區間,對擬合區間中的點基於直線進行擬合,擬合原則為:保證每個區間擬合後的線段首尾相連;
所述的定位點即為曲線擬合後得到的各段線段的端點;
步驟2、在觸控螢幕幕上繪製圖案,繪製好後保存圖樣;
所述的繪製圖案可使用單步撤銷功能按時間先後依次去除最近畫的線條,也可以使用清除功能將整幅圖樣全部去除,留下空白畫板;
所述的保存圖樣是可選步驟,保存並命名後,可供下次繪製相同圖樣使用,參數信息全都保留,不保存也可以進行繪製;
步驟3、客戶端進行網絡設置和繪圖比例設置,網絡設置中要輸入繪圖車IP位址和繪圖車埠;
其中,繪圖比例設置就是設置畫板上圖樣與實際繪出圖形的比例關係;
步驟4、客戶端將繪圖指令、坐標信息和比例信息通過WiFi發送給小車端,再等待小車端將整個圖樣繪製完成;
至此,從步驟1到步驟4,完成了手繪畫板繪製圖樣的操作過程;
導入SVG格式文件繪製圖樣的方式,具體通過以下步驟實現:
步驟一、在客戶端新建畫板,進行畫板設置,包括畫筆寬度M、定位點大小P的設置,設置貝塞爾曲線擬合精度Q;
所述的貝塞爾曲線擬合精度為:SVG文件中定義的每條貝塞爾曲線可以用折線段來擬合,其中折線中包含的定位點個數即為貝塞爾擬合精度Q,Q越大代表擬合精度越高;
步驟二、導入SVG格式文件,保存畫板;
導入SVG格式文件,客戶端的SVG解釋器會將其轉換成由若干個定位點構成的圖樣,即化曲為直;保存畫板為可選步驟,保存後可以供多次繪圖使用,參數信息全都保留;
步驟三、客戶端進行網絡設置和繪圖比例設置;
其中,網絡設置中要輸入繪圖車IP位址和繪圖車埠;繪圖比例設置就是設置畫板上圖樣與實際繪出圖形的比例關係;
步驟四、客戶端將繪圖指令、坐標信息和比例信息發送給小車端,再等待小車端將整個圖樣繪製完成;
至此,經過步驟一到步驟四,完成了導入SVG格式文件繪製圖樣的操作過程。
有益效果
一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車,與已有的技術和產品相比較,具有以下有益效果:
1.本發明相對於普通印表機和大型繪圖儀等現有繪圖工具具有自定義繪圖比例和體積小、便於攜帶的特點;
2.本發明提供手繪和SVG格式文件導入兩種輸入圖樣方式,既滿足了用戶的個性化繪畫需求,又滿足了用戶矢量圖形的繪製需求;
3.本發明相對於普通繪圖工具,適應環境和場合更廣泛,不僅能在紙面上作圖,也能在非紙面環境下繪圖;
4.本發明可以作為一個移動平臺,可以將繪圖筆換成不同類型的筆,也可以換成刻刀之類在較軟的平面上雕刻,方便拓展功能和二次開發。
附圖說明
圖1為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的組成框圖和工作流程圖;
圖2為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的小車端硬體布局圖;
圖3為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的速度矢量合成原理圖;
圖4為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的運動控制原理圖;
圖5為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的舵機控制筆的升降原理圖;
圖6為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的曲線擬合原理圖;
圖7為本發明一種支持手繪和SVG文件導入的可變繪圖比例繪圖小車的SVG解釋器的精度設置效果對比圖。
具體實施方式
下面結合附圖和具體實施例對本發明進行詳細說明。
實施例1
在本實施例中提供了本發明一種支持手繪和SVG文件導入的自定義繪圖比例的繪圖小車中的一種組成結構和工作流程,如圖1所示。
從圖1可以看出,本實施例的繪圖小車包括客戶端和小車端兩部分,兩者依靠各自的無線傳輸模塊進行通信,其介質可為WiFi;從圖1還可以看出,小車端包括主控模塊、無線傳輸模塊、運動控制模塊、抬筆落筆模塊、電源模塊和蜂鳴器提醒裝置;客戶端的功能主要包括曲線擬合、SVG解釋器和繪圖相關操作;
其中主控模塊為小車端控制核心,主要作用是向運動控制模塊、抬筆落筆模塊和蜂鳴器提醒裝置發送控制信號,以實現繪圖功能;無線傳輸模塊負責接收來自客戶端的以圖形坐標、指令和比例尺為主的信息;運動控制模塊使小車端實現沿任意方向和速度進行運動;抬筆落筆模塊實現筆的升降控制;電源模塊為各個模塊供電;蜂鳴器提醒裝置負責在繪製過程中進行必要的提醒工作;各個模塊協同合作,完成小車端的全部功能;
客戶端的操作主要有曲線擬合、SVG解釋器和繪圖相關操作;曲線擬合主要是針對手繪輸入時,對在觸摸過程中的記錄點進行擬合;SVG解釋器主要負責導入SVG格式文件時將XML語言描述的曲線用連續直線擬合;繪圖相關操作就是支持繪圖時的基本功能;
從圖1的流程圖可以看出本發明的客戶端有兩種模式:手繪繪圖和SVG文件導入;下面介紹兩種方式的步驟:
通過手繪畫板繪製圖樣的方式,具體通過以下步驟實現:
步驟1)、在客戶端新建畫板,進行畫板設置,包括畫筆寬度M、擬合區間長度N和定位點大小P的設置;
步驟2)、在觸控螢幕幕上繪製圖案,繪製好後保存圖樣;
步驟3)、網絡設置和繪圖比例設置,網絡設置中要輸入繪圖車IP位址和繪圖車埠;繪圖比例就是畫板上圖樣與實際繪出圖形的比例關係;
步驟4)、將繪圖指令、坐標信息和比例信息通過WiFi發送給小車端,等待小車端將整個圖樣繪製完成;
通過導入SVG格式文件繪製圖樣的方式,具體通過以下步驟實現:
步驟A、在客戶端新建畫板,進行畫板設置,包括畫筆寬度M、定位點大小P的設置,設置貝塞爾曲線擬合精度Q;
步驟B、導入SVG文件,保存畫板;
步驟C、同上述手繪畫板繪製圖樣中的步驟3);
步驟D、同上述手繪畫板繪製圖樣中的步驟4);
從圖1的工作流程圖可以看出,小車端流程為:客戶端和小車端通過WiFi通信,客戶端將全部指令以TCP數據包為載體傳給小車端。全部指令就是繪製每條短直線段的指令集合。小車端按照順序逐條執行繪製每條短直線段的指令,每條線段都經過「蜂鳴提醒-筆的升降-移動繪圖」的過程,直至全部線條畫完結束。其中,筆的升降非常重要,當線條需要繪製的時候,筆就會向下移動接觸紙面或其他平面,接下來小車端移動,就會在繪製面上留下線條。相反,如果遇到曲線不連續等情況,即不需要繪出線條,那麼這時就要先抬筆,這樣,在小車端移動的時候就不會留下痕跡。整個過程是通過軟體控制實現。
實施例2
本實施例主要敘述本發明中的小車端的各個模塊及其工作原理。
小車端的各部分硬體布局(俯視)如圖2所示,正方形為亞克力板車身,其他部分通過螺絲固定在車身上,虛線部分表示在與車身下面,實線部分表示在車身上面。車身中間有孔,筆垂直車身可以上下運動,舵機通過連接結構控制筆的升降。步進電機和全向輪相連,共四組,分布車身四角。主控模塊、電機驅動板和蜂鳴器等固定在車身上,電視模塊固定在車身下方。下面分別介紹小車端的運動控制模塊、抬筆落筆模塊、蜂鳴器提醒裝置和電池模塊。
1.運動控制模塊
本發明使用的連續切換全向輪具有能在不同方向上運動和適應較差路面優點。本發明中,小車採用速度矢量合成原理,所以能夠沿不同方向運動。如圖3所示,A1和A2輪的運動狀態完全一致,控制X軸方向上的運動速度;B1和B2輪的運動狀態完全一致,控制Y軸方向上的運動速度。這樣,由X軸方向上的速度和Y軸方向上的速度的合速度即為小車的速度。
步進電機接受到一個脈衝信號,就會走一步,且這一步的角度相同。那麼,步進電機的轉速取決於脈衝的頻率,轉動步數取決於脈衝的個數。X軸和Y軸上的速度通過不同的脈衝信號控制,為了使得小車沿某一方向保持相同速度比直線運動,需要保證兩個方向上的脈衝信號持續時間相同且各自保持恆頻率。通過控制各自脈衝頻率,使小車可以沿不同方向運動;通過控制脈衝持續時間,來控制小車運動距離。如圖4所示,脈衝信號是由主控模塊CC3200的PWM埠產生的,脈衝時間是由主控模塊CC3200的計時器控制的。
2.抬筆落筆模塊
舵機是由直流電機、減速齒輪組、傳感器和控制電路組成的一套自動控制系統。通過發送信號,指定輸出軸旋轉角度。根據舵機的這個特性,本發明採用圖5所示的機械結構,「升」字標註的箭頭示意的是筆升起時,舵機的旋轉方向;「降」字標註的箭頭示意的是筆下降時,舵機的旋轉方向。整個控制結構比較簡單易行,穩定性高,可維護性強。
3.蜂鳴器提醒裝置
本發明中蜂鳴器採用有源蜂鳴器,當蜂鳴器輸入為高電平時,蜂鳴器鳴叫;當輸入為低電平時,蜂鳴器不鳴叫。通過主控模塊程序設計,在開機和畫每一條線段開頭時,都會發出短促的「嘀」。
4.電池模塊
車身下方固定了兩個電池組,每個電池組由三節18650電池構成,給兩個步進電機和電機驅動板組合供電。這樣,兩個電池組滿足四個步進電機和電機驅動板組合的供電需求。舵機由一節18650電池供電,該電池在上述電池組中。主控模塊CC3200用恆定輸出5V的移動電源供電。
實施例3
本實施例主要敘述本發明中的客戶端的各個功能及其工作原理。
客戶端可以是一款Android APP。客戶端主要有畫板設置、曲線擬合、SVG解釋器和設置繪圖比例等功能。畫板設置包括新建和保存畫板、畫筆寬度設置、清除和撤銷、定位點大小設置與繪圖等功能。下面詳細介紹曲線擬合、SVG解釋器和設置繪圖比例。
1.曲線擬合
對於手繪輸入的圖形,需要將曲線分解成若干條短線段。如圖6所示,虛線為手指觸控螢幕幕留下的記錄點,實線為根據散點擬合後的折線,小車實際繪製的是折線。直線擬合的方法就是最小二乘法。圖上英文字母標註的點代表擬合的定位點,相鄰定位點確定擬合區間,本發明中通過設置相鄰定位點的間隔點數,來控制擬合精度。
2.SVG解釋器
SVG(可縮放矢量圖形)是基於可擴展標記語言XML的用於描述二維矢量圖形的一種圖形格式。本發明中的SVG解釋器是能將SVG文件中定義的曲線解析為繪圖車能夠直接處理的路徑信息。SVG格式本身是使用EBNF範式描述的,所以本發明採用遞歸下降分析法,對文法的每一非終結符號,都根據相應產生式的各個候選式的結構,為其編寫一個子程序(或函數),用來識別該非終結符號所表示的語法範疇。完成語法解析後再通過計算機圖形學的一些經典圖形生成算法完成繪圖路徑的生成。圖7所示的是SVG解釋時設置的繪圖精度對比圖,在對貝塞爾曲線解釋時,可以設置用多少個定位點來描述,定位點越多,精度就越高。
3.設置繪圖比例
兩種輸入方式最終處理後得到的都是定位點組成的集合,兩個定位點就可以構成一條線段,定位點按照順序排列,就構成小車繪圖的路徑。這些點的坐標均是以像素為單位。根據本發明繪圖小車的輪周和步進電機每一步走的角度,經計算得到步進電機走一步,實際全向輪就走1mm,即全向輪走的實際距離和步進電機走的步數是有對應關係的。本發明就是通過設置像素和步數(脈衝數)的對應關係,進而控制像素和實際距離的對應關係,這樣就實現了設置繪圖比例的功能。比如,設置1像素對應一步,那麼點(30,40)到點(60,50)就需要X軸走30步,Y軸走10步,對應實際距離就是X軸和Y軸分別走了30mm和10mm。
以上所述為本發明的較佳實施例而已,而並非是對本發明的實施方式的限定。對於所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其他不同形式的變化和變動。這裡無法對多有的實施方式予以窮舉。凡是屬於本發明的技術方案所引申出的顯而易見的變化或變動仍處於本發明的保護範圍之列。