久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12582|回復: 1
打印 上一主題 下一主題
收起左側

PC搖桿飛玩具小四軸—用Arduino & NRF24L01+模塊實現

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-3-4 17:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       冬天溫度太低不適合室外飛四軸,就想買個小四軸室內飛,Crazyflie買不起,連國內復刻的Crazepony都還是太貴。最后趕在年前買了個Devo 7e控和JJRC(以前從來沒聽說過的公司)出的JJ1000小四軸在室內飛,改完控發現這個玩具小四軸真心很好飛。
        而且個人覺得這個飛機外形還比較順眼,簡潔低調,不浮夸不幼稚:
        
        Devo 7e就不過多介紹了,太出名的一個小手控,改控就是焊高頻頭電阻、加高頻頭、加三段開關、加旋鈕,這里嚴重參考了Galee大的教程(也是因為Galee我才在ednchina開硬件博客)。不過我最后用的是Devation的Nightly Build固件,因為Galee固件沒有NRF24高頻頭的支持,可惜了,我很喜歡Galee的UI設計。
        改控的時候發現這個小四軸其實用nrf24l01+高頻頭就可以通信,協議用偉力V202。所以用arduino也可以控制NRF24,然后PC通過串口控制Arduino,玩起來就可以很靈活,配合PC端軟件還可以用上飛行搖桿和Xbox One Controller。Arduino手上倒是很多,想到N年前買的NRF24L01+模塊,一直壓箱底沒有玩過,這次正好派上用場。

        所以總的來說,控制流程就是:
        飛行搖桿/游戲手柄 ---USB--->
        PC端Node.js采集程序 ---USB轉串口--->
        Arduino ---SPI--->
        NRF24 ---2.4G V202協議--->
        JJ1000

        各個部分硬件的連接,只有Arduino和NRF24模塊有點難度,要點:
        首先,這個模塊是SPI的;
        其次,模塊的電源要接3V3,但IO口可以兼容5V TTL;
        最后就是要把模塊的CE腳接到Arduino的9腳上(實際空的IO口都可以,但是需要改Arduino程序)
        所以8個腳的模塊,只有IRQ可以留空不接。
        我的模塊沒有帶PA和外置天線。看Crazepony的說法是這種模塊只能控10來米,當然在室內玩是綽綽有余的。等調試好了再去買帶PA和天線的模塊不遲(改控用那種就行):
        
        整個控制流程看起來復雜,實際上只需要開發兩個部分的軟件,PC上的Node.js搖桿采集程序和Arduino控制程序。

        首先說說Arduino端的控制程序,V202的協議Deveation論壇上有個victzh大神發了**討論貼,并且給出了基于Python和Arduino的代碼。
        我對victzh的代碼做了點修改,把控制信號從ADC引腳讀取,改成從串口命令解析。命令的格式很簡單:
        cmd:[thr],[yaw],[rol],[pit]
        比如:cmd:100,127,127,200
        目前還沒有考慮開關燈之類的設置,當然這個協議要擴展也是很簡單的。
        我的Arduino V202控制器代碼放在了Github上:

        https://github.com/xiedidan/v202-arduino-mod

        接下來就是PC端的采集程序了,最近工作一直用Node.js很順手,而且Node可以實現各個平臺的移植,NPM上的庫也是非常豐富的,所以就用Node了。
        采集程序思路也是很簡單,用cylon-joysitck庫就可以采集搖桿動作,從-1.0到1.0,換算一下變成0-255,拼好命令再用serialport發送出去就是了。cylon-joystick目前只能在Node 0.12.x版本下用,4以上的版本是用不了的,另外在Windows下需要編譯器支持,我裝了個VS Community 2015。
        采集程序同樣放在Github上了:

        https://github.com/xiedidan/v202-commander

        目前支持ThurstMaster T.16000M搖桿(這桿子精度不錯,回彈力度偏輕,但油門行程太短),默認使用找到的第一個串口。git clone回來之后npm install,注意npm編譯有可能需要Python 2.X的支持(3以上不能用),裝好之后執行node v202-commander.js即可。

        其實到這里就可以飛起來了,但是真正飛起來之后我發現超級難飛,因為油門和搖桿都沒有曲線和比例控制。
        于是我又給油門加了曲線控制(一共有三種曲線:平方根、直線、平方),按T16000M右手邊最左的兩個鍵可以切換。個人覺得飛四軸平方根油門曲線最好用,油門中間偏大的部分比較精細(我的飛機負載普遍偏大……),起飛降落都比較干脆,避免地效。
        還有搖桿的比例控制,從12.5%到100%五檔,按T16000M上右手邊最右的兩個鍵就可以切換。目前覺得12.5%-25%比較好用,更大的比例最好配合曲線使用。
        右手中間兩個鍵留給搖桿曲線,目前還還沒想好用什么曲線,暫時沒有實現。
        因為我是左手握桿,所有按鍵都在右邊,右手握桿可以改成左手按鍵。
        到現在飛機就比較好飛了,懸停控制可以輕易達到Devo 7e的效果,14位霍爾搖桿,比一般12位電位器好多了。

        對于其他不是NRF24的玩具飛機來說,道理都是一樣的,使用對應的高頻頭(一般就A7105和CC2500,盡量買帶PA和外置天線的模塊)和協議就可以了,**協議可以多搜索一下Devation論壇,國外大神都很有共享精神。
        如果把Node采集程序放到樹莓派上去,再寫個程序用樹莓派SPI控制NRF24,就完全脫離電腦的牽絆了。
        再想遠一點,樹莓派甚至可以用來合成PPM信號,用遙控器發射出去控制真正的航模,完全可以外場使用。
        PC飛行搖桿可以比遙控器精度手感好得多。另外基于Node程序的混控、曲線之類可以做得很靈活,不用再被遙控器限制了,工程師之友,呵呵。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:208070 發表于 2017-6-5 16:10 | 只看該作者
這樣操控比起遙控器不會有延遲感嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 视频一区在线观看 | 精品一区二区在线观看 | 欧美极品在线播放 | 国产视频一二三区 | 爱爱小视频 | 国产电影一区二区三区爱妃记 | 国产免费xxx | 亚洲精品在线观 | 欧美一区二区三区国产精品 | 亚洲精品久久久久久国产精华液 | 色爱综合| 精品视频一区二区三区在线观看 | 亚洲欧洲在线观看视频 | 国产精品美女一区二区 | 国产一区二区电影 | 日韩中文久久 | 精品欧美一区二区三区精品久久 | 伊人网综合在线观看 | 成年精品 | 国产一区二区视频在线观看 | 337p日本欧洲亚洲大胆精蜜臀 | 日韩一区二区在线观看 | 又黄又色| 亚洲精品永久免费 | 99在线精品视频 | 日本三级线观看 视频 | 狠狠夜夜| 91av视频在线播放 | 老妇激情毛片免费 | 欧美a在线观看 | 国产精品久久久久aaaa | 亚洲日产精品 | 婷婷中文字幕 | 91在线视频观看免费 | 国产精品久久久久久一区二区三区 | 免费精品在线视频 | 麻豆va| 一区视频 | 一区二区三区国产精品 | 草久网| 国产精品久久久久无码av |