新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 外國牛人教你一步步快速打造首臺機器人

        外國牛人教你一步步快速打造首臺機器人

        作者: 時間:2012-07-03 來源:網絡 收藏

          裝上的所有電池,然后等待,等待,如果未到異味和看到火花或者煙霧,你可以進行以下的操作。

          大部分版本的Picaxe編程軟件在其菜單欄有“options”這個選項,進入,選擇一個“mode”頁面,有些編輯器在你打開程序的時候自動打開這個頁面。

          接下來你要找到一個“Firmware”的按鍵,或者是“Check firmware version”,點擊它。

          接下來就是編輯器通過下載線發送信息給微控制器,同時確認是Picaxe的哪款芯片,然后會反饋回來類似“28X1/40X1”之類的信息,這會在顯示屏上顯示出來。

          如果有這些顯示,很好,證明你已經連接上了。這時在屏幕上某個地方,你需要設置編輯器的型號,把其設為28X1/40X1。

          如果出錯,沒有找到微控制器或者其他提示錯誤,你要閱讀其手冊尋求幫助。通常都是很簡單的,所以碰到錯誤的時候盡管去嘗試解決。或者在另一電腦上重試,看它是怎樣工作的。然后再試,再進行錯誤跟蹤等。

          然后,進入主程序編輯器,他就像一個文檔編輯器,如果沒有打開任何項目,在“file”下打開“New Basic”/“New”。然后寫下以下程序:

          servo 0, 150

          wait 2

          這是個非常簡單的頭程序,第一行是告訴微控制器這里有個伺服電機在0端口,同時它要被設置到中間位置,也就是150那里。

          第二行是等候兩秒,讓點擊有時間轉動起來。

          經過這個之后,微控制器不再做任何操作,會毫無目的的運行。

          寫下它,把代碼編入微控制器,在大部分系統按下F5就可以完成操作,你也可以點擊“program”。

          程序正在燒錄,接下倆將有奇跡發生,伺服電機會跑到中間位置。

          盡管不是做很多操作,但他已經處在中間位置。

          嘗試去摁住板上的“reset”鍵,當伺服電機跑到另一邊,松開手,電機會跑到原來位置。

          可能你認為那不是中間位置,但那的確是,可能你電機的“號角”安裝得不合適,在其中間位置,有個螺絲釘。擰開螺絲釘,拿掉號角,確保微控制器的確把電機放在中間位置,然后擰上“號角”。

          接下來嘗試讓電機跑到邊上,繼續擴展這個程序:

          servo 0, 75

          wait 2

          servo 0, 225

          wait 2

          servo 0, 150

          wait 2

          電機命令的有效值范圍是75到225,這是一個標準電機能娶到每一個角落的范圍,超過這個有效范圍的數值是不建議的,盡管會產生有趣的結果。

          每次你運行程序(你可以拔掉下載線,拔掉電池,然后在無線的情況下打開),一切都會從頭開始運行。每次你reset,都會進行同樣的操作。

          如果你希望能夠循環,你可以在開始那里添加一個標記,然后在程序結尾使它再回到那個標記重新運行,我們可以給這個標記任何名稱,只需要一個詞,再加一個冒號,如下:

          servofun:

          servo 0, 75

          wait 2

          servo 0, 225

          wait 2

          servo 0, 150

          wait 2

          goto servofun

          現在它就會無限循環,如果你喜歡,可以嘗試使它工作在任何地方,改變數值等等、

         回到做上面來。

          把線插入Sharp的芯片,如果沒附帶線,你要確保有三根線從它接出,顏色可以不同,但我希望是紅、黑和白,因為這對V、G和信號時非常有意義的。

          你可能要在線上接上杜邦線,像下圖我那樣操作。這些可以是任何顏色。

          確保你準確插線,因為Sharp的芯片很容易被燒掉。

          如下圖所示,你會知道怎么連接,黏貼和奇怪的設置時確保你能看到導線和它的顏色。

          你也要三個跳線帽,連接相連的兩根針。

          如果你沒有,你可以用杜邦線來跳線代替,跳線帽不占地方,因此這是一個很好的選擇。而線對于從一斷到另一端來說,也是個不錯的選擇。

          如接下來的照片所示,用跳線帽或者杜邦線連接模擬輸入1,2,3到V.

          為什么這樣做?一個簡單的解析就是這四個輸入(0,1,2,3)是模擬的,也就是意味著他測量它們在線上受到多大的壓強。不管同意與否,它們已經被連接起來。這樣任一個輸入的小小壓強都會傳遞給了其他,可以懸空處理。“3”對于V來說是不需要使用,它們只是滿載,而不是懸空。

          確保伺服電機處在中間,就是150位置。

          用一些雙面膠,把Sharp的芯片裝在伺服電機的角的位置,面向前。

          你已經完成了基本組裝了,整個產品可能會很大,你也可能會用其他配件,但如果你按指導做,以下有些編程建議給你。

          編程

          輸入這些代碼,在連接機器人的情況下按F5。

          main:

          readadc 0, b0

          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

          通過聰明的編程和調整,你可以使機器人動起來,轉動頭部,做決定,作調整,穿過類似正門這樣的洞,這些動作可以同時完成。如果你使機器人在滑動的時候轉動頭部,這看起來會非常酷。

         玩樂時刻

          你可以接一個燈或者LED到端口2和地之間。同時寫下程序

          要打開燈,寫入

          High2

          要關燈,寫入

          Low2

          裝上一個激光筆如何?外加一個伺服電機呢?然后你可以使機器人把激光筆到處亂晃,開關關開,指向某個地方,你可以做任何操作。

          在編譯器里打下“Help”,你可以得到各種各樣的指導和信息。

          你可以嘗試一下以下操作:

          把伺服電機拿出來,把黃色芯片拿出來,插入之前拔出的達林頓晶體管,在之前連接伺服電機的2端口處接一個揚聲器,在輸出1時附帶一個LED,或者接其它東西在輸出2。然后編譯以下程序:

          sound 1, (100, 30)

          high 2

          wait 1

          low 2

          sound 1, (105, 60)

          這會制造聲音,同是會打開某些器件,制造一個新聲音,關掉器件。

          更有趣的是,確保Sharp芯片不拔出,接揚聲器到端口1,運行以下程序:

          noise:

          readadc 0, b0

          sound 1, (b0, 2)

          goto noise

        伺服電機相關文章:伺服電機工作原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江油市| 云林县| 仪陇县| 泸定县| 红安县| 林周县| 收藏| 聊城市| 武隆县| 阳城县| 丹东市| 岳阳县| 东乡县| 神农架林区| 靖宇县| 新巴尔虎右旗| 达孜县| 宝鸡市| 吴堡县| 神农架林区| 汉源县| 庆云县| 大城县| 固始县| 龙井市| 彝良县| 嘉兴市| 垫江县| 凌源市| 浏阳市| 永平县| 含山县| 钟山县| 元谋县| 津南区| 唐山市| 根河市| 安国市| 涿州市| 杂多县| 南投县|