<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 外國(guó)牛人教你一步步快速打造首臺(tái)機(jī)器人

          外國(guó)牛人教你一步步快速打造首臺(tái)機(jī)器人

          作者: 時(shí)間:2012-07-03 來源:網(wǎng)絡(luò) 收藏

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

            大部分版本的Picaxe編程軟件在其菜單欄有“options”這個(gè)選項(xiàng),進(jìn)入,選擇一個(gè)“mode”頁(yè)面,有些編輯器在你打開程序的時(shí)候自動(dòng)打開這個(gè)頁(yè)面。

            接下來你要找到一個(gè)“Firmware”的按鍵,或者是“Check firmware version”,點(diǎn)擊它。

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

            如果有這些顯示,很好,證明你已經(jīng)連接上了。這時(shí)在屏幕上某個(gè)地方,你需要設(shè)置編輯器的型號(hào),把其設(shè)為28X1/40X1。

            如果出錯(cuò),沒有找到微控制器或者其他提示錯(cuò)誤,你要閱讀其手冊(cè)尋求幫助。通常都是很簡(jiǎn)單的,所以碰到錯(cuò)誤的時(shí)候盡管去嘗試解決?;蛘咴诹硪浑娔X上重試,看它是怎樣工作的。然后再試,再進(jìn)行錯(cuò)誤跟蹤等。

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

            servo 0, 150

            wait 2

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

            第二行是等候兩秒,讓點(diǎn)擊有時(shí)間轉(zhuǎn)動(dòng)起來。

            經(jīng)過這個(gè)之后,微控制器不再做任何操作,會(huì)毫無(wú)目的的運(yùn)行。

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

            程序正在燒錄,接下倆將有奇跡發(fā)生,伺服電機(jī)會(huì)跑到中間位置。

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

            嘗試去摁住板上的“reset”鍵,當(dāng)伺服電機(jī)跑到另一邊,松開手,電機(jī)會(huì)跑到原來位置。

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

            接下來嘗試讓電機(jī)跑到邊上,繼續(xù)擴(kuò)展這個(gè)程序:

            servo 0, 75

            wait 2

            servo 0, 225

            wait 2

            servo 0, 150

            wait 2

            電機(jī)命令的有效值范圍是75到225,這是一個(gè)標(biāo)準(zhǔn)電機(jī)能娶到每一個(gè)角落的范圍,超過這個(gè)有效范圍的數(shù)值是不建議的,盡管會(huì)產(chǎn)生有趣的結(jié)果。

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

            如果你希望能夠循環(huán),你可以在開始那里添加一個(gè)標(biāo)記,然后在程序結(jié)尾使它再回到那個(gè)標(biāo)記重新運(yùn)行,我們可以給這個(gè)標(biāo)記任何名稱,只需要一個(gè)詞,再加一個(gè)冒號(hào),如下:

            servofun:

            servo 0, 75

            wait 2

            servo 0, 225

            wait 2

            servo 0, 150

            wait 2

            goto servofun

            現(xiàn)在它就會(huì)無(wú)限循環(huán),如果你喜歡,可以嘗試使它工作在任何地方,改變數(shù)值等等、

           回到做上面來。

            把線插入Sharp的芯片,如果沒附帶線,你要確保有三根線從它接出,顏色可以不同,但我希望是紅、黑和白,因?yàn)檫@對(duì)V、G和信號(hào)時(shí)非常有意義的。

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

            確保你準(zhǔn)確插線,因?yàn)镾harp的芯片很容易被燒掉。

            如下圖所示,你會(huì)知道怎么連接,黏貼和奇怪的設(shè)置時(shí)確保你能看到導(dǎo)線和它的顏色。

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

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

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

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

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

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

            你已經(jīng)完成了基本組裝了,整個(gè)產(chǎn)品可能會(huì)很大,你也可能會(huì)用其他配件,但如果你按指導(dǎo)做,以下有些編程建議給你。

            編程

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

            main:

            readadc 0, b0

            debug

            goto main

            然后把你的手從機(jī)器人的頭部拿開,然后注意變量b0的改變數(shù)值,你可以憑借你掌握的知識(shí)去決定接下來會(huì)發(fā)生什么。

            如果“眼睛”太接近物體,你會(huì)注意到機(jī)器人怎么走。Sharp的這顆芯片是設(shè)計(jì)監(jiān)測(cè)10-18厘米范圍內(nèi)的物體的,小于10CM,大于18CM范圍的物體,對(duì)編程來說是一個(gè)很大的挑戰(zhàn)。

            你可以選擇沒有這個(gè)問題的的傳感器,然而Sharp這顆是最便宜的,同時(shí)也是非常容易編程的,這就是我為什么選擇這顆芯片的緣故。

            輸入以下程序,按下F5:

            high 4

            low 5

            有一個(gè)輪子會(huì)按一個(gè)方向轉(zhuǎn),你的輪子向前么?這是一個(gè)向前的指令。如果輪子向后,你可以嘗試以下指令:

            low 4

            high 5

            輸入以下指令去轉(zhuǎn)動(dòng)另一個(gè)輪子:

            high 6

            low 7

            (或者以另一種方式去改變方向)

            通過微控制器的特有方式去控制方向,打開或關(guān)閉針腳上的開關(guān),命令電機(jī)控制器指揮電機(jī)A或B正反向模式。

            low 4

            low 5

            low 6

            low 7

            停止所有馬達(dá)。

            電機(jī)到一邊是:

            servo 0, 75 wait 2

            另一邊是:

            servo 0, 225 wait 2

            中間是:

            servo 0, 150 wait 2

            以下是一個(gè)使機(jī)器人旋轉(zhuǎn)的小程序,在障礙物前面停住,左右觀察尋找最佳路徑,驅(qū)動(dòng)去完成新的挑戰(zhàn)。

            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

            通過聰明的編程和調(diào)整,你可以使機(jī)器人動(dòng)起來,轉(zhuǎn)動(dòng)頭部,做決定,作調(diào)整,穿過類似正門這樣的洞,這些動(dòng)作可以同時(shí)完成。如果你使機(jī)器人在滑動(dòng)的時(shí)候轉(zhuǎn)動(dòng)頭部,這看起來會(huì)非??帷?br />
           玩樂時(shí)刻

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

            要打開燈,寫入

            High2

            要關(guān)燈,寫入

            Low2

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

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

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

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

            sound 1, (100, 30)

            high 2

            wait 1

            low 2

            sound 1, (105, 60)

            這會(huì)制造聲音,同是會(huì)打開某些器件,制造一個(gè)新聲音,關(guān)掉器件。

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

            noise:

            readadc 0, b0

            sound 1, (b0, 2)

            goto noise

          伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();