[ create a new paste ] login | about

Link: http://codepad.org/YtGSscYU    [ raw code | fork ]

C, pasted on Aug 22:
// copyright to Big Head

// A_car 自行努力處提示

//*********************以下程式用自己的力量完成!*********************//
// 用function "analogWrite(腳位,0~255);"
// 一個馬達會有兩個LinkIt的腳位,兩個都是OUTPUT
// 其中一個腳位提供正轉訊號,另一個提供逆轉訊號
// 哪個為HIGH(靠近255)哪個為LOW(靠近0)就看通電測試過後再看是否需要更改

// 範例
void forward(){
	// 前進
	// 腳位1或2自行調整
	analogWrite(馬達A腳位1 , 255);
	analogWrite(馬達A腳位2 , 0);
	analogWrite(馬達B腳位1 , 255);
	analogWrite(馬達B腳位2 , 0);
}

//***************************END**********************************//


/* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------ */


// steering_wheel 自行努力處提示

//*********************以下程式用自己的力量完成!*********************//
//判斷ax, ay, az的大小來控制前後左右!
//可用的function有 forward(), backward(),turnleft(), turnright(), stay()
if ( ax在某個範圍 && ay在某個範圍 && az在某個範圍 ) {
	forward();
}else if ( ax在某個範圍 && ay在某個範圍 && az在某個範圍 ) {
	backward();  
}else if ( ax在某個範圍 && ay在某個範圍 && az在某個範圍 ) {
	turnleft();
}else if ( ax在某個範圍 && ay在某個範圍 && az在某個範圍 ) {
	turnright();
}else {
	stay();
}

//******************************END****************************//


/*----------------------以下是不建議寫法---------------------------*/

if(ax在某個範圍){
	forward();
}else if(ax在另一個範圍){
	backward();
}else if(ay在某個範圍){
	turnright();
}else if(ay在另一個範圍){
	turnleft();
}else{
	stay();
}

/*
	不管是寫if還是else if都會是比較不好的寫法
	ex : 當你向右前方前傾的時候,x和y方向可能會有加速度(假設是如此),
	那麼判斷式的順序會影響call function的順序(如果先寫判斷x加速度的條件,
	那麼會先執行x方向的位移函式;如果先寫判斷y加速度的條件,那麼會先執行y方向的位移函式),
	因此難以準確的執行同時往xy方向的位移函式。

	當然,如果你們來不及的話,可以先寫基本四方位的function就好。
*/


Create a new paste based on this one


Comments: