下載時選擇內部時鐘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
+關注
關注
243文章
24596瀏覽量
690866 -
接收機
+關注
關注
9文章
1244瀏覽量
56237 -
EEPROM
+關注
關注
9文章
1137瀏覽量
86036 -
蜂鳴器
+關注
關注
12文章
900瀏覽量
47765
原文標題:?STC8A無人機(實現篇)
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
無人機保護長城去了。。。。。不要再黑我們可愛的無人機了
無人機你們是知道了,那么反無人機有幾個會知道?
無人機技術解答
無人機類型之植保無人機,帶你了解什么是植保無人機?
無人機商用測試征途
山東無人機反制設備保障信息不被泄漏
四軸無人機設計
如何實現大四軸無人機的飛控設計
無人機增長也“鬧心” 反無人機設備乘勢而起
STC8A單片機應用開發
?STC8A無人機設計實現
評論