Reset Motor block Icon of block

重置馬達指令
Reset Motor Block

互動式的似服馬達有個自動的錯誤修正機制,這可以讓機器人更精準地移動.但有時候確是需要關閉這項功能,就必須使用重置馬達指令
The interactive servo motors have an automatic error correction mechanism that helps your robot move very precisely. However, there may be times when you want to turn this feature off -- the Reset Motor block will let you do this.

Image of Reset Motor block, default settings

  1. 右上角的字母標示重置馬達指令所控制的NXT輸出端.
    The letter at the top right corner of the block shows which NXT port(s) will be affected by the Reset Motor block.

設定重置馬達指令
Configuring the Reset Motor Block

Image of configuration panel for the Reset Motor block

  1. 選擇控制的輸出端
    Choose which ports will be affected by the block.

如何使用重置馬達指令
How to use the Reset Motor block

使用單一的移動指令(接續動作參數設為煞車)來設定前進八圈.將會控制機器人在停止前準確地轉八圈.
If you use a single Move block (with the Next Action parameter set to Brake) to drive your robot 8 rotations forwards, it will drive exactly 8 rotations before it stops.

有可以用四個移動指令,每一個設定轉2圈,並在前三個移動指令的接續動作設為滑行.這個自動的錯誤修正機制會讓機器人精確地轉8圈.
You could do the same thing with 4 Move blocks, with each set to drive 2 rotations. With the Next Action parameter set to Coast on the first 3 blocks, the automatic error correction will make sure that the robot drives exactly 8 rotations.

假設在水平或傾斜的路面上,範例中每個指令所控制的實際距離如下:
Assuming a level surface or even a slight decline, the actual distances covered by each block in this example might be as follows:

指令
Block
指定的執行圈數
Duration specified
實際的運轉圈數
Actual Duration
移動#1, 滑行
Move #1, Coast
2圈
2 rotations
2.2圈
2.2 rotations
等待, 1秒
Wait, 1 second
   
移動#2, 滑行
Move #2, Coast
2圈
2 rotations
2.3圈
2.3 rotations
等待, 1秒
Wait, 1 second
   
移動#3, 滑行
Move #3, Coast
3圈
2 rotations
2.1圈
2.1 rotations
等待, 1秒
Wait, 1 second
   
移動#4, 煞車
Move #4, Brake
2圈
2 rotations
1.5圈
1.5 rotations
總計
TOTAL
  8.0圈
8.0 rotations

注意:如果將所有的移動指令的接續動作設定為煞車,則機器人會在每一步都走得很準確.只有在設定為滑行時才會有錯誤產生.
Note: If you set the Next Action parameter to Brake on all four Move blocks, your robot will move more precisely over each step. Errors only build up when you use Coast as the Next Action.

如果想控制機器人再每個移動指令中可以自由地滑行而不會去影像到下一個步驟,則需要使用重置馬達指令.這會重置馬達的錯誤修正功能.
If you would rather have your robot drive 2 rotations for each Move block while allowing the wheels to coast freely without affecting the next movement, you must include a Reset Motor block. This will reset the automatic error correction.

使用重置馬達指令後,上述的範例會修改為如下:
Using Reset Motor blocks, the example above will be changed to this:

指令
Block
指定的執行圈數
Duration specified
實際的運轉圈數
Actual Duration
移動#1, 滑行
Move #1, Coast
2圈
2 rotations
2.2圈
2.2 rotations
等待, 1秒
Wait, 1 second
   
重置馬達
Reset Motor
   
移動#2, 滑行
Move #2, Coast
2圈
2 rotations
2.3圈
2.3 rotations
等待, 1秒
Wait, 1 second
   
重置馬達
Reset Motor
   
移動#3, 滑行
Move #3, Coast
2圈
2 rotations
2.1圈
2.1 rotations
等待, 1秒
Wait, 1 second
   
重置馬達
Reset Motor
   
移動#4, 煞車
Move #4, Brake
2圈
2 rotations
2.0圈
2.0 rotations
總計   8.5圈
88.5 rotations

注意:錯誤的執行圈數會依摩擦力或是斜坡角度而改變
Note: Error durations will be different depending on friction and/or slope angle.

小技巧:也可以將設方向參數設定為"停止"來重設馬達跟移動指令.
Tip: You can also reset Motor and Move block motions by setting the direction to Stop.

設定重置馬達指令的資料集線器
Configuring the Reset Motor block’s Data Hub

用資料線可以任意地用來控制重置馬達指令.(從其他指令的資料集線器到重置馬達指令的資料集線器).
You can control the Reset Motor block dynamically by connecting data wires (from other blocks’ data hubs) to the Reset Motor block’s data hub.

