120 likes | 366 Views
樂高機器人. 本周進度. 馬達 控制 感應 器控制. NXC 馬達指令分為四大類 : 無控制模式、速度模式、轉速表模式、同步模式。 PID 控制對於機電自動控制非常重要,可讓機器人快速適應周遭環境變化。. 無控制模式. OnFwd () 與 OnRev () 都屬於無控制模式的指令,只會確認哪個馬達要轉動、轉哪個方向及給多少電力。 無控制模式不會理會馬達實際的轉動 角度和所設定的目標角度是否有差異。. 速度控制模式. 可將馬達維持穩定速度。當使用速度控制模式時,即使負載改變仍會將轉速維持在一定的轉速。
E N D
本周進度 • 馬達控制 • 感應器控制
NXC馬達指令分為四大類:無控制模式、速度模式、轉速表模式、同步模式。NXC馬達指令分為四大類:無控制模式、速度模式、轉速表模式、同步模式。 PID控制對於機電自動控制非常重要,可讓機器人快速適應周遭環境變化。
無控制模式 OnFwd()與OnRev()都屬於無控制模式的指令,只會確認哪個馬達要轉動、轉哪個方向及給多少電力。 無控制模式不會理會馬達實際的轉動角度和所設定的目標角度是否有差異。
速度控制模式 可將馬達維持穩定速度。當使用速度控制模式時,即使負載改變仍會將轉速維持在一定的轉速。 OnFwdReg(OUT_C,40,OUT_REGMODE_SPEED);//(輸出端,速度,速度控制模式);
同步模式 想讓機器人走『完美』的直線模式時,使用一組馬達在運轉時能根據對方的狀況作調節。 OnFwdReg(OUT_AC,40,OUT_REGMODE_SYNC); OnFwdSync(OUT_AC,40,0); //(輸出端,速度,轉彎百分比);
轉速表模式 NXT馬達有內建角度感應器,可精準的控制馬達轉軸的位置與轉動速度。 RotateMotor(OUT_A,50,360); //(輸出端,速度,角度) RotateMotor()指令的延伸版: RotateMotorEx(OUT_A,50,180,0,true,true); //(輸出端,速度,轉動角度,轉彎百分比,是否同步,是否煞車)
PID控制 PID控制包含比例(P:Proportional)、積分(I:Integrative)與微分(D:Derivative)。 PID控制器就是根據系統的誤差利用比例、積分與微分法來計算出控制量。 RotateMotorPID(輸出端,速度,轉動角度,P值,I值,D值); RotateMotorExPID(輸出端,速度,轉動角度,轉彎百分比,是否同步,是否煞車, P值,I值,D值);
感應器有四種基本的設置指令:SetSensorTouch()、SetSensorSound()、SetSensorLight()、SetSensorLowspeed()。感應器有四種基本的設置指令:SetSensorTouch()、SetSensorSound()、SetSensorLight()、SetSensorLowspeed()。 通用的感應器設定指令: SetSensor(S1,SENSOR_TOUCH); //(輸入端,感應器類型)
感應器的類型 設定感應器的「類型」就是告訴NXT我們接上去的是哪一種感應器,我們使用SetSensorType()指令來決定感應器的類型。 SetSensor() 、SetSensorType()指令可用的基本參數:SENSOR_TYPE_TOUCH、 SENSOR_TYPE_LIGHT_ACTIVE、 SENSOR_TYPE_SOUND_DB、 SENSOR_TYPE_COLORFULL。
感應器的模式 SetSensorMode()是用來設定感應器的模式(mode)。 SetSensorMode()指令可用的基本參數:SENSOR_MODE_RAW、 SENSOR_MODE_BOOL、SENSOR_MODE_PERCENT。