久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7237|回復: 1
打印 上一主題 下一主題
收起左側

第二個Arduino小車 兩輪自平衡

[復制鏈接]
跳轉到指定樓層
樓主
   自從做了第一個Arduino小車興趣大增,于是開始制作第二個Arduino小車,這次我想做得相對復雜一點。一直對SEGWAY非常著迷,查了些技術資料發現自平衡小車的原理也比較簡單:利用陀螺儀和加速度模塊獲得小車角度,Arduino對獲取的數據進行處理,然后控制電機運轉糾正傾斜,從而達到平衡的效果。

    先來個視頻:




    需要準備的硬件有:
    1、陀螺儀     我選用的是L3G4200D三軸陀螺儀,其實自平衡小車只用到其中的一軸
    2、加速度計  我用的是ADXL345三軸加速度計,自平衡小車也只用到其中兩軸
    3、Arduino板子  我用的是 我使用的是 arduino duemilanove 2009  arduino硬件區別請看這里:http://arduino.cc/en/Main/Hardware
    4、L298N電機驅動模塊 一個  需要帶光耦
    5、直流減速電機兩個  小車輪胎兩個  塑料盒子一個   
    還需要一些杜邦線、 電池、螺絲等輔助的東西

     有朋友問我這些東西哪里能買到,其實這些材料拜一下淘寶大神就能找到的。

    組裝過程比較簡單,在塑料盒合適的位置打孔,然后用螺絲固定住電路板和電機即可:




     制作之前我們需要對陀螺儀 + 加速度計 進行測試,看我們獲取的角度數據是否滿足要求。網上常用的方法是使用卡爾曼濾波將陀螺儀和加速度計的數據進行融合而得到一個相對穩定正確的角度值,具體方法在我前面的文章中提到過:L3G4200D + ADXL345 卡爾曼濾波

   

     獲取到角度以后需要找到小車的平衡點,也就是無外力作用的時候小車能夠立在地面上的角度: 角度差 = 小車角度 - 平衡點角度。

     用小車角度數據結合當前的傾斜目標值,通過PID運算,得出電機PWM脈寬數據,指揮電機運行即可。

     PID算法相對比較簡單,而且arduino有現成的PID libraries : http://arduino.cc/playground/Code/PIDLibrary
  1. PID::PID(double* Input, double* Output, double* Setpoint,
  2.         double Kp, double Ki, double Kd, int ControllerDirection)
  3. {
  4.     PID::SetOutputLimits(0, 255);                //default output limit corresponds to
  5.                                                 //the arduino pwm limits

  6.     SampleTime = 100;                            //default Controller Sample Time is 0.1 seconds

  7.     PID::SetControllerDirection(ControllerDirection);
  8.     PID::SetTunings(Kp, Ki, Kd);

  9.     lastTime = millis()-SampleTime;               
  10.     inAuto = false;
  11.     myOutput = Output;
  12.     myInput = Input;
  13.     mySetpoint = Setpoint;
  14.         
  15. }
復制代碼



       PID LIB的參數分別是這樣的:
           Input        輸入值(這里輸入卡爾曼融合獲取的角度值)
           Output      PID計算的結果,供電機驅動的PWM使用
           Setpoint    期望值(這里輸入小車平衡點的角度值)
           Kp、Ki、Kd 這是KPI的三個重要參數

    這三個參數的詳細說明我從網上摘錄了一段:

    比例(P)控制
    比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。當僅有比例控制時系統輸出存在穩態誤差(Steady-state error)。

    積分(I)控制
    在積分控制中,控制器的輸出與輸入誤差信號的積分成正比關系。對一個自動控制系統,如果在進入穩態后存在穩態誤差,則稱這個控制系統是有穩態誤差的或簡稱有差系統(System with Steady-state Error)。為了消除穩態誤差,在控制器中必須引入“積分項”。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減小,直到等于零。因此,比例+積分(PI)控制器,可以使系統在進入穩態后無穩態誤差。

    微分(D)控制

    在微分控制中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關系。自動控制系統在克服誤差的調節過程中可能會出現振蕩甚至失穩。其原因是由于存在有較大慣性組件(環節)或有滯后(delay)組件,具有抑制誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使抑制誤差的作用的變化“超前”,即在誤差接近零時,抑制誤差的作用就應該是零。這就是說,在控制器中僅引入 “比例”項往往是不夠的,比例項的作用僅是放大誤差的幅值,而目前需要增加的是“微分項”,它能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或滯后的被控對象,比例+微分(PD)控制器能改善系統在調節過程中的動態特性。


      PID計算相關代碼如下:
  1. PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT); //PID對象聲明

  2. setupPID();  //PID初始化

  3. ....
  4. Kalman_Filter(Adxl_angle, Gyro_sensor); //卡爾曼融合獲取angle
  5. Input = angle;
  6. myPID.Compute();  //PID計算獲取 Output
  7. Drive(Output);   //根據Output驅動電機

  8. void setupPID(){
  9.   Input = 0;
  10.   Setpoint = 17;  //我的小車自平衡角度為17
  11.   myPID.SetSampleTime(100);  //控制器的采樣時間100ms
  12.   //myPID.SetOutputLimits(0, 2000);
  13.   myPID.SetMode(AUTOMATIC);
  14. }
復制代碼

       如果你做完這些小車也能成功站起來了,我的小車抖動得比較厲害,是因為我的直流電機減速太多了(減速比1:220的單軸電機),而且PID的kp,ki,kd三個參數沒調整好。等有時間換個電機再仔細調整一下參數,最好能做成可以控制前景、后退、轉彎的小車。 弄個體積大點的就能騎著上下班了,哈。

評分

參與人數 1黑幣 +2 收起 理由
sax_yang + 2 分享就送黑幣,雖然我比你窮太多了,鼓勵分.

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:469313 發表于 2019-3-5 09:15 | 只看該作者
學習了,比我制作的平衡車穩定
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产精品视频 | 久久精品91 | 中文字幕亚洲欧美 | 一本色道精品久久一区二区三区 | 91免费观看 | 酒色成人网 | 久久久久久久综合 | 国产精品久久久久久久久图文区 | 一区二区国产精品 | 欧美不卡一区二区 | 国产美女在线免费观看 | 久久久久久国产精品免费免费男同 | 欧美色综合网 | 怡红院免费的全部视频 | 久久综合伊人 | 亚洲一区三区在线观看 | 日韩伦理一区二区 | 99在线国产| 国产精品一区二区在线观看 | 狠狠影院 | 成年人视频在线免费观看 | 波多野吉衣在线播放 | 精品乱码一区二区三四区 | 亚洲国产一区二区三区在线观看 | 七七婷婷婷婷精品国产 | 国产一区二区精品在线 | 一区二区三区高清在线观看 | 中文字幕亚洲精品 | 欧美国产中文 | 成人美女免费网站视频 | 国产成人免费网站 | 91电影 | 亚洲444eee在线观看 | 欧美成人在线免费 | 国产精品美女久久久久aⅴ国产馆 | 夜夜爽99久久国产综合精品女不卡 | 99re6在线视频 | 成人亚洲精品 | 国产午夜在线 | 91福利网 | 中文字幕在线观看国产 |