找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 15674|回復(fù): 22
收起左側(cè)

自己用單片機(jī)做的雙輪自平衡小車

  [復(fù)制鏈接]
ID:65690 發(fā)表于 2014-9-2 23:17 | 顯示全部樓層 |閱讀模式



ourdev_562071.jpg


ourdev_562072.jpg

ourdev_562073.jpg



控制器:ATmega16;8MHz;
加速度傳感器:MMA2260;陀螺儀:EWTS82;
傳感器的融合:卡爾曼濾波;
馬達(dá):EN_2342CR(速比64)+雙路12脈沖編碼器+CD40106對(duì)信號(hào)整形;
驅(qū)動(dòng)板芯片:CD4001+IR2111+IRF1404(驅(qū)動(dòng)電流可以很大);
注意事項(xiàng):
1:IR2111的PWM不能到100%,否則不能充電;
2:由于輪速編碼器精度不是很高,取得的信號(hào)要濾波,不然增強(qiáng)速度控制會(huì)發(fā)抖,不易控制;
建模、控制算法及PD調(diào)節(jié)的取值參考:

視頻 :
http://v.youku.com/v_show/id_XMTgxNTAxOTA4.html
http://v.youku.com/v_show/id_XMTgxNTAzMTI4.html




其實(shí)控制很簡(jiǎn)單,利用定時(shí)器產(chǎn)生10ms中斷,每次中斷進(jìn)行如下工作:
1:AD采樣加速度傳感器和陀螺儀,然后卡爾曼濾波得出角度與角速度;(濾波模塊借鑒老外的)(互補(bǔ)濾波效果感覺(jué)不是很好);
2:計(jì)算車輪的速度,積分得出位置;
3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position;
4:前進(jìn)后退給定參考速度計(jì)算即可;
注:
1:增量式輪速傳感器A相中斷,讀取B相電位判斷前進(jìn)還是后退,在10ms的時(shí)間內(nèi)累加,計(jì)算車輪的速度;
2:由于10ms累加的輪速信號(hào)不多,直接計(jì)算車體會(huì)發(fā)抖,所以增加了低通濾波,解決問(wèn)題;
3:我在外面增加4個(gè)電位器可以手動(dòng)調(diào)節(jié)4個(gè)K值,方便調(diào)試;
以上;

程序: 平衡小車.rar (1.44 MB, 下載次數(shù): 461)

評(píng)分

參與人數(shù) 1威望 +5 黑幣 +5 收起 理由
瑞雪 + 5 + 5

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:65771 發(fā)表于 2014-9-3 22:38 | 顯示全部樓層
沒(méi)想到這么復(fù)雜。。。。
回復(fù)

使用道具 舉報(bào)

ID:65937 發(fā)表于 2014-9-11 18:52 | 顯示全部樓層
給力,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:63427 發(fā)表于 2014-9-14 22:46 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:65585 發(fā)表于 2014-9-29 09:21 | 顯示全部樓層
牛人啊,學(xué)習(xí)了!
回復(fù)

使用道具 舉報(bào)

ID:67152 發(fā)表于 2014-10-9 21:04 | 顯示全部樓層
參考參考
回復(fù)

使用道具 舉報(bào)

ID:67214 發(fā)表于 2014-10-11 12:48 | 顯示全部樓層
略顯高大上。。!
回復(fù)

使用道具 舉報(bào)

ID:71012 發(fā)表于 2014-12-24 11:52 來(lái)自手機(jī) | 顯示全部樓層
也想做一個(gè),不過(guò)得學(xué)習(xí)arm才行……
回復(fù)

使用道具 舉報(bào)

ID:72053 發(fā)表于 2015-1-12 13:11 | 顯示全部樓層
研究研究
回復(fù)

使用道具 舉報(bào)

ID:76789 發(fā)表于 2015-4-13 00:10 | 顯示全部樓層
高手在民間
回復(fù)

使用道具 舉報(bào)

ID:78077 發(fā)表于 2015-4-28 23:16 | 顯示全部樓層
我像下載,沒(méi)有幣哦,怎么弄到幣呢?
回復(fù)

使用道具 舉報(bào)

ID:78178 發(fā)表于 2015-4-29 06:30 | 顯示全部樓層
技術(shù)范
回復(fù)

使用道具 舉報(bào)

ID:95068 發(fā)表于 2015-11-21 18:34 | 顯示全部樓層
好貼,加精。我最近也打算做一個(gè),希望能交流下,QQ478377690
回復(fù)

使用道具 舉報(bào)

ID:96613 發(fā)表于 2016-2-16 18:24 | 顯示全部樓層
厲害。太厲害啦
回復(fù)

使用道具 舉報(bào)

ID:115056 發(fā)表于 2016-4-18 21:05 | 顯示全部樓層
太棒了
回復(fù)

使用道具 舉報(bào)

ID:115056 發(fā)表于 2016-4-18 21:05 | 顯示全部樓層
沒(méi)有黑幣怎么拿資料
回復(fù)

使用道具 舉報(bào)

ID:25103 發(fā)表于 2016-4-30 18:15 | 顯示全部樓層

 給力,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:127462 發(fā)表于 2016-6-22 09:04 | 顯示全部樓層
學(xué)習(xí),學(xué)習(xí)一下,謝謝啦
回復(fù)

使用道具 舉報(bào)

ID:225422 發(fā)表于 2017-8-14 09:04 | 顯示全部樓層
你好,你的那句“3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position;”,這句話中的這個(gè)PID公式是直接針對(duì)兩個(gè)電機(jī)的,還是只針對(duì)一個(gè)電機(jī),然后兩個(gè)電機(jī)分別有這個(gè)公式,并且每個(gè)電機(jī)的PID三個(gè)參數(shù)是不一樣的?
回復(fù)

使用道具 舉報(bào)

ID:232588 發(fā)表于 2017-9-12 22:13 | 顯示全部樓層
頭文件找不到啊
回復(fù)

使用道具 舉報(bào)

ID:232588 發(fā)表于 2017-9-12 22:16 | 顯示全部樓層
這個(gè)里面程序的頭文件,顯示無(wú)法找不到呢
回復(fù)

使用道具 舉報(bào)

ID:237210 發(fā)表于 2017-10-4 11:29 | 顯示全部樓層
好東東
回復(fù)

使用道具 舉報(bào)

ID:1092949 發(fā)表于 2023-9-8 09:38 | 顯示全部樓層
以前只是看了一下架構(gòu),現(xiàn)在有詳細(xì)的資料,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表