產品名稱:TOWER PRO(輝盛)大扭力舵機MG996R (MG995升級產品)6v/11Kg
廠家編號:MG996R
產品淨重: 55g
產品尺寸: 40.7*19.7*42.9mm
產品拉力: 9.4kg/cm(4.8V), 11kg/cm(6V)
反應速度: 0.17sec/60degree(4.8v) 0.14sec/60degree(6v)
工做電壓: 4.8-7.2V
工做溫度: 0℃-55℃
齒輪形式: 金屬齒輪
工做死區: 5us (微秒)
適合機型: 50級-90級甲醇固定翼機以及26cc-50cc汽油固定翼飛機等算法
後又改用別的舵機:
硬件問題:
問題一
舵機的精準度和響應速度。
用按鍵調整舵機,
674-中值, 左極限:502-左29度, (674-502)/30=5.73。每度5.73。 5.73/10000*20=0.01146ms=11.46us. 工做死區:5us。右極限:(865-674)*
可是我用按鍵調整時從中值。向右打舵時需加60 就是增長0.12ms脈衝寬度纔會第一次轉,左邊是好的。而後右打30度或者左打30度,回舵的時候,反應很慢,也是須要加50到60纔開始第一次回舵。以後就是正常的。
打算換一個舵機,來試試。
問題三:
攝像頭加濾光片後,攝像頭自動進入白平衡調節。此時應該將濾光片去掉,調好白平衡後,再戴上濾光片。
軟件問題:
問題一:
遇到的問題:測試各個模塊代碼都沒有問題,讀出全局變量的值被改變了。原來是函數嵌套太深了,把棧撐爆了。
stm32內存分佈-棧,堆,靜態存儲區。
棧: Stack_Size EQU 0x00000400 .s文件內核啓動代碼中的。規定棧的大小。局部變量的內存都分佈在棧上,函數地調用也會在棧上,定義局部變量避免大數組,以防棧溢出。
棧的大小:0x400=1024個字節大小。
堆: Heap_Size EQU 0x00000200 規定堆的大小。malloc或者new來申請堆內存,用完後而後free或者delate釋放內存,若是未釋放則出現內存泄漏,
靜態存儲區:static關鍵字,全局變量,
解決辦法:咱們沒有用到堆內存malloc來申請內存。將堆內存改成0,那麼內存分佈就是靜態存儲區+棧了。
.c文件先彙編成.o文件,而後在連接成可執行文件,
問題二:
數據大小端的問題處理數據。
接受到的數據是高字節在前,低字節在後,得處理一下,
問題三:
舵機PD算法的參數肯定,
問題四:
攝像頭採集的數據有跳變,是由於攝像頭電源和mcu的電源必須統一。因而乎就採用軟件均值濾波。各類嘗試。。可是最後發現是硬件的供電問題。困擾很久。才解決了數據跳變的問題。(本身差點都準備換別的攝像頭了)。特別悲催。。坑爹。。。
檢查問題步驟:
1.先觀察攝像頭數據,是否輸出。
2.再看X,Y,編碼器計數。
/ ******************這裏摘自網友博客**********************/
編譯工程:
在Keil中編譯工程成功後,在下面的Bulid Ouput窗口中會輸出下面這樣一段信息:
Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data=1636
表明的意思:
Code :是程序中代碼所佔字節大小
RO-data :程序中所定義的指令和常量大小 (我的理解 :Read Only)
RW-data :程序中已初始化的變量大小 (我的理解」:Read/Write)
ZI-Data :程序中未初始化的變量大小 (我的理解 :Zero Initialize)數組
ROM(Flash) size = Code+RO-data+RW-data;函數
RAM size = RW-data+ZI-data測試
能夠經過.map查看佔用的flash和ram大小編碼
/ ******************這裏摘自網友博客**********************/