長春理工大學第八屆電子設計大賽 之 平 面 繪 圖 儀

平 面 繪 圖 儀 設 計 報 告

    

長春理工大學圖標

 

 

指導教師:宮玉琳

隊員:池林輝   袁溯   郭柴旺

2016年6月11日

摘要:

該繪圖儀以飛思卡爾公司Freescale Kinetis MK60FN1M0 120M 爲控制核心,主要由兩個S3010模擬舵機,兩個10cm機械臂組成。通過MATLAB建模,對大賽要求圖形取模,得到對應的角度變換數組,在K60中把角度轉化成佔空比。通過串口接受命令,以固定頻率連續對舵機進行控制,帶動機械臂擺動,最終由簽字筆繪製出任意圖形,直線,正方形以及圓。另外,本系統具有指示燈,方便用戶觀察當前繪圖狀態。本系統除大賽規定圖形外,還可繪製其他任意圖形,應用廣泛,改進空間很大,前景可觀。從測試結果不難看出,本方案合理可靠,成本低廉,繪圖精準美觀。並且系統設計結構簡單,外觀精簡,易於控制,具有很高的系統穩定性。

 

關鍵詞: MK60FN 120M; S3010舵機;機械臂;MATLAB建模;簽字筆

 

目錄

第一章 系統方案
1.1 設計任務與要求

1.2 系統設計方案

1.2.1 系統控制方案的論證與設計

1.2.2 機械結構的論證與選擇

1.2.3 舵機的選擇

第二章 系統理論分析計算

2.1 MATLAB建模部分理論計算

2.2  K60程序部分轉換公式

第三章 電路與程序設計

3.1 硬件電路設計

3.2 程序算法設計

        3.2.1 MATLAB在線設計與仿真

3.2.2 C語言軟件設計

第四章 測試方案與結果

4.1 基礎部分要求(1)

4.2 基礎部分要求(2)

4.3 基礎部分要求(3)

4.4基礎部分要求(4)

第五章 運動學仿真

第六章 結論

第七章 參考文獻

 

 

第一章 系統方案

1.1 設計任務與要求

(一)主要任務

採用二自由度機械結構和控制系統, 完成有關圖形繪製。

(二)要求及說明

1.基本要求

(1) 採用規定硬件完成設計機械和電子及控制系統。

硬件配置:供電不限(電池、適配器、臺式電源等),任意 CPU或者可編程芯片,標準模擬舵機 2 個(非連續旋轉型),0.5mm 簽字筆1支,其他。要求有預留通訊接口:通訊方式爲 RS-232,波特率爲 115200 , n , 8 , 1。

(2) 繪製一個任意圖形。

(3) 繪製一條直線段。

(4) 繪製一個正方形。

(5) 繪製一個圓形。

2.圖形說明

 

  功能項  功能描述   指令碼 備註
任意圖形 作品上電,接收到指令碼後,繪製任意圖形。 ‘1’ ——
繪製一條直線  接收到指令碼後,繪製一條長 15CM 的直線段。 ‘2’ ——
繪製一個正方形 接收到指令碼後,繪製一個邊長爲 5CM 的正方形。 ‘3’ ——
繪製圓形  接收到指令後繪製一個半爲 5CM 的圓。 ‘4’ ——

 

備註:

1.作品通過 RS-232 線纜連接計算機。
2.計算機通過任意串口調試軟件發送 ASCLL 指令碼。
3.作品繪製圖樣。

1.2 系統設計方案

1.2.1 系統運動控制方案的論證與設計

 

方案一:採用雙臂結構進行控制,每一對機械臂下都放置一個舵機,兩個舵機並排放置,雙臂連接處放置簽字筆,通過控制舵機對機械臂旋轉角度進行控制,以精確繪圖。如圖一所示。該方案精度較高,但機械結構上實現較爲複雜。

1

 

