Motor Block Icon of block

馬達指令
Motor Block

此指令能精確地控制馬達的速度,設定值大時,則會加快馬達的轉速;反之設定值小時,則會使馬達停止。This block allows for precise control of one motor’s speed. You can “ramp up” to a set speed or “ramp down” to a stop. 若取消"等候完成",只要馬達一開始啟動,程式便會執行下一個指令。
By deselecting “Wait for Completion,” your program can move on to the next block once the Motor block has started a motor.

Image of block, data hub closed, with an orange rectangle drawn around data hub tab and identified as number 5

  1. 輸出端:右上角的字元顯示目前馬達的輸出端位置。
    The letter at the top right corner of the block shows which NXT port is set to control a motor.
  2. 此圖示表示馬達轉動的方向。
    This icon shows which direction the motor will go.
  3. 此圖示表示馬達的動力大小。
    This icon shows the power level.
  4. 此圖示表示馬達的轉動時間以不停止、角度、圈數或秒數為單位。
    This icon shows whether you have set the Duration property to unlimited, degrees, rotations, or seconds.
  5. 可以使用資料線(來自其他指令之資料集線器)連結至馬達指令之集線器以達到動態設定的目的。(若需要更多資訊,請參閱資料集線器。)
    You can change values dynamically by connecting data wires to this block’s data hub. (See the Data Hub section below for more information.)

Image of block showing stop icon

  1. 此圖示表示馬達的方向設定為"停止"。此設定將會讓馬達停止運轉。
    This icon shows that the Direction property is set to “stop”. This setting will stop the indicated motor.

馬達指令參數設定
Configuring the Motor Block

Image of configuration panel

  1. 設定馬達所連接的輸出端。
    Select the motor you’d like to control.
  2. 設定運轉的方向:前進、後退或停止。
    Choose whether the motor should go forwards, go backwards, or stop.
  3. 設定馬達的加速狀態:加速、減速及固定不變。加速:馬達會從較慢的速度,持績加速直到動力的設定值。減速:馬達會從設定的動力大小降至零為止。最後,若設定為固定不變時,馬達會以動力的設定大小運轉,直到指令結束後停止。(停止的方式有滑行或煞車二種,需另行設定。)
    You can precisely control the acceleration of the motor by selecting “Ramp Up” or “Ramp Down.” A motor set to “Ramp Up” will slowly increase its speed until it reaches specified power. A motor set to “Ramp Down” will slowly decrease its speed until it reaches zero power. A motor set to “Constant” will reach full power immediately and will stop quickly by either coasting or braking (depending on the setting).
  4. 以滑桿設定動力大小,或直接輸入數值。動力大小介於[0-100%]。
    This slider and the editable input box will let you set the power level [0-100%].
  5. 以多選按鈕設定馬達動力控制。若勾選此設定,則當馬達在運行時若遇到阻力或滑動,馬達的動力會調整動力的大小,以維持每秒有相同的轉速。
    Select this checkbox if you’d like to turn on power control. Power control will attempt to compensate for any resistance or slippage that the motor encounters. It will increase power to a maximum of 100% to maintain the same rotation amount per second.
  6. 轉動時間以下拉式選單的方式,共有四種:不停止、轉動的圈數、角度及秒數。Using the Duration pull-down menu, set the motor to run for an unlimited interval or for a set number of rotations, degrees, or seconds.
  7. 若選取"等候完成",則程式會等候馬達指令結束後,才會執行下一個程式指令。若不選取此設定,則馬達一開始啟動時即可執行下一個指令。例如:若馬達指令後加入一個聲音指令,當馬達開始啟動後,馬達尚在運轉中時即可執行聲音指令。
    With “Wait for completion” selected, the motor will finish its action completely before allowing the program to move on. If you de-select “Wait for completion,” other blocks in the program can proceed while your motor completes its action. For example, a Sound block placed after the Motor block could start playing a sound file while the motor continues its action.
  8. 設定馬達將以煞車或是滑行的方式停止。當設定為煞車時,馬達在停止時,同時也會鎖住馬達的轉動,讓馬達停在準確的位置。若馬達指令後,有另一控制同一個馬達的指令時,可設定為滑行。
    Choose whether the motor will brake or coast after finishing its action. Set the motor to brake if you want it to stop precisely at an exact position and (attempt to) hold that position. Braking does require additional battery power because the motor does extra work to maintain the position. Coast is a good choice if this block is followed by another block controlling the same motor.
  9. 回饋盒將會累加馬達所轉動的角度或圈數。若按下重置按鈕,可將數值歸零。(收到回饋後,請確認馬達輸出端設定是否正確。)
    The feedback boxes will count how many degrees or full rotations your motor turns. Press the reset button to return the values to zero. (To receive feedback, make sure that the motor is connected to the chosen port and that communication has been established with the NXT.)

