生活紀錄
2013年3月31日 星期日
2012年4月20日 星期五
四月十九日
個人: 這禮拜進度是修改吃一顆車體的夾方塊與放方塊的穩定度
: 阿建:利用吃兩顆的車體 完成路徑是 讀四根柱子的顏色及底線兩顆方塊的路徑
元辰 :這星期的進度是把上星期完成的走內部讀取柱子的顏色數值,再調整到穩定,然後吃後半部兩個方塊且回到中間的路徑。
2012年3月22日 星期四
2012年3月14日 星期三
JAVA:單光感比例控制
參考網址: http://www.inpharmix.com/jps/PID_Controller_For_Lego_Mindstorms_Robots.html
import lejos.nxt.*;//載入模組
class p
{
public static void main(String args[])//進入主程式
{
Button.ESCAPE.addButtonListener(new ButtonListener()//設定取消鍵
{
public void buttonPressed(Button b){System.exit(0);}
public void buttonReleased(Button b){}
});
LightSensor light = new LightSensor(SensorPort.S1);//設定感測器類別
int offset = 37;//光感平均值
int Kp = 10;
int Kp1 = -10;
while(true)
{
int Light = light.readValue();
Motor.C.setSpeed(Kp*(Light - offset)+700);
Motor.B.setSpeed(Kp1*(Light - offset)+700);
Motor.C.backward();
Motor.B.backward();
}
}
}
2012年3月11日 星期日
JAVA:計數黑線程式

參考圖
計數黑線程式碼:
import lejos.nxt.*;//載入模組
class count
{
public static void main(String args[])//設定取消鍵
{
Button.ESCAPE.addButtonListener(new ButtonListener()
{
public void buttonPressed(Button b){System.exit(0);}
public void buttonReleased(Button b){}
});
LightSensor light = new LightSensor(SensorPort.S1);//設定數線光感
int x = 0 , y = 0 ;//設定數線參數;x為開關0與1,y為數線總值
while(y<5)//進入小於5次的迴圈裡,也可使用for迴圈作為計數的依據
{
if(light.readValue()<38)//數線程式碼(開關器);進入點;讀黑線
{
x = 1;//開關打開 ,此為白到黑的位置
}
if(x == 1)//此地方為黑白間的計數位置;如果為黑到白,此條件為成立
{
if(light.readValue()>38)//讀白線
{
x = 0;
y = y + 1 ;
}
}
LCD.clear();//設定螢幕顯示
LCD.drawInt(y , 0 , 0);
}
}
}
跟線計數程式碼:
import lejos.nxt.*;//載入模組
class count
{
public static void main(String args[])//設定取消鍵
{
Button.ESCAPE.addButtonListener(new ButtonListener()
{
public void buttonPressed(Button b){System.exit(0);}
public void buttonReleased(Button b){}
});
LightSensor light = new LightSensor(SensorPort.S1);//設定數線光感
LightSensor light1 = new LightSensor(SensorPort.S4);//設定跟線光感
int x = 0 , y = 0 ;//設定數線參數;x為開關0與1,y為數線總值
while(y<5)//進入小於5次的迴圈裡,也可使用for迴圈作為計數的依據
{
if(light1.readValue()>= 38)//跟線程式碼
{
Motor.C.setSpeed(900);
Motor.B.setSpeed(540);
Motor.C.backward();
Motor.B.backward();
}
else if(light1.readValue()<38)
{
Motor.C.setSpeed(540);
Motor.B.setSpeed(900);
Motor.C.backward();
Motor.B.backward();
}
if(light.readValue()<38)//數線程式碼(開關器);進入點;讀黑線
{
x = 1;//開關打開 ,此為白到黑的位置
}
if(x == 1)//此地方為黑白間的計數位置;如果為黑到白,此條件為成立
{
if(light.readValue()>38)//讀白線
{
x = 0;
y = y + 1 ;
}
}
LCD.clear();//設定螢幕顯示
LCD.drawInt(y , 0 , 0);
}
}
}
2012年3月8日 星期四
訂閱:
文章 (Atom)