本帖最后由 zzh啊 于 2019-1-28 17:13 編輯
P90103-201310.jpg (2.84 MB, 下載次數(shù): 65)
下載附件
2019-1-26 21:41 上傳
跟著老師一起做機電導論項目,其實就是制作一個循跡小車。
說在前面:
可能有很多像很多我這樣的新手搜到我這樣的第一時間會馬上去找代碼,希望直接下載到小車里完成任務就完事了。但是這樣是不好的,對自己的成長并沒有好處,我的小車的引腳連的是什么,我的小車的結構,我的小車的狀況和你的是不一樣的。還是建議這樣的像我一樣的新手系統(tǒng)的去學習各種基礎知識,至少至少要能看懂代碼。
小車信息如下:
1.電源這次課設用的小車電源是7.4V、300mAh,對單片機這個電壓有點太高,對輪子有點太低,因此我認為小車上應該有穩(wěn)壓和升壓的部分,確保小車能夠正常工作。 2.電機驅動我本人曾經接觸電機驅動,知道要使電機轉動需要外加驅動實現(xiàn)。 驅動板同時驅動兩個直流電機,通過對六個口的控制就可以分別實現(xiàn)對電機正反轉,加減速的控制,完成向前向后右轉,左轉等各種組合運動,每個電機用三個口控制,使能端和PWM輸入端控制電機的轉動與停止,也能用于控制調速。也就是說,對于這個輸入端輸入一定頻率的脈沖,電機一段時間內轉動一段時間內停止轉動,但是由于直流電機的慣性特征,它不會立即停下來,只要頻率比某個值就不會感覺到電機的停止現(xiàn)象,而是一種很連續(xù)的運動,只改變一個周期內高低壓的時間比例,就可以改變電機的速度。另外兩個輸入端是為了控制方向。 3.小車的整體設計小車為五路雙驅小車,最前方是萬向輪,五路傳感器對稱分布,且不位于同一直線上。左右兩個電機和輪胎對稱分布,大小相同,便于程序的撰寫和修改。 小車的轉向依賴于左右輪查速,左輪快右輪慢則右轉,在轉急彎時甚至可以讓一個輪子倒轉實現(xiàn)更好的轉彎效果
其實一個月前我也是個渣渣,那時候也特別想了解arduino小車,學校早就發(fā)了,也找了很多資料,沒有系統(tǒng)學習,沒有人領進門,雖然看起來很用功,但是實際上去做循跡一點也做不來,程序也不會寫,這次跟著老師學,雖然還是個小渣渣,但是已經算是進門了,可以組裝小車,可以自主寫一些程序,現(xiàn)在在試著做避障小車
P90126-155643.jpg (3.46 MB, 下載次數(shù): 77)
下載附件
2019-1-26 21:54 上傳
P90126-155654.jpg (3.75 MB, 下載次數(shù): 57)
下載附件
2019-1-26 21:54 上傳
簡單循跡策略 首先是紅外對管 原理就不講了,紅外對管用來探測黑線白線,黑線白線傳遞的信號是不一樣的,我們根據(jù)五個探測器不同的狀態(tài)判斷小車和線,
啊偶,原來可以繼續(xù)編輯,我接上面的寫吧, 把五個傳感器分為12345號,我們可以通過判斷12345號反饋的信號(即像圖中這種狀況就是1號傳感器感應到黑線,這種情況就是偏左太多了),根據(jù)反饋的情況合理控制小車的速度和轉彎速度。
把程序讀懂
下面是
定義各個引腳叫什么,其實引腳不定義也可以,但是寫程序時去記住每一個數(shù)字而不是代號要困難得多。所以要盡可能去給每個引腳起一個好的名字,方便管理和后編寫程序,
#define right1 5 #define speedPinRight 6 //一個輪子轉動有三個因素:PWM調速,使能端1,使能端2,這里就是在定義輪子的三個因素
#define right2 7 // #define left1 8 // #define speedPinLeft 9 //
void setup()
{
pinMode(right1,OUTPUT);
pinMode(right2,OUTPUT);
pinMode(speedPinRight,OUTPUT);
pinMode(left1,OUTPUT);
pinMode(left2,OUTPUT);
pinMode(speedPinLeft,OUTPUT); - <div>void setup() {</div><div> 這里放一下arduino的結構,這一部分可以理解為初始化,放一些定義的東西</div><div>
- </div><div>}</div><div>
- </div><div>void loop() {</div><div> // put your main code here, to run repeatedly:</div><div>
- </div><div>}</div>
復制代碼
|