注意:當馬達向前(正)運轉時,回饋值以黑色文字顯示。當馬達向後運轉時,回饋值以紅色文字顯示。
Note: The feedback value will be displayed in black-colored text if the motor is running in the forward (positive) direction and in red-colored text if it is running backwards.

馬達與機器人的方向
Motor versus Robot Direction

當設定移動指令或是馬達指令的方向後,馬達將會依設定轉動,實際上有可能與機器人行進的方向不同。依據組裝機器人的方式不同,當你設定馬正轉時,而機器人卻向後退。下圖表示馬達預設的轉動方向:前進時的轉動方向。
When you set a Move or Motor blocks' direction, you are specifying the direction the motor will spin. This may be different than the direction your robot actually moves. Depending on how you build your robotic invention, setting the motors to go forwards may cause your creation to move backwards. The image below shows a motor spinning in the default, forwards direction.

Image of a Mindstorms servo motor with forwards  (clockwise) direction indicated with arrows

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

可以使用資料線(來自其他指令之資料集線器)連結至馬達指令以達到動態設定的目的。
You can control the Motor block dynamically by connecting data wires (from other blocks’ data hubs) to the 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 data 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 wires 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 be within 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 Motor block’s data hub:

  連接埠
Plug
資料型態
Data Type
資料範圍
Possible Range
資料意義
What the Values Mean
連接埠例外說明
This Plug is Ignored When...
Port 連接埠
Port
數值
Number
1 - 3 1 = A, 2 = B, 3 = C  
Max/Min 方向
Direction
邏輯值
Logic
真/偽
True/False
真 = 前進
True = Forwards
偽 = 後退
False = Backwards
 
Max/Min 狀態
Action
數值
Number
0 - 2 0 = 固定
1 = 加速
2 = 減速
0 = Constant
1 = Ramp Up
2 = Ramp Down
轉動時間 = 不停止或以秒數為單位
Duration Type = Unlimited or Seconds
Max/Min 動力
Power
數值
Number
0 - 100    
Max/Min 動力控制
Control Motor Power
邏輯
Logic
真/偽
True/False
   
Max/Min 轉動時間
Duration
數值
Number
0 - 2147483647 依轉動時間單位:
角度/圈數 = 角度,
秒數 = 秒數
Depends on Duration Type:
Degrees/Rotations = Degrees,
Seconds = Seconds
轉動時間 = 不停止
Duration Type = Unlimited
Max/Min 等候完成
Wait for Completion
邏輯
Logic
真/偽
True/False
  轉動時間 = 不停止(為偽),秒數(為真)
Duration Type = Unlimited (always False), Seconds (always True)
Max/Min 下一個狀態
Next Action
邏輯
Logic
真/偽
True/False
真 = 煞車
偽 = 滑行
True = Brake
False = Coast
轉動時間 = 不停止或等候完成 = 偽
Duration Type = Unlimited, or Wait for Completion = False
Max/Min 轉動方向
Direction out
邏輯
Logic
真/偽
True/False
馬達指令執行時的轉動方向
真 = 前進
偽 = 後退
Direction the motor moved during the block’s execution.
True = Forwards
False = Backwards
 
Max/Min 轉動角度
Degrees out
數值
Number
0 - 2147483647 馬達指令執行時的轉動角度
How many degrees the motor moved during the block's execution