易 植,李滿耀,肖運昌
(1.湖南文理學院芙蓉學院,湖南 常德 415000;2.湖南文理學院 計算機與電氣工程學院,湖南 常德 415000;3.北京科技大學 自動化學院,北京 100000)
重力感應滑板是一款通過人體重心變化控制前進與剎車的代步滑板車,體積小、質量小,方便攜帶。現在市場上的電動滑板大多采用遙控器進行控制,但遙控器易丟失,且在通信時所產生的電磁輻射較大,而越來越多的遙控器對無線電頻段的占用也會越來越大。此外,市場上的電動滑板價格都比較昂貴。本產品和其他類型電動滑板車相比,具有便于控制的優點,沒有遙控器的束縛,減少了電磁波輻射,通過重心就可以控制前進與剎車,控制更加直接,也符合人類慣性思維方式,即身體前傾滑板車前進,身體后傾滑板車剎車。
整個系統要實現的功能是通過重力感應控制滑板車電機的轉速和剎車。具體來說,通過傳感器檢測人體重心位置的變化,單片機加工傳感器采集到的數據后給出滑板電機的相應控制信號,進而控制滑板的移動狀態,最終實現站在滑板上身體前傾滑板車前進,身體后傾滑板車減速剎車,人離開滑板車后滑板停車。
該項目在設計初期被分為兩大部分單獨設計,即重力感應系統和電機控制系統[1]。前期工作重心放在重力感應系統的設計實現上,后期主要是滑板的速度控制。除滑板板面以外,其他使用的所有材料都以體積小為基本原則,因為滑板下面的體積是有限的且本身很小。
傳感器是重力感應滑板最重要的感覺神經,它的好壞直接決定了滑板車的品質。項目初期,對比多種可以測量重力的傳感器,有體積小巧的金屬應變式傳感器、稱重傳感器、工業級的微型壓力傳感器等。金屬應變式傳感器很薄,各種尺寸大小都有,但是出于工作原理考慮,不適合安裝在滑板上,因為滑板形變量微小,即使人站在滑板上,滑板板面的形變也微乎其微。此外,應變片一般粘貼在剛性材料表面,而滑板使用的是木板,直接粘貼后測量誤差較大。微型壓力傳感器與工業用品相比體積不大,但是與滑板相比體積已經不合適。
綜合考慮后,需要的傳感器應該具有以下特點:(1)體積小,越薄越好,便于安裝;(2)測量精度高,微小的重力變化也能測量出來;(3)強度大,耐磨損。最后,選用的傳感器是用于人體稱重的稱重傳感器,如圖1所示。

圖1 稱重傳感器的外形
稱重傳感器本質上是一種應變式傳感器,外形已經加工成橋式可以直接使用,內部是半橋式結構。可以單個傳感器配合外部電阻構成全橋使用,也可以多個傳感器構成全橋使用。
滑板控制系統采用Freescale公司MK60DN512ZVLQ10型號的單片機作為核心控制器。MK60DN512ZVLQ10的內核是32位的ARM Cortex-M4,具有高能效、易使用、功耗低等特點。K60外部搭載50 MHz的晶振、內部100 MHz的標準系統時鐘頻率,擁有強大的數字信號處理能力。內部具有GPIO、PWM、LED、UART、PIT定時中斷和DMA等模塊共144個外部引腳;GPIO分為A、B、C、D、E共5組,都可組輸入與輸出用;3個PWM模塊共計12個通道,可同時向外輸出3個不同頻率的PWM信號,其中2個模塊也具有PWM輸入捕捉功能[2]。本項目中主要涉及GPIO模塊、PWM模塊的輸出功能以及LED模塊。
數據采集過程中,采用OLED顯示屏配合單片機進行采集工作,也用到了IAR Embedded開發軟件進行在線數據采集。
重心信號采集電路也是整個系統重要的一部分。項目初期采用半橋式傳感器搭配等值電阻構成橋式電路,輸入電壓為DC 3.3 V,輸出1.2 V左右,橋式輸出端直接與單片機的ADC引腳連接。經過測量發現,這樣的橋式電路輸出電壓較大,但作用在傳感器上的壓力發生變化時,輸出的變化量在毫伏級甚至微伏級,很難進行進一步的數據處理。因此,這種方案被排除。
采用SPSS 19.0統計軟件程序進行統計分析,計量資料用均數±標準差表示,組間比較采用方差分析,多重比較采用LSD-t檢驗。計數資料以率(%)表示,采用χ2檢驗分析。生存資料采用Kaplan-Meier法分析,組間比較采用Log-rank檢驗,預后影響因素分析采用Cox回歸分析,P<0.05為差異有統計學意義。
把兩個傳感器并聯構成互補式全橋電路,經過仔細的測量挑選,終于選出2組(4個)阻值非常接近的傳感器。分別并聯后,測量其輸出電壓都在毫伏級,壓力變化時輸出變化也在毫伏級,比較理想。把橋式電路的正負輸出端接到單片機的ADC輸入端,可以采集到數據,但是施加在傳感器上的力緩慢變化時,采集到的數據會快速發生變化,且一直在大幅度波動,給進一步的數據處理造成了很大麻煩。仔細分析滑板對數據的需求,認為把人體重心變化的周期控制在秒級即可,即采集到的信號維持在幾秒或者數秒變化一次就可以滿足系統需求,并不需要維持幾毫秒甚至幾微妙采集一次。因此,嘗試通過增加濾波電路抑制采集到的數據變化太快的問題。
設計簡單的LC低通濾波器和RC低通濾波器,結合已有材料,經過理論計算LC濾波器與RC濾波器的截止頻率為1.447 Hz。根據周期與頻率的關系[3]:

