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