长春理工大学第八届电子设计大赛 之 平 面 绘 图 仪

平 面 绘 图 仪 设 计 报 告

    

长春理工大学图标

 

 

指导教师:宫玉琳

队员:池林辉   袁溯   郭柴旺

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)绘制一个圆形。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值