版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科论文目录TOC\o"1-2"\h\z\u摘要 Abstract 引言 1总体方案设计 1.1系统方案设计 1.2系统工作原理 2硬件电路的设计 2.1主控模块设计 2.2驱动模块设计 2.3时钟模块设计 2.4总电路设计 3软件设计 3.1Arduino开发环境 3.2主程序设计 3.3抬笔落笔的子程序设计 3.4摆臂子程序设计 4系统调试 4.1系统硬件调试 4.2系统软件测试 结论 参考文献 附录1舵机及DS3231参数 附录2源程序清单 致谢 本科论文摘要为了提高人类生产生活的工作效率,减轻人工抄写的工作强度,顺应科学技术的飞速发展,利用开发板为主控制器,通过下达指令控制位于3D打印写字板下方的舵机来控制笔距离纸面的高低位置,以达到模仿人类抬笔落笔的目的。同时控制位于3D打印机械臂连接处的左右舵机,带动左右小臂进行运动,控制笔尖在板上的位置,配合着底部舵机的运动实现对数字等字体的书写。结果表明,基于Arduino板的写字机能够代替人工手写,与此同时,整套装置也表现出极好的灵活性、智能化。同时也说明,智能机器人对于帮助人类完成书写工作以及提高人类的书写效率起到了至关重要的作用,机器人书写技术可以使机器人在通过对字体的学习后进行自主书写。而由于机器人写字技术具有灵活性、智能化、高可靠性、高精度的特点,因此,人们致力于将此项技术应用于生活实际工作中,以提高工作效率,并不断拓展写字机的功能。目前,写字机的应用领域已经大大拓宽,这意味着该课题的可行性。关键词:机械臂;舵机;灵活性;智能化
AbstractInordertoimprovetheefficiencyofhumanproductionandlife,reducetheintensityofmanualtranscription,andcomplywiththerapiddevelopmentofscienceandtechnology,Arduinoboardisusedasthemaincontrolchiptocontroltheservolocatedbelowthe3Dprintingboardbyissuinginstructionstocontroltheheightofthepentipfromthepapersurface,soastoachievethepurposeofimitatinghumanliftingandwriting.Atthesametime,controltheservolocatedattheconnectionof3Dprintingforearm,drivetheleftandrightforearmstomove,controlthepositionofthepentipontheboard,andwritethenumberandotherfontsaccordingtothemovementofthesteeringgearatthebottom.TheresultsshowthatthewritingmachinebasedonArduinoboardcanreplacemanualhandwriting,andhasaspeedandstabilityexceedingthatofhumanhandwriting.Atthesametime,thewholedevicealsoshowsexcellentflexibilityandintelligence.Atthesametime,italsoshowsthatintelligentrobotsplayacrucialroleinhelpinghumanscompletewritingandimprovingtheirwritingefficiency.Robotwritingtechnologycanenablerobotstowriteindependentlyafterlearningfontsorafterreceivinginstructionsfromclockmodules.Thanks
to
the
flexibility
and
intelligence
of
the
writing
machine,
people
will
be
able
to
apply
this
technology
to
their
lives
and
constantly
exploit
its
functions.Atpresent,theapplicationfieldofwritingmachinehasbeengreatlyexpanded,whichmeansthefeasibilityofthesubject.Keywords:mechanicalarm;servo;flexibility;intelligent引言由于Arduino入门简单,对电路知识的要求并不高,并且发展前景好,所以人们越来越重视此领域的开拓,同时,由于5G时代的到来,VR、AR等可穿戴设备的应用将会更加普及,这就为Arduino提供了更多的发展机会,而且随着科技的进步,人们创新意识显著增强,Arduino这种易上手、稳定性高的的技术将会更受人们的青睐。本项目主要研究写字机实现书写数字并记录时间的问题,比较深入地研究了Arduino板、动力学、轨迹规划、舵机驱动等问题。文字是人类文明延续的重要媒介,知识经济时代已经到来,生产化的高科技产品已经逐渐融入到人类的生活中。机器人技术是一种新的科技领域,生产与生活中不可或缺的一部分。并且为国家的制造业打下了新的基础。不仅如此,这项技术正在逐渐的改变我们的生活,原本繁杂的工作变得越来越简单易处理,原本靠人类自身无法实现的工作也逐渐变成了可能,可以说是开创了一个新时代。目前为止,人类记录时间的、记录数据的方式还停留在手动阶段,虽然很多电子设备中都内置了精密的时钟,但并不能人性化的将时间或重要的数据自动记录下来,而智能写字机的出现将代替人类完成这些繁杂的工作。智能写字机综合了计算机、控制论、仿生学等多学科知识的技术产品,其应用场景广泛,不仅是AI技术的新思维,更是对提高人类书写工作效率有着重大意义。不仅如此,写字机的功能极具开发价值,不仅可以成为记录时间的工具,也可以加入激光头进行激光雕刻,甚至还可以绘制一些复杂的绘画作品。可以说写字机不光是一台会写字的机器,还是一个多功能的艺术创作机器人。在写字机进行绘画的实验中,王晓丽、宫晓博等改善了笔架的运行轨迹,使绘画作品更加生动;此外,在写字机汉字书写实验中,南京林业大学机器人研究所也取得不错的成果,成功的对笔的运行轨迹进行了重新编程,拓展了更多书写字体。与此同时,写字机在国外也有了多项研究成果。MFCrainic等人提出了一种促进证书或传统信用证创建的方法,实现了写字机的机械臂可以在斜面上进行书写。KTahara等人还提出了一种新的控制方案,该方案实现了使笔尖可以从初始位置运动到平面指定任意位置。当前,写字机器人存在如下三个方面的问题:①写字机器人不够智能,太过于依赖已有的程序,如果程序发生错误,就会影响整个写字过程。系统缺乏异常容错能力,且系统自身并不能找到错误原因。②当前的写字机器人只是在同一水平面简单的程序化的进行书写,不能实施多角度的操作,只局限一个方向。③当前的写字机器人只局限于纸质品上绘画,写字操作不够精细,且需要人工辅助。最重要的是写错之后不能自动修改。本项目围绕如下几个方面进行研究:①关于机械控制,结合机械结构、前进和后退运动学、工作空间、力学和轨迹规控制写字机。②对在空间平面、柱面及球面的多角度绘制。③模块化设计,针对不同材料、笔触模块的相应设计。④标绘时钟,为了能够有效地记录时间数字,需要对时钟模块进行学习。仿生人写字绘画的动作,使得绘制的作品更具人性。本文的主要工作如下:第一章重点说明了系统的方案设计,主要阐述了系统的功能和设计目标,并根据设计目的选择合适的驱动模块,做出了系统的总体方案设计框图。第二章介绍了写字机的硬件设计,其中包含各个模块的设计原理,并根据系统的设计要求选取Arduino板的型号,选择最适合要求的舵机和时钟模块。本章重点介绍了舵机模块的电路设计,以及舵机与Arduino板之间的协作。第三章讲述了系统的软件设计;简要介绍了系统的开发环境以及重要函数和系统流程图。第四章是写字机的调试部分,囊括了系统的硬件测试以及软件测试,并就本设计出现的问题,做了简单的论述以及解决办法。
1总体方案设计系统方案设计写字机系统是由一个主控制器、一个执行环节来完成对笔的控制,使笔能够在写字板上写出简单的字体,通过对资料的采集,本系统的可供选择的有步进电机控制执行和舵机控制执行,具体方案如下:方案一:写字机的整体系统由计算机、Arduino板、步进电机以及舵机组成,其中Arduino板为主控制器,步进电机和舵机则控制笔移动。文本信息由计算机转换成G代码传送给Arduino板,其内部程序会将G代码转换成相应的程序代码来控制步进电机和舵机的运动。写字机的主要动力驱动是由步进电机完成的,实践中控制每输出一个控制脉冲,电机就运转带动笔架,进而实现仿写字体。此方案可以仿写人类字体,精度高,但价格高,结构复杂,难实现。方案二:写字机的整体系统由计算机、Arduino板、时钟模块和舵机四部分组成,其中Arduino板主要作为主控制器,三个舵机主要控制笔的抬落以及书写工作。主要由上位机将信号传送到下位机Arduino板中,在经过简单的几个坐标运算,计算出每个要写的数字或汉字中笔画的重要连接点,同时根据机械臂的几何原理,控制左右机械臂的舵机齿轮在0至180度之间转动,从而带动机械臂与笔的运动,进而进行写字。再利用时钟模块,可以书写出实时的时间。此方案的最大优点是拓展了智能写字机的功能,使其能够自动记录时间,并且价格便宜,结构简单,易实现,并且方便携带。其缺点是写字精度不够且只能写一些简单的汉字。经上述比较,虽然方案一可以写出大量的切精度高的仿写字体,但是研究范围太大,且价格昂贵,而方案二价格便宜并且全舵机控制写字更容易实现,并且增加时钟模块拓展了传统写字机的功能,更具创新意义,故选择方案二通过舵机带动机械臂进行书写。1.2系统工作原理智能写字机系统采用自动化控制,要求实现抬笔落笔、写字、记录时间,所以系统分为左右以及抬臂舵机部分、控制器部分、时钟模块部分,其中控制器采用Arduino板来控制写字信号的传输,时钟模块部分则采用时钟芯片传输实时时间信号,舵机部分则采用微型舵机完成对写字信号的执行,系统可以在每一分钟记录一下时间,也可以自行安排写字内容,即一个Arduino控制器,操控写字机系统中若干组成模块的正常运作,其控制系统框图如图1.1所示。图1.1控制系统框图2硬件电路的设计2.1主控模块设计2.1.1主控模块的选择Arduino是个基于开放源代码的软硬件平台。他的硬件具有丰富的接口I/OI/OSPIIIC、UART串口通信。常见的主板型号有ArduinoUNO、ArduinoMega2560、Arduino101、ArduinoLeonardo等。其中适用于本设计的型号有ArduinoUno和Arduino101[2]。方案一:Arduino101是一款拥有入门级别的主板,其拥有高性能、低功耗的特点,同时拥有神经元功能,适用于机器学习,但是其价格昂贵,有时则会出现手动复位的问题,其强大的功能反而被UNO的外形所限制。方案二:ArduinoUNO作为主控芯片时,实物如图2.1所示,其选用ATmega328MCU控制器为基础,具备14个数字输入/输出引脚(其中6路可用于PWM输出)、6路模拟输入、一个16MHz陶瓷谐振器、一个USB接口、一个电源插座、一个ICSP接头和一个复位按钮[3]。其优点主要是性价比很高,同时提供了自动复位的设计,可以通过软件自动复位,不需要再按复位按钮,同时具有极高的稳定性,其缺点是性能中庸。综上对比,UNO作为Arduino平台的参考标准模板,其价格便宜,更适合入门学习,并且相较于Arduino101拥有更高的稳定性,所以选择ArduinoUNO作为主控芯片,其具体实物如图2.1所示。图2.1ArduinoUNO实物图2.1.2Arduino的最小系统最小系统主要由两个部分组成,分别为:ATmega328p芯片、晶振电路,其电路设计如图2.2所示。图2.2ArduinoUNO最小系统本设计中Arduino板的电压在4~5V之间可以正常工作。电源部分使用的是USB电源线,可以连接手机充电插头或者5V的移动电源给系统供电。在晶振电路中有两个独立的反向放大器,即输入端XTAL1和输出端XTAL2,它们不仅可以与石英晶振配合,作为单片机的内部振荡器。而且能够单独作为一个元器件,需要被外部时钟驱动来使用。图2.3就是内部时钟模式。也就是说,晶振电路中的输入端和输出端分别连接两个电容和一个1MHz的石英晶振,内部振荡器便产生了。而与其连接的两个电容C4和C3会对振动频率起作用,进而起到调节频率的效果。图2.3晶振电路2.2驱动模块设计本设计主要靠舵机驱动,其内部结构主要有小型马达、小型电路板、齿轮等,舵机的外部接线为黄、红、棕三种颜色。当舵机接收到接收机的信号后,其内部控制电路会检测此时舵机轴的角度,如果此时轴的角度与控制信号不同,则内部的小型马达就会转动到指定的角度,如果轴的角度与信号相一致,则马达不会转动。方案一:SG90型号舵机是最基础,使用最广泛的舵机,并分为90度、180度、360度旋转角度版本,可以控制机械臂摆动并且调整笔的高度,其价格便宜,属于模拟舵机类型,适用于固定翼、直升机KT、小型机器人、机械手等模型。优点是性价比高,缺点是不够耐磨,实物如图2.4所示。图2.4SG90舵机实物图方案二:MG90舵机相当于SG90舵机的金属齿轮加强版,可以控制机械臂的摆动以及调整笔架的高度,安装尺寸与SG90略微不同,其优点是采用金属舵机齿轮,更加耐磨,但是缺点是其价格也更贵,而且重量达13.6g,不够轻便,适用于450直升机斜盘舵机、小型机器人、航模遥控飞机等。综上比较,SG90舵机更加便宜与轻便,并且能够契合本设计功能的需要,与MG90舵机想比性价比更高。所以选择SG90型号舵机作为驱动,其具体电路图如图2.5所示。图2.5SG90舵机电路图2.3时钟模块设计时钟模块是通过Arduino板内部或者外部振荡器,处理所提供的高频脉冲,成为Arduino板内部时钟信号。作用是来配合外部晶体实现振荡的电路,提供给Arduino板一个运行时钟。方案一:DS1302时钟的优点是功耗较低并且性能高,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAI数据。与此同时,DS1302拥有主电源/后各电源双电源引脚,具备了电流充电的能力。但是DS1302时钟的缺点也很明显,其精度不够高,容易受到外部环境影响[4]。方案二:DS3231时钟的优点是当电源断开时仍能计时,并且精确度高、成本低、使用寿命长。晶振不仅提高了元器件的精确度,还减少了生产线的元件数量。与此同时,DS3231还提供商用级和工业级温度范围,采用16引脚、300mi1的S0封装[5]。高精度的电压基准和比较器电路用来监视VCC状态,检测电源故障,提供复位输出,能够及时自动切换到备份电源。除此之外,DS3231还有其他一些优点,其高稳定性保证了控制电路可以进行自动的检测,实现主电源与备用电源的切换。当主电源重新加电或电压值返回到容许范围内时,片上复位功能可用来重新启动系统微处理器。实物如图2.6所示。图2.6DS3231模块实物图综上方案比较,由于DS1302模块精度不高而且不够稳定,在设计中并不容易控制,所以最终采用DS3231模块,其具体电路图如图2.7所示。图2.7DS3231模块电路图2.4总电路设计在总电路设计之前,将左右臂舵机以及抬臂舵机固定好,再将机械臂组装好,其中,先将Arduino板与拓展版相连接,各个插口一一对应,再将三个舵机的红、黄、棕接线分别接到拓展板的对应位置,DS3231模块的VCC和GND分别对应着接到拓展板的IIC口,将左舵机的信号线接
Arduino拓展板的三口,右舵机信号线接
Arduino拓展板的四口,抬臂舵机信号线接
Arduino拓展板的五口,最后DS3231模块的SCL对应着接
Arduino拓展板的SCL口,DS3231模块的SDA对应着接
Arduino拓展板的SDA口。具体电路图如图2.8所示。图2.8总电路设计图
3软件设计3.1Arduino开发环境ArduinoIDE是一款主要用于Arduino程序编写和开发的专业工具,支持在线烧录,用户可以免费下载修改程序。可通过USB供电,无需外接电源,也可以使用外部9VDC输入[6]。其应用强大,利用Arduino可以实现以往只能使用鼠标、键盘等输入的装置的互动内容。综上,这是一款容易入门,使用方便的编程软件,其界面十分简洁,如图3.1所示。图3.1ArduinoIDE界面3.2主程序设计程序部分主要包括笔的抬与落,舵机控制摆臂,此时笔落下。抬笔状态意味着没有书写任务;记录摆臂的轨迹,会以产生中断的方式对行程进行计数;写字部分是关键,摆臂的角度很关键。同时分析要书写的时间汉字,规划机械臂运行的轨迹,编写坐标点。综上分析,程序主要分为:引脚的宏定义部分,擦除函数,抬笔落笔函数,空格函数,主函数等,主函数可以调用规划好的数字函数。这样可以方便的通过修改函数来修改字体,并且不用通过程序的修改。与此同时,在程序中改变调用次序,就可以改变数字或其他字的书写顺序,完成不同数字的书写。在初始化设置中,设置中断引腳(中断函数将在下面进行介绍),设置串口的波特率,打开串口,设置引脚为输出模式等[7]。循环体模块,主要是调用子函数,完成想写的单词或者是句子。主程序流程图如图3.2所示。图3.2主程序流程图3.3抬笔落笔的子程序设计通过舵机的旋转原理可知,由于笔的抬落是由舵机控制的,舵机根据指定的参数值,旋转到指定位置。在笔抬起的过程中,根据机械臂的几何关系,90度角会起到最好的支撑作用;落笔的过程中,机械臂不再有支撑作用,所以回归零度角。由于角度是由脉冲决定的,每接收一个脉冲,舵机就会转动一个角度,这个角度是很小的,只有多个脉冲才能想要转动到需要的角度。当达到指定的角度时,便不会再转动陪。落笔的程序和起笔很是相似,只是转动的角度不一样。即用到的信号脉冲中的高电平的时间是2.0毫秒[8]。控制笔的程序流程如图3.3所示。图3.3控制笔的流程图3.4摆臂子程序设计依据余弦定理和勾股定理可以得出两个机械臂间存在着的几何关系和舵机转动的角度关系,在写字板上建立坐标系,以右侧舵机的写字板直角为坐标原点,确定不同数字或汉字的坐标,使笔尖能够在坐标间运动,从而写出数字或汉字。因此,以左右舵机中间点为原点,向左为x轴,向前为y轴建立直角坐标系,先求坐标位置与左舵机转动角度的关系,再设笔尖在白板上的位置为(x,y),那么左右舵机的位置分别为(XO1,YO1),(XO2,YO2)。SERVORIGHTNULI为右臂转到0度位置时舵机的角度,所以我们就可以确定右舵机转动的每一角度与笔的坐标的关系控制坐标位置的函数,左臂也是如此,把机械臂移动到目标位置的摆动角度程序设计如下:void
set
_XY(double
Tx,
double
Ty){doubledx,dy,c,a1,a2,Hx,Hy,;doublekey_number;delay(1);dx=Tx-O1Y;dy=Ty-O1Y;c=
sqrt(dx
*dx
+dy
*dy);a1=atan2(dy,
dx);a2
=
return
angle(LI,
L2,
c);key_number=(floor(((a2+a1-M_PI)*SERVOFAKTORLEFT)+SERVOLEFTNULL));PWM[1]=(int)key_number;a2
=return_angle(L2,
L1,
c);Hx=Tx
+L3
*cos((a1-a2+0.
621)+M_PI);Hy=Ty+L3*sin((a1-a2+0.621)+M_PI);dx
=Hx-
O2X;dy=
Hy
-O2Y;c
=sqrt(dx*
dx+
dy*
dy);a1
=
atan2(dy,
dx);a2=
return
angle(L1,
(L2-L3),
c);key_number=(floor(((a1-a2)*SERVOFAKTORRIGHT)+SERVORIGHTNULL));PWM[2]=(int)key_number;Delay20ms();}
4系统调试4.1系统硬件调试在系统中,对于硬件电路的检测主要是看焊接时是否有毛刺、无光泽,电路是否有短路、开路、一些具有方向的元件是否方向弄错、电路设计错误等情况。对于漏焊、元件方向弄错的检测方法是仔细对照电路图检查实际焊接的元件是否缺少。如果发现没有或者对不上的情况下需及时的重新对照确定漏焊时及时的补焊。而对于短路、断路、虚焊这些情况,应采用数字万用表检测[9]。经过测试,实物电路板与原理图一致,所有元器件的插接、方向均正确。改SERVOLEFTNULL,
SERVORIGHTNULL,
SERVOFAKTORLEFT,SERVOFAKTORRIGHT的参数,前两个参数修改是为了使左右悬臂能够摆动至90度位置,后两个参数修改是为了能使左右悬臂能够摆动到180度位置,在调试的过程中,首先上传程序,让舵机开始带动机械臂运动,当左舵机达到180度时断开电源,调整右侧机械臂舵机为90度,同样的方式再调整右侧舵机,再调节左右臂另一个位置,要保持当一侧舵机转到180度时,另一位置都是垂直于舵机连线位置的[10]。具体角度如图4.1所示。图4.1摆臂角度平面图4.2系统软件测试先将程序编译完成,在上传到Arduino板里,并且设置初始时间为12:30。首先要调节笔的高度,时笔尖刚好落在白板上,又不至于紧贴在白板上,影响书写,此时需要调节lift(0)函数的值,使其能够刚好触碰到白板,然后调节高抬笔的数值,使笔抬起的高度超过笔擦帽,而且要保证笔落下后刚好插进笔擦帽内,于是不断改变笔擦位置坐标(
rubberx,
rubbery),笔会在程序运行时先擦除掉白板上的痕迹,然后落笔写字,并且在不同的数字书写过程中会有轻微的抬笔。时间坐标修改成12:30,修改函数值结果如图4.2所示。图4.2修改结果图经过多次测试后,写字机能够清晰准确写出时间数字,并且书写流畅,书写过后会自动擦除,所有软件调试功能都已通过,实现了本次设计的要求。书写时间12:30测试结果如图4.3所示。图4.3测试结果图
结论本篇论文针对减少人工书写的强度,同时代替人手动记录时间,在同时做其他工作时并不方便,造成记录偏差的问题,设计出一种基于Arduino的写字机。使用者可以根据自己的需求来记录时间数字,或是拓展其写字功能,写一些简单的汉字或图案,抑或用于设计一些文字LOGO,减少了人工书写或记录的强度。设计是由Arduino板、舵机、DS3231模块以及外部伸展的电路组成。该系统使用的主控芯片是ArduinoUNO,它使用内部的ATmega328p控制器来提高书写效率。系统用SG90舵机来控制笔架以及两个机械臂的运动,实现笔的高度以及在写字板上的位置。当接入DS3231模块时,舵机开始进入时间数字记录模式,对实时的时间开始书写,书写的速度完全可比拟人类的书写速度,并且在设计的时间点停下来。当没有插入DS3231时,还可以通过软件设计特定程序,控制写字机写出相应的汉字、英文、图案等。本设计利用ArduinoIDE软件编写C语言程序,使各个模块实现相应功能。并且Arduino板外围接口简单,功能完善,实现了基于Arduino的写字机设计。本设计经过了硬件以及软件的测试,各部分均达到预期功能:实现了在DS3231模块连接后对实时时间的记录功能,并且通过对程序的设计,可以实现对汉字、英文、以及图案的书写与描绘。该写字机操作简单,稳定性高,工作效率强。应用本设计产品,可以减轻人类书写工作的麻烦,并且高效记录时间,同时写拓展了智能写字机的功能。
参考文献[1]TimothyD.Barfoot.机器人学中的状态估计[M].西安:西安交通大学出版社,2017.4:20-25[2]吴竹兵.多自由度灵巧手控制系统的设计与研究[D].山西:中北大学出版社,2017.4:123-130[3]刘勇,张东升,齐高峰.基于Arduino的一种桌面型激光雕刻系统的研发[J].花炮科技与市场,2018,92(2):77-85[4]兰栋,张国恒,王昭武,蓝剑锋,苏梦梦,王艺翔.基于Arduino的激光雕刻机[J].电子世界,2018,38(1):35-40[5]田文举,李华,叶犇,刘庆.基于arduino平台的两轴激光雕刻机设计[J].杭州:南方农机,2018,49(8):81-83[6]伍文进,徐中云,严帅.基于Arduino两轴激光雕刻机的研究与实现[J].机床与液压,2018,27(8):99-100[7]张宏伟.单片机应用技术[M].北京:北京理工大学出版社,2016.6:105-110[8]张培仁.机器人系统设计与算法[M].北京:中国科学技术大学出版社,2008.3:50-60[9]MykePredko.机器人控制器与程序设计[M].北京:科学出版社,2004.4:10-25[10]伍文进,徐中云,严帅.基于Arduino两轴激光雕刻机的研究与实现[J].机床与液压,2018,48(8):53-60[11]陈玉,谢玮,孟宪民,杨东岳.智能写字机器人设计[J].计算机测量与控制,2016,23(1):45-49[12]石琪琦,庄杰,黄炜,张佳东,左轩尘.基于姿态识别的机器人人机交互系统设计[J].计算机工程与设计,2015,25(7):123-125[13]王光建,廖志勇,陈雪华.机器人写字技术及其运动参数[J].重庆:重庆大学学报(自然科学版),2003,31(9):78-80[14]章杨清,刘政凯.利用分维向量改进神经网络在遥感模式识别中的分类精度[J].环境遥感,1994,81(1):140-142[15]章杨清,刘政凯.MOTOMAN-UP6机器人写字功能设计与实现[J].机械制造与自动化,2011,39(1):136-140[16]杨振乾,张旭东,王子城,高文莉,周惠君,周进.基于Arduino单片机的迈克尔逊干涉仪测量改进[J].实验室研究与探索,2016,56(1):20-25[17]郑昊,钟志峰,郭吴.基于Arduino的蓝牙通信系统设计[J].物联网技术,2018,52(1):30-35[18]程晨.Arduino开发实战指南[M].南京:机械工业出版社,2016.5:50-75[19]于欣龙,郭浩赟.硬件开源电子设计平台:爱上Arduino[M].北京:人民邮电出版社,2015.5:60-75[20]唐乐.Arduino机器人制作指南[M].北京:科学出版社,2017.9:30-105
附录1舵机及DS3231参数有关技术参数说明如下:SG90舵机参数:尺寸:21.5mmX11.8mmX22.7mm重量:9克
(1kg=1公斤=2斤)无负载速度:0.12秒/60度(4.8V)
0.002s/度堵转扭矩:1.2-1.4公斤/厘米(4.8V)使用温度:-30~+60摄氏度死区设定:7us
(7MHZ)工作电压:4.8V-6V位置等级:1024级脉冲控制精度为2usDS3231特性参数:精度范围:0°C至+40°C范围内精度为±2ppm
-40°C至+85°C范围内精度为±3.5ppm工作温度范围商用级:0°C至+70°C
工业级:-40°C至+85°C接口:高速(400kHz)
I2C工作电压:3.3V数字温度传感器输出:精度为±3°C
附录2源程序清单//1.先调节0、180度的位置。调节到位后,再调节90度位置//左右悬臂舵机的0或180度位置,,数字增加,左侧舵机逆时针调整,右侧舵机顺时针调整//【此数值可能需要调节】#defineSERVOLEFTNULL2050//数值减小,顺时针旋转,加大则逆时针旋转//2050//【此数值可能需要调节】#defineSERVORIGHTNULL1080//数值减小,顺时针旋转,加大则逆时针旋转//1050//2.调节到位0、180,再调节下面参数//左右悬臂舵机的90度位置,,数字增加,左侧舵机顺时针调整,右侧舵机逆时针调整//【此数值可能需要调节】#defineSERVOFAKTORLEFT650//数值加大,顺时针旋转,减小则逆时针旋转//630//【此数值可能需要调节】#defineSERVOFAKTORRIGHT605//数值减小,顺时针旋转,加大则逆时针旋转//605//升举舵机的3个角度//【此数值可能需要调节】#defineLIFT01800//落笔写字ondrawingsurface#defineLIFT12000//写字时抬臂动作betweennumbers#defineLIFT22200//高抬笔架goingtowardssweeper//【此数值可能需要调节】////↑↑↑↑↑↑↑↑↑↑↑↑调试成功后,将以上代码复制到主程序↑↑↑↑↑↑↑↑↑↑↑↑//以上参数,请运行调试程序plotclock,调整好位置后,将数据复制过来////笔擦的坐标位置,如不能对准笔擦可以微调单位毫米intrubberx=72,rubbery=46;//【此数值可能需要调节】//三只舵机的接口号#defineSERVOPINLIFT2//抬臂舵机#defineSERVOPINLEFT3//左臂舵机#defineSERVOPINRIGHT4//右臂舵机//速度数字越小越慢,太快了容易抖1000~2000#defineLIFTSPEED1500//悬臂的长度,根据图纸测量,无需改变#defineL135#defineL257.2#defineL314.2//左右舵机轴心的位置,根据图纸测量,无需改变#defineO1X22#defineO1Y-25#defineO2X47#defineO2Y-25//需要的库函数#include<DS3231.h>#include<Servo.h>#include<Wire.h>#include<LiquidCrystal_I2C.h>LiquidCrystal_I2Clcd(0x27,16,2);//settheLCDaddressto0x27and0x3ffora16charsand2linedisplay//时钟模块,如果没有时钟模块,请用另一个程序DS3231Clock;boolh12;boolPM;intservoLift=LIFT2;Servoservo1;//Servoservo2;//Servoservo3;//volatiledoublelastX=rubberx;volatiledoublelastY=rubbery;intlast_min=0;voidsetup(){Wire.begin();lcd.init();//initializethelcdlcd.backlight();lcd.setCursor(0,0);lcd.print("time:");//第一次运行请设置时间,设置成功后请删除此行代码,或者如下格式注释掉Clock.setMinute(9);//设置分钟Clock.setHour(16);//设置小时//第一次运行请设置时间,设置成功后请删除此行代码//设置一个模拟时间,(小时,分钟,后面全填0)//如果此句编译错误,请将文件包内的libraries库放到Arduino文件夹内,具体操作办法见说明文档servo1.attach(SERVOPINLIFT);//初始化抬臂舵机liftingservoservo2.attach(SERVOPINLEFT);//初始化左臂舵机leftservoservo3.attach(SERVOPINRIGHT);//初始化右臂舵机rightservolift(2);//高抬笔drawTo(rubberx,rubbery);//停留在笔擦位置delay(1000);}voidloop(){intminute,hour;minute=Clock.getMinute();hour=Clock.getHour(h12,PM);//读取时间lcd.setCursor(5,0);lcd.print(hour);lcd.print(':');lcd.print(minute);inti=0;//下面代码任选一行,进行不同模式的书写//if(last_min!=minute)//每分钟书写一次时间//if(1)//反复不间断的擦写模式if(last_min!=minute)//如需修改请复制上面代码{if(!servo1.attached())servo1.attach(SERVOPINLIFT);if(!servo2.attached())servo2.attach(SERVOPINLEFT);if(!servo3.attached())servo3.attach(SERVOPINRIGHT);lift(0);while((i+1)*10<=hour){i++;}number(0,3,111,1);number(0,25,i,0.9);number(14,25,(hour-i*10),0.9);number(25,25,11,0.9);i=0;while((i+1)*10<=minute){i++;}number(32,25,i,0.9);number(43,25,(minute-i*10),0.9);lift(2);drawTo(rubberx,rubbery);lift(1);last_min=minute;servo1.detach();servo2.detach();servo3.detach();}//lift(0);//落笔写字//number(0,3,111,1);//檫黑板//number(0,25,5,1);//number(14,25,5,1);//number(25,25,11,1);//打点//number(32,25,5,1);//number(43,25,5,1);//lift(2);//高抬笔//drawTo(rubberx,rubbery);//【此数值可能需要调节】默认为7044//lift(1);//抬笔//servo1.detach();//servo2.detach();//servo3.detach();//while(1);}//Writingnumeralwithbxbybeingthebottomleftoriginpoint.Scale1equalsa20mmhighfont.//Thestructurefollowsthisprinciple:movetofirststartpointofthenumeral,liftdown,drawnumeral,liftup//这里是写字的函数,如果你觉得字写的丑,可以自行修改字体,结果可能是更丑//还可以自行增加其他内容,比如字母甚至是汉字voidnumber(floatbx,floatby,intnum,floatscale){switch(num){case0:drawTo(bx+12*scale,by+6*scale);lift(0);bogenGZS(bx+7*scale,by+10*scale,10*scale,-0.8,6.7,0.5);lift(1);break;case1:drawTo(bx+3*scale,by+15*scale);//lift(0);drawTo(bx+5*scale,by+20*scale);//drawTo(bx+10*scale,by+20*scale);drawTo(bx+5*scale,by+0*scale);lift(1);break;case2:drawTo(bx+2*scale,by+12*scale);lift(0);bogenUZS(bx+8*scale,by+14*scale,6*scale,3,-0.8,1);drawTo(bx+1*scale,by+0*scale);drawTo(bx+12*scale,by+2*scale);//drawTo(bx+12*scale,by+0*scale);lift(1);break;case3:drawTo(bx+2*scale,by+17*scale);lift(0);bogenUZS(bx+5*scale,by+15*scale,5*scale,3,-2,1);bogenUZS(bx+5*scale,by+5*scale,5*scale,1.57,-3,1);lift(1);break;case4:drawTo(bx+10*scale,by+0*scale);lift(0);drawTo(bx+10*scale,by+20*scale);drawTo(bx+4*scale,by+2*scale);//drawTo(bx+2*scale,by+6*scale);drawTo(bx+15*scale,by+6*scale);//drawTo(bx+12*scale,by+6*scale);lift(1);break;case5:drawTo(bx+2*scale,by+5*scale);lift(0);bogenGZS(bx+5*scale,by+6*scale,6*scale,-2.5,2,1);drawTo(bx+5*scale,by+20*scale);drawTo(bx+12*scale,by+20*scale);lift(1);break;case6:drawTo(bx+2*scale,by+10*scale);lift(0);bogenUZS(bx+7*scale,by+6*scale,6*scale,2,-4.4,1);drawTo(bx+11*scale,by+20*scale);lift(1);break;case7:drawTo(bx+2*scale,by+20*scale);lift(0);drawTo(bx+12*scale,by+20*scale);drawTo(bx+2*scale,by+0);lift(1);break;case8:drawTo(bx+5*scale,by+10*scale);lift(0);bogenUZS(bx+5*scale,by+15*scale,5*scale,4.7,-1.6,1);bogenGZS(bx+5*scale,by+5*scale,5*scale,-4.7,2,1);lift(1);break;case9:drawTo(bx+9*scale,by+11*scale);lift(0);bogenUZS(bx+7*scale,by+15*scale,5*scale,4,-0.5,1);drawTo(bx+5*scale,by+0);lift(1);break;case111:lift(0);drawTo(rubberx,rubbery);drawTo(58,42);drawTo(58,45);drawTo(0,45);drawTo(0,41);drawTo(58,41);drawTo(60,37);drawTo(0,37);drawTo(0,33);drawTo(60,33);drawTo(60,29);drawTo(0,29);drawTo(0,25);drawTo(60,25);drawTo(60,20);drawTo(0,20);drawTo(60,rubbery-3);drawTo(rubberx+6,rubbery-3);lift(2);drawTo(rubberx,rubbery);break;case11:drawTo(bx+5*scale,by+15*scale);lift(0);bogenGZS(bx+5*scale,by+15*scale,0.1*scale,1,-1,1);lift(1);drawTo(bx+5*scale,by+5*scale);lift(0);bogenGZS(bx+5*scale,by+5*scale,0.1*scale,1,-1,1);lift(1);break;}}//抬函数,不同的摆臂高度voidlift(charlift){switch(lift){//roomtooptimize!case0:if(servoLift>=LIFT0){while(servoLift>=LIFT0){servoLift--;servo1.writeMicroseconds(servoLift); delayMicroseconds(LIFTSPEED);}}else{while(servoLift<=LIFT0){servoLift++;servo1.writeMicroseconds(servoLift);delayMicroseconds(LIFTSPEED);}}break;case1:if(servoLift>=LIFT1){while(servoLift>=LIFT1){servoLift--;servo1.writeMicroseconds(servoLift);delayMicroseconds(LIFTSPEED);}}else{while(servoLift<=LIFT1){servoLift++;servo1.writeMicroseconds(servoLift);delayMicroseconds(LIFTSPEED);}}break;case2:if(servoLift>=LIFT2){while(servoLift>=LIFT2){servoLift--;servo1.writeMicroseconds(servoLift);delayMicroseconds(LIFTSPEED);}}else{while(servoLift<=LIFT2){servoLift++;servo1.writeMicroseconds(servoLift); delayMicroseconds(LIFTSPEED);}}break;}}//勾股定理voidbogenUZS(floatbx,floatby,floatradius,intstart,intende,floatsqee){floatinkr=-0.05;floatcount=0;do{drawTo(sqee*radius*cos(start+count)+bx,radius*sin(start+count)+by);count+=inkr;}while((start+count)>ende);}//cos?sin?voidbogenGZS(floatbx,floatby,floatradius,intstart,intende,floatsqee){floatinkr=0.05;floatcount=0;do{drawTo(sqee*radius*cos(start+count)+bx,radius*sin(start+count)+by);count+=inkr;}while((start+count)<=ende);}voiddrawTo(doublepX,doublepY){doubledx,dy,c;inti;//dxdyofnewpointdx=pX-lastX;dy=pY-lastY;//pathlenghtinmm,times4equals4stepspermmc=floor(4*sqrt(dx*dx+dy*dy));if(c<1)c=1;for(i=0;i<=c;i++){//drawlinepointbypointset_XY(lastX+(i*dx/c),lastY+(i*dy/c));}lastX=pX;lastY=pY;}doublereturn_angle(doublea,doubleb,doublec){//cosineruleforanglebetweencandareturnacos((a*a+c*c-b*b)/(2*a*c));}//用各种三角函数把位置坐标换算成舵机的角度,具体咋算的,请参考//Plotclockbyjoo-Thingiverse///thing:248009/voidset_XY(doubleTx,doubleTy){delay(1);doubledx,dy,c,a1,a2,Hx,Hy;//calculatetrianglebetweenpen,servoLeftandarmjoint//cartesiandx/dydx=Tx-O1X;dy=Ty-O1Y;//polarlemgth(c)andangle(a1)c=sqrt(dx*dx+dy*dy);//a1=atan2(dy,dx);//a2=return_angle(L1,L2,c);servo2.writeMicroseconds(floor(((a2+a1-M_PI)*SERVOFAKTORLEFT)+SERVOLEFTNULL));//calculatejoinrarmpointfortriangleoftherightservoarma2=return_angle(L2,L1,c);Hx=Tx+L3*cos((a1-a2+0.621)+M_PI);//36,5掳Hy=Ty+L3*sin((a1-a2+0.621)+M_PI);//calculatetrianglebetweenpenjoint,servoRightandarmjointdx=Hx-O2X;dy=Hy-O2Y;c=sqrt(dx*dx+dy*dy);a1=atan2(dy,dx);a2=return_angle(L1,(L2-L3),c);servo3.writeMicroseconds(floor(((a1-a2)*SERVOFAKTORRIGHT)+SERVORIGHTNULL));}致谢本次毕业设计,我首先要感谢我的指导老师沈洪洋老师和台闯老师的在他们的耐心指导下,我能够顺利的完成毕业设计,虽然平日里沈老师工作繁多,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计等整个过程中都给予了我悉心的指导。由于我的设计不算简单,所以在整个过程中也犯了很多错误,沈老师能够细心地帮我指正。除此之外,台老师的专业水准让我崇敬,他的治学严谨和科学研究的精神也是我永远学习的榜样,而且在我完成设计的同时教给我很多新知识,并告诉我如何应用于实践。同时还要感谢我的同学们,在写论文的过程中我们互帮互助,不仅完成了论文也培养了团结互助的风气。回首一年以来的岁月,老师们精心指导我,同时也对我的实习工作提出了一些宝贵的建议,告诉我如何把学会的知识应用到生活当中去,如何严谨认真地完成一项工作,如何耐心细心地面对困难,他们严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,二位老师都始终给予我细心的指导和不懈的支持。在此谨向二位老师致以诚挚的谢意和崇高的敬意。从论文开题到如今的完成,我真心的感谢每一位指导过我的老师,每一位在学习上给过我帮助的同学,在你们看来可能是举手之劳,但是在我看来却是你们给予我的宝贵财富,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!
HYPERLINK电脑快捷知识大全编辑本段一、常见用法F1显示当前程序或者windows的帮助内容。F2当你选中一个文件的话,这意味着“重命名”F3当你在桌面上的时候是打开“查找:所有文件”对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC打开开始菜单CTRL+ALT+DELETE在win9x中打开关闭程序对话框DELETE删除被选择的选择项目,如果是文件,将被放入回收站SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站CTRL+N新建一个新的文件CTRL+O打开“打开文件”对话框CTRL+P打开“打印”对话框CTRL+S保存当前操作的文件CTRL+X剪切被选择的项目到剪贴板CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置ALT+BACKSPACE或CTRL+Z撤销上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤销的操作Windows键+L锁屏键Windows键+M最小化所有被打开的窗口。Windows键+SHIFT+M重新将恢复上一项操作前窗口的大小和位置Windows键+E打开资源管理器Windows键+F打开“查找:所有文件”对话框Windows键+R打开“运行”对话框Windows键+BREAK打开“系统属性”对话框Windows键+CTRL+F打开“查找:计算机”对话框SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏ALT+F4关闭当前应用程序ALT+SPACEBAR打开程序最左上角的菜单ALT+TAB切换当前程序ALT+ESC切换当前程序ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板CTRL+F4关闭当前应用程序中的当前文本(如word中)CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前一个窗口)在IE中:ALT+RIGHTARROW显示前一页(前进键)ALT+LEFTARROW显示后一页(后退键)CTRL+TAB在页面上的各框架中切换(加shift反向)F5刷新CTRL+F5强行刷新目的快捷键激活程序中的菜单栏F10执行菜单上相应的命令ALT+菜单上带下划线的字母关闭多文档界面程序中的当前窗口CTRL+F4关闭当前窗口或退出程序ALT+F4复制CTRL+C剪切CTRL+X删除DELETE显示所选对话框项目的帮助F1显示当前窗口的系统菜单ALT+空格键显示所选项目的快捷菜单SHIFT+F10显示“开始”菜单CTRL+ESC显示多文档界面程序的系统菜单ALT+连字号(-)粘贴CTRL+V切换到上次使用的窗口或者按住ALT然后重复按TAB,切换到另一个窗口ALT+TAB撤消CTRL+Z编辑本段二、使用“Windows资源管理器”的快捷键目的快捷键如果当前选择展开了,要折叠或者选择父文件夹左箭头折叠所选的文件夹NUMLOCK+负号(-)如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头展开当前选择下的所有文件夹NUMLOCK+*展开所选的文件夹NUMLOCK+加号(+)在左右窗格间切换F6编辑本段三、使用WINDOWS键可以使用Microsoft自然键盘或含有Windows徽标键的其他任何兼容键盘的以下快捷键。目的快捷键在任务栏上的按钮间循环WINDOWS+TAB显示“查找:所有文件”WINDOWS+F显示“查找:计算机”CTRL+WINDOWS+F显示“帮助”WINDOWS+F1显示“运行”命令WINDOWS+R显示“开始”菜单WINDOWS显示“系统属性”对话框WINDOWS+BREAK显示“Windows资源管理器”WINDOWS+E最小化或还原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M编辑本段四、“我的电脑”和“资源管理器”的快捷键目的快捷键关闭所选文件夹及其所有父文件夹按住SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)向后移动到上一个视图ALT+左箭头向前移动到上一个视图ALT+右箭头查看上一级文件夹BACKSPACE编辑本段五、使用对话框中的快捷键目的快捷键取消当前任务ESC如果当前控件是个按钮,要单击该按钮或者如果当前控件是个复选框,要选择或清除该复选框或者如果当前控件是个选项按钮,要单击该选项空格键单击相应的命令ALT+带下划线的字母单击所选按钮ENTER在选项上向后移动SHIFT+TAB在选项卡上向后移动CTRL+SHIFT+TAB在选项上向前移动TAB在选项卡上向前移动CTRL+TAB如果在“另存为”或“打开”对话框中选择了某文件夹,要打开上一级文件夹BACKSPACE在“另存为”或“打开”对话框中打开“保存到”或“查阅”F4刷新“另存为”或“打开”对话框F5编辑本段六、桌面、我的电脑和“资源管理器”快捷键选择项目时,可以使用以下快捷键。目的快捷键插入光盘时不用“自动播放”功能按住SHIFT插入CD-ROM复制文件按住CTRL拖动文件创建快捷方式按住CTRL+SHIFT拖动文件立即删除某项目而不将其放入SHIFT+DELETE“回收站”显示“查找:所有文件”F3显示项目的快捷菜单APPLICATION键刷新窗口的内容F5重命名项目F2选择所有项目CTRL+A查看项目的属性ALT+ENTER或ALT+双击可将APPLICATION键用于Microsoft自然键盘或含有APPLICATION键的其他兼容键编辑本段七、Microsoft放大程序的快捷键这里运用Windows徽标键和其他键的组合。快捷键目的Windows徽标+PRINTSCREEN将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK将屏幕复制到剪贴板(不包括鼠标光标)Windows徽标+PAGEUP切换反色。Windows徽标+PAGEDOWN切换跟随鼠标光标Windows徽标+向上箭头增加放大率Windows徽标+向下箭头减小放大率编辑本段八、使用辅助选项快捷键目的快捷键切换筛选键开关右SHIFT八秒切换高对比度开关左ALT+左SHIFT+PRINTSCREEN切换鼠标键开关左ALT+左SHIFT+NUMLOCK切换粘滞键开关SHIFT键五次切换切换键开关NUMLOCK五秒QQ快捷键,玩QQ更方便Alt+S快速回复Alt+C关闭当前窗口Alt+H打开聊天记录Alt+T更改消息模式Ait+J打开聊天纪录Ctrl+A全选当前对话框里的内容Ctrl+FQQ里直接显示字体设置工具条Ctrl+J输入框里回车(跟回车一个效果)Ctrl+M输入框里回车(跟回车一个效果)Ctrl+L对输入框里当前行的文字左对齐Ctrl+R对输入框里当前行的文字右对齐Ctrl+E对输入框里当前行的文字居中Ctrl+V在qq对话框里实行粘贴Ctrl+Z清空/恢复输入框里的文字Ctrl+回车快速回复这个可能是聊QQ时最常用到的了Ctrl+Alt+Z快速提取消息Ctrl+Alt+A捕捉屏幕最常用的快捷键F5刷新DELETE删除TAB改变焦点CTRL+C复制CTRL+X剪切CTRL+V粘贴CTRL+A全选CTRL+Z撤销CTRL+S保存ALT+F4关闭CTRL+Y恢复ALT+TAB切换CTRL+F5强制刷新CTRL+W关闭CTRL+F查找SHIFT+DELETE永久删除CTRL+ALT+DEL任务管理SHIFT+TAB-反向切换CTRL+空格--中英文输入切换CTRL+Shift输入法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《应急人力资源管理》2022-2023学年第一学期期末试卷
- 物业智能化解决方案
- 石河子大学《数学文化赏析》2021-2022学年第一学期期末试卷
- 石河子大学《口腔颌面外科学》2022-2023学年第一学期期末试卷
- 石河子大学《工程热力学与传热学》2023-2024学年第一学期期末试卷
- 精神科新冠肺炎演练
- 沈阳理工大学《数学建模》2023-2024学年第一学期期末试卷
- 沈阳理工大学《液压与气动技术》2022-2023学年第一学期期末试卷
- 沈阳理工大学《电气控制与PC技术》2022-2023学年期末试卷
- 沈阳理工大学《场地设计》2021-2022学年第一学期期末试卷
- 百度投诉保证函
- 2.7-植被与自然环境的关系(精品课件)-2020-2021学年高一地理(新教材中图版必修第一册)
- 清欠工作管理制度管理办法
- 三甲评审文件盒资料--终稿
- 铁路项目桥梁墩台身施工方案
- 工作岗位风险评估工作规程
- 智能存包柜(储物柜)产品技术说明书
- 常见化学式大全
- 電鍍技術資料大全
- 偏拉墙体配筋分析及建议课件
- 消防电气检验批质量验收记录表(共18页)
评论
0/150
提交评论