浅谈两轮平衡车的控制原理
前言:在IT行業摸爬滾打了好幾年,好不容易從學生熬成了社會人士,通過自己的不斷努力又從社會人士熬成了學生。這幾年的修行,同道博友給了我很多的幫助,很早之前就有寫博客的想法,想借自己綿薄之力來回饋一下默默奮斗的你,但是一直拖著,最近閑暇無事,才真正提筆,愿能夠對你有用。
上周末去蘇州玩兒,同行小伙伴的侄女騎著一輛小米平衡車,運用自如好拉風的感覺。此時我的職業病又犯了,思考了一下原理,覺得不是很難,就是一個陀螺儀姿態加幾個PID的事情(專業毒已病入膏肓)。平衡車的制作沖動從這一刻迸發,回家之后事不宜遲直接著手去做,這都要歸功于閑暇的暑期。
通過網上查資料發現,兩輪平衡車的資料并不多,大多都是飛思卡爾比賽的直立小車資料,但是兩者有一定的聯系,由于飛思卡爾資助的原因,限制了器件的選型等,而我們業余的選擇是廣泛的。我選擇了當前主流的STM32F103為主控,成熟的MPU6050陀螺儀加速度計,車架讓一位同事幫忙組裝,很快平衡車成型,心情有點激動,忍不住要上一張圖。
細心的同事幫我加了配重,非常感謝我的熱心朋友。(PS:珍惜身邊的朋友,他們都是締造你生命意義的人!)哈哈,這個小車看上去還是有模有樣。加配重的原因是讓車架的平很軸接近電機軸,也就是車架在水平時,車前后的質量分布基本一致。說的有點抽象,換句話說就是找車架的平衡位置或者平衡角度。
好了,廢話說了一大堆,接下來進入正題。
首先從控制板說起,借用以前公司的一個控制板,主要用到的模塊有降壓模塊,PWM與編碼器接口,IIC接口,SPI接口TFT屏幕。由于主控板沒有集成MPU6050,用了一個外部的小模塊,使用IIC接口。電池使用14.8V鋰電池,電機驅動是TI的LMD18200,與L298比較相似,但性能更彪悍一些。電機是帶正交編碼器的減速電機。基本硬件就是這些了,其實這種配置已經算得上豪華配置了,但是都是借用的沒有花錢(硬件燒錢,入坑謹慎)。
其實吾理小子(本人)是做硬件的,在這里的硬件都是比較基本的,而且市面上很容易買到,就不多啰嗦了。
下面開始說控制思路,我覺得開始做之前一定要考慮清楚控制思路,否則就是盲目上路,事倍功半。平衡車實際會涉及到三個PID環,分別是直立環(角度環)、速度環、轉向環。其實一般都叫直立環,但是我更愿意把這個理解為角度環,因為這樣理解的話更容易和反饋量結合起來。
逐個介紹每個環的作用:
直立環,也就是角度環,通過陀螺儀得到車架的姿態角度,通過當前角度與目標角度比對的差值進行一定的計算控制輪子,以保證車架維持在目標角度附近。總結一句話來說就是直立環保證車架站起來并且穩住;
速度環,速度環是直立環的輔助調節,直立環能夠保證車架直立,但是不能保證車直立的速度為零,速度環就可以保證車架保持直立的同時控制此時的速度;
轉向環,控制車架的方向。與直立環用到的反饋量不一樣。
綜合起來的效果就是保證車架直立的同時車的行走速度與方向可控。這就是三個環的綜合效果,其中直立環是核心,其它兩個是輔助。
其實平衡車的PID調試過程中,還是和傳統的位置式與增量式PID有一定的區別,而且區別是致命的,不容小覷!那么具體區別在哪里呢,繼續看下文。
在講解具體的編程之前,首先說一下我們的老大哥——陀螺儀MPU6050。為什么說他是老大哥,因為整個姿態的調節反饋量都來自于他。我不想夸它是第一款集成的6軸陀螺儀與加速度計,也不想夸集成了DMP庫,更不想夸它價格便宜簡單易用……我想說說陀螺儀與加速度計的測量的物理量。說到這里,可能有人會嘲笑小編好傻,陀螺儀不就是測姿態角的嗎還用說!但是,小編剛開始用陀螺儀的時候也是這么認為的,而且把別人的代碼拿過來移植到自己的工程中能正常跑,就很驕傲,實際上沒有那么簡單,你不相信的話,有一天你也會回頭來重新認識一次老大哥,相信吾理小子。
MPU6050集成了陀螺儀與加速度計,陀螺儀測量的是世界坐標系中各軸的角速度,加速度計測量是世界坐標系中各軸的加速度,這個加速度是加速度的總和包括重力加速度。那么角度是怎么測量的呢?角度是通過對角速度的積分得到的。
明白了這些的話,接下來對陀螺儀的使用會更加如魚得水。
吾理小子移植正點原子的MPU6050程序,使用DMP庫得到姿態角,數據還是比較好的。通過初始化PWM波,車子完全在吾理小子的控制之下了。至此,前期的準備工作已經全部就緒,接下來就是瘋狂碼代碼、看現象、改數據、看現象如此反復,直到達到自己想要的結果。
吾理小子的第一篇博客也要畫上一個句號了,天上一腳、地上一腳毫無邏輯的寫了一上午,還請各位道友不喜勿噴,下一篇接著說具體編程,并且附上相關代碼,各位小伙伴期待吧!
?
?
總結
以上是生活随笔為你收集整理的浅谈两轮平衡车的控制原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于GMM-HMM的语音识别系统
- 下一篇: 虹科LiDAR测量物料体积为行业带来革命