為了迎接未來物聯網的時代,身為一個軟體工程師的我也開始學起IOT
在芒茫網海搜尋後,敗入了一台Arduino自走車,
紅外線避障+藍芽版本的一台才650塊新台幣 ,為了讓運費划算一點
買了樹莓派3 B+(含電源、殼、hdmi線),這個比台灣便宜很多,台幣1300左右,台灣這樣買要破二千
買來興高采列的組起小車
但組完之後發現這傢伙沒辦法走直線....等等,這是不是有什麼誤會Orz
一台車耶,沒辦法走直線
再上網問狗之後,發現這個不是個案
網路上找到的問題點
1.馬達有公差,,即使二顆馬達全力輸出,,轉速也不可能一模一樣
2.Arduino是單晶片,速度不快所導致
這二個問題點都可以透過調整馬達的速度(PWM)進行改善。
但除此之外呢? 沒有其它辦法嗎
因為據我觀察這台車的結果,給我的直覺就是
他是先啟動其中一輪所導致的
這台車是按下直走後,往左邊轉了約30度後再走直線
往左邊轉就是右輪先啟動,那程式裡剛好就是右輪先走
rightWheel()
leftWheel()
在這個情形下,先啟動的那邊會先走當然不奇怪,自然就歪一邊
所以身為專業的軟體工程師,我直覺的就想到, 用fork() 做multithread不就好了...?
做法很容易
1. 啟動右輪進背景
2. 馬上暫停右輪約1/3秒 (為了等左輪啟動)
3.啟動左輪
但白痴如我,單晶片不支援多工
所以...身為一個專業的軟體工程師,我決定改車....
我就像軌道車那樣,用一顆馬達做四輪傳動就好了
就憑你這種小車也想玩我,我操!!!
| |
| |
|
|
|
|
|
文本转语音功能仅限200个字符
沒有留言:
張貼留言