[教學] NXC 常用指令簡介 – Outputs

要學會NXC的關鍵之一就是弄懂各個指令的用途。在這裡列出一些常用指令之用法及使用時該注意的事項,希望常用或是想學 NXC 的朋友們可以從本文快速地得到一些資訊。

今天先介紹一些常用的輸出(Output)指令:

1.啟動馬達: OnFwd(輸出端, 電力);   

    例:OnFwd(OUT_A,75);、OnFwd(OUT_AB,75);

   注意:若是沒有Off(port); 指令,馬達是不會停下來的,除非程式結束
   注意:power 可輸入負值,負號代表反轉。

2.啟動馬達並設定運轉模式:OnFwdReg(輸出端, 電力, 規範模式);   
    
    例:OnFwdReg(OUT_A, 75, OUT_REGMODE_SPEED);

   注意:上面的範例為定轉速模式,當馬達運轉遇到阻力時,會加大電力以維持所設定之轉速
   注意:第一點所提到的OnFwd()為無控制模式

3.啟動兩顆馬達並使其同步:OnFwdSync(輸出端, 電力, 轉彎百分比);

    例:OnFwdSync(OUT_AB,75,0);
 
   注意:沒有兩顆馬達生下來是一樣的,就算在全速運轉時,轉速也不一定相同,就像兩個人全力奔跑也很難跑得一樣快的道理是一樣的。同步可以讓兩顆馬達互相知道對方的狀態,可以用來走直線或轉彎。
   注意:0 是直走、 50 是以某輪為圓心旋轉、 100則是原地旋轉。
   注意:同步一顆馬達沒有意義,若只有一顆馬達請用定轉速模式。

4.讓馬達旋轉一個角度: RotateMotor(輸出端, 角度);

    例:RotateMotor(OUT_A,1080);

5.馬達負載:MotorOverload(輸出端);  若馬達有遇到阻力,回傳1,若沒有則是0。

   例:
   task main()
   {
        OnFwdReg(OUT_A, 75, OUT_REGMODE_SPEED);
        until(MotorOverload(OUT_A)==1);
        Off(OUT_A);
   }//馬達以75電力旋轉,遇到阻力停止

   注意:關於MotorOverload的原理之後會再發文討論。現在要先注意的是用法,MotorOverload必須要搭配定轉速模式使用,因為在定轉速模式時,馬達所轉的角度會回傳給NXT分析,才有辦法知道馬達是否有遇到阻力。若是使用無控制模式(例如OnFwd),本指令就不會發揮作用。

關於Output的指令就先介紹到這裡囉~有任何問題都歡迎留言一起討論。"機器人新視界   NXT與NXC"第二版即將上市,對於各種指令會有更詳細的介紹,敬請期待!
 

 

One thought on “[教學] NXC 常用指令簡介 – Outputs

  1. 探奇自然科學教室 says:

    很仔細的說明!

    你們的部落格沒有『留言版』的連結,只有『我要留言』的字樣,沒有辦法看到留言的回覆?

    期待新版書籍上市!
    [版主回覆01/30/2010 13:50:36]

    haha, 謝謝探奇. 我來改一下版面.

    和初版一樣, 應該是3月上市. 一年改一次版的頻率應該是OK的. 一次動工三本書真不是一件容易的事呢, 加油加油

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *