欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 基于A(yíng)rduino的小平衡車(chē) [打印本頁(yè)]

作者: arduino小學(xué)徒    時(shí)間: 2017-6-17 13:00
標(biāo)題: 基于A(yíng)rduino的小平衡車(chē)
http://v.youku.com/v_show/id_XMjc5NjMyNDIzMg==.html

http://v.youku.com/v_show/id_XMjc5ODM4MjYxNg==.html
近期考試繁忙,先上視頻熱身熱身!

做平衡需要具備的基本配件:
一.硬件方面:
1.電源:比如航模電池11V或者7V以上,具體看電機(jī)供電電壓

2.Arduino推薦2560,因?yàn)楹竺婵梢约雍芏嘤腥さ臇|西,比如語(yǔ)音,無(wú)線(xiàn)遙控,超聲波,觸摸屏,顯示器等等,MEGA2560有足夠的引腳
3.關(guān)鍵的東西>>MPU6050

4.電機(jī)和輪子+車(chē)架(可自制)。建議初學(xué)者買(mǎi)帶有編碼測(cè)速的車(chē)身,電機(jī)應(yīng)帶有兩相測(cè)速,目的是可以測(cè)出電機(jī)正反轉(zhuǎn)。

5.電機(jī)驅(qū)動(dòng):可用298或者TB6612.建議用TB6612,它體積小,功率夠用。

6.降壓模塊。降壓模塊主要給Arduino供電,把11V的電壓降到8V左右通過(guò)Vin供電端給Arduino供電,如果直接接11V,小心芯片Duang機(jī)。
小車(chē)可平衡之后就可以加點(diǎn)控制器件:比如HC-05/06藍(lán)牙模塊或者NRF2.4G無(wú)線(xiàn)模塊。
二.軟件方面:
1.最重要的當(dāng)然是傳說(shuō)中的PID控制算法(其實(shí)不難,真不難,一個(gè)學(xué)期時(shí)不時(shí)的拿別人的程序出來(lái)看看,總會(huì)有理解的那天!)
2.理解測(cè)速和檢測(cè)方向原理(不管最高最低轉(zhuǎn)速如何,只要轉(zhuǎn)動(dòng)電機(jī)有數(shù)就好,不用擔(dān)心數(shù)太小)
3.靈活運(yùn)用串口監(jiān)視器進(jìn)行調(diào)試,可以打印數(shù)字觀(guān)察角度,PWM等。
4.要知道MEGA2560和UNO的定時(shí)器庫(kù)不一樣,需注意!
#include //mega2560定時(shí)器庫(kù)
#include //如果MsTi該庫(kù)不變紅色,需更新該庫(kù)(UNO定時(shí)庫(kù))
5.拿到正確的MPU6050的角度和角速度。為什么說(shuō)拿到呢?實(shí)話(huà)說(shuō)6050不需要你太花費(fèi)時(shí)間去理解它是怎么工作怎么嘰嘰歪歪的,你只需要找到它的出口值(角度和角速度)就行。就比如下面這段程序就可以得出標(biāo)準(zhǔn)的角度(f_angle )和角速度(omega)
當(dāng)然在主函數(shù)錢(qián)還有它的一些定義:如何在一大堆程序里找出哪些才和它相關(guān)呢(先整體復(fù)制進(jìn)來(lái)-編譯運(yùn)行-正確-嘗試屏蔽掉自認(rèn)為與它無(wú)關(guān)的語(yǔ)句以及定義-若報(bào)錯(cuò),則它有關(guān),恢復(fù)回來(lái)-若正常編譯,則可去掉該語(yǔ)句)
/********MP6050相關(guān)***************/
float timeChange=10;//濾波法采樣時(shí)間間隔毫秒
float dt=timeChange*0.001;//注意:dt的取值為濾波器采樣時(shí)間
MPU6050 Mpu6050;//命名 陀螺儀類(lèi):Mpu6050
int16_t ax, ay, az, gx, gy, gz;//陀螺儀原始數(shù)據(jù) 3個(gè)加速度+3個(gè)角速度
float f_angle,angleA,omega,gyroGz,control_v;
float angle0 = 1.80,gy1 = 30;        //因重心導(dǎo)致角度偏置;陀螺儀偏移量

/**************標(biāo)準(zhǔn)角度處理**************/
void jiao_du()
{
        Mpu6050.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);//讀取原始6個(gè)數(shù)據(jù)
        float ax1 = map(ax,-15924,16629,-16384,16384);     //除去每個(gè)軸的漂移量
        float ay1 = map(ay,-16601,16121,-16384,16384);
        float az1 = map(az,-17454,15750,-16384,16384);
        angleA = atan2(ax1,az1) * 180 / PI+ angle0; //加速度計(jì)算角度。得到平衡位置的角度
        omega = -(gy - gy1) / 131.00;   //計(jì)算角速度
        gyroGz =gz / 131.00;//陀螺儀角速度,注意正負(fù)號(hào)與放置有關(guān)
        unsigned long now = millis();        // 當(dāng)前時(shí)間(ms)
        float dt = (now - preTime) / 1000.0; // 微分時(shí)間(ms)
        preTime = now;  
        float K = 0.8;  //一階濾波
        float A = K / (K + dt);                     
        f_angle = A * (f_angle + omega * dt) + (1-A) * angleA; //得到正常的角度
        }
