制作一個遙控氦氣球
在氣球中充滿氦氣,由于氦氣密度小于空氣平均密度,氣球排開了一定體積的空氣,受到升力大于其自身重力,氣球就可以向上飛了。
當我們給氣球加上適當的負載之后,此時升力等于重力,那么氣球就可以懸浮在空中了,如果我們再給氣球安裝上推進電機,并且仍然保證氣球所獲得升力等于重力,氣球就可以在空中受控制的航行了。
這次我們就來開發一個可以飛的氣球,我稱之為“飛行氣球“,下面是飛行氣球的結構:
其中需要幾大比較重要的部件:
控制板(飛行控制板,負責接受信號以及驅動推進器)推進器(推進電機,帶動螺旋槳葉推動氣球航行)載具(氣球,負載提供給升力)
控制板
制作一個好的控制板是非常重要的,其負責接受控制信號并且控制各個推進器的動力輸出(轉速)。所以使用一款兼具無線功能的MCU是最優選擇,那么藍牙SOC就當之無愧的入選了,藍牙可以方便的和手機進行鏈接,并且功耗也較低。
SOC全稱為System on chip,也就是片上系統的意思。對于一塊藍牙SOC來說,就是將藍牙射頻電路,單片機(MCU)功能集成到了一個芯片上。使用它不僅可以降低成本,并且芯片所占面積大大減少。生產藍牙SOC的廠家有很多,這次用的是比較流行的Nordic公司的NRF52832。
由上圖可見,在NRF52832中集成了一個性能較好的Cortex M4F內核,主頻為64MHZ,這對于我們的應用無疑是給出了很大的拓展空間,帶有FPU(float process unit)浮點運算單元使得進行浮點運算更加快速。確定好了SOC之后,控制板還需要驅動我們的推進電機工作,那么我們就需要設計一個電機驅動電路了。由于氣球的載重量有限,需要在各個環節都要減少重量,過于復雜的電路一概不予考慮,只需要最最簡單的就可以了。
電機驅動芯片占地面積小,使用起來簡單,驅動以及保護功能齊全,并且穩定性十分有保障。所以我選擇了一款超級迷你的電機驅動芯片DRV8837,并且繪制好了電路的原理圖
除了電機驅動芯片以及SOC芯片的電路之外,我還給板子上添加了一個姿態傳感器MPU6050以及一個氣壓傳感器BM280,用來獲取姿態以及高度數據。
接下來將原理圖文件轉換成PCB文件并且進行簡單的布局,布線等等操作。完成之后的樣子可以初步的看出板子的樣子。
這一次制作的板子為4層板,因為板子面積過于狹小,所以兩層板布線困難巨大,故給板子添加了兩個電源層,所有信號線則從板子表面通過。
切換成3D模式下,觀察板子表面布局看看是否有問題
將板子的模型文件導出,導入到渲染軟件中得到板子大概的效果圖
板子拿到手之后,對于這種元件比較小、密度比較大的板子,按照常規來說應該開鋼網才比較好焊接。而我這次圖便宜沒有開鋼網,在焊接上栽了不少跟頭,不是虛焊就是引腳連錫,反正出現各種問題。最后費了好大勁才焊接成功,這次長記性了,下回一定開鋼網。
控制板到這里就算制作好了,給它編程之后就可以使用了。我在Nordic給的SDK(software development kit)軟件開發包中修改了一下藍牙串口的例程,在藍牙串口接受服務的回調函數中,處理來自手機的數據包并且保存下來,方便后面控制電機使用。
電機轉速采用PWM(Pulse width modulation)控制,所以我需要初始化一下NRF52832的pwm外設。
到這里我們就把代碼寫好了,控制板可以正常使用了,接下來我們看推進器的選擇
推進器
推進器主要起著控制氣球的姿態、以及前進后退的角色。在氣球上使用的推進電機肯定不宜太重,那么空心杯電機肯定是不二之選,輕便的重量使得他可以很好的掛載在氣球上。買來的電機以及螺旋槳。
拆了一個電機,用里面的銅絲來制作導線,銅絲不要太粗否則影響重量
所有的電子設備此時全部就準備好了,為了重量考慮,電池盡量使用最小的,這里使用的是一塊100mah 3.7V鋰電池,重量約3g
為了安裝這四個電機,切割了一些泡沫塑料板,用來做支架,并且使用UHU模型膠粘接到電機上
將電機的另外一頭焊接到剛剛做好的控制板上,這樣控制板就可以控制電機的運轉了
載具
關于載具我使用的是鋁箔氣球,因為鋁箔氣球有著很好看的外觀以及各種造型,我在網上購買了一只形狀是鯊魚的氣球。內充的氣體一般是選擇氦氣,氦氣屬于惰性氣體,安全性較高,氦氣在花店可以加注,如果找不到花店的話也可以上網購買。
充好氣的鯊魚氣球,由于很容易就飄到天花板上,只能用手按住拍照
將控制板使用透明膠帶粘接到鯊魚底部
接著依次使用UHU模型膠水粘貼四個電機至鯊魚氣球上,完成后的樣子,四個電機就可以完成鯊魚氣球的前進,左右轉彎,上浮下沉等等動作
從背后看看鯊魚氣球的樣子
我順便開發了一個微信小程序用來遙控氣球,如圖所示,油門使用中間的滑塊控制,而左右轉彎以及上浮下沉則是通過手機的重力感應。最上方處則是水平姿態線,用于指示手機此時的姿態。
當然之前設計控制板時候設計的姿態傳感器也可以用上,我移植了MPU6050的DMP庫,這樣可以免去很多復雜的數學計算就可以輕易的獲得歐拉角。對于閉環算法,我就簡單的使用了一個比例項來控制,因為考慮到在室內氣球的姿態比較穩定,所以就沒有使用過多的算法。
最后來幾張在飛行的圖片