漂移神器!Arduino遙控氣墊船

前幾個月製作了一款基於Arduino的最小板,上面集成了一些功能,經過了幾次的迭代後終於達到了我想要的效果,緊接著又為這款電路板製作了一個配套的遙控器,用來操控這塊板子上的一些功能,例如電機驅動以及控制一些IO口之類的。這兩個項目製作過程都可以從如下的鏈接找到:

乾貨滿滿!自制Arduino遙控套裝(上)乾貨滿滿!自制自制Arduino遙控套裝(下)

當時調試完成之後一直就放著落灰了,進來準備使用這套板子來製作一些項目,結合了板子的資源之後,就選擇了氣墊船的項目,準備用我設計的這套板子製作一個遙控氣墊船。

首先話不多說,上完成品照片:製作

漂移神器!Arduino遙控氣墊船

製作好的成品

接下來我就會帶來整個氣墊船的開發,製作過程。

靈感來源

首先我端詳了我做的這款板子,上面有三個L9110s電機驅動芯片,以及一個支持1-2s的鋰電池接口,一個支持NRF24L01的接口以及報警電路。對於這個L9110s驅動,我使用了幾乎arduino的全部支持硬件PWM的管腳,其中有兩個驅動芯片是支持正反轉PWM調速的,有一個驅動苦於arduino的PWM管腳不夠,所以只能支持單向PWM調速,顯然這樣的配置對於一些小車的項目肯定是綽綽有餘,而這也是我設計這塊板子的設計初衷,對於一些車船類的項目,這款板子可以完全適應。

漂移神器!Arduino遙控氣墊船

所以選擇來選擇去,還是選擇了車船類的項目。但是我對於車船類的項目感覺玩不什麼花樣,偶然間在網上看到別人3D打印的氣墊船項目,就動心了。

想法到圖紙

之前玩過一段時間的航模,所以最開始想用空模的那一套東西來做,用無刷電機帶動扇葉轉動,然後電調可以用arduino輸出的PWM波來控制,剛好家裡也有3D打印機。但是接著我就發現那我為啥不用arduino nano板來做,因為這麼做的話貌似我板子上的功能一個都沒用到,簡直就是浪費資源,遂放棄。。。。。。

有一天玩那種空心杯的四軸時候,看到四軸的電機體格雖然很小,但是力道卻很足,於是想用這個電機來做動力,剛好板子上的驅動芯片應該能帶的動。於是上某寶搜索,對比了很多不同型號的空心杯電機之後,選擇了720電機,店家還給配了螺旋槳,直徑差不多55mm。數天之後,電機到貨了,拆開上電之後,感覺風還挺大,比得上一個小電扇了,於是確定了這個動力系統。720電機配55mm螺旋槳。

漂移神器!Arduino遙控氣墊船

氣墊船使用的720電機

動力總算是確定了,接下來就是結構的問題,在開始繪製圖紙之前,有個很重要的問題要解決——氣墊船的轉向方式?

於是上百度上查詢氣墊船的圖片,發現大概分為兩類,一類是使用單個風扇作為推進,扇葉後方有可動的導流板來控制方向,就是類似船的舵一樣,我開始準備用這種的,因為只需要一個電機,感覺比較省電。但是後來查看了詳細的結構之後還是放棄了,結果比較複雜,實行起來比較麻煩。另外一類是使用兩個或者四個風扇作為推進,使用兩側風扇的速度差來控制船體的方向,這種結構比較簡單,而且兩測風扇我還可以使用兩個支持正反轉PWM調速的驅動芯片來驅動,達到速度差調速的目的。

終於是確定了使用的動力以及轉向方式,下面就是埋頭畫圖紙了。作為CAD小白,我學習了幾節課程之後終於是能勉強畫圖了。下面是畫好的圖紙,一共有四頁,使用的軟件是迅捷的CAD。

漂移神器!Arduino遙控氣墊船

繪製好的CAD圖紙

