本文以STM32F103RBT6為主控芯片,設計了一種自動貼片機。
1、貼片機模塊設計方案
本文將貼片機模塊化的進行設計與編程,模塊化后的整機系統由3個部分組成:機械傳動系統、機器視覺系統和運動控制系統,如圖1所示。
圖1貼片機系統框圖
1.1、貼片機機械傳動系統的設計方案
1.1.1、貼片機X軸Y軸設計方案
本方案采用X—Y軸兩軸聯動,Z軸獨立運動的設計方案。其中X-Y軸由步進電機通過同步帶傳動進行機械運動。具體實現結構如圖2所示。
圖2貼片機X-Y軸傳動機構圖
如圖所示,Y軸步進電機固定于底座上,帶動同步帶輪旋轉,同步輪帶動同步帶做直線運動,光軸滑塊與同步帶相連。從而跟隨同步帶演光軸導軌做Y軸方向的的運動。X軸整體機構與Y軸相似,提供X軸方向上的直線運動。其整體固定與Y軸滑塊之上,當Y軸運動時同時帶動X軸運動。從而實現X—Y兩軸聯動。
1.1.2、貼片機Z軸設計方案
本設計方案中Z軸由舵機、光軸導軌、吸筆、拖拽針、攝像頭組成。其結構如圖3所示。
圖3貼片機Z軸機構圖
其中吸筆由空心軸步進電機制作而成,當步進電機旋轉時,帶動吸筆吸盤選擇,從而提供了貼片機旋轉軸的運動。旋轉吸筆用于改變元器件貼裝方向。拖拽針與吸筆固定在同一直線上,用于拖拽料盤,從而實現送料功能。拖拽針與吸筆分別固定在2組光軸導軌上,底部安裝有彈簧,用于拖拽針與吸筆復位。舵機控制壓桿左右旋轉,從而壓動吸筆與拖拽針進行向下運動,當壓桿處于中間態時,彈簧將吸筆與拖拽針彈起,回到初始位置。攝像頭安裝在工作臺上方,用于俯視PCB板。
1.2、機器視覺系統設計方案
本方案采用兩臺CCD相機、環形LED光源及圖像處理設備組成。其中一臺CCD相機安裝在貼片機Z軸上。與貼裝頭一起運動,用于俯視PCB板,采集各定位點坐標信息,計算X—Y軸運動偏移量,輔助定位。另外一臺CCD相機固定在工作臺上,向上仰視。當貼裝頭吸取原件后,運動至相機上方,相機采集元器件圖像。計算旋轉角度偏移量及X—Y軸運動偏移量。
1.3、運動控制系統設計方案
運動控制部分由軟件系統與硬件設備組成。其中軟件部分分為上位機及下位機。上位機即計算機。下位機采用STM32F103RBT6微控制器作為核心控制器。上位機與下位機由串口數據線連接。硬件設備由步進電機、步進電機驅動器、舵機、電磁閥等組成。
運動控制系統工作流程如圖4所示。
圖4運動控制系統工作流程圖
2、運動控制系統硬件設計
2.1、運動控制系統結構
控制系統的控制模式是以PC機為平臺、以微控制器為核心協調工作。通用PC機負責數控程序編輯、人機界面管理等功能;微控制器用來管理子程序以及負責機械本體的運動控制和邏輯控制,支持用戶的開發和擴展,并具有上、下兩級的開放性。
本設計方案采用STN32F103微控制器作為核心器件,協調3個步進電機驅動器控制步進電機的運行。同時獲取編碼器數據,限位開關狀態,并控制舵機、電磁閥等器件的運行。各器件連接圖如圖5所示。
圖5運動控制系統連接圖
本設計方案所采用的主控芯片STM32F103RBT6是一款基于ARMCodex—M3內核的32位處理器,具有杰出的功耗控制與眾多外設。該芯片內置128KFLASH、20KSRAM、2個SPI、3個串口、1個USB、1個CAN、2個12位的ADC、RTC、51個可用IO口。其電路圖如圖6所示。
圖6STM32F103RBT6芯片
2.2、電源電路
電源電路采用AMS1117—3.3作為電壓轉換芯片。AMS1117是一款正電壓輸出低壓差的三端線性穩壓電路,在輸出1A電流時,輸入輸出的電壓差典型值為1.8V,內部集成過熱保護和限流電路,確保芯片和電源系統的穩定性。
圖7電源電路圖
該電路輸入端與輸出端各接1個0.1μF的非極性獨石電容和1個220μF的極性電容。這兩組電容起到了穩壓濾波的作用。
2.3、串口電平轉換電路
串行接口是嵌入式系統中較為常用的一種接口。本系統采用RS-232總線于上位機進行通信,采用MAX232芯片來完成RS-232串行接口的電平轉換。串口通信電路如圖8所示。
圖8串口電平轉換電路
2.4、步進電機驅動電路
驅動器的作用是對控制脈沖進行環形分配、功率放大,使步進電機繞組按一定順序通電,控制電機轉動。本設計采用DM442數字式步進電機驅動器。該驅動器可以設置512內的任意細分以及額定電流內的任意電流值,能夠滿足大多數場合的應用需要。電路連線如圖9所示。
圖9步進電機驅動器連線圖
通過步進電機驅動器控制步進電機的方法較為簡單,僅需通過單片機IO口給出不同頻率的方波脈沖信號即可控制步進電機的速度,通過另一個IO口給出高低電平控制電機旋轉方向。本文所采用的步進電機步距角為1.8°,因此驅動器每接收200個脈沖信號,步進電機旋轉一周。
3、運動控制系統軟件設計
下位機控制程序由串口收發程序,限位開關檢測程序,舵機驅動程序、步進電機驅動等部分組成。下面將對舵機驅動和串口收發部分做詳細的介紹。
3.1、舵機驅動程序
根據1.1.2中的介紹,舵機用來控制吸筆和拖拽針的運動,在單片機的控制中常用PWM(PulseWidthModulation)調制來驅動它。在舵機控制系統中,輸出的PWM信號通過功率器件將所需的電流和能量傳送到舵機線圈繞組中,來控制舵機的正反轉。
STM32的定時器除了TIM6和TIM7,其他的定時器都可以用來產生PWM輸出。其中高級定時器TIM1和TIM8可以同時產生多達7路的PWM輸出。而通用定時器也能同時產生多達4路的PWM輸出,這樣,STM32最多可以同時產生30路PWM輸出。由于只控制一個舵機,這里我們僅利用TIM3的CH2產生一路PWM輸出。具體步驟如下:
1)開啟TIM3時鐘,配置PA7為復用輸出。
2)設置TIM3的ARR和PSC,控制輸出PWM的周期。
3)設置TIM3_CH2的PWM模式。
4)使能TIM3的CH2輸出,使能TIM3。
5)修改TIM3_CCR2來控制占空比。
由于舵機所需的控制信號標準周期是20毫秒,最低不得少于15毫秒。中位脈沖寬度是1.5毫秒,脈沖寬度在加減1.5毫秒之間內變化。可控范圍一般都是0.5~2.5毫秒。即控制舵機運行至兩個機械極限位置的信號周期為0.5~2.5毫秒,對應占空比為2.5%-12.5%。本方案中舵機需保持在3個狀態,分別是左極限,右極限和中間位置。用于控制拖拽針下移,吸筆下移和復位。
因此,要控制舵機,首現需要一個頻率為50赫茲的PWM波,然后調節其占空比為2.5%-12.5%。PWM輸出頻率的計算公式為:
這里系統時鐘頻率為72000000赫茲,所需PWM頻率為50赫茲。為方便計算,同時保證自動重裝載值和預分頻系數均為整數,這里取自動重裝載值為1000。計算得預分頻系數為1440-1=1439。因此調用PWM初始化函數為:PWM_Init(1000,1439);
PWM輸出波形占空比計算公式為:
由此計算得到:
左極限位置時TIM3-》CCR2=25,
右極限位置時TIM3-》CCR2=125,
中間位置時TIM3-》CCR2=75。
3.2、串口通信配置
STM32的串口配置需要開啟串口時鐘,并設置相應IO口的模式,配置波特率、數據位長度、奇偶校驗位等信息。STM32的串口波特率計算公式如下:
上式中,fPCLKx是給串口的時鐘;USARTDIV是一個無符號定點數。
3.3、串口數據包格式設計
表1為串口與單片機通信的數據包格式,每幀有9個字節,開始六個字節是包頭標志、器件地址、數據類型、起始地址以及數據長度,其中數據類型有:讀數據指令r(0x72)、預設參數w(0x77)、運動指令m(0x6D)、請求重發指令c(0x63)、正常返回指令b(0x62)和放棄通信指q(0x71)。然后是10個字節的數據位,通常數據位為2個4字節的數據,為了避免出現數據對齊問題,在后面加入兩個值為0的字節。最后是兩個字節的校驗位和結束標志位,采用CRC16進行校驗。
表1串口數據包格式
數據由上位機即PC主動發送,下位機即單片機被動等待接收,系統在每次上電初始化時進行一次握手,下位機在接收到的包頭數據中匹配自己的器件地址,一致時則接收命令,否則將收到的數據包拋棄。當上層控制器向單片機發送讀數據指令r(0x72)時,其數據位均為0;單片機收到指令后,將狀態信息填入數據位,回發給上位機。當上位機向單片機發送預設參數w(0x77)數據包時,將參數信息填入相應數據位;單片機收到后,將數據寫入EEPROM中并發送反饋,反饋幀以同樣的類型、將存好的數據再次讀出填入數據位,發送給上位機進行匹配校驗。當上位機向單片機發送運動指令m(0x6D)時,將數據位按設定的格式填入數據位;單片機讀取并按照指令內容進行運動。
圖10串口收發程序流程圖
單片機正確接收到除預設參數之外的數據時向主機回發正常返回指b(0x62);若收到上一組主機的數據后發現數據出錯,則請求重發指令c(0x63),主機接收到此回應指令后執行重發操作;若連續通信錯誤并超過最大限制后則發送的放棄指令q(0x71)。
4、結束語
本文根據目前貼片機市場上的應用現狀,提出了低成本,小型化的設計方案。對貼片機整機的機械結構進行了優化設計。分別對貼片機的機械傳動系統,機器視覺系統及運動控制系統給出了設計思路。
評論
查看更多