LeJOS學習 4 Motor的API研究

2021-07-06 07:35:57 字數 1430 閱讀 6367

從最簡單的馬達開始學習,lcd個人感覺沒啥可用的,又小又是單色,所以直接忽略。

首先可以組裝一輛小車,其實現階段,完全可以使用資料線直接馬達與主機,沒有太多必要去搭建模型。所以,這一步是可以略過的。

我們直接將大型馬達連在主機的a口和b口上,即可開始本文的學習。

//方法1:標準

regulatedmotor motor = new ev3largeregulatedmotor(motorport.a);

motor.setspeed((int)(motor.getmaxspeed()*0.6));

//方法2:簡潔,但注意了嗎?它是乙個nxtregulatedmotor。

motor.b

.setspeed((float)(motor.b

.getmaxspeed()*0.6));

需要說明的是速度的設定,因為lego語言中,速度是用從0-100數字表示靜止到最大速度,而lejos中卻是degrees per second,所以,我們轉換一下,只為與lego程式設計模組中的概念統一,方便我們移植那些例子。

有三種轉動方法,一是指定旋轉的度數;二是指定旋轉到某個度數;三是一直一直轉直到你讓它stop。

motor.a

.rotate(360, false);

motor.a

.rotateto(270);

//以下三句表示讓馬達a向前轉動1秒

motor.a

.forward();

delay.msdelay(1000);

.stop();

motor.a

.flt(true);

從幫助文件的描述來看,flt與stop是有區別的,乙個是釋放動力讓馬達自由停止,後者是立即停止馬達並鎖止。在我的實測感覺差別不大,具體可以使用我的**自測,應該是與我設定的速度以及遇到的摩擦力有關。

可以通過事件監聽到馬達啟動與停止兩個事件,個人覺得用處有限。

regulatedmotor motor = new ev3largeregulatedmotor(motorport.a);

motor.setspeed((int)(motor.getmaxspeed()*0.6));

motor.addlistener(new regulatedmotorlistener()

@override

public

void

rotationstopped(regulatedmotor motor, int tachocount, boolean stalled, long timestamp)

});motor.forward();

delay.msdelay(3000);

motor.flt();

看上去馬達的操作並不複雜,今天到此為止,週六繼續。

TypeScript的學習歷程4

typescript 介面 function printlabel labelledobj console.log labelledobj.label let myobj 介面 printlabel myobj 使用介面 使用另一種方法編寫 介面inte ce lablesss function p...

Python的學習筆記4

與列表近親關係,只不過元組標識是 而列表是,但 並不能絕對標識元組。例如 temp 1 type temp type返回的型別是那麼什麼才是能決定元組的呢?答案是 例如 temp 1,type temp type返回的型別是因此即便沒有 但只要有 標識,也是元組。如下 temp 1,2,3 type...

opencv的學習筆記4

通常更加高階的形態學變換,如開閉運算 形態學梯度 頂帽 黑帽 等等,都是可以由常用的腐蝕膨脹技術結合來達到想要的效果。3.形態學梯度 morphological gradient 膨脹圖與腐蝕圖之差,數學表示式如下 對二值影象 進行這一操作可以將團塊 blob 的邊緣突出出來。我們可以用形態學梯度來...