2021-10-26 08:09:37 索煒達電子 3278
項目編號:E1760
文件大?。?50M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
本課題設(shè)計了基于STM32F103的三軸運動控制器。通過該運動控制器結(jié)合現(xiàn)有實驗設(shè)備可搭建開放型運動控制實驗臺,利用實驗臺可進行插補算法的驗證,從而進行數(shù)控技術(shù)原理、數(shù)控系統(tǒng)控制方法等學(xué)科內(nèi)容的教學(xué)。
本課題以現(xiàn)有數(shù)控實驗臺為基礎(chǔ),主要圍繞三軸機械平臺的運動控制及XY平面內(nèi)插補算法及插補過程中加減速的實現(xiàn)展開研究。
本課題硬件部分以STM32F103系列MCU為控制核心,搭建控制器的硬件電路。控制器硬件電路主要包括單片機最小系統(tǒng)、電源模塊、串口通信模塊、報警模塊、光電隔離模塊、接口模塊及限位檢測模塊,單片機最小系統(tǒng)由STM32F103RBT6微控制器、時鐘電路及復(fù)位電路構(gòu)成。本課題軟件部分以Keil軟件為平臺編寫C語言控制程序。系統(tǒng)控制程序以單片機最小系統(tǒng)為載體經(jīng)硬件系統(tǒng)的光電隔離模塊向步進電機驅(qū)動器發(fā)送驅(qū)動脈沖信號及方向信號,從而控制步進電機按給定方向運動。限位檢測模塊可檢測三軸機械試驗臺的運動超程,接近限位開關(guān)的超程信號經(jīng)光電隔離模塊送至微控制器進行處理,并控制步進電機做出相應(yīng)動作。光電隔離模塊避免了強電側(cè)接口對弱電側(cè)器件的信號干擾。本課題中的直線插補與圓弧插補均通過逐點比較法作來實現(xiàn),通過鍵盤輸入插補相關(guān)點坐標即可驅(qū)動步進電機并經(jīng)由滾珠絲杠工作臺實現(xiàn)XY平面內(nèi)的插補,Z軸主要作為繪圖筆的控制軸。
本課題最終實現(xiàn)了三軸機械試驗臺的運動手動控制,或經(jīng)鍵盤輸入插補坐標值進行直線、圓弧插補,并實現(xiàn)了直線插補中的加減速控制及試驗臺運動過程中的超程自動急停并報警,超程后Z軸可自動復(fù)位,X軸與Y軸可通過鍵盤模塊的復(fù)位按鍵進行手動準確復(fù)位。
關(guān)鍵詞:STM32F103微控制器 步進電機 三軸運動控制 插補算法
設(shè)計報告:
控制系統(tǒng)總體方案
本課題主要研究基于STM32F103系列微控制器的三軸運動控制及XY平面內(nèi)的直線、圓弧插補的實現(xiàn)。故本次畢業(yè)設(shè)計主要圍繞三軸運動控制器硬件平臺的搭建及通過C語言程序?qū)崿F(xiàn)對三軸機械試驗臺運動的自由控制與XY平面內(nèi)插補算法的實現(xiàn)來展開。
本課題控制系統(tǒng)總體框圖如圖2-1所示。
控制系統(tǒng)總體框圖
以STM32F103系列微控制器為控制核心的單片機最小系統(tǒng)讀取SD卡存儲模塊中的數(shù)控G代碼或由鍵盤模塊調(diào)用相關(guān)函數(shù)并輸入?yún)?shù),經(jīng)由光電隔離模塊向步進電機驅(qū)動器發(fā)送電機驅(qū)動脈沖信號與方向信號,從而驅(qū)動機械試驗臺步進電機運動。步進電機經(jīng)聯(lián)軸器與滾珠絲杠聯(lián)接,帶動滾珠絲杠轉(zhuǎn)動并將旋轉(zhuǎn)位移轉(zhuǎn)化為工作臺的直線位移,從而實現(xiàn)了工作臺運動的自由控制及插補運動,運動目標軌跡可通過LCD進行同步顯示。
限位檢測模塊可對工作臺的運動位置情況進行實時檢測,工作臺任意方向的超程均會觸發(fā)接近限位開關(guān)輸出相應(yīng)超程信號,經(jīng)光電隔離模塊或與門IC送至微控制器進行處理,并控制蜂鳴器進行超程報警,同時輸出步進電機急停信號與Z軸自動復(fù)位信號,X軸與Y軸通過鍵盤模塊的復(fù)位按鍵視具體超程方向的不同進行手動準確復(fù)位。
運行結(jié)果:
1-步進電機驅(qū)動器;2-步進電機;3-接近限位開關(guān);4-滾珠絲杠;
5-XY軸工作臺;6-Z軸工作臺;7-繪圖筆
圖5-1 數(shù)控試驗臺
運動控制器工作狀態(tài)
文件列表:
目錄│文件列表:
└ 基于STM32F103的三軸運動控制器設(shè)計
├ 其它文檔
│ │ 元件清單.xls
│ ├ 文獻
│ │ │ CNC數(shù)控系統(tǒng)加減速控制方法研究與實現(xiàn)_商允舜.caj
│ │ │ RS232串口通信在PC機與單片機通信中的應(yīng)用_潘方.pdf
│ │ │ SPI接口及其在數(shù)據(jù)交換中的應(yīng)用_楊美剛.pdf
│ │ │ 利用電磁感應(yīng)式限位開關(guān)監(jiān)測輸送皮帶打滑的方法_楊華.pdf
│ │ │ 國內(nèi)外數(shù)控技術(shù)的發(fā)展現(xiàn)狀與趨勢_楊建武.pdf
│ │ │ 圓弧插補算法的探討_周虹.pdf
│ │ │ 基于增強型STM32驅(qū)動雙極步進電機的研究_張團善_2010.10.pdf
│ │ │ 開關(guān)電源中光耦隔離的幾種典型接法對比研究_楊仲望.pdf
│ │ │ 數(shù)控技術(shù)在我國機械制造行業(yè)應(yīng)用_許金梅.pdf
│ │ │ 數(shù)控技術(shù)的發(fā)展趨勢及產(chǎn)業(yè)化_李長文.pdf
│ │ │ 數(shù)控技術(shù)的現(xiàn)狀及發(fā)展趨勢_宋春華.pdf
│ │ │ 數(shù)控技術(shù)的進展及我國數(shù)控技術(shù)發(fā)展現(xiàn)狀_鄧世凱.pdf
│ │ │ 整流濾波電容的設(shè)計與選用方法研究_董振旗.pdf
│ │ │ 新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用_孫書鷹_2010.12.pdf
│ │ │ 步進電機的單片機控制設(shè)計分析_王晨光.pdf
│ │ │ 步進電機的基本原理_張明.pdf
│ │ │ 淺談接近開關(guān)在化工生產(chǎn)中的應(yīng)用_趙安堂.pdf
│ │ │ 淺談時鐘電路在單片機中的作用_于建勇.pdf
│ │ │ 濾波電容選取的深入研究_楊玉強.pdf
│ │ │ 磁阻式與霍爾式接近開關(guān)性能比較_秦玉偉.pdf
│ │ │ 跨任意象限直線和圓弧插補原理研究與軌跡仿真_王宏偉.pdf
│ │ │ 逐點比較法直線插補原理及其改進算法分析_金中波.pdf
│ │ └ 逐點比較法直線插補算法的研究_王為達.pdf
│ ├ 深圳盛百裕PCB工藝標準
│ │ │ 1.jpg
│ │ │ 2.jpg
│ │ └ Thumbs.db
│ └ 芯片數(shù)據(jù)手冊
│ │ sn74ls08.pdf
│ └ TLP521_TLP521-4.PDF
├ 文檔相關(guān)
│ └ 20111002452-石鵬-基于STM32F103的三軸運動控制器設(shè)計.doc
├ 演示視頻
│ └ 答辯演示視頻
│ │ Thumbs.db
│ └ 視頻演示.avi
├ 答辯
│ │ 畢業(yè)設(shè)計答辯—石鵬.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