方案二:採用單臂結構進行控制,每一個連接處下放置一個舵機,兩個舵機一前一後放置,前臂末端放置簽字筆,通過控制舵機對機械臂的旋轉角度進行控制,以精確繪圖。如圖二所示。該方案精度不如方案一,但其機械結構簡單,易於實現。

 

2

 

在以上兩種方案中,考慮到二者的精度差別在可接受範圍內,而方案二的機械結構較易實現,綜合各方面考量,我們採用方案二。

 

 

1.2.2 機械結構的論證與選擇

 

方案一:題目所給的繪圖儀結構如圖3所示,此結構易於搭建,雖可實現系統要求,但由於機械臂的長度較長與筆和杆之間是單層連接設計,不易控制簽字筆的運動,使得簽字筆的自由度大於1,極大地干擾到圖形的繪製。3

方案二:在方案一的結構基礎上進行改進。在機械臂與簽字筆連接處使用雙層連接,以保證簽字筆運動的自由度爲1,從而能夠較爲精確地繪圖。具體結構如圖4所示。

4

綜合考慮,本系統機械結構採用方案二。

 

1.2.3 舵機的選擇

 

1.S3010模擬舵機

5

2.S3003模擬舵機

63.MG995模擬舵機

7

數字舵機精度高,但由於大賽要求使用模擬舵機,考慮到物流問題,我們最終在這三款舵機中選擇性能更好,價格更貴的S3010,以滿足2mm的精度要求。

 

第二章 系統理論分析計算

 

2.1 MATLAB建模部分理論計算

8910

2.2  K60程序部分轉換公式

 duty_1=1030+xian_1[ii]/12*100;

duty_2=1640-xian_2[ii]/12*100;

式中1030,1640分別是連個舵機處於0角度對應的佔空比

 

第三章 電路與程序設計

 

3.1 硬件電路設計

  • 系統總體框架圖

    本系統通過K60對舵機進行控制,另加按鍵可調節繪製圖形長短。LED燈可有效顯示系統當前狀態。舵機用6.15V供電,80HZ頻率。有效提高模擬舵機S3010的精確度和靈敏度。通過調節繪圖時間,能夠在合適的速度下,行筆繪圖,得到最美觀最合格的圖形。

 

 11

 

 

(2)電源

電源部分採用LM1084-ADJ產生6.15V電壓;採用LM1084-5.0產生5.0V電壓。

12

濾波電容有效去噪。用0歐電阻隔離舵機GND和總GND。

 

 19

 

3.2 程序算法設計

先在MATLAB中多角度進行計算,得出角1與角2的角度值,然後在應用C語言寫出相關的邏輯程序。

在K60程序中,採用串口中斷,按鍵中斷對系統進行控制。從而執行相應的圖形繪製工作。

3.2.1 MATLAB在線設計與仿真

  • 直線

(1)MATLAB程序設計

x = -5:0.1:10;

y = 15:1:15;

figure(1)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi*180;

 

(2)在線仿真結果圖

13

(3)兩個角度數組

①角1的數據:

