置頂文字

歡迎來訪 !! 如有任何問題歡迎一起討論或是 eMail 給我 legorunmail@Gmail.com

2015年3月22日 星期日

Lejos 馬達 Motor 紀錄

LEGO Mindstorms 的馬達(Motor)是最常使用的組件也是最需要了解的部份

樂高官網上EV3馬達照片


Motor 常用的指令:

   Motor.A.setSpeed(720);// 單位「度/秒」:設定每秒的轉動角度720度(2 RPM),也就是每秒轉2圈的速度(NXT會根據每個馬達實際的狀況或是物理性做調整供電,務必讓每個馬達能維持每秒2圈的速度),維持固定的速度

   Motor.A.forward();    // 開始前進用每秒轉2圈的速度前進
   Morot.A.backward();    // 開始後退用每秒轉2圈的速度後退
   Thread.sleep (1000);  //NXT 延遲1秒鐘,但馬達繼續轉1秒鐘
   Motor.A.stop();       //馬達立刻煞車

   Motor.A.getMode();    //取得馬達狀態 
   1:正轉(forward) 
   2:反轉(backward)  
   3:停止(stop)  
   4:解鎖(flt / float)


   Motor.A.isMoving();  //回傳 boolean 值 true/false
   Motor.A.isRegulating();   //回傳 bollean 值,取得是否啟用電力調整 true:是  false:否
   

   //----------------

   Motor.A.setPower(0~100);  //直接設定電力值,但由於馬達A、B、C各自有的損耗與物理性所以既使都給相同電力也會有不同的速度表現,

   Motor.A.getPower();   //讀取電力設定值


   Motor.A.regulaitionSpeen(true/false);   //開啟時NXT會調整電力來維持固定的轉動速度。
   Motor.A.regulaitionSpeen(true);  //轉速固定 與 setSpeed()類似,看運用的方式。
   Motor.A.regulaitionSpeen(false);  //電力固定 但馬達的會各自表現不同的速度 。

   Motor.A.isRegulating();   //回傳 bollean 值,取得是否啟用電力調整 true:是  false:否


   //-----------------
   
   
   Motor.A.rotate(360); //馬達正轉360度就立刻煞車,馬達轉動過程中NXT「會等待」馬達轉到360度才會繼續下個指令,每次執行時馬達會累計角度值。

   Motor.A.rotateTo(360); //馬達正轉360度就立刻煞車,馬達轉動過程中NXT「會等待」馬達轉到360度才會繼續下個指令,每次執行時馬達會先把且始角度設為0度。

   Motor.A.rotate(-720,true);  //馬達反轉720度,馬達轉動過程中NXT「不會等待」馬達轉到720度才執行下個指令,而是馬上執行下個指令。



   //-----------------------

   Motor.A.getTachoCount();   //讀取馬達「實際」轉動的角度,該指令是以馬達最初的角度0作為起始點而回傳一個整數值。

   Motor.A.resetTachoCount();   //重設馬達轉動的角度值:也就是之前馬達如果已經有累計值也會歸零。

   

   while(Motor.A.isMoving() :Thread.yield();

   int angle = Motor.A.getTachoCount(); // should be -360


   LCD.drawInt(angle,0,0);
    

   //-------------------------




   Motor.A.flt();   //馬達解鎖,當NXT供電且程式執行時,馬達因為供電的關係而無法用手轉動,這時如果用手硬轉動馬達會傷及馬達與裡面的齒輪,因此請注意不要這麼做。

   Motor.A.lock(30); //參數值代表電力1~100,當馬達負荷重物時(例如吊掛零件)而又必須維持馬達不動,可以用lock(1~100)鎖定馬達不動。預設值為30


   Motor.A.serBreakPower(20);   //馬達轉動時設定煞車力道(電力)

   Motor.A.smoothAcceleration(true/false); //開啟時可以讓馬達在改變速度時更為平滑,不然當馬達在速度起伏較大時NXT會有停頓感,預設為開啟true


   Motor.A.reversDirection();  //根據之前馬達的設定參數但是做反方向的轉動。

沒有留言:

張貼留言