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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

低成本、低檔自平衡小車歷程(超聲自平衡小車)

  [復制鏈接]
跳轉到指定樓層
樓主
第二階段目標:

如標題所述,真正的入門級平衡車,真的低成本,不用陀螺儀和加速度傳感器,用超聲波測距實現平衡的小車!!!
見 114# 介紹!!!

第一階段總結:
1# 第一版詳細資料。

42# MPU6050-DMP輸出穩定性測試,DMP每次啟動后均要20秒左右后角度輸出才穩定,使用者要注意此問題!!!

43# 第二版小車,硬件做了塊PCB底板,換了一個全光耦隔離的L298N模塊,這個版本做兩款軟件:一是單側碼盤測速,另一是用PWM輸出值取代測速碼盤,效果也不錯。

50# 藍牙手機控制助手,編寫了一個簡單的安卓控制平衡小車的程序。

56# 自平衡小車參數整定方法,針對前面一些經驗和教訓,總結了參數調整中的一些問題。

63# 不用MPU6050的DMP輸出,采用原始數據一階互補濾波解算角度,也不用PID庫,直接編寫PID計算,效率更高,穩定性與控制效果也更好。

65# 第三版源代碼,測試數據和最新視頻效果。

2014.12.4

以下為原1#貼內容

一、基本材料
1、Arduino Pro Mini模塊
2、CP2102模塊
3、MPU6050模塊
4、CH06藍牙模塊
5、L298N驅動模塊
6、測速傳感器模塊
7、小車底盤


二、硬件設計
1、Arduino Pro Mini + MPU6050測試驗證
Arduino Pro Mini模塊與MPU6050模塊的連線圖見前面圖片,即:SDA接A4,SCL接A5,VCC接VCC,GND接GND,INT接2。
下載:i2cdevlib-master(https://github.com/jrowberg/i2cdevlib
****MPU6050庫的安裝方法*************************
a. 下載arduino編譯器,目前版本為1.0.5。
b. 下載MPU6050庫。進入“https://github.com/jrowberg/i2cdevlib”,點擊“zip”即可。
c. 安裝。將上一步下載的“I2Cdev”、“MPU6050”兩個文件夾拷貝到“arduino-1.0.5libraries”目錄下。
運行arduino可以在例子中看到MPU6050。OK!

2、硬件原理圖
Arduino-Pro-Mini-schematic.pdf (37.43 KB, 下載次數: 13)




其中D2S為外部中斷0的接線選擇:一種選擇是MPU6050的DMP方式,這種方式就只能用一個測速碼盤計數了;另一種選擇是用兩個測速碼盤計數,但不能用MPU6050的DMP方式。

三、軟件設計

1、源代碼
WJY_DIY_v1_2.rar (3.23 KB, 下載次數: 28)

2、說明
此處雖然用了速度PID,但這個的輸入是碼盤計數值,這個值其實不是速度,而是速度的累加,也就是速度的積分,所以其Sd、Sp這兩個參數分別對應于速度環的P系數和I系數,也就實現了速度環的比例和積分這兩項。

PID調節公式:PWMOut = KAp*angle + KAd*angle_velocity + KSp*speed + KSi*position

四、參數整定
1、先將 kp、ki、 kd、 sp、 si、sd 均設置為0;
2、先設定一個電機的起步補償值,因為這個之不同,就相當于使用了不同的電機,這個值的選擇,是根據你自己搭建完平臺后,通過測試左右電機的起步值和停止值,然后綜合考慮設定的,也沒什么理論指導,在起步和停止之間分別候選幾個,然后根據不同的補償值,在分別調整PID的系數,這樣優選一組即可;
3、逐漸增大 kp 使得小車剛剛來回擺動;
4、再逐漸增大 kd 使得小車的擺動消失,再繼續增大 kd 小車會出現抖動,適當減小 kd,使得小車相對平穩即可;
5、接下來調節 sd(注意不是 sp,理由見軟件設計的說明部分),使得小車能夠來回走動(不是擺動,也不是抖動);
6、最后逐漸增大 sp,使得小車能夠相對穩定;
7、什么程度為好,自己花一定的時間慢慢摸索,就能逐漸體會到自己的一套“主觀”標準了!
8、最后一個參數也要注意,就是“抗積分飽和”值,這個值的選擇我感覺與 sp 的大小有關,自己摸索吧,這個值如果選擇太大會出現往一邊跑,最后跌倒在地;如果太小會很快倒地。

五、初步成果
1、靜態照片


2、運行曲線圖


3、視頻




六、問題及解決方案
1、電機性能測試
小車平臺裝配完畢,應測試一下,兩個電機的特性,測試程序如下:
WJY_DIY_test.rar (1.01 KB, 下載次數: 19)

用此程序分別測試兩個電機的啟動值和停止值,也可測量兩個電機的速差。

2、電機干擾問題
電機一起動,Arduino + MPU6050就無法工作,這個問題,在各論壇中均有提及,我這里采取的措施是,電機單獨用一塊7.4V的鋰電供電,并且L298N的所有控制線均用光耦隔離。

3、系統供電
除上述電機供電外,系統其他部分的供電絕不可僅用 Arduino Pro Mini 上的穩壓電源給其他部分供電, Arduino Pro Mini 上的穩壓電源輸出所能提供的電流有限,我這里僅用他給 MPU6050 模塊供電,藍牙串口模塊單獨用一個低壓差穩壓模塊給其供電。

七、參考資料
1、pz_cloud 的:做了一個小小的自平衡小車(更新完整版,附視頻)
http://www.geek-workshop.com/thread-5688-1-1.html
2、匠人的百寶箱:《自平衡兩輪車》講義 http://bbs.21ic.com/blog-24110-84728.html
3、求助:用MPU6050,L298N控制的平衡小車,運行1分鐘就死機,(含詳細代碼注釋!已上...
http://www.geek-workshop.com/thread-1548-1-1.html
4、MPU6050庫,https://github.com/jrowberg/i2cdevlib
i2cdevlib-master.zip (295.46 KB, 下載次數: 13)

5、PID庫: PID_v1.zip (7.47 KB, 下載次數: 19)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:113207 發表于 2016-4-11 02:09 | 只看該作者
我測速模塊燒了,今天修改了一下程序,用PWM的值取代測速碼盤,效果也不錯!
明天試另一方案:用6050模塊的加速度積分取代測速信號檢測,作為速度PID的輸入,看看效果如何?如果成功,下次在用6050的方位角信息來控制小車的兩輪均衡運轉,或者控制小車的轉向。
MPU6050-DMP輸出穩定性測試
在以往調節平衡小車的過程中,發現小車的平衡角不斷改變(不是物理的改變,而是測量結果的改變),造成的結果,就是小車往一邊跑,如果不及時修正角度設定值,小車就自己倒下了。
上兩張測試結果圖


從測試結果來看,傾斜角大約需要20多秒才能穩定下來,方位角雖然在20秒左右穩定下來了,但輸出始終在小幅漂移。

---------------------

新款的小車,做了塊PCB底板,換了一個帶六路光耦隔離的L298N模塊,上兩張圖片

PCB底板上安裝有:Arduino ProMini模塊、MPU6050模塊、藍牙模塊、低壓差5V穩壓、電池及充電線插座。

整機取消了測速碼盤,下面安裝了一組電池共底板上各部分供電,最上面的一組電池共L298N模塊供電。




擺動是在平衡之前,也就是開始你的小車用手扶著,松開就倒,但你逐漸增大Kp后,再松開手,就會發現它來回擺動了,這時就已經初步成功站立了,然后再逐漸增大Kd……


給自己的小車編了個簡單的安卓手機藍牙控制程序,先上界面(本人水平有限僅能做這種特簡單的界面):

再上源程序和APK安裝程序
WJY_DIY_APK.rar (509.36 KB, 下載次數: 20)
開發工具軟件是:RFO_BASIC!
也是小巧好玩的東西,可以在手機上直接編程并運行!
Basic.rar (417.95 KB, 下載次數: 10)

Builder_APK.rar (670.89 KB, 下載次數: 15)

1.rar (7.97 MB, 下載次數: 17)



回復

使用道具 舉報

板凳
ID:113207 發表于 2016-4-11 02:50 | 只看該作者
自平衡小車參數整定方法

1、將Kp、Ki、Kd、Sp、Si、Sd均設為零。
2、用支架將自平衡小車支起,處于水平狀態。
3、在程序每次輸出小車實際角度的同時,輸出Arduino的系統時間[用millis()函數],下載并運行程序用串口調試助手記錄系統時間與MPU6050的角度輸出,記錄足夠的數據后“保存窗口”數據,用Excel打開記錄的數據文件,觀察數據穩定時間。




4、確定完這個穩定時間后,將程序輸出恢復到原來狀態(去掉時間輸出部分),重新下載,去掉小車支架并啟動運行;將小車放置于一固角度位置,保持不動,觀察角度輸出數據是否穩定(這個時間必須大于第3步所測時間),待數據穩定后,用手扶著小車找其自然物理平衡角;通過串口工具輸出“G”或“g”將平衡設定角“setp0”設置到與小車的自然物理平衡角相一致。
5、這此之后小車的整定過程中不要斷電,始終保持運行狀態,逐步增加Kp,觀察小車的兩輪是否有抵抗角度變化的力量,如果不僅不能抵抗角度的變化,而是順著角度變化(增大角度的變化),則將順其變化的控制電機接線反過來接,再繼續下一步。
6、繼續增大Kp,小車會出現來回擺動,增大或減小Kp,使其擺動的幅度不導致小車傾倒為原則。
7、增大Kd,小車的擺動會逐漸減小,如果繼續增大Kd,小車會出現抖動現象,調節Kd,使其相對平穩(因為香蕉電機很難做到特別穩定)即可。
8、逐漸增加Sd(這里也要做個判斷,用手平推小車,小車是否有抵抗行為,如果沒有抵抗,而是順其運行,說明速度環控制方向反了),使得小車來回走動(不是擺動),然后增加Sp,使其來回走動逐漸減小,達到比較滿意即可。

注意:第四步必須做,否則小車往往就跑向一邊了!!!
自平衡小車參數調整方法.rar (181.72 KB, 下載次數: 18)


------------------------------------------

今天參考了
Arduino 自平衡小車,制作經驗記錄與分享,愿有興趣人士,一起學習探討。
http://www.zg4o1577.cn/bbs/dpj-48041-1.html
的帖子,根據自己小車的實際情況做了一些調整,完成了第3版的平衡小車,沒用使用MPU6050的DMP功能了,讀取原始數據采用一階互補濾波求角度,這樣可以用兩個中斷測量左右輪的速度了。
這個效果感覺更好,幾乎僅用一個Kp就能站立了,我測試了一下程序的整個運行周期,大概在3~4ms,這樣調整速度更快了,所以感覺效果好多了。
另外,由于碼盤一圈才20個孔,我才用電平變化測量方式,一圈也就計數40次,所以在一個周期這么短的時間內,速度計數幾乎為0,所以我是200ms左右測量一次速度。
讀取MPU6050的原始數據計算出來的角度幾乎啟動后就是穩定的數據,DMP方式要20秒左右才能穩定!!!



--------------------------------------------

第三版最新程序代碼:
WJY_DIY_v1_4.rar (2.16 KB, 下載次數: 14)
程序中增加了一個兩輪速度差修正系數Kdsp,由于我這個測速碼盤只有20孔,所以速度差檢測不太敏感,目前效果不明顯,要么增大速度差的采樣周期,但這樣反應也就變得很慢,先天硬缺陷,沒法與高端的相比。

測試記錄數據(500ms一個點)見下圖:

圖中紅色區域,可以看出,當小車實際角度偏離機械平衡點超過一定值(這個值由PID的調整輸出與電機的啟動閾限決定),由于快速的PID調整,即使是香蕉電機也能很快調整到新的平衡點。
詳細數據如下:
SAVE2014-12-4_17-57-30.rar (10.73 KB, 下載次數: 15)

最新視頻效果



WJY_DIY_v1_4_1.rar (2.2 KB, 下載次數: 15)

回復

使用道具 舉報

地板
ID:127462 發表于 2016-6-20 20:01 | 只看該作者
學習,學習,學習謝謝
回復

使用道具 舉報

5#
ID:136714 發表于 2016-8-14 07:36 | 只看該作者
學習,學習,學習謝謝
回復

使用道具 舉報

6#
ID:140059 發表于 2016-9-21 18:18 | 只看該作者
學習,學習,學習謝謝
回復

使用道具 舉報

7#
ID:140874 發表于 2016-9-29 14:18 | 只看該作者
給力啊   超贊
回復

使用道具 舉報

8#
ID:79544 發表于 2016-11-21 15:52 | 只看該作者
51hei學習 發表于 2016-4-11 02:50
自平衡小車參數整定方法

1、將Kp、Ki、Kd、Sp、Si、Sd均設為零。

樓主。有51的就好啦。學習分享學習啦,再就是你的那個軟件怎么安裝和使用,謝謝!
回復

使用道具 舉報

9#
ID:151483 發表于 2016-12-1 21:30 | 只看該作者
謝謝分享
回復

使用道具 舉報

10#
ID:229378 發表于 2018-4-10 13:52 | 只看該作者
感謝樓主!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

11#
ID:1022278 發表于 2022-5-18 14:08 | 只看該作者
51hei學習 發表于 2016-4-11 02:09
我測速模塊燒了,今天修改了一下程序,用PWM的值取代測速碼盤,效果也不錯!
明天試另一方案:用6050模塊 ...

程序沒有啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女爽到呻吟久久久久 | 国产蜜臀97一区二区三区 | 国产欧美精品一区 | 一级一级一级毛片 | 国产欧美一区二区三区久久 | 91久久网站 | 91成人精品 | 久久久久久一区 | 激情91| 国产女人与拘做受免费视频 | 91久久精品国产免费一区 | 欧美一区中文字幕 | 国产精品久久久久无码av | 欧美极品在线 | 国产精品一区二区不卡 | 欧美久久久久久 | 日韩欧美高清 | 99久久免费精品国产男女高不卡 | 久久9热| 中文字幕日韩欧美一区二区三区 | 亚洲国产精品视频一区 | 欧美在线一区二区三区 | 国产精品久久久久久久久久久免费看 | 国产精品特级毛片一区二区三区 | 日韩欧美国产精品一区二区三区 | 国产一区电影 | 国产欧美精品一区二区三区 | 全部免费毛片在线播放网站 | 69堂永久69tangcom | 国产成人av免费看 | 337p日韩| 北条麻妃国产九九九精品小说 | 日韩中文字幕在线观看 | 中文字幕在线一区二区三区 | 亚洲日本免费 | 欧美1区| 亚洲国产精品va在线看黑人 | 日本三级线观看 视频 | 久久久黄色 | 亚洲高清成人 | 色婷婷国产精品综合在线观看 |