70.6737049158870    70.1828836643562    69.6938440353942    69.2065879905037    68.7211187998692    68.2374410059753    67.7555603884803    67.2754839302368    66.7972197843597    66.3207772422479    65.8461667024773    65.3733996404829    64.9024885789615    64.4334470589251    63.9662896113459    63.5010317293365    63.0376898408126    62.5762812815942    62.1168242689000    61.6593378751978    61.2038420023772    60.7503573562113    60.2989054210822    59.8495084349444    59.4021893645056    58.9569718806070    58.5138803337866    58.0729397300143    57.6341757065877    57.1976145081814    56.7632829630443    56.3312084593422    55.9014189216447    55.4739427875571    55.0488089845017    54.6260469066512    54.2056863920237    53.7877576997454    53.3722914874917    52.9593187891191    52.5488709924988    52.1409798175680    51.7356772946129    51.3329957428016    50.9329677489823    50.5356261467674    50.1410039959221    49.7491345620783    49.3600512967943    48.9737878179827    48.5903778907291    48.2098554085246    47.8322543749343    47.4576088857282    47.0859531114963    46.7173212807746    46.3517476637052    45.9892665562564    45.6299122650280    45.2737190926669    44.9207213239181    44.5709532123374    44.2244489676900    43.8812427440613    43.5413686287046    43.2048606316519    42.8717526761113    42.5420785896781    42.2158720963828    41.8931668096029    41.5739962258614    41.2583937195387    40.9463925385216    40.6380258008150    40.3333264921420    40.0323274645558    39.7350614360914    39.4415609914810    39.1518585839604    38.8659865381926    38.5839770543368    38.3058622132898    38.0316739831300    37.7614442267927    37.4952047110097    37.2329871165438    36.9748230497543    36.7207440555280    36.4707816316144    36.2249672444054    35.9833323462022    35.7459083940144    35.5127268699422    35.2838193031910    35.0592172937778    34.8389525379881    34.6230568556496    34.4115622192936    34.2045007852803    34.0019049269719    33.8038072700430    33.6102407300277    33.4212385522096    33.2368343539702    33.0570621697256    32.8819564985866    32.7115523548965    32.5458853218105    32.3849916080981    32.2289081083672    32.0776724669269    31.9313231455270    31.7898994952362    31.6534418327454    31.5219915214134    31.3955910574006    31.2742841612752    31.1581158755131    31.0471326683578    30.9413825445552    30.8409151635322    30.7457819656524    30.6560363072459    30.5717336051925    30.4929314919231    30.4196899818019    30.3520716499635    30.2901418248083    30.2339687954977    30.1836240359593    30.1391824470954    30.1007226191021    30.0683271160510    30.0420827851671    30.0220810935580    30.0084184955269    30.0011968340344    30.0005237803773    30.0065133167441    30.0192862669933    30.0389708818086    30.0657034853406    30.0996291915670    30.1409026999448    30.1896891815186    30.2461652685605    30.3105201631094    30.3829568825516    30.4636936637483    30.5529655513234    30.6510262007649

②角2的數據:

75.5224878140701     75.8152114086719    76.1016551793255    76.3818497902027    76.6558243444812    76.9236064560366    77.1852223177419    77.4406967665722    77.6900533456981    77.9333143637377    78.1705009513206    78.4016331151117    78.6267297894241    78.8458088855469    79.0588873388998    79.2659811541197    79.4671054481777    79.6622744916131    79.8515017479700    80.0347999115124    80.2121809432860    80.3836561055961    80.5492359949574    80.7089305735746    80.8627491994030    81.0107006548372    81.1527931740714    81.2890344691707    81.4194317548907    81.5439917722799    81.6627208110943    81.7756247310549    81.8827089819726    81.9839786227648    82.0794383393870    82.1690924616969    82.2529449792717    82.3309995561934    82.4032595448183    82.4697279985435    82.5304076835831    82.5853010897651    82.6344104403591    82.6777377009420    82.7152845873125    82.7470525724581    82.7730428925816    82.7932565521935    82.8076943282714    82.8163567734927    82.8192442185417    82.8163567734927    82.8076943282714    82.7932565521935    82.7730428925816    82.7470525724581    82.7152845873125    82.6777377009420    82.6344104403591    82.5853010897651    82.5304076835831    82.4697279985435    82.4032595448183    82.3309995561934    82.2529449792717    82.1690924616969    82.0794383393870    81.9839786227648    81.8827089819726    81.7756247310549    81.6627208110943    81.5439917722799    81.4194317548907    81.2890344691707    81.1527931740714    81.0107006548372    80.8627491994030    80.7089305735746    80.5492359949574    80.3836561055961    80.2121809432860    80.0347999115124    79.8515017479700    79.6622744916131    79.4671054481777    79.2659811541197    79.0588873388998    78.8458088855469    78.6267297894241    78.4016331151117    78.1705009513206    77.9333143637377    77.6900533456981    77.4406967665722    77.1852223177419    76.9236064560366    76.6558243444812    76.3818497902027    76.1016551793255    75.8152114086719    75.5224878140701    75.2234520950535    74.9180702357186    74.6063064214874    74.2881229514990    73.9634801463306    73.6323362507232    73.2946473309566    72.9503671664886    72.5994471354365    72.2418360934426    71.8774802454219    71.5063230096434    71.1283048735457    70.7433632406300    70.3514322677080    69.9524426917161    69.5463216452241    69.1329924596816    68.7123744553471    68.2843827167356    67.8489278522962    67.4059157368977    66.9552472355397    66.4968179065392    66.0305176822403    65.5562305250749    65.0738340565500    64.5831991564504    64.0841895292187    63.5766612341032    63.0604621752387    62.5354315473349    62.0013992320893    61.4581851397901    60.9055984898300    60.3434370229817    59.7714861372806    59.1895179381796    58.5972901922693    57.9945451722357    57.3810083788275    56.7563871233487    56.1203689515216    55.4726198863748    54.8127824639950    54.1404735313956    53.4552817702056    52.7567649031590    52.0444465321457    51.3178125465106

