李曉林, 劉穎添, 徐志宇,3
(1.同濟大學 電子與信息工程學院,上海 201804;2.哈爾濱工業大學(深圳) 機電工程與自動化學院, 廣東 深圳 518000; 3.計算機與信息技術國家級實驗教學示范中心(同濟大學),上海 200092)
近年來,隨著互聯網的發展和智能手機的普及,手機攝錄被越來越多人所喜愛。傳統的專業攝像機穩定器(如斯坦尼康)不適用于小巧的手機。無人機搭設云臺相機的穩定、清晰、流暢拍錄效果啟發,手持云臺將該技術移植于手機攝錄應用,如大疆靈眸Osmo手機云臺,能大大改善拍攝畫面,但售價高達4 299元,與大眾消費能力不符。適用于手機攝錄應用的增穩云臺,應當具有輕便小巧、性價比高、易上手的特點,本設計致力于設計一款符合大眾消費傾向的手機攝錄增穩云臺。
基于前人們對于STM32微控制器、PID算法、脈沖寬度調制(Pulse Width Modulation, PWM)等技術的研究[1-5],本設計擬以STM32F4微控制器作為“控制核心”,以3D打印成型的支架作為“骨架”,以步進電機直接調動“骨架”,從而適應手機攝錄時的運動,主動減小抖動。
在本設計和目前市面上的手機攝錄云臺穩定器都滿足了基本的防抖功能的前提下,本設計具有易組裝、性價比高、易于上手的特點。
手持云臺穩定器的結構如圖1所示。系統包括主控、驅動、檢測、供電、云臺-支架5個模塊。主控模塊以STM32F407ZGT6微控制器為核心,通過串口通信,接收外部的6軸運動處理傳感器MPU6050檢測的手機姿態信息,位置PID算法修正偏移角度,再以不同頻率的PWM波驅動2臺步進電機的轉向、轉速。供電模塊為上述各模塊提供電源。云臺及支架采用3D打印一體成模,確保組裝簡單、價格適中。

圖1 系統結構圖[6]
云臺-支架是承載整個系統的硬件平臺,如圖2所示。搭載1部手機、2臺步進電機,俯仰電機與手機相連,橫滾電機在手機背后,且為減小負載力矩,俯仰電機軸中心線與手機軸線重合,橫滾電機軸中心線與手機中心重合。其機械設計應滿足輕便小巧、結構簡單、性能可靠、成本低廉等要求。


圖2 Solidworks軟件設計的手持云臺穩定器機械結構效果圖
(1) 力矩計算和電機選擇。步進電機的選型[7-8]一般主要考慮靜扭矩、運轉速度2個因素。考慮到本文不使用減速箱且運轉速度不太低的情況,主要根據力矩選擇電機。
俯仰電機的負載轉矩主要由手機、支架和法蘭盤的重力產生,計算值為0.14 N·m。橫滾電機的負載轉矩還包括俯仰電機及其連接件的重力矩,計算值為0.33 N·m。經挑選,找到一款靜力矩為0.36 N·m的步進電機MG42S1,價格僅為相同靜力矩的直流無刷電機的2/3,因而本文使用該步進電機。
(2) 3D打印。本文要求云臺穩定器輕便小巧, 因此采用3D打印技術并運用新材料——Somos低黏度光敏樹脂材料[9-10],其密度為1 g/cm3,是鋁的1/3,相比于普通的精鋼零件或鋁件,使手持云臺輕便許多。本文3D打印采用的是光固化成型,它具有成型過程自動化程度高、精度高等特點[11]。
(1) 控制器模塊。控制器模塊是本電路設計的“心臟”,首先應保證“心臟”正常工作,為單片機工作和軟件下載與仿真提供必要的條件,即圍繞微處理器——性能優越的STM32F407ZGT6建立其最小系統,包括復位電路、晶振、SWD下載接口。
(2) 電源模塊。本設計中外接電池提供12 V直流電源。其次,電壓供給對象:①步進電機額定電壓12 V 最大電流為1.68 A(相);②傳感器等需3.3 V供電;③主控STM32需3.3 V供電,但對電源紋波敏感,需與②隔離供電;④由于②、③的芯片均需5 V供電,因而還需要產生5 V。各電源芯片使用情況見表1。

表1 電源芯片使用情況
(3) 傳感模塊。選用MPU6050作為姿態傳感器, STM32通過I2C總線協議可以讀取3維姿態數據。I2C串行通信協議由串行數據線(SDA)、串行時鐘線(SCL)組成。再加上串口通信必需的接收、發送端,串口通信部分需留出4個I/O端口。
(4) 驅動隔離模塊。在PWM隔離電路,本設計中主控STM32F407以控制PWM波頻率的方式控制步進電機。但是考慮到電流倒灌事故以及共地干擾的影響[12],所以在從單片機的I/O口到電機驅動之間需要加光電隔離K_TLP113,保持電流的單向性,保護主控部分。
(5) 擴展接口。硬件平臺除以上重要模塊外,本設計,還留出了OLED接口、CAN2接口、光電隔離的輸入輸出口等。
圖3為本設計中所有模塊的電路原理圖;圖4為樣機電路板。

圖3 主控硬件平臺原理圖

圖4 硬件平臺實物圖
(1) 控制方案設計。該云臺在空間上是由兩個互相垂直的橫滾軸和俯仰軸組成,當云臺工作時受到外界環境影響產生震動或角度偏移時,安裝在云臺上的姿態檢測元件將感知對應軸的角度偏差,并通過姿態解算反饋主控控制電機對偏移角度進行修正。系統主控制器采用STM32F407,姿態檢測單元慣性傳感器采用MPU6050,云臺執行元件采用步進電機[13]。
圖5為控制流程圖,主要控制流程為:①對陀螺儀及加速度計(MPU6050)數據的解算;②慣性傳感器用過串口與主控芯片(STM32)的通信;③主控開啟串口接收中斷實時監控角度變化,反饋主控運算控制發電機的PID調節算法;④根據PID運算輸出PWM信號對步進電機進行調頻控速完成手機平臺的位置閉環控制。

圖5 控制流程圖
(2) PID算法。PID控制是一種綜合偏差量的比例、積分、微分,給出控制量的反饋控制算法。其離散型的位置式可表為:
(1)
式中:uk為第k時刻控制器的輸出值;KP、KI、KD分別為比例、積分、微分系數;ek為第k時刻輸入的偏差。
為避免云臺的電機在目標位置附近頻繁動作導致的系統振蕩,進一步用帶死區的PID控制[14],其控制算式為:
(2)
式中:uk為第k時刻控制器的輸出值;B是已設置好的死區。當正負偏差位于死區內時,控制量保持原值;當正負偏差超出死區限度時,經PID運算后輸出控制量。
(3) 控制程序設計。PID算法是本軟件設計的核心。除此之外,總體控制程序設計還包括主控對MPU6050數據的獲取與處理、主控對步進電機的調頻控速兩模塊。控制系統方案實現的流程為:①STM32的串口、定時器、相關I/O口等外設初始化;②等待串口中斷接收MPU6050的數據,接收到數據,在中斷服務函數中解算角度數據;③將該數據和角度目標值作為PID運算函數的入口參數進行運算,對PID運算結果進行頻率限幅,線性化處理;④通過Motor_Direction()和Motor_TIM3_PWM_Set()兩個函數共同實現對云臺步進電機的控制(本文通過控制pitch軸電機和roll軸電機[15]使得手機平臺在外部干擾下保持水平穩定),使云臺實現增穩。
在完成PCB板焊接、電路搭建、機械組裝后,需測試手持云臺穩定器的效果。在確認電路平臺正常工作后,首先對兩電機進行調試。
由圖6可得偏航角自由振蕩,這表明機械結構在劇烈抖動,而橫滾角和俯仰的角度變化都能保持在±5°之內,調試效果顯著。且通過調試效果發現,兩軸角度之間沒有不理想的耦合影響。
電機性能正常,最后進行整體性能測試,測試結果表明,云臺能實現當人為較大幅度旋轉手柄角度時,手機仍能保持較為平穩的拍攝效果。

圖6 上位機顯示俯仰軸與橫滾軸動態情況(角度-時間)
圖7(a)為手機在最初水平位置保持姿態,手機屏幕與水平面垂直,并正對拍攝者。圖7(b)為當手持云臺轉過任意的一個角度,手機仍能保持最初的姿態,仍與水平面垂直,且正對拍攝者,因而以四自由度做到了俯仰和橫滾兩方向上的姿態穩定。

本文設計了一種輕便小巧、性價比高、易上手的手持云臺穩定器,相比于市面上的三軸手持云臺穩定器,在確保防抖性能的同時,節省了一個方向的電機等材料。機械設計中,選用了性價比高的步進電機,零件3D打印一體成模使得穩定器輕便、組裝簡單;電路設計上,選用合理的芯片,電源模塊、光耦隔離等保證了微處理器、傳感器的正常有效運行;軟件上,編寫了一套基于STM32的PID控制程序,使云臺能在一定的允許范圍內過濾抖動,保持手機在三維空間中位置、姿態不變。從而實現了手機平穩攝錄。