2023年12月11日17:47:56更新:
平衡環:
p可增加響應速度
p過小,響應太慢,不能達到直立。
p過大,會出現大幅度的低頻抖動。
d可消除p大了之後產生的大幅低頻抖動。
d過大,會出現高頻抖動。
速度環:
p可增加速度的響應,i和p有比例關係i=p/200.
p過小,響應慢,出現的現象是加速減速慢,遲鈍。
p過大,會出現低頻抖動。
轉向環p過下,轉彎不及時
p過大,大幅度抖動
兩個東西待解決
1、左右輪編碼器之和數值輸出的範圍確定
2、小車轉向的gyro範圍確定
不管是那個環,小車物理人為的短時直立,這個必須要做到,不然除錯任何引數,任何環都是扯。
機械中值的確定方法,通過oled上顯示的陀螺儀傾角確定,存在某乙個角度是前傾和後仰的臨界點,這個點對應的角度就是z*******
.
//直立環的最基本**實現
//angle-小車傾角 gyro-y 軸陀螺儀(前進方向是 mpu6050 的 x 軸的正方向,電機軸與 y 軸平行。)
int balance(float angle,float gyro)
直立環的kp極性確定
直立環的kp大下確定
直立環的kd極性確定
直立環的kd大小確定
此時kp,kd同時乘上0.6,就是一組合適的直立引數,可以發現不會抖了,但是小車也仍舊不能一直保持直立,原因是單獨的直立環不足以實現小車直立,還需要配合速度環。
//輸入左右輪電機編碼器
int velocity(int encoder_left,int encoder_right)
速度環的kp極性確定
速度環的kp大小確定
遙控的加入
int velocity(int encoder_left,int encoder_right)
//其中encoder_integral=encoder_integral-movement; 遙控的速度通過積分融入
速度控制器,減緩了速度突變對直立控制的影響。
//積分限幅中的最大賦值決定了小車的最大前進速度,而 movement 值決定了小車的給定速度。
基本**實現
//gyro是陀螺儀的y軸,電機方向.
int turn(int encoder_left,int encoder_right,float gyro)
直立環kp的大小確定
遙控功能加入
int turn(int encoder_left,int encoder_right,float gyro)
//其中turn+=amplitude; 轉向遙控疊加在轉向控制裡面。
STM32循跡 藍芽小車
在做小車之前,首先應該明確需要的器件,其次劃分功能模組,乙個模組乙個模組的來,在完成乙個模組之後新增另乙個能保證最終小車的穩定功能實現。有兩種思路 一,以實現功能為主,不考慮後期要加什麼東西,實現以後再做優化。二,先將專案整體需要做的東西全部過一遍,再一步步做出成品。我是第一種,在搭建的過程中也遇到...
stm32 藍芽 智慧型小車
電源問題已經解決,還是18650更給力,兩節就可以達到8v上下。原來是模仿網上下的模板,把模板燒進去發現並沒有成功,所以就把原來寫的 全部推翻,重新開始寫。其實寫乙個工程,最快的方法並不是一口氣把所有東西都給新增上,因為一旦出現錯誤,當然肯定會出現錯誤,根本不知道從 下手改bug,所以還不如乙個乙個...
STM32紅外尋跡小車
循跡模組我用的是紅外感測器。黑線的檢測原理是紅外發射管發射光線到路面,紅外光遇到白底則被反射,接收管接收到反射光,經施密特觸發器整形後輸出低電平 當紅外光遇到黑線時則被吸收,接收管沒有接收到反射光,經施密特觸發器整形後輸出高電平。簡單的說就是當紅外尋跡模板遇見黑線時會產生乙個高電平,遇見白線時會返回...