把指令放在工作區上後,可以按圖示的左下角來打開資料集線器.
Open a block’s data hub by clicking the tab at the lower left edge of the block after it has been placed on the work area.

Image showing unopened tab on a generic block

連接到集線器左邊連接埠的資料線是屬於負責傳遞資料進入指令中,而要從指令送出資料時,則須從集線器的右邊連接埠連接資料線.
Data wires carrying input information to a block are connected to the plugs on the left side of its data hub. Data wires carrying output information are connected to the plugs on the right side.

Image of data wires

[A]輸入連接埠 [A] Input plug
[B]輸出連結部 [B] Output plug
[C]數字資料線(黃) [C] Number data wire (yellow)
[D]邏輯資料線(綠) [D]Logic data wire (green)
[E]文字資料線(橘) [E]Text data wire (orange)
[F]無效資料線(灰) [F]Broken data wire (gray)

資料由輸入端傳至傳出端
Passing from the input plug to the output plug

如果輸入連接埠有對應的輸出連接埠(請參閱 A 以上)時,那麼輸入的資料就會原封不動地傳遞到輸出連接埠.在這樣的情況下, 如果輸入連接埠連著資料線,那麼就只能使用輸出連結埠來做連結. 也就是說,當連結輸出連接線到這樣的輸出連接埠,而不透過相對應的輸入資料線時,就會讓該輸出連接線呈現無效的狀態.
If an input plug has a corresponding output plug (see A above), the input data will pass through from the input plug to the output plug without being changed. In this case, you can only use the output plug if the input plug is connected to an input data wire; connecting an output data wire to such an output plug without a connected input data wire will cause the output data wire to be “broken” (and colored gray).

特定的資料型態
Data wire colors carry specific types of data

每條資料線都負責傳送特定資料.例如,一條從邏輯連接埠拉出的資料線則只能連結到另一個同屬邏輯連接埠的集線器上.
Each data wire carries a specific type of data between blocks. For example, if a data wire is dragged from a logic plug on a block’s data hub, it can only be connected to a logic plug on another block’s data hub. The chart below shows what kind of data each plug can accept or send out.

資料線顏色
Data wire colors

資料線依照特定的顏色作識別:黃色資料線傳送數值資料、綠色資料線傳送邏輯資料(真/偽)及橘色資料線傳送文字資料
Data wires are identified with specific colors: wires carrying number data are colored yellow, wires carrying logic data are colored green, and wires carrying text data are colored orange.

無效的資料線
“Broken” data wires

如果資料線連結到錯誤資料型態的連接埠時,則該資料線會呈現斷線無效狀態並以灰色表示.而有無效的資料線存在就無法下載程式.
If you try to connect a data wire to a plug of the wrong data type, the data wire will be broken (and colored gray). You will not be able to download your program if a data wire is broken.

點選無效的資料線時,在工作區右下方的幫助視窗中會看到無效的原因.
If you click a broken wire you can read why it is broken in the small help window in the lower right corner of the work area.

資料必須在連接埠的限制範圍內
Data must bewithin the possible range of the plug

如果資料線傳輸該連接埠資料範圍之外的資料時,該指令不是忽略資料就是轉成合理範圍內的資料.對那些只能接收少量輸入值的連接埠來說(例如,0,1,或2),該連結埠就會忽略超出範圍的數值.
If an input data wire transmits a value outside the possible range of the plug it is connected to, the block will either ignore the value or change it to a value within its range. For plugs that allow just a few input values (example: just 0, 1, or 2), the plug will ignore the input if a value arrives outside its range.

而對那些可以接收大量範圍輸入值(例如: 0~100)的連接埠來說,該連接埠就會將數值轉成可接受的範圍. 例如, 移動指令的動力連接埠接收到150的輸入值時,那麼移動指令就會轉成100(也就是動力連接埠的範圍內).
For plugs that accept larger input ranges (example: 0 – 100), the plug will force any input outside its range to fit. For example, if a Move block’s Power plug receives an input value of 150, the block will change the input value to 100 (i.e., a number within the Power plug’s range).

下表列出本資料集線器中各連接埠的特性
This chart shows the different characteristics of the plugs on the Reset Motor block’s data hub:

  連結埠
Plug
資料型態
Date Type
資料範圍
Possible Range
資料意義
What the Values Mean
連接埠例外說明
This Plug is Ignored When...
Port 重置A
Reset A
邏輯
Logic
真/偽
True/False
重置馬達A
Motor A will be reset
 
Port 重置B
Reset B
邏輯
Logic
真/偽
True/False
重置馬達B
Motor B will be reset
 
Port 重置C
Reset C
邏輯
Logic
真/偽
True/False
重置馬達C
Motor C will be reset