2.

  • MATLAB程序設計

theta = 1:0.1:360;

x0 =10;

y0 =10;

r = 4.55;

x = x0 + r*cosd(theta);

y = y0 + r*sind(theta);

disp([‘theta x y’]);

disp([theta’ x’ y’]);

figure(1)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi

 

 

  • 在線仿真結果圖14

(3)角1與角2的數據

① 角1的數據:

6.96251061971436   7.01100408472794    7.05948027229237    7.10793902258830    7.15638017557519    7.20480357099087    7.25320904835141    7.30159644695068    7.34996560586019    7.39831636392875    7.44664855978231    7.49496203182360    7.54325661823202    …….

②角2的數據:

0.308341904173382  0.308040761830265   0.307739969376941   0.307439528146133   0.307139439473624    0.306839704698265   0.306540325161973   0.306241302209731   0.305942637189594   0.305644331452686    …….

3.正方形

  • MATLAB程序設計

①第一條線:

x=5:0.1:10;

y=10:1:10;

figure(5)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi*180;

②第二條線:

x=10:0.1:10;

y=5:0.1:10;

figure(5)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi*180;

③第三條線:

x=5:0.1:10;

y=5:0.1:5;

figure(5)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi*180;

 

④第四條線:

x=5:0.1:5;

y=5:0.1:10;

figure(5)

plot(x,y)

 

theta2 = acos((x.^2+y.^2)/200-1);

a = y.*(10+10*cos(theta2))-10*x.*sin(theta2);

b = x.*(10+10*cos(theta2))+10*y.*sin(theta2);

theta1 = atan(a./b);

 

xx = 10*cos(theta1)+10*cos(theta1+theta2);

yy = 10*sin(theta1)+10*sin(theta1+theta2);

figure(2)

plot(xx,yy)

 

theta11 = theta1/pi*180;

theta22 = theta2/pi*180;

  • 在線仿真結果圖15161718

 

  • 角1與角2的數據

例如:第一條線:

7.42279240440093,7.12215156501562,6.82793093207689,

6.54012900425278,6.25874260655531,5.98376696683809,

5.71519579273427,5.45302134888572,5.19723453432377,

4.94782495987260,4.70478102545524,4.46808999719306,

4.23773808419872,……

 

 

3.2.2  C語言軟件設計

20212223

 

第四章 測試方案與結果

4.1 基礎部分要求(1)

    驅動舵機,使其繪製出任意圖形,測試結果如圖所示: 24

