回到做機器人上面來。
把線插入Sharp的芯片,如果沒附帶線,你要確保有三根線從它接出,顏色可以不同,但我希望是紅、黑和白,因為這對V、G和信號時非常有意義的。
你可能要在線上接上杜邦線,像下圖我那樣操作。這些可以是任何顏色。
確保你準確插線,因為Sharp的芯片很容易被燒掉。
如下圖所示,你會知道怎么連接,黏貼和奇怪的設置時確保你能看到導線和它的顏色。
你也要三個跳線帽,連接相連的兩根針。
如果你沒有,你可以用杜邦線來跳線代替,跳線帽不占地方,因此這是一個很好的選擇。而線對于從一斷到另一端來說,也是個不錯的選擇。
如接下來的照片所示,用跳線帽或者杜邦線連接模擬輸入1,2,3到V.
為什么這樣做?一個簡單的解析就是這四個輸入(0,1,2,3)是模擬的,也就是意味著他測量它們在線上受到多大的壓強。不管同意與否,它們已經被連接起來。這樣任一個輸入的小小壓強都會傳遞給了其他,可以懸空處理。“3”對于V來說是不需要使用,它們只是滿載,而不是懸空。
確保伺服電機處在中間,就是150位置。
用一些雙面膠,把Sharp的芯片裝在伺服電機的角的位置,面向前。
你已經完成了基本組裝了,整個產品可能會很大,你也可能會用其他配件,但如果你按指導做,以下有些機器人編程建議給你。
編程
輸入這些代碼,在連接機器人的情況下按F5。
main:
debug
goto main
然后把你的手從機器人的頭部拿開,然后注意變量b0的改變數值,你可以憑借你掌握的知識去決定接下來會發生什么。
如果“眼睛”太接近物體,你會注意到機器人怎么走。Sharp的這顆芯片是設計監測10-18厘米范圍內的物體的,小于10CM,大于18CM范圍的物體,對編程來說是一個很大的挑戰。
你可以選擇沒有這個問題的的傳感器,然而Sharp這顆是最便宜的,同時也是非常容易編程的,這就是我為什么選擇這顆芯片的緣故。
輸入以下程序,按下F5:
high 4
low 5
有一個輪子會按一個方向轉,你的輪子向前么?這是一個向前的指令。如果輪子向后,你可以嘗試以下指令:
low 4
high 5
輸入以下指令去轉動另一個輪子:
high 6
low 7
(或者以另一種方式去改變方向)
通過微控制器的特有方式去控制方向,打開或關閉針腳上的開關,命令電機控制器指揮電機A或B正反向模式。
low 4
low 5
low 6
low 7
停止所有馬達。
電機到一邊是:
servo 0, 75 wait 2
另一邊是:
servo 0, 225 wait 2
中間是:
servo 0, 150 wait 2
以下是一個使機器人旋轉的小程序,在障礙物前面停住,左右觀察尋找最佳路徑,驅動去完成新的挑戰。
Symbol dangerlevel = 70 ‘ how far away should thing be, before we react?
symbol turn = 300 ’ this sets how much should be turned
symbol servo_turn = 700 ‘ This sets for how long time we should wait for the servo to turn (depending on it′s speed) before we measure distance
main: ’ the main loop
readadc 0, b1 ‘ read how much distance ahead
if b1 《 dangerlevel then
gosub nodanger ’ if nothing ahead, drive forward
else
gosub whichway ‘ if obstacle ahead then decide which way is better
end if
goto main ’ this ends the loop, the rest are only sub-routines
nodanger:‘ this should be your combination to make the robot drive forward, these you most likely need to adjust to fit the way you have wired your robots motors
high 5 : high 6 : low 4 : low 7
return
whichway:
gosub totalhalt ’ first stop!
‘Look one way:
gosub lturn ’ look to one side
pause servo_turn ‘ wait for the servo to be finished turning
readadc 0, b1
gosub totalhalt
’Look the other way:
gosub rturn ‘ look to another side
pause servo_turn ’ wait for the servo to be finished turning
readadc 0, b2
gosub totalhalt
‘ Decide which is the better way:
if b1《b2 then
gosub body_lturn
else
gosub body_rturn
end if
return
body_lturn:
high 6 : low 5 : low 7 : high 4 ’ this should be your combination that turns the robot one way
pause turn : gosub totalhalt
return
body_rturn:
high 5 : low 6 : low 4 : high 7 ‘ this should be your combination that turns the robot the other way
pause turn : gosub totalhalt
return
rturn:
servo 0, 100 ’ look to one side
return
lturn:
servo 0, 200 ‘ look to the other side
return
totalhalt:
low 4 : low 5 : low 6 : low 7 ’ low on all 4 halts the robot!
Servo 0,150 ‘ face forward
wait 1 ’ freeze all for one second
return
通過聰明的編程和調整,你可以使機器人動起來,轉動頭部,做決定,作調整,穿過類似正門這樣的洞,這些動作可以同時完成。如果你使機器人在滑動的時候轉動頭部,這看起來會非常酷。
評論
查看更多