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

QQ登錄

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

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

電子設(shè)計(jì)競(jìng)賽-旋轉(zhuǎn)倒立擺-整體方案

  [復(fù)制鏈接]
ID:112317 發(fā)表于 2016-4-9 19:20 | 顯示全部樓層 |閱讀模式
電賽結(jié)束了一段時(shí)間了,趁這段時(shí)間,總結(jié)、整理一下自己的方案

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

先來(lái)看看題目要求吧:
184537qjurxjgpju6dlxii.png
184538fb9oskoi03i0d40b.png

看完題目,經(jīng)過(guò)一番思索和百度之后,有了大概的方案,于是乎開(kāi)始準(zhǔn)備材料,設(shè)計(jì)機(jī)械(我負(fù)責(zé)),同時(shí)其他隊(duì)員開(kāi)始設(shè)計(jì)tb6560驅(qū)動(dòng)、電源模塊等等,當(dāng)然如果你本來(lái)就打算選擇控制類題目,步進(jìn)、直流電機(jī)及其驅(qū)動(dòng)最好在比賽之前就有充分的準(zhǔn)備,我們是使用現(xiàn)成模塊的同時(shí)開(kāi)始制作tb6560(比賽的時(shí)候其實(shí)評(píng)委不看我們做的電路,只看我們能否完成題目要求)
用到的材料大部分都是以前的雕刻機(jī)項(xiàng)目剩下的材料,倒是省了不少時(shí)間,時(shí)間寶貴,當(dāng)然怎么簡(jiǎn)單有效怎么來(lái)了,編碼器連接件等東西是這幾天加工出來(lái)的,abs材料
來(lái)張機(jī)械結(jié)構(gòu)渲染圖,比賽的時(shí)候并沒(méi)有把全部結(jié)果畫(huà)出來(lái),畫(huà)出個(gè)大概就開(kāi)始做了,那些細(xì)節(jié)都是比賽后加上去的:
185555xl6dzh6zm3ry8y5b.jpg
具體的solidworks文件、工程圖全部打包在附件中

接下來(lái)是電路部分,由于這是控制類題,所以電路比較簡(jiǎn)單,24v開(kāi)關(guān)電源供電,2596-5v供系統(tǒng)工作,一塊arduino nano,一塊tb6560,一個(gè)ADC鍵盤用于現(xiàn)場(chǎng)演示,兩個(gè)mini絕對(duì)型編碼器1024線
ADC鍵盤,一個(gè)ADC口檢測(cè)10個(gè)按鍵,我估計(jì)檢測(cè)16個(gè)沒(méi)問(wèn)題:
190436ksggw9fc0h59h1sy.png
tb6560:
190437dt5tzpd0pte875cf.png
2596穩(wěn)壓:
190438yh8wl823hyr28w2q.png

2014.10.26更新:
系統(tǒng)函數(shù)圖如下:

000155gbull1juvj5qdvhd.png


在接下來(lái)就是程序了
總共寫了14個(gè)版本程序,最后用的就是PID_1_3、PID_1_4,所以這里就給出這兩個(gè)版本的注釋吧:
///////////PID_1_3/////////
PID_1_3.ino :主程序,開(kāi)機(jī)自動(dòng)檢測(cè)0°并計(jì)算出180°,之后進(jìn)入循環(huán)功能演示。平衡采用PID控制,第一個(gè)PID,以擺桿角度作為作為輸入,步進(jìn)電機(jī)速度作為輸出。第二個(gè)PID,以步進(jìn)速度作為輸入,平衡點(diǎn)作為輸出(180°±8°)
當(dāng)擺桿在-110°~-180°或110°~180°范圍內(nèi)時(shí),進(jìn)行平衡控制,否則關(guān)閉步進(jìn)輸出

編碼器讀數(shù)、PID控制放在Timer2中斷中,以保證控制周期精準(zhǔn),控制周期5ms
串口命令讀取、狀態(tài)發(fā)送放在主函數(shù)循環(huán)中

