SPIKE 樂高機器人

我的網頁

2008-06-26

NXT-G教學文章--迴圈LOOP的應用



迴圈的一般應用


這次要介紹的是迴圈命令(LOOP),當我們希望重複相同的動作時,就可以使用迴圈,


用法很簡單,只要把想重複的命令方塊拉到迴圈裡面,就完成了。


例如:想讓機器人不停地前進、後退,前進、後退,就可以將前進及後退的命令方塊拉到迴圈裡面,


如下圖:


在設定中選擇控制項:Forever (永遠)



這個程式永遠在迴圈之內執行,除非有人按下NXT的灰色EXIT鍵,或是將NXT斷電。


迴圈的其他應用


在一些特殊的狀況下,我們需要讓程式一直重複,直到一些條件成立為止,這時我們就可以利用迴圈的其他控制設定。


LOOP迴圈有下列五種設定,每一種的圖示也都不相同:



1. Forever :無條件設定,永久的循環執行。


2. Sensor:感應器設定,依照設定的感應器狀態為條件,跳離迴圈的執行。


3. Time:時間設定,以秒數為主,時間到了就會跳離迴圈的執行。


4. Count:執行固定的次數之後,跳離迴圈的執行。


5. Logic:邏輯值設定,根據邏輯值的狀態決定跳離迴圈的執行。


LOOP Sensor


感應器的設定可以選擇各種感應器,包含時間,NXT按鍵,藍牙訊息,以及其他特殊感應器(例如COMPASS,IR LINK)



下圖就是一個簡單的範例,機器人重複執行迴圈裡面的程式,如果壓下觸碰感應器(接在一號輸入埠),程式就會跳離迴圈。


所以在迴圈內,機器人執行程式的動作如下圖:


前進-->後退-->按下觸碰了嗎?-->還沒按下-->前進-->後退-->按下觸碰了嗎?-->按下了!-->跳離迴圈



迴圈的感應器設定如下圖,設定方式跟Wait for指令相似:



Loop Time


想要讓迴圈執行固定的時間,例如投籃機裡面的時間限制,我們就可以使用Time時間的控制。



只要輸入秒數就可以了,


Loop Count


我們也可以讓迴圈執行固定的次數,例如讓機器人連續來回三次,



只要在Count輸入3就會執行三次。



Loop Logic


邏輯值就好像下課的鐘聲,聽到鐘聲,機器人就跳離迴圈的執行。


下圖的範例中,我們設定傳生亂數的值在0-100之間,當亂數值在大於70時,就發出一個『真值』的訊號。這個真值訊號會告訴機器人跳離迴圈的執行。



Loop  Logic的設定很簡單。可以設定為『真值True』或是『偽值False』跳離迴圈。



由於Loop Count只能事先在程式中輸入固定的迴圈次數,有些時候我們需要依照機器人的狀況,執行特定次數的動作,這時就可以利用Loop裡面的Counter,核取參數設定區的Show:Counter(打勾),在迴圈的前端就會跑出一個輸出接頭,這個輸出接頭提供迴圈的執行次數。再利用一個變數count_set,判別輸出接頭的迴圈執行次數是否跟count_set相同。如果相同就會送出『真值』,機器人就會跳離迴圈執行。



LOOP結論


迴圈是一定會用到的指令,也是許多小朋友的最愛,因為迴圈可以讓機器人重複執行相同的動作,所以這個指令擺在common Palette。


經過說明,你是不是對Loop有更進一步的認識了呢?


下課了!祝你成功喔!


 


1 則留言:

  1. 祝您【全球華文部落格得大獎】,我也報名參加,類別【自然人組興趣嗜好部落格】,名稱是艾芮絲的世界之旅,有空請您來點閱,一起加油唷~

    我參加的單元,有空也請您點閱:↓ 或是可以點選我人氣王,謝謝唷~

















    [2008年日本行] - 東京靜岡成田五日遊 =首頁=











    ”歌舞劇電影”系列 - Dreamgirls 夢幻女郎











    蓉城川菜-台北「蓉城川味食府」餐廳 - 裙襬搖搖-川菜 199 元吃到飽 (2008年 7月)


    [版主回覆09/08/2008 15:16:53]謝謝,也祝你得獎!!

    回覆刪除

探奇歡迎大家留言討論!謝謝分享你的意見。