可知,T≥0.7 s,即只有周期大于0.7 s的數據才能通過濾波器。焊接好電路后再次采集數據,效果并不理想,數據波動依然很大。將兩個濾波器串聯后再采集數據,效果同樣不理想。仔細分析和實驗后發現,單片機內部的ADC模塊對電源要求非常高,且存在一定的轉換誤差,這種誤差經過軟件放大后更大,因此這種方案也被放棄。
查閱大量的資料后,找到了一種專用于應變片的模擬/數字轉換器芯片XH711。XH711是一款專為高精度稱重傳感器而設計的24位A/D轉換芯片,如圖2所示。與同類型其他芯片相比,該芯片集成了包括穩壓電源、片內時鐘振蕩器等其他類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾能力強等優點。該芯片輸入選擇開關可以任意選擇通道A或通道B,與其內部的低噪聲可編程放大器相連。通道A的可編程增益為128或64,對應的滿額度差分輸入信號幅值分別為20 mV或40 mV,通道B則為固定的32增益。芯片內提供的穩壓電源可以直接向外部傳感器和芯片內的A/D轉換器提供電源。把傳感器接到XH711模塊的輸入端、模塊的信號輸出端和時鐘端接單片機的I/O口,通過單片機的兩個I/O口對XH711芯片進行編程和讀取數據,再次采集數據后,得到了比較穩定可靠的壓力數據。

圖2 XH711芯片模塊
把采集到的重力數據軟件濾波后分成兩大類:一類是滑板本身的重力,另一類是人站在滑板上以后的重力。將前者的1.2倍作為閾值,用來區分滑板上有沒有人,以實現控制者離開滑板后滑板自動停車。為防止誤動作,閾值太大會影響體重較小的使用者的體驗。后者繼續分區域進行控制,前端傳感器得到的數值大于某一值,單片機發出前進控制信號;后端傳感器的值大于某一值時單片機發出剎車控制信號。以上是滑板車基本的控制思想。
滑板車系統采用鋰電池作為電源,因為鋰電池具有重量輕、體積小、容量大等特點。前期調試使用的是SUING品牌的SS1792F,可跟蹤直流穩定電源和DUPU牌2 200 mAh、11.1 V的鋰電池。可跟蹤穩定電源主要在調試電調參數時使用,鋰電池則在離線調試中發揮了巨大作用。
電源直接為電調供電,經過內部斬波電路轉換為三相交流后輸出到滑板的三相電機。電調的控制端集成了DC 6 V的輸出電壓,可以用于單片機的電源。由于單片機采用3.3 V供電,因此把電調輸出的6 V經過降壓處理后給單片機供電。同時,在6 V輸出端與單片機之間串聯了電力二極管,防止調試時單片機經電調內部形成回路燒毀單片機。電能流程如圖3所示。