起擺思路1:反復(fù)震蕩擺桿使其擺角越來(lái)越大;步進(jìn)電機(jī)往一個(gè)方向運(yùn)動(dòng)一點(diǎn)距離,停止,等待擺桿達(dá)到最高點(diǎn),再反向運(yùn)動(dòng),停止,等待擺桿達(dá)到反向最高點(diǎn),如此反復(fù),擺桿進(jìn)入平衡范圍后進(jìn)行平衡控制(起擺時(shí)間太長(zhǎng),不采用)

起擺思路2:步進(jìn)電機(jī)突然給一個(gè)方向速度,再急剎車,擺桿由于慣性繼續(xù)圓周運(yùn)動(dòng),當(dāng)進(jìn)入平衡范圍時(shí),進(jìn)行平衡控制(時(shí)間基本1s以內(nèi))

起擺思路3:步進(jìn)電機(jī)突然給一個(gè)方向速度,再急剎車,等待擺桿達(dá)到最高點(diǎn),步進(jìn)電機(jī)再反向快速運(yùn)動(dòng),以提高擺桿動(dòng)能(桿子太重可用此方法)


Stepp.ino :步進(jìn)電機(jī)驅(qū)動(dòng),使用了Timer1,setStepperSpeed(long myspeed)用于更新速度,StepperEvent()根據(jù)速度值驅(qū)動(dòng)步進(jìn),如果有加減速效果會(huì)更好

Command.ino :接收命令,更新參數(shù),P100代表參數(shù)P=100,etc


Encoder.ino :絕對(duì)型編碼器讀數(shù)


Filter.ino :FIR低通濾波、中值濾波

function1~6.ino :分別實(shí)現(xiàn)基本要求1~3,提高要求1~3



///////////PID_1_4/////////
PID_1_4.ino : loop中命令值略有更改


Command.ino : 將讀取串口數(shù)據(jù)改為讀取ADC鍵盤值,ADC鍵盤優(yōu)點(diǎn):僅一個(gè)AD口可實(shí)現(xiàn)10個(gè)按鍵,缺點(diǎn):讀數(shù)略復(fù)雜,只能單點(diǎn)按鍵,適合atmega328管腳少的芯片

其他函數(shù)同PID_1_3

程序比較長(zhǎng),這里就貼出PID_1_3的主函數(shù)吧,完整代碼附在附件中:
文件夾說(shuō)明

AccelStepper、AccelStepperConstSpeedTest 為AccelStepper步進(jìn)電機(jī)驅(qū)動(dòng)庫(kù)

Encode_SwingUp、MiniEncoderTest 編碼器測(cè)試

KeyTest ADC鍵盤測(cè)試

MotorPID、MotoTest 直流減速電機(jī)方案測(cè)試

pendulum_program_PID     Jiyue He(何吉越)的倒立擺方案

PID 我的倒立擺控制程序

PWMTest pwm頻率測(cè)試

TimerOneStepper TimerOne庫(kù)測(cè)試

pid說(shuō)明:
PID_0_3 ~PID_1_2為測(cè)試版本,其中有的版本使用直流減速電機(jī),有的版本使用步進(jìn)電
機(jī)
PID_1_3:最終版本,使用串口作為調(diào)試手段
PID_1_4:最終版本,將串口調(diào)試改為鍵盤調(diào)試


硬件:
AVR atmega328,arduino nano
步進(jìn)電機(jī)+TB6050
絕對(duì)型編碼器x2(檢測(cè)擺桿角度、步進(jìn))
12864液晶屏(最終沒(méi)用上)
ADC鍵盤
24V電源


///////////PID_1_3/////////
PID_1_3.ino :主程序,開(kāi)機(jī)自動(dòng)檢測(cè)0°并計(jì)算出180°,之后進(jìn)入循環(huán)功能演示。平衡采用PID控制,第一個(gè)PID,以擺桿角度作為作為輸入,步進(jìn)電機(jī)速度作為輸出。第二個(gè)PID,以步進(jìn)速度作為輸入,平衡點(diǎn)作為輸出(180°±8°)
當(dāng)擺桿在-110°~-180°或110°~180°范圍內(nèi)時(shí),進(jìn)行平衡控制,否則關(guān)閉步進(jìn)輸出

