【E1760】基于STM32F103的三轴运动控制器设计

2021-10-26 08:09:37      索炜达电子      898     

项目编号:E1760

文件大小:150M

源码说明:带中文注释

开发环境:C编译器

简要概述:

本课题设计了基于STM32F103的三轴运动控制器。通过该运动控制器结合现有实验设备可搭建开放型运动控制实验台,利用实验台可进行插补算法的验证,从而进行数控技术原理、数控系统控制方法等学科内容的教学。

本课题以现有数控实验台为基础,主要围绕三轴机械平台的运动控制及XY平面内插补算法及插补过程中加减速的实现展开研究。

本课题硬件部分以STM32F103系列MCU为控制核心,搭建控制器的硬件电路。控制器硬件电路主要包括单片机最小系统、电源模块、串口通信模块、报警模块、光电隔离模块、接口模块及限位检测模块,单片机最小系统由STM32F103RBT6微控制器、时钟电路及复位电路构成。本课题软件部分以Keil软件为平台编写C语言控制程序。系统控制程序以单片机最小系统为载体经硬件系统的光电隔离模块向步进电机驱动器发送驱动脉冲信号及方向信号,从而控制步进电机按给定方向运动。限位检测模块可检测三轴机械试验台的运动超程,接近限位开关的超程信号经光电隔离模块送至微控制器进行处理,并控制步进电机做出相应动作。光电隔离模块避免了强电侧接口对弱电侧器件的信号干扰。本课题中的直线插补与圆弧插补均通过逐点比较法作来实现,通过键盘输入插补相关点坐标即可驱动步进电机并经由滚珠丝杠工作台实现XY平面内的插补,Z轴主要作为绘图笔的控制轴。

本课题最终实现了三轴机械试验台的运动手动控制,或经键盘输入插补坐标值进行直线、圆弧插补,并实现了直线插补中的加减速控制及试验台运动过程中的超程自动急停并报警,超程后Z轴可自动复位,X轴与Y轴可通过键盘模块的复位按键进行手动准确复位。

关键词:STM32F103微控制器  步进电机  三轴运动控制  插补算法

设计报告:

【E1760】基于STM32F103的三轴运动控制器设计

控制系统总体方案

本课题主要研究基于STM32F103系列微控制器的三轴运动控制及XY平面内的直线、圆弧插补的实现。故本次毕业设计主要围绕三轴运动控制器硬件平台的搭建及通过C语言程序实现对三轴机械试验台运动的自由控制与XY平面内插补算法的实现来展开。

本课题控制系统总体框图如图2-1所示。

 【E1760】基于STM32F103的三轴运动控制器设计

 控制系统总体框图

以STM32F103系列微控制器为控制核心的单片机最小系统读取SD卡存储模块中的数控G代码或由键盘模块调用相关函数并输入参数,经由光电隔离模块向步进电机驱动器发送电机驱动脉冲信号与方向信号,从而驱动机械试验台步进电机运动。步进电机经联轴器与滚珠丝杠联接,带动滚珠丝杠转动并将旋转位移转化为工作台的直线位移,从而实现了工作台运动的自由控制及插补运动,运动目标轨迹可通过LCD进行同步显示。

限位检测模块可对工作台的运动位置情况进行实时检测,工作台任意方向的超程均会触发接近限位开关输出相应超程信号,经光电隔离模块或与门IC送至微控制器进行处理,并控制蜂鸣器进行超程报警,同时输出步进电机急停信号与Z轴自动复位信号,X轴与Y轴通过键盘模块的复位按键视具体超程方向的不同进行手动准确复位。

运行结果:

【E1760】基于STM32F103的三轴运动控制器设计

1-步进电机驱动器;2-步进电机;3-接近限位开关;4-滚珠丝杠;

5-XY轴工作台;6-Z轴工作台;7-绘图笔

图5-1 数控试验台

【E1760】基于STM32F103的三轴运动控制器设计

运动控制器工作状态

文件列表:

目录│文件列表:

 └ 基于STM32F103的三轴运动控制器设计

    ├ 其它文档

    │  │ 元件清单.xls

    │  ├ 文献

    │  │  │ CNC数控系统加减速控制方法研究与实现_商允舜.caj

    │  │  │ RS232串口通信在PC机与单片机通信中的应用_潘方.pdf

    │  │  │ SPI接口及其在数据交换中的应用_杨美刚.pdf

    │  │  │ 利用电磁感应式限位开关监测输送皮带打滑的方法_杨华.pdf

    │  │  │ 国内外数控技术的发展现状与趋势_杨建武.pdf

    │  │  │ 圆弧插补算法的探讨_周虹.pdf

    │  │  │ 基于增强型STM32驱动双极步进电机的研究_张团善_2010.10.pdf

    │  │  │ 开关电源中光耦隔离的几种典型接法对比研究_杨仲望.pdf

    │  │  │ 数控技术在我国机械制造行业应用_许金梅.pdf

    │  │  │ 数控技术的发展趋势及产业化_李长文.pdf

    │  │  │ 数控技术的现状及发展趋势_宋春华.pdf

    │  │  │ 数控技术的进展及我国数控技术发展现状_邓世凯.pdf

    │  │  │ 整流滤波电容的设计与选用方法研究_董振旗.pdf

    │  │  │ 新一代嵌入式微处理器STM32F103开发与应用_孙书鹰_2010.12.pdf

    │  │  │ 步进电机的单片机控制设计分析_王晨光.pdf

    │  │  │ 步进电机的基本原理_张明.pdf

    │  │  │ 浅谈接近开关在化工生产中的应用_赵安堂.pdf

    │  │  │ 浅谈时钟电路在单片机中的作用_于建勇.pdf

    │  │  │ 滤波电容选取的深入研究_杨玉强.pdf

    │  │  │ 磁阻式与霍尔式接近开关性能比较_秦玉伟.pdf

    │  │  │ 跨任意象限直线和圆弧插补原理研究与轨迹仿真_王宏伟.pdf

    │  │  │ 逐点比较法直线插补原理及其改进算法分析_金中波.pdf

    │  │  └ 逐点比较法直线插补算法的研究_王为达.pdf

    │  ├ 深圳盛百裕PCB工艺标准

    │  │  │ 1.jpg

    │  │  │ 2.jpg

    │  │  └ Thumbs.db

    │  └ 芯片数据手册

    │     │ sn74ls08.pdf

    │     └ TLP521_TLP521-4.PDF

    ├ 文档相关

    │  └ 20111002452-石鹏-基于STM32F103的三轴运动控制器设计.doc

    ├ 演示视频

    │  └ 答辩演示视频

    │     │ Thumbs.db

    │     └ 视频演示.avi

    ├ 答辩

    │  │ 毕业设计答辩—石鹏.ppt

    │  └ 视频演示.avi

    └ 项目文件

       ├ 原理图及PCB

       │  │ ShiPeng.PcbLib

       │  │ ShiPeng.SchLib

       │  │ STM32.PcbDoc

       │  │ STM32.PcbDoc.htm

       │  │ STM32.PRJPCB

       │  │ STM32.SchDoc

       │  │ 原理图.pdf

       │  │ 必读.doc

       │  └ History

       │     │ ShiPeng.~(1).PcbLib.Zip

       │     │ ShiPeng.~(1).SchLib.Zip

       │     │ ShiPeng.~(10).SchLib.Zip

       │     │ ShiPeng.~(11).SchLib.Zip

       │     │ ShiPeng.~(12).SchLib.Zip

       │     │ ShiPeng.~(13).SchLib.Zip

       │     │ ShiPeng.~(14).SchLib.Zip

       │     │ ShiPeng.~(15).SchLib.Zip

       │     │ ShiPeng.~(16).SchLib.Zip

       │     │ ShiPeng.~(17).SchLib.Zip

       │     │ ShiPeng.~(18).SchLib.Zip

       │     │ ShiPeng.~(19).SchLib.Zip

       │     │ ShiPeng.~(20).SchLib.Zip

       │     │ ShiPeng.~(21).SchLib.Zip

       │     │ ShiPeng.~(22).SchLib.Zip

       │     │ ShiPeng.~(23).SchLib.Zip

       │     │ ShiPeng.~(24).SchLib.Zip

       │     │ ShiPeng.~(25).SchLib.Zip

       │     │ ShiPeng.~(26).SchLib.Zip

       │     │ ShiPeng.~(27).PcbLib.Zip

       │     │ ShiPeng.~(27).SchLib.Zip

       │     │ ShiPeng.~(28).PcbLib.Zip

       │     │ ShiPeng.~(28).SchLib.Zip

       │     │ ShiPeng.~(29).PcbLib.Zip

       │     │ ShiPeng.~(29).SchLib.Zip

       │     │ ShiPeng.~(30).PcbLib.Zip

       │     │ ShiPeng.~(30).SchLib.Zip

       │     │ ShiPeng.~(31).SchLib.Zip

       │     │ ShiPeng.~(32).PcbLib.Zip

       │     │ ShiPeng.~(32).SchLib.Zip

       │     │ ShiPeng.~(33).PcbLib.Zip

       │     │ ShiPeng.~(33).SchLib.Zip

       │     │ ShiPeng.~(34).SchLib.Zip

       │     │ ShiPeng.~(35).PcbLib.Zip

       │     │ ShiPeng.~(36).PcbLib.Zip

       │     │ ShiPeng.~(36).SchLib.Zip

       │     │ ShiPeng.~(37).SchLib.Zip

       │     │ ShiPeng.~(38).PcbLib.Zip

       │     │ ShiPeng.~(38).SchLib.Zip

       │     │ ShiPeng.~(39).PcbLib.Zip

       │     │ ShiPeng.~(39).SchLib.Zip

       │     │ ShiPeng.~(40).PcbLib.Zip

       │     │ ShiPeng.~(41).PcbLib.Zip

       │     │ ShiPeng.~(42).PcbLib.Zip

       │     │ ShiPeng.~(43).PcbLib.Zip

       │     │ ShiPeng.~(44).PcbLib.Zip

       │     │ ShiPeng.~(45).PcbLib.Zip

       │     │ ShiPeng.~(46).PcbLib.Zip

       │     │ ShiPeng.~(47).PcbLib.Zip

       │     │ ShiPeng.~(48).PcbLib.Zip

       │     │ ShiPeng.~(49).PcbLib.Zip

       │     │ STM32.~(116).SchDoc.Zip

       │     │ STM32.~(117).SchDoc.Zip

       │     │ STM32.~(118).SchDoc.Zip

       │     │ STM32.~(119).SchDoc.Zip

       │     │ STM32.~(120).SchDoc

       │     │ STM32.~(120).SchDoc.Zip

       │     │ STM32.~(121).SchDoc.Zip

       │     │ STM32.~(122).SchDoc.Zip

       │     │ STM32.~(123).SchDoc.Zip

       │     │ STM32.~(124).SchDoc.Zip

       │     │ STM32.~(125).SchDoc.Zip

       │     │ STM32.~(126).SchDoc.Zip

       │     │ STM32.~(127).SchDoc.Zip

       │     │ STM32.~(128).SchDoc.Zip

       │     │ STM32.~(129).SchDoc.Zip

       │     │ STM32.~(130).SchDoc.Zip

       │     │ STM32.~(131).SchDoc.Zip

       │     │ STM32.~(132).SchDoc.Zip

       │     │ STM32.~(134).SchDoc.Zip

       │     │ STM32.~(135).SchDoc.Zip

       │     │ STM32.~(136).SchDoc.Zip

       │     │ STM32.~(137).SchDoc.Zip

       │     │ STM32.~(138).SchDoc

       │     │ STM32.~(138).SchDoc.Zip

       │     │ STM32.~(139).SchDoc.Zip

       │     │ STM32.~(140).SchDoc.Zip

       │     │ STM32.~(141).SchDoc.Zip

       │     │ STM32.~(142).SCHDOC.Zip

       │     │ STM32.~(143).SCHDOC.Zip

       │     │ STM32.~(144).SchDoc.Zip

       │     │ STM32.~(145).SchDoc.Zip

       │     │ STM32.~(146).SchDoc.Zip

       │     │ STM32.~(20).PrjPcb.Zip

       │     │ STM32.~(21).PrjPcb.Zip

       │     │ STM32.~(22).PrjPcb.Zip

       │     │ STM32.~(23).PrjPcb.Zip

       │     │ STM32.~(24).PrjPcb.Zip

       │     │ STM32.~(25).PrjPcb.Zip

       │     │ STM32.~(26).PrjPcb.Zip

       │     │ STM32.~(27).PRJPCB.Zip

       │     │ STM32.~(39).PcbDoc.Zip

       │     │ STM32.~(40).PcbDoc.Zip

       │     │ STM32.~(41).PcbDoc.Zip

       │     │ STM32.~(42).PcbDoc.Zip

       │     │ STM32.~(43).PcbDoc.Zip

       │     │ STM32.~(44).PcbDoc.Zip

       │     │ STM32.~(45).PcbDoc.Zip

       │     │ STM32.~(46).PcbDoc.Zip

       │     │ STM32.~(47).PcbDoc.Zip

       │     │ STM32.~(48).PcbDoc.Zip

       │     │ STM32.~(49).PcbDoc.Zip

       │     │ STM32.~(50).PcbDoc.Zip

       │     │ STM32.~(51).PcbDoc.Zip

       │     │ STM32.~(52).PcbDoc.Zip

       │     │ STM32.~(53).PcbDoc.Zip

       │     │ STM32.~(55).PcbDoc.Zip

       │     │ STM32.~(56).PcbDoc.Zip

       │     │ STM32.~(57).PcbDoc.Zip

       │     │ STM32.~(58).PcbDoc.Zip

       │     │ STM32.~(59).PcbDoc.Zip

       │     │ STM32.~(60).PcbDoc.Zip

       │     │ STM32.~(61).PcbDoc.Zip

       │     │ STM32.~(62).PcbDoc.Zip

       │     │ STM32.~(63).PcbDoc.Zip

       │     │ STM32.~(64).PcbDoc.Zip

       │     │ STM32.~(65).PcbDoc.Zip

       │     │ STM32.~(66).PcbDoc.Zip

       │     │ STM32.~(67).PcbDoc.Zip

       │     │ STM32.~(68).PcbDoc.Zip

       │     │ STM32.~(69).PcbDoc.Zip

       │     │ STM32.~(70).PcbDoc.Zip

       │     │ STM32.~(72).PcbDoc.Zip

       │     │ STM32.~(73).PcbDoc.Zip

       │     │ STM32.~(74).PcbDoc.Zip

       │     │ STM32.~(75).PcbDoc.Zip

       │     │ STM32.~(76).PcbDoc.Zip

       │     │ STM32.~(77).PcbDoc.Zip

       │     │ STM32.~(78).PcbDoc.Zip

       │     │ STM32.~(79).PcbDoc.Zip

       │     │ STM32.~(80).PcbDoc.Zip

       │     │ STM32.~(82).SchDoc.Zip

       │     │ STM32.~(84).SchDoc.Zip

       │     │ STM32.~(86).SchDoc.Zip

       │     │ STM32.~(88).SchDoc.Zip

       │     │ STM32.~(89).SchDoc.Zip

       │     │ STM32.~(90).SchDoc.Zip

       │     │ STM32.~(91).SchDoc.Zip

       │     │ STM32.~(92).SchDoc.Zip

       │     │ STM32.~(93).SchDoc.Zip

       │     │ STM32.~(94).SchDoc.Zip

       │     │ STM32.~(95).SchDoc.Zip

       │     │ STM32.~(96).SchDoc.Zip

       │     │ STM32.~(97).SchDoc.Zip

       │     │ STM32.~(98).SchDoc.Zip

       │     └ STM32.~(99).SchDoc.Zip

       └ 源程序

          │ JLink Regs CM3.txt

          │ JLinkLog.txt

          │ JLinkSettings.ini

          │ ShiPeng.uvopt

          │ ShiPeng.uvproj

          │ ShiPeng_DebugInFlash.dep

          │ ShiPeng_uvopt.bak

          │ 必读.txt

          ├ debug

          │  ├ DebugInFlash

          │  │  │ delay.crf

          │  │  │ delay.d

          │  │  │ delay.o

          │  │  │ interpolation.crf

          │  │  │ interpolation.d

          │  │  │ interpolation.o

          │  │  │ keyboard.crf

          │  │  │ keyboard.d

          │  │  │ keyboard.o

          │  │  │ main.crf

          │  │  │ main.d

          │  │  │ main.o

          │  │  │ misc.crf

          │  │  │ misc.d

          │  │  │ misc.o

          │  │  │ motor.crf

          │  │  │ motor.d

          │  │  │ motor.o

          │  │  │ positionconstraint.crf

          │  │  │ positionconstraint.d

          │  │  │ positionconstraint.o

          │  │  │ ShiPeng.axf

          │  │  │ ShiPeng.hex

          │  │  │ ShiPeng.htm

          │  │  │ ShiPeng.lnp

          │  │  │ ShiPeng.plg

          │  │  │ ShiPeng.sct

          │  │  │ ShiPeng.tra

          │  │  │ sp_gpio_init.crf

          │  │  │ sp_gpio_init.d

          │  │  │ sp_gpio_init.o

          │     │  │ stm32f10x_tim.h

          │     │  │ stm32f10x_usart.h

          │     │  └ stm32f10x_wwdg.h

          │     └ src

          │        │ misc.c

          │        │ stm32f10x_adc.c

          │        │ stm32f10x_bkp.c

          │        │ stm32f10x_can.c

TAG运动控制器设计
  • 8 次
  • 200 分