迷你激光雕刻机的设计与实现毕业论文docWord文档格式.docx
《迷你激光雕刻机的设计与实现毕业论文docWord文档格式.docx》由会员分享,可在线阅读,更多相关《迷你激光雕刻机的设计与实现毕业论文docWord文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
1设计要求
1.1毕业设计题目
迷你激光雕刻机的设计与实现
1.2设计的主要功能
本设计以ArduinoUNO型单片机为核心,制作一个迷你激光雕刻机的设计和实现的主要功能如下:
(1)实现弱光定位,通过PWM的调节,将激光的强度降至一个较低的数值,以便于雕刻前的定位设置。
(2)在非金属的物体表面烧刻出由计算机传输的图案,由上位机的控制软件发送指令至单片机进行动作。
(3)支持重复雕刻,在一次雕刻完成之后,雕刻机会自动返回雕刻初始位置,此时不移动电机位置,直接生成指令,可以再次在同样的位置进行雕刻,以达到修补首次雕刻时未出雕刻效果的部分区域。
(4)支持印章的阴阳雕刻,在光敏垫或部分胶皮材质上进行印章的雕刻,雕刻成型后即可上油墨进行盖印。
(5)可通过电脑端软件控制进行手动的上下左右移动,开光激光器等行为。
(6)使用由ArduinoUNO型单片机构成的中央处理模块,完成对指令的发送接收,数据的处理以及进行控制。
2工作原理和系统结构
根据设计的要求,本课题的迷你激光雕刻机的设计与实现主要系统分为六个模块:
串口通信模块、中央处理模块、电机驱动模块、激光器驱动模块、机械传动结构模块、外型框架模块,系统结构如图2-1所示。
图2-1系统结构框图
1)中央处理模块
主要采用ArduinoUNO型单片机设计,为本设计的核心模块,主要负责对其他部分进行数据处理和控制。
2)串口通信模块
采用PL2303HXD芯片,对RS232电平与USB电平进行转换,负责电脑与单片机的实时通信传输。
3)电机驱动模块
该模块使用了L9110S电机驱动芯片,该芯片主要是为了控制和驱动电机而设计。
该芯片有两个TTL/CMOS兼容电平的输入,故每驱动一个步进电机,则需要两枚L9110S芯片来提供二相四线步进电机所需要的线序脉冲。
4)激光器驱动模块
使用SS8050NPN型三极管构建控制激光器的开关电路,单片机通过发送高低电平信号,来控制三极管的通断。
5)机械传动结构模块
由3D打印件、二相四线步进电机、亚克力面板组成,亚克力面板作为底板承载支架与电机,3D打印件与步进电机接合之后,步进电机能够带动3D打印件进行移动,以此达到机械传动的目的。
6)外型框架模块
外型框架模块主要使用亚克力面板,通过螺丝的接合,制成搭载机械传动结构模块和电路板等物件的支架。
3硬件设计
3.1系统总电路图
由ArduinoUNO型单片机构成的中央处理模块;
由PL2303HXD构成的串口通信模块,四枚L9110S电机驱动芯片构成电机驱动模块;
SS8050NPN三极管构成激光器驱动电路,系统总电路图如图3-1所示。
图3-1系统总电路图
3.2控制和数据处理模块
控制和数据处理模块采用ArduinoUNO型单片机构成,由于Arduino单片机拥有运算能力较强,并且软件编程控制方便,功耗低,体积小、I/O口资源丰富、内置A\D模数转换、通用性强和成本较低等优点。
通过外界变压器提供的+5V电压供电,有源晶振输入时钟,控制模块能够正常工作;
通过与串口通信模块连接上位机,可实现程序的下载,支持在线调试程序,并能使用上位机软件给单片机发送指令,从而控制各个模块正常工作。
控制和数据模块电路如图3-2所示。
图3-2控制与数据处理模块
Arduino,是一个开源的软硬件平台,通过对AVR单片机的二次封装开发,简化了单片机引脚的使用,并且有专用的开发编程语言。
这个著名的开源硬件项目,诞生于意大利的一所设计学校。
马西莫的学生经常抱怨找不到一个物美价廉好用的单片机来对机器人进行控制。
之后,马西莫和朋友大卫讨论了这个问题,他们决定设计自己的电路板,并邀请学生大卫梅利斯设计编程语言。
一个星期后,设计完成。
电路板被命名为Arduino,来自学生经常去附近的一个酒吧。
聪明的马西莫认为开源能够产生更广泛的传播效应,给Arduino带来更多的关注。
于是,他将设计数据发布到网上。
正如马西莫所设想的那样,在短短几个月的时间,Arduino的发展快速增长,而且充满激情的爱好者也提出了很多改进电路和程序语言的建议。
表3-1主要性能参数
工作电压
1.8V-5.5V
外部供电电压
7V-12V
最大外部供电电压(不推荐)
20V
数字输入/输出口
14
PWM
6
10位ADC
8/6(DIP)
单个输入/输出管脚的直流电流值
40mA
3.3V管脚直流电流值
50mA
FlashMemory
32KB
SRAM
2KB
EEPROM
1KB
时钟频率
16MHz
16位定时器/计数器
1
8位定时器/计数器
2
RTC
YES
SPI
UART
TWI
WDT
1(带独立片内振荡器)
外部中断
24
睡眠模式
6种
硬件乘法器
片内振荡器
引脚电平中断/唤醒功能
掉电检测
上电复位
模拟比较器
工作温度范围:
-40℃至85℃
ArduinoUNO单片机两种封装引脚如图3-3和图3-4及其功能:
图3-3TQFP32型封装
图3-4PDIP28型封装
(1)VCC:
数字电路的电源
(2)GND:
地
(3)数字端口(D1..D13)
D1至D13是arduino经过重新封装之后进行编号的管脚,具有正常的数字输入输出功能,它的工作电压为5V,每一个I/O口能够接入与输出的最大电流为40毫安,同时也内置了20至50K的上拉电阻(默认为不连接状态)。
除此之外,有部分管脚具有其他特定的功能。
1 D0、D1引脚:
D0为串口信号RX,D1为串口信号TX,它们与串口通信芯片相连接,为串口信号的接收提供TTL电压。
2 D2、D3引脚:
外部中断触发引脚。
3 D3、D5、D6、D9、D10、D11引脚:
能够输出PWM脉冲。
4 D10(SS)、D11(MOSI)、D12(MISO)、D13(SCK):
SPI通信接口。
(4)模拟端口(A0..A5)
A0至A5是ADC输入管脚,在单片机内部配置有一个10位的ADC寄存器,用于将读入的模拟数据进行处理,将其转变为数字,便于用户对数据进行处理。
(5)RESET
复位输入引脚。
低于最低时间低阈值长会导致系统复位。
脉冲持续时间小于复位之间的阈值。
(6)XTAL1是晶振的输入端。
(7)XTAL2是晶振的输出端。
(8)AVCC
AVCC为模拟A口与模数转换器提供了电压,若是ADC尚未进行工作,则AVCC与电源VCC进行连接。
(9)AREF:
进行A/D模数转换时需要的基准电压输入引脚。
(10)晶体振荡器
如图3-5所示,石英的晶体与陶瓷谐振器一般常常被用来制作该振荡器。
图3-5
晶体振荡器连接图
若是要震得到的幅度完满,则需要对熔丝位CKOPT进行一定的程序编译工作。
对于噪声环境与需要驱动第二时钟缓冲器的情况来说该模式非常适用,并且该模式的频率范围很宽[1]。
若CKOPT没有被进行编程,则振荡器输出幅度会变得比较小。
这样就会降低器件的功耗,但是也因为这样,就导致了频率范围缩小,也不能够再运行别的时钟缓冲器。
就谐振器而言,没有得到程序编译的CKOPT,其最大的频率是8兆赫兹,而经过程序编译之后则可以达到16兆赫兹。
无论采用的是谐振器或晶体,两个电容的值要求相等,它们的值也可能取决于环境中的各项杂质参数[1]。
表3-2晶体振荡器工作模式
CKOP
TCKSEL3..1
频率范围
(MHz)
电容C1和C2的推荐使用范围(pF)
101
(1)
0.4
-
0.9
–
110
0.9
3.0
12
22
111
3.0
8.0
101,
110,
1.0
≤
晶体振荡器器拥有三种不同的工作模式,这三种不同的工作模式每一个都有一个最优的频率范围。
通过对CKSEL3..1的进行一定的设定也会影响到振荡器的工作模式,如表3-2所示[1]。
如图3-6所示,由于芯片采用了哈弗结构,并且具有单独分立的数据与程序总线,因此得到了最高的性能与并行性。
程序存储器中的指令流水线通过各级运行。
每当CPU执行一条命令时也会读取下一条的命令,单时钟周期运行指令由此得到实现[11]。
在芯片的内部,通用工作寄存器被设计在快速访问寄存器中,而当你需要对其进行访问的时候只需要一个时钟周期,因此ALU操作能够在一个时钟周期内进行的想法得以变为现实。
当有两个相等的操作数在进行ALU操作的时候,它们的寄存器被访问,然后就会执行操作,将得到的结果发送回来,在这样的一次操作,也只需要一个时钟周期的时间。
间接寻址寄存器指针能够对数据空间进行寻址,提高地址运算的效率,并且使用存储器的地址指针时,也可以利用其中一个指针来为其进行查找表的工作[11]。
寄存器之间、寄存器与常数之间的运算可以使用ALU操作进行,单寄存器也能够进行ALU操作。
在进行ALU之后,状态寄存器就能获取并显示新的结果。
有无条件的跳转与指令的调用产生了程序的流通,以此能够对整个地址空间进行直接寻址的操作[1]。
引导程序区、应用程序区存在于程序存储器空间中,他们都具有特定的锁定位以及读写的保护。
引导程序区中可以进行应用