編碼器讀數(shù)、PID控制放在Timer2中斷中,以保證控制周期精準(zhǔn),控制周期5ms
串口命令讀取、狀態(tài)發(fā)送放在主函數(shù)循環(huán)中

起擺思路1:步進(jìn)電機(jī)往一個(gè)方向運(yùn)動(dòng)一點(diǎn)距離,停止,等待擺桿達(dá)到最高點(diǎn),再反向運(yùn)動(dòng),停止,等待擺桿達(dá)到反向最高點(diǎn),如此反復(fù),擺桿進(jìn)入平衡范圍后進(jìn)行平衡控制(起擺時(shí)間太長(zhǎng),不采用)
起擺思路2:步進(jìn)電機(jī)突然給一個(gè)方向速度,再急剎車,擺桿由于慣性繼續(xù)圓周運(yùn)動(dòng),當(dāng)進(jìn)入平衡范圍時(shí),進(jìn)行平衡控制(時(shí)間基本1s以內(nèi))
起擺思路3:步進(jìn)電機(jī)突然給一個(gè)方向速度,再急剎車,等待擺桿達(dá)到最高點(diǎn),步進(jìn)電機(jī)再反向快速運(yùn)動(dòng),以提高擺桿動(dòng)能(桿子太重可用此方法)


Stepp.ino :步進(jìn)電機(jī)驅(qū)動(dòng),使用了Timer1,setStepperSpeed(long myspeed)用于更新速度,StepperEvent()根據(jù)速度值驅(qū)動(dòng)步進(jìn),如果有加減速效果會(huì)更好

Command.ino :接收命令,更新參數(shù),P100代表參數(shù)P=100,etc


Encoder.ino :絕對(duì)型編碼器讀數(shù)


Filter.ino :FIR低通濾波、中值濾波

function1~6.ino :分別實(shí)現(xiàn)基本要求1~3,提高要求1~3



///////////PID_1_4/////////
PID_1_4.ino : loop中命令值略有更改


Command.ino : 將讀取串口數(shù)據(jù)改為讀取ADC鍵盤值,ADC鍵盤優(yōu)點(diǎn):僅一個(gè)AD口可實(shí)現(xiàn)10個(gè)按鍵,缺點(diǎn):讀數(shù)略復(fù)雜,只能單點(diǎn)按鍵,適合atmega328管腳少的芯片

其他函數(shù)同PID_1_3









視頻、圖片在這里:
191506vd4lm4v3lwm5me4m.jpg






TB6560.rar

4.42 MB, 下載次數(shù): 131, 下載積分: 黑幣 -5

倒立擺.part1.rar

7.81 MB, 下載次數(shù): 245, 下載積分: 黑幣 -5

倒立擺.part2.rar

7.81 MB, 下載次數(shù): 147, 下載積分: 黑幣 -5

倒立擺.part3.rar

7.81 MB, 下載次數(shù): 158, 下載積分: 黑幣 -5

倒立擺.part4.rar

7.4 MB, 下載次數(shù): 169, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 3黑幣 +15 收起 理由
QQwert + 5
單單單片機(jī)就好 + 5 很給力!
hxj + 5 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:140769 發(fā)表于 2016-10-20 23:39 | 顯示全部樓層
好帖啊!怎么無(wú)人問(wèn)津呢
回復(fù)

使用道具 舉報(bào)

ID:150441 發(fā)表于 2016-11-28 09:29 | 顯示全部樓層
好帖子!
回復(fù)

使用道具 舉報(bào)

ID:136029 發(fā)表于 2017-6-9 22:49 | 顯示全部樓層
好帖!
回復(fù)

使用道具 舉報(bào)

ID:210375 發(fā)表于 2017-6-12 11:22 來(lái)自手機(jī) | 顯示全部樓層
好帖啊
回復(fù)

使用道具 舉報(bào)

ID:186619 發(fā)表于 2017-6-14 14:43 | 顯示全部樓層
我靠,做的太好了,佩服佩服
回復(fù)

使用道具 舉報(bào)

ID:213116 發(fā)表于 2017-6-20 22:48 | 顯示全部樓層
過(guò)程很詳細(xì),學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

ID:221903 發(fā)表于 2017-7-25 10:11 | 顯示全部樓層
我在做先關(guān)心下,看看大神怎么做
回復(fù)

使用道具 舉報(bào)

ID:214944 發(fā)表于 2017-7-26 13:35 | 顯示全部樓層
過(guò)程很詳細(xì)學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:222554 發(fā)表于 2017-7-26 15:30 | 顯示全部樓層
過(guò)程很詳細(xì)學(xué)習(xí)了666666
回復(fù)

使用道具 舉報(bào)

ID:222399 發(fā)表于 2017-7-26 19:24 | 顯示全部樓層
真的想學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

ID:223039 發(fā)表于 2017-7-28 17:19 | 顯示全部樓層
好貼,怎么程序沒(méi)拿點(diǎn)出來(lái)參考參考呀?
回復(fù)

使用道具 舉報(bào)

ID:210186 發(fā)表于 2017-7-29 21:15 | 顯示全部樓層
樓主好人~!
回復(fù)

使用道具 舉報(bào)

ID:221722 發(fā)表于 2017-8-25 11:19 | 顯示全部樓層
很厲害呀,佩服佩服!我們這邊的題不是這個(gè),我做的室內(nèi)LED光源定位,結(jié)果程序沒(méi)時(shí)間調(diào)試了,只有個(gè)三等獎(jiǎng)。。。。。
回復(fù)

使用道具 舉報(bào)

ID:187533 發(fā)表于 2017-9-1 16:53 | 顯示全部樓層
高手,佩服!
回復(fù)

使用道具 舉報(bào)

ID:245836 發(fā)表于 2017-11-10 15:50 | 顯示全部樓層
好貼好貼
回復(fù)

使用道具 舉報(bào)

ID:231046 發(fā)表于 2017-11-11 10:22 | 顯示全部樓層
這個(gè)設(shè)計(jì)做的很實(shí)在,思想是用手頂產(chǎn)生倒立來(lái)設(shè)計(jì)的,很好。
回復(fù)

使用道具 舉報(bào)

ID:231046 發(fā)表于 2017-11-11 10:23 | 顯示全部樓層
是怎么來(lái)判定E擺桿剛好在倒立位置上,謝謝
回復(fù)

使用道具 舉報(bào)

ID:251915 發(fā)表于 2017-11-21 15:49 | 顯示全部樓層
最近正在學(xué)習(xí)倒立擺,不錯(cuò)的學(xué)習(xí)貼,屑屑樓主的分享
回復(fù)

使用道具 舉報(bào)

ID:252134 發(fā)表于 2017-11-22 13:52 | 顯示全部樓層
這個(gè)就膩害了,應(yīng)用在機(jī)器人作業(yè)上肯定牛逼
回復(fù)

使用道具 舉報(bào)

ID:256017 發(fā)表于 2017-12-1 14:42 | 顯示全部樓層
真的很給力的資料
回復(fù)

使用道具 舉報(bào)

ID:269900 發(fā)表于 2018-1-1 21:24 | 顯示全部樓層
佩服!
回復(fù)

使用道具 舉報(bào)

ID:120747 發(fā)表于 2018-1-17 12:35 | 顯示全部樓層
太厲害了
回復(fù)

使用道具 舉報(bào)

ID:294375 發(fā)表于 2018-3-20 20:27 | 顯示全部樓層
為什么顯示壓縮文件已損壞??
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2018-3-20 21:59 | 顯示全部樓層
我只是個(gè)弟弟啊 發(fā)表于 2018-3-20 20:27
為什么顯示壓縮文件已損壞??

