原创 簡單常用濾波算法C語言實現

1.限幅濾波算法(程序判斷濾波算法) 方法解析: 根據經驗判斷,確定兩次採樣允許的最大偏差值(設定爲A),每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效, 如果本次值與上次值只差>A,則本次值無效,放棄本次值,用上次

原创 STM32F4XX啓動過程學習筆記

啓動文件主要未完成如下工作,程序的執行過程: —設置堆棧指針SP = __initial_sp —設置PC指針 = Reset_Handler —配置系統時鐘 —軟件設置SP —加載.data,.bss.並初始化棧區 —跳轉到

原创 時鐘系統介紹

STM32F4時鐘 三種不同的時鐘源可被用來驅動系統時鐘(SYSCLK) HSI 振盪器時鐘 HSE 振盪器時鐘 PLL 時鐘 這些設備有以下兩種二級時鐘源: 1. 32kHz 低速內部 RC,可以用於驅動獨立看門狗和通過程序

原创 兩種四軸PID講解

參考資料:愛無人機論壇 單級PID: PID算法屬於一種線性控制器,這種控制器被廣泛應用於四軸上。要控制四軸,顯而易見的是控制它的角度,那麼最簡單,同時也是最容易想到的一種控制策略就是角度單環PID控制器。 相應的僞代碼如下

原创 ubunut安裝stlink

在ubuntu上面的stlink驅動的安裝: 依賴包的安裝: sudo apt-get install libusb-1.0 sudo apt-get install cmake sudo apt-get install libgtk-

原创 pixhawk自學筆記之px4遙控信號部分

rc信號由src/drivers/px4io/px4io.cpp發佈,頻率是50HZ。(由宏定義IO_POLL_INTERVAL限制) 我們追蹤這個字段會發現,對電調的PWM的輸出也是限制在這個值。 我們發現rc_input_values

原创 pixhawk自學筆記之uorb學習總結

注:這是看過好多文章總結出來的,轉載了較多人的博客,希望有知道原出處的人把地址留下,我貼上來。在此謝謝各位前輩的總結。(我會在後續筆記中貼出在我自己的程序中對於uorb的使用) 進程與應用程序(傳感器應用程序發送傳感器數據到姿態過濾

原创 PID連續控制算法的表達式以及C語言實現

1.      數字(離散)PID控制算法的表達式: 將PID調節器離散化,用差分方程來代替連續系統的微分方程,分爲位置式和增量式兩類。 重點理解概念如下: a)  基本偏差e(t):表示當前測量值與設定目標值間的差,設定目標是被減

原创 pixhawk自學筆記之從串口獲取光流數據

pixhawk代碼已經給出了光流從iic接口獲取數據的驅動,在driver文件下可以找到。因爲我手邊沒有多餘的傳感器,也懶得重新配置mavlink協議,我們來看一下光流代碼: 我在main.c文件中把源代碼給修改了,現在我們通過串口3,

原创 Nuttx的源碼構建和編譯

下載源碼 sudo mkdir Nuttx cd Nuttx 1. Nuttx:git clone https://bitbucket.org/nuttx/nuttx.git 2. apps:git clone ht

原创 PID概述以及在無人機中的應用

PID控制是將誤差信號的比例P,積分I,微分D通過線性組合構成控制量,稱之爲PID控制。但是在很多情況下,往往不一定需要三個單元,但是比例單元是必不可少的。PID控制器難點在於參數的整定,但是很多情況下我們可以直接根據系統的時域響應來調節

原创 改進式PID控制以及C語言實現過程

改進式PID控制          如果是在低速模式下,標準的PID基本可以滿足控制要求,但隨着速度的提升,PID算法要進一步修改和完善才能達到控制要求。因此需要對PID算式進行適當的改進,從而提高控制質量。          積分項的改

原创 pixhawk自學筆記之windows下的cmake編譯

  1.首先需要確保已經安裝了JAVA環境。   2.下載cmake編譯工具,注意在安裝過程中把cmake添加到環境中。   3.下載並安裝PX4工具鏈,px4_toolchain_installer_v14_win.exe。   4

原创 Nuttx程序測試

前面兩篇文章我們講述瞭如何編譯nuttx和ubuntu下stlink的安裝.現在我們繼續往下測試程序. 硬件環境:stm32f407discovery 軟件環境:ubuntu14.04 + vim 我們首先進入到nuttx/tools

原创 pixhawk自學筆記之Mixer學習

混合器輸出定義控制器的輸出是如何映射到電機和伺服輸出。所有內置mixer文件位於ROM文件系統的/etc/mixers目錄,並編譯成固件。Mixer是一組獨立的映射器,從控制讀入寫入,寫入執行器輸出。一個模塊,結合一組根據預先定義的規則和