6.(不需要)卡爾曼濾波。其實(shí)用了上面的角度處理程序,就不要卡爾曼了
因?yàn)橐玫秸5慕嵌群徒撬俣扔袃煞N方式:
1.算法融合得到(簡(jiǎn)單)
2.卡爾曼濾波得到(復(fù)雜)
總接線(xiàn)圖:




作者: admin    時(shí)間: 2017-6-19 03:29
好東東,樓主能分享點(diǎn)制作資料嗎?
作者: arduino小學(xué)徒    時(shí)間: 2017-6-20 15:10
admin 發(fā)表于 2017-6-19 03:29
好東東,樓主能分享點(diǎn)制作資料嗎?

后面整理出來(lái)會(huì)有的,近期實(shí)在太忙。。。
作者: lengrang911    時(shí)間: 2017-6-21 00:28
做得真不錯(cuò),反應(yīng)很靈敏,期待分享相關(guān)資料
作者: 偶游QHD    時(shí)間: 2017-6-21 21:29
樓主真會(huì)吊胃口,寢食難安了啊!期待樓主的精彩分享
作者: 偶游QHD    時(shí)間: 2017-6-23 06:06
樓主,收徒吧,太佩服了,我每天都來(lái)論壇里等你的消息。
作者: 偶游QHD    時(shí)間: 2017-6-25 06:31
收到樓主的回復(fù),好雞凍
作者: arduino小學(xué)徒    時(shí)間: 2017-6-25 22:56
實(shí)在是忙!但在這先給車(chē)友們一些思想指導(dǎo),做平衡之前我也是屬于小白,但堅(jiān)持了兩個(gè)月,不會(huì)就查,邊查邊嘗試。然后做得厭倦了就先玩其他的,反反復(fù)復(fù)的弄來(lái)弄去,直到后面看了一個(gè)PID視頻,頓時(shí)恍然大悟,最后稍作思路整理、重振旗鼓,終于看到了希望。因?yàn)榱私饬薖ID,再也不怕平衡,后面就可對(duì)其進(jìn)行任意改裝,目前正在給它加新功能。等暑假打個(gè)比賽后就可以整理資料。現(xiàn)在的建議是車(chē)友們最好先玩起來(lái),等有了一定印象后就好辦了,要是很白很白的小白,建議先玩4輪的小車(chē)!
作者: 偶游QHD    時(shí)間: 2017-6-27 05:05
正在走樓主走過(guò)的路,PID尚未悟出,心情好的時(shí)候會(huì)拿出來(lái)邊調(diào)邊悟,悟到心情急躁了就趕緊放下了,要不真受不了。感謝樓主的建議。
作者: 偶游QHD    時(shí)間: 2017-6-27 05:08
祝樓主比賽順利!
作者: arduino小學(xué)徒    時(shí)間: 2017-8-7 01:46
由于在這個(gè)網(wǎng)站找不到繼續(xù)編輯的入口,只好在其他網(wǎng)站繼續(xù)更新平衡車(chē)內(nèi)容,請(qǐng)移步
Arduino平衡小車(chē)——開(kāi)始不斷更新

作者: arduino小學(xué)徒    時(shí)間: 2017-8-7 13:13
三.萬(wàn)事俱備只欠東風(fēng)
1.第一步,測(cè)試電機(jī)控制。
        根據(jù)上面的接線(xiàn)圖,把電機(jī),驅(qū)動(dòng),電源,Arduino接好,然后用下面這段程序測(cè)試,電機(jī)是否能轉(zhuǎn),轉(zhuǎn)的方向?qū)Σ粚?duì),若出現(xiàn)不正常則檢查相關(guān)信號(hào)線(xiàn),比如轉(zhuǎn)向反了(只需在程序里把IN對(duì)調(diào)或者把接線(xiàn)調(diào)即可)
電機(jī)測(cè)試程序:
//LM298
#define EA 5//左  UNO的PWM引腳為3、5、6、9、10、11
#define EB 6//右

#define IN1 11  //左輪
#define IN2 12
#define IN3 9   //右輪
#define IN4 10
void setup(){
      pinMode(EA,OUTPUT);
      pinMode(EB,OUTPUT);
      pinMode(IN1,OUTPUT);
      pinMode(IN2,OUTPUT);
      pinMode(IN3,OUTPUT);
      pinMode(IN4,OUTPUT);
                  }