整個機身一共有四個電機,兩個負責推進兩個負責起升,這樣剛好用光了我設計板子上面所有的電機接口,後續還想加什麼功能的話也有多餘的端口來使用。

畫好之後,我想能夠在電腦上先模擬一下完成之後的樣子就好了,於是沒有建過模的我又去學了建模,將CAD中畫好的圖片導入到建模軟件之後,經過簡單的拉伸操作就得到了大致完成的樣子,我用的建模軟件是犀牛,剛剛學習,只會簡單的幾個操作,請各位看官輕拍。

漂移神器!Arduino遙控氣墊船

終於是完成了圖紙的設計了,導入到建模軟件的效果也還滿意,於是準備下一步的切割了。

圖紙到實物

我在某寶上找了個加工KT板的廠家,將圖紙發過去了。之前確實考慮過使用木板,但是輕木太軟,桐木太脆,椴木太重,權衡下來還是切kt板,因為之前玩航模確實很多飛機都是用KT板做的,很結實也很輕。

等待了幾天之後,切割好的kt板送到了,查看了一下,沒有問題,由於切割KT板的時候切割機會燒灼KT板的邊緣導致一些尺寸會對不上,幸好我在設計圖紙的時候預留了一些餘量,這點也提醒大家注意。

漂移神器!Arduino遙控氣墊船

隨後急忙的組裝了起來,這時候門鈴響了,原來是買的電機到貨了。正好趕上組裝,於是迅速的安裝上了電機,成品如下:

漂移神器!Arduino遙控氣墊船

下面就是安裝我設計的電路板了,設計圖紙時給氣墊船設計了一個設備艙,正好可以容納電路板。

漂移神器!Arduino遙控氣墊船

電路板裝進去,將電機插頭插到板子上,到這裡所有的結構搭建以及硬件電路都連接好了,下面就是給氣墊船注入靈魂——編寫代碼了!

程序的編寫

其實控制程序非常簡單,首先說接受端,其實就是將無線模塊接收到的數據轉換成對應引腳輸出的PWM佔空比來控制電機的轉速。發送端也是很簡單,我使用搖桿作為控制桿,用arduino的ADC引腳讀取搖桿輸出的電壓來獲得當前的搖桿位置,然後將搖桿位置的數據通過無線模塊發送出去。

下載程序到氣墊船和遙控器中:

漂移神器!Arduino遙控氣墊船

漂移神器!Arduino遙控氣墊船

上電!我使用的電池是550mah的3.7v鋰電池,帶這四個電機大概可以玩10分鐘的時間。於是》》》迫不及待的上電開始玩耍!!

需要的一些改進

在玩耍中發現由於氣墊船的阻力非常小(幾乎不和地面接觸),所以推進電機要是速度不一樣就會導致氣墊船偏航,但是由於驅動芯片的誤差以及電機之間的誤差問題,即使我使用相同佔空比的PWM方波驅動他們,仍然會導致他們轉速不同以致氣墊船容易偏航(很難跑直線),這個問題比較影響玩耍的體驗感,需要改進。

計劃是使用一個電子羅盤,也就是磁力計來確定現在氣墊船船頭的指向,然後引入PID算法來通過電子羅盤的數據來校正控制每個推進電機的PWM波,這樣應該會改善到整體的操控性。

不過這有需要一段時間的研究,主要是軟件方面,現在板子上預留了IIC的通信接口,想必找到一個IIC通信的電子羅盤應該不是什麼難事,問題就在PID算法以及一些濾波算法上,我還對PID算法不太瞭解。而且是否運轉的電機或者電機內的磁鐵會對電子羅盤的數據產生干擾也不是很確定。

成功的讓這個氣墊船跑起來達到了我的目的,對於 其的一些改進應該會放在之後,應為近期準備開始做室內玩的遙控飛機的板子,是基於51和LT8920的,所以這個改進應該會等到做完那個項目之後。如果你對這個氣墊船有什麼改進的建議,歡迎提出來。


分享到:


相關文章: