下載時選擇內(nèi)部時鐘24MHZ, 設(shè)置用戶EEPROM大小為2K或以上. MC6B六通道2.4G 100mW.
四軸上電待機:上電后,航燈不亮,接收機LED閃爍,此時打開遙控器,將左右油門下拉到最小,接收機收到信號LED常亮. 表示RF通訊已連接。此時蜂鳴器"嗶"一聲,航燈閃爍,表示待機模式。
四軸啟動:將遙控器左右操縱桿掰成下內(nèi)八,啟動四軸,四軸"嗶"一聲,4個螺旋槳開始低速旋轉(zhuǎn),航燈常亮。 此后提升油門,就可以加速螺旋槳,直到起飛。
四軸飛行:起飛后,可以操縱右手的俯仰、橫滾操縱桿,實現(xiàn)前后左右或任意方向的飛行。左手油門桿左掰是航向逆時針轉(zhuǎn),右掰是航向順時鐘轉(zhuǎn)。
四軸下降停止:收油門,四軸逐漸下降到地面,然后兩操縱桿掰成下外八,停止四軸,重新處于待機模式。
四軸水平校準:將四軸放置于水平地面,處于待機模式,然后兩操縱桿掰成上內(nèi)八,四軸"嗶"一聲進入校準,完成后"嗶嗶"兩聲完成校準。
四軸取消水平校準:將四軸放置于水平地面,處于待機模式,然后兩操縱桿掰成上外八,四軸"嗶"一聲取消校準。取消水平校準或未進行水平校準過的四軸,起飛時即使無風(fēng)也可能會有明顯漂移。
電池低壓報警:當電池低壓時,蜂鳴器"嗶嗶"報警,同時航燈閃爍,此時請盡快回航降落。
無遙控信號異常:當四軸在空中突然收不到遙控信號時,四軸蜂鳴器發(fā)出"嗶嗶嗶"報警,同時航燈閃爍,四軸保持水平,逐漸自動減小油門降落。
以上這些是要實現(xiàn)的功能:
定義串口的波特率,串口的數(shù)據(jù)包長度,下面昨天看的驅(qū)動,最后是IO的定義。
矯正參數(shù)就是置0,還有就是一些姿態(tài)角的初始定義,歐拉角,角度和加速度。
歐拉角是由三個角組成,這三個角分別是Yaw,Pitch,Roll。
Yaw 表示繞y軸旋轉(zhuǎn)的角度,Pitch表示繞x軸旋轉(zhuǎn)的角度,Roll表示繞z軸旋轉(zhuǎn)的角度。
也就是說,任意的旋轉(zhuǎn)角度都可以通過這三次按照先后順序旋轉(zhuǎn)得到。
歐拉角的定義
tmp是中間變量,下面是中位的遙控變量
IMU的緩存數(shù)組
一個定時器就可以生成 PPM簡單的將多個通道的數(shù)值一個接一個合并進一個通道,用2個高電平之間的寬度來表示一個通道的值。
PPM協(xié)議最多傳輸10個通道,使用一個定時器就可以輕松解決了。因為每一幀信號的尾部必須加入一個足夠長的空白(顯著超過一個正常PWM信號的寬度)來分隔前后兩個信號,每一幀能傳輸?shù)男盘柾ǖ雷疃嘀荒艿?0個。
串口的一些配置
校準里面的一些變量
PPM定時器的一個計算
串口1的配置
這個是中斷的配置
打印字符串
串口的信息寫到緩存區(qū)
數(shù)字和字符的轉(zhuǎn)換
返回的參數(shù)信息
設(shè)置Timer2作為波特率生成器
只有在規(guī)定的桿位下才可以進入校準序列
校準3個組件
這個是具體的細節(jié),也沒有什么好說的
可以復(fù)用的代碼,最后輸出的是角度信息
代碼的端口先重置一下
后面設(shè)置PWM的引腳
初始化ADC功能
捕獲中斷
這個讀取陀螺儀的靜止誤差是寫到EEPROM里面的
四軸上電待機:上電后,航燈不亮,接收機LED閃爍,此時打開遙控器,將左右油門下拉到最小,接收機收到信號LED常亮。
在一個大循環(huán)里面跑倆個任務(wù),一個是解碼PPM的具體數(shù)字信號,二是在中斷里面檢測一些特殊的打桿指令進入一些功能,還會有電壓,蜂鳴器這些功能。
這個PPM的解碼,很簡單
通過算里面的脈寬來決定桿量
這個就是具體拿到以后校驗和裝載的過程
算好的值加到這里,給PWM輸出去
8ms???是個8ms的中斷嗎?
定義在這里
開始進入校準的步驟
這個是電壓的測量和蜂鳴器的控制
另一段測量
最后是上次講的一個定義
這個是串口的處理
這個就是串口的發(fā)送功能。
審核編輯:劉清
-
led
+關(guān)注
關(guān)注
242文章
23339瀏覽量
662251 -
接收機
+關(guān)注
關(guān)注
8文章
1184瀏覽量
53566 -
EEPROM
+關(guān)注
關(guān)注
9文章
1033瀏覽量
81827 -
蜂鳴器
+關(guān)注
關(guān)注
12文章
892瀏覽量
46048
原文標題:?STC8A無人機(實現(xiàn)篇)
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論