圖3 電源流程圖
電調即電子調速器是用來直接控制電機轉速的,這里采用華沃瑞FVTA電調。該電調完全防水,擁有全新的程序算法,具有9種啟動加速度,加速度及油門線性度,具有電子剎車功能,具有電池電壓過低保護、過溫保護、油門失控保護以及堵轉保護等多重安全保護功能,同時支持有感和無感馬達,擁有獨立編程接口[2]。
電機使用N5065型400 kV(RPM/V)的無刷電機,最大電流90 A,無功電流2 A,功率為1 450 W。這種電機大多用在航模中,也可用于普通滑板改裝電動滑板,因此選擇這種電機。由于滑板采用人體實時控制,所以選擇的是內部不帶測速傳感器的無刷電機,擬用開環控制電機的速度。電機輸出軸通過有齒皮帶與滑板后輪連接,防止傳動時皮帶打滑,有效輸出更大。
首先安裝的是電機和車架。電機固定時需要保證其強度,必須牢固以防止電機支架與車架軸發生相對轉動。車輪與車架用帶滾珠的軸承固定,減小了摩擦力和額外的損耗,車輪外側通過彈性墊圈由螺絲緊固。
其次,安裝滑板板面、傳感器、電調、電源以及單片機等。傳感器的安裝過程較為復雜。傳感器要安裝在車架和板面之間,既要起到固定作用,又要能夠保證準確測量出重心位置變化。
開始時,把稱重傳感器直接放置在板面和車架之間,四周用長螺絲固定,傳感器與車架的支點很少。這樣做雖然數據采集很準確但是由于螺絲寧得較松,所以車架與板面松松垮垮,安全性差,傳感器也容易移動增加采集數據誤差,因此這種結構并未采納。
于是,嘗試保證安全性的前提下適當放棄采集精度,同時通過網絡了解到一種PET材質的薄膜式壓力傳感器,如圖4所示。這種傳感器非常薄,不足1 mm,非常適合該項目。傳感器主體部分圓直徑20 mm,引線長120 mm。傳感器區域最高分辨率面積可達1 mm×1 mm,在0.1 m2的區域面積內分布6 000個壓力傳感器,以300 Hz采樣頻率檢測每個點的受力情況,被測物體質量范圍為0.5~150 kg。

圖4 薄膜壓力傳感器
把這種傳感器壓在車架和滑板板面之間,傳感器引線接XH711模塊的輸入進行采集測試。當壓力變化時,采集到的數據不做任何變化。多次嘗試后,依然如此。后來用萬用表測量器阻值變化發現,無壓力時傳感器兩輸出引腳之間的電阻非常大,相當于開路;有壓力時兩引腳之間的電阻迅速減小到幾十歐姆,作用力稍大,后端口電阻甚至會減小到零點幾歐姆,給測量帶來了很大不便。對比各種橋式電路,電阻值多在1 Ω,阻值變化范圍也很小。這種變化范圍巨大的傳感器明顯不適合做成橋式電路。經過多次嘗試無果后,最終放棄使用這種傳感器。
深入思考后,決定重新嘗試最初的方案并認真優化它。最初把測量精度放在首位,理論上可以得到數據,實際使用中存在不安全因素即結構不穩定。于是,最終決定將兩者進行折中思考。基于先前的研究,在傳感器下面增加塑料托片用于緩沖,并把固定滑板車架和板面的螺絲繼續緊固,直到車架和板面不發生晃動。這時傳感器會有一基礎偏差,數據處理時把傳感器采集到的值減去這個基礎偏差當作實際測量值,即矯正偏差的方法。再次測量后數據基本正常,雖然與實際的壓力存在一定的誤差,但是理論分析不影響進一步控制,可以進行下一步。
最后,安裝電調、電池和單片機,并在全部組裝好以后為電調、電池和單片機設置整體的防護罩。
至此,滑板車全部組裝完畢,后續是程序的編寫和調試。
調試過程包括程序仿真和系統離線測試。
程序仿真主要是把控制思想轉換為程序,并在PC機上進行邏輯測試。控制思想即先把采集到的重力數據軟件濾波后分成兩大類,用于區分滑板車上有沒有人,這是滑板前進的基礎條件,以實現人離開滑板車后滑板的自動停車。軟件濾波采用中位值平均濾波算法,又稱防脈沖干擾平均濾波法,是把中位值濾波法和算數平均濾波法的結合體,能有效消除由偶然脈沖性干擾所引起的采樣值偏差。同時,由于它測量速度較慢,正好彌補了單片機采樣速度太快的缺點,兩者優勢互補。
檢測滑板上有沒有人的閾值是大量測量后取的平均值,把它當作滑板前進的基礎條件,即重量小于這個值處理器不會做任何處理。如果檢測為有人,前端傳感器得到的數值大于某一值且后端傳感器得到的數值小于某一值,單片機發出前進控制信號;前端傳感器的值小于某一值且后端傳感器的值大于某一值時單片機發出剎車控制信號,前進與剎車之間留出一定的空間默認前進。
離線測試主要用來驗證和配合程序修改調試。
經過近半年的設計與研究,重力感應滑板現已實現了依靠人體重心變化而控制前進與剎車的設計目標,具備了使用者身體前傾向前行駛、身體后傾及時剎車的功能,與市場上銷售的遙控電動滑板車在控制方法上有著本質區別,簡化了電動滑板的控制方法,減少了電磁波的輻射,基本實現了代步功能。
重力感應滑板現在只是實現了依靠人體重心變化控制滑板的前進和停止,后續將從身體前傾角度細化和優化速度控制。例如,可以把身體前傾的角度分為幾個等級,每一級限制一個最大速度,直到滑板的最大速度。這樣可以實現不同場合下的使用速度,提高了滑板的娛樂性。此外,也可以優化電源,使用輸出電流更大的電池,提高電機的帶載能力。