分卷壓縮包,要全部下載后放在一起解壓
回復(fù)

使用道具 舉報(bào)

ID:256712 發(fā)表于 2018-4-10 18:04 來(lái)自手機(jī) | 顯示全部樓層
我見(jiàn)過(guò)參加比賽的作品,精致程度跟這個(gè)簡(jiǎn)直沒(méi)法比,這個(gè)這個(gè)作品真的是太精致了!
回復(fù)

使用道具 舉報(bào)

ID:304879 發(fā)表于 2018-4-20 08:56 | 顯示全部樓層
好帖!。。!
回復(fù)

使用道具 舉報(bào)

ID:202351 發(fā)表于 2018-5-7 21:56 | 顯示全部樓層
這個(gè)程序?yàn)槭裁淳幾g失敗,有人遇到跟我一樣的情況嗎
回復(fù)

使用道具 舉報(bào)

ID:329689 發(fā)表于 2018-5-14 16:14 | 顯示全部樓層
好厲害啊
回復(fù)

使用道具 舉報(bào)

ID:346317 發(fā)表于 2018-6-6 17:33 | 顯示全部樓層
厲害!。!
回復(fù)

使用道具 舉報(bào)

ID:250245 發(fā)表于 2018-7-31 22:54 來(lái)自手機(jī) | 顯示全部樓層
我想請(qǐng)問(wèn)一下樓主,你的自動(dòng)起擺是用的算法還是寫死的?
回復(fù)

使用道具 舉報(bào)

ID:250245 發(fā)表于 2018-7-31 22:54 來(lái)自手機(jī) | 顯示全部樓層
也就是說(shuō)擺在自由晃動(dòng)是還可以自動(dòng)起擺嗎?
回復(fù)

使用道具 舉報(bào)

ID:250245 發(fā)表于 2018-7-31 22:55 來(lái)自手機(jī) | 顯示全部樓層
我一直沒(méi)有想明白如何通過(guò)算法自動(dòng)起擺,我想借鑒一下樓主的方法
回復(fù)

使用道具 舉報(bào)

ID:314863 發(fā)表于 2018-9-5 14:26 | 顯示全部樓層
ADC電路的電阻值是多少,測(cè)量的電壓值分別是多少?
回復(fù)

使用道具 舉報(bào)

ID:399899 發(fā)表于 2018-10-23 20:10 | 顯示全部樓層
牛貼,頂一個(gè),PID真是好!
回復(fù)

使用道具 舉報(bào)

ID:458192 發(fā)表于 2018-12-29 17:36 | 顯示全部樓層
過(guò)程很詳細(xì)啊,謝謝大神分享
回復(fù)

使用道具 舉報(bào)

ID:296549 發(fā)表于 2019-1-18 22:10 | 顯示全部樓層
好帖,有個(gè)問(wèn)題想請(qǐng)教一下樓主,兩個(gè)PID環(huán)6個(gè)參數(shù)要怎么調(diào),是先調(diào)以擺桿角度作為作為輸入,步進(jìn)電機(jī)速度作為輸出的環(huán)。還是先調(diào)以步進(jìn)速度作為輸入,平衡點(diǎn)作為輸出的環(huán)
回復(fù)

使用道具 舉報(bào)

ID:295704 發(fā)表于 2019-3-10 23:49 | 顯示全部樓層
   謝謝樓主 ,對(duì)我?guī)椭艽?好貼!
回復(fù)

使用道具 舉報(bào)

ID:293448 發(fā)表于 2019-3-23 22:47 | 顯示全部樓層
請(qǐng)問(wèn) 機(jī)械結(jié)構(gòu)樓主哪里買的
回復(fù)

使用道具 舉報(bào)

ID:584101 發(fā)表于 2019-7-16 19:31 | 顯示全部樓層
謝謝。『芙o力,給我們這些后來(lái)的人一個(gè)參考
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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