void loop()
{
  PWM_Motor(200,-200);//測(cè)試電機(jī),應(yīng)看到左輪前進(jìn),右輪后退
}
/***********電機(jī)驅(qū)動(dòng)子程序*************/
void PWM_Motor(int PWM_L,int PWM_R)
{
  if(PWM_L<0)
  {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
  }
  else
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
   }
  if(PWM_R<0)
  {
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  else
  {
   digitalWrite(IN3, LOW);
   digitalWrite(IN4, HIGH);
  }

analogWrite(EA,abs(PWM_L));//5腳
analogWrite(EB,abs(PWM_R));//6腳
}
不知道大家有沒(méi)有注意到:在這里判斷正反轉(zhuǎn)是通過(guò)判斷PWM的正負(fù)來(lái)確定正反轉(zhuǎn)的,而不是用角度來(lái)判斷,
比如
錯(cuò)誤的方向判斷方式:
if(角度<0) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
  }
else......
正確的方向判斷方式:
if(PWM_L<0) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
  }
  else
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
   }
作者: 偶游QHD    時(shí)間: 2017-8-13 20:16
樓主超級(jí)棒,小學(xué)徒的學(xué)徒開(kāi)始學(xué)習(xí)中。
作者: 偶游QHD    時(shí)間: 2017-8-13 20:29
arduino小學(xué)徒 發(fā)表于 2017-8-7 01:46
由于在這個(gè)網(wǎng)站找不到繼續(xù)編輯的入口,只好在其他網(wǎng)站繼續(xù)更新平衡車(chē)內(nèi)容,請(qǐng)移步
Arduino平衡小車(chē)——開(kāi) ...

這個(gè)“Arduino平衡小車(chē)”我找不到,請(qǐng)發(fā)個(gè)鏈接吧。謝謝!
作者: 闊愛(ài)的釗釗    時(shí)間: 2017-8-23 13:49
好玩的東東。
作者: lemon0210    時(shí)間: 2017-9-27 10:29
期待完整的資料,可以好好學(xué)習(xí)一下
作者: s5b690    時(shí)間: 2017-10-4 16:55
新人加入,等級(jí)夠了再來(lái)下載學(xué)習(xí)
作者: 1156479136    時(shí)間: 2017-11-8 00:02
在學(xué)習(xí)中
作者: 1156479136    時(shí)間: 2017-11-10 00:15
什么時(shí)候更新?
作者: fanfanyu    時(shí)間: 2017-11-13 21:46
好贊啊,厲害
作者: 輪回之境    時(shí)間: 2018-1-9 15:04
樓主還在嗎  我的平衡小車(chē)PID怎么調(diào)總是往一邊歪  直立環(huán)的P怎么調(diào) 小車(chē)總是往固定一邊慢慢滑,然后跑著跑著就倒了, 輕輕的往另一邊推它會(huì)往那邊滑一小段距離越來(lái)越慢然后又往固定那邊跑了,然后越跑越快直到倒地 樓主造這是什么原因嗎 求助
作者: 亞克先東    時(shí)間: 2018-8-20 17:11
arduino小學(xué)徒 發(fā)表于 2017-8-7 13:13
三.萬(wàn)事俱備只欠東風(fēng)
1.第一步,測(cè)試電機(jī)控制。
        根據(jù)上面的接線(xiàn)圖,把電機(jī),驅(qū)動(dòng),電源,Arduino ...

樓主,我的程序判斷方向就是用你說(shuō)的錯(cuò)誤方式寫(xiě)的,運(yùn)行時(shí)跟抽風(fēng)一樣,想問(wèn)一下為什么這個(gè)方式錯(cuò)誤呢
作者: JACKLI    時(shí)間: 2019-1-17 22:17
請(qǐng)問(wèn)能不能分享下原理圖跟源碼呢?
作者: hello_51hei    時(shí)間: 2019-3-25 14:33
感謝樓主總結(jié)并分享!
作者: 周珍富    時(shí)間: 2019-11-22 12:00
輪回之境 發(fā)表于 2018-1-9 15:04
樓主還在嗎  我的平衡小車(chē)PID怎么調(diào)總是往一邊歪  直立環(huán)的P怎么調(diào) 小車(chē)總是往固定一邊慢慢滑,然后跑著跑 ...

平衡車(chē)實(shí)驗(yàn)成功了嗎?成功的話(huà)能給大家分享一下代碼嗎?
作者: arduino小學(xué)徒    時(shí)間: 2020-12-4 16:10
arduino平衡車(chē)代碼

13.平衡車(chē)編程演示.zip

6.64 KB, 下載次數(shù): 42, 下載積分: 黑幣 -5

arduino平衡車(chē)代碼


作者: d18608776050    時(shí)間: 2021-4-16 17:30
樓主的作品現(xiàn)在怎么樣了?
最近也是做平衡車(chē)遇到問(wèn)題了,向你學(xué)習(xí)




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1