由於該基礎項對圖形的具體形狀沒有要求,故任意形狀均符合該項要求

 

4.2 基礎部分要求(2)

驅動舵機,使簽字筆繪製出一條長爲15cm的直線,測試5次,記錄其偏差距離和5cm內最大偏差,測試結果如表一所示。

  測試1 測試2 測試3 測試4 測試5
直線誤差 +0.7cm +0.2cm -0.2cm -0.4cm -0.3cm
5cm內彎曲偏差 0.12cm 0.08cm 0.05cm 0.18cm 0.15cm

 

根據測試結果進行分析,直線線性平均誤差爲0cm,5cm內彎曲最大偏差爲0.116cm,符合設計要求。

25

4.3 基礎部分求(3)

驅動舵機,使簽字筆繪製出邊長爲5cm的正方形,測試5次,記錄其邊長偏差距離,5cm內彎曲最大偏差以及是否閉合,測試結果如表二所示。

  測試1 測試2 測試3 測試4 測試5
直線誤差 +0.5cm +0.3cm -0.2cm -0.5cm +0.1cm
5cm內彎曲偏差 0.05cm 0.12cm 0.08cm 0.03cm 0.18cm
是否閉合

根據測試結果進行分析,直線線性平均誤差爲0.05cm,5cm內彎曲最大偏差爲0.092cm,5次測試均閉合,符合設計要求。

26

4.4基礎部分要求(4)

驅動舵機,使簽字筆繪製出半徑爲5cm的,測試5次,記錄其邊長偏差距離,5cm內彎曲最大偏差以及是否閉合,測試結果如表二所示。

 

  測試1 測試2 測試3 測試4 測試5
尖端最大毛刺 0.04 0.10 0.06 0.08 0.10
首尾連接位置間隙 0 0 0 0 0

根據測試結果進行分析,直尖端最大毛刺平均值爲0.076cm,首尾連接平均間隙爲0,即5次測試均閉合,符合設計要求。

27

第五章 運動學仿真

Siemens NX9.0仿真:

282930

第六章 結論

通過比對嘗試各種機械機構方案,考慮到系統穩定性、成本和比賽週期,最終製作出本系統。俗話說,選擇比努力更重要,最初選擇方案用了0.5天。我們把重點放在了模擬舵機的型號選擇上,因爲舵機是該系統的關鍵。機械結構設計調整了2.5天,考慮到精確度的問題,我們對整體機械結構做了多次嘗試,不斷調整,因爲結構穩定性直接影響系統精度和穩定性,這裏我們作爲重點去做。MATLAB在線仿真了1.5天,通過限制角度,解決了MATLAB計算結果出現的“多值”問題。K60部分程序編寫調試用了2天,這中間包括電路的設計與焊接,根據比賽規定,設計出了符合規則的外圍電路。

經過本次電子設計大賽,本隊全體隊員技術上有了新一次的提高。在短時間內密切合作,完成規定任務,收穫了很多。

 

第七章 參考文獻

 

  • 童詩白.模擬電子設計基礎[M].高等教育出版社,2000
  • 譚浩強.C語言程序設計[M].清華大學出版社,2012
  • 吳少君.單片機低功耗設計[M].人民郵電出版社,2005

 

附:技術要求

平面繪圖儀

一、主要任務

採用二自由度機械結構和控制系統,完成有關圖形繪製。

二、要求及說明

1.基本要求

(1)採用規定硬件完成設計機械和電子及控制系統。

硬件配置:供電不限(電池、適配器、臺式電源等)

,任意 CPU 或者可編

程芯片,標準模擬舵機 2 個(非連續旋轉型)

,0.5mm 簽字筆 1 支,其他。要

求有預留通訊接口:通訊方式爲 RS-232,波特率爲 115200 , n , 8 , 1。

(2)繪製一個任意圖形。

(3)繪製一條直線段。

(4)繪製一個正方形。

(5)繪製一個圓形。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章