遙控撞球車 Ready

阿吉現在人在苗栗高商辦NXC研習, 和老師討論一下這台小可愛以後就把程式po上來, 圖片和影片要等到晚上。

使用 MindSensor 的 遙控手把接收器 以及Catcan馬達的馬達。 實際上要先 include 各自的 library: PSP-Nx-lib.nxc 與 CCSSDK.nxc, 在main裡面完成相關設定以後, 進入while迴圈。下方三個if是用來判斷按鈕是否被按下, 我們是使用類似PS2的搖桿, 所以有類比搖桿 x 2, 12個按鈕。 可以讓您完成非常多的設定。

=================================================

#include “PSP-Nx-lib.nxc”
#include “CCSSDK.nxc”
#define ADDR     0x02

task shoot(){
repeat(3){
setPosition(0x10, 512);
setPosition(0x30, 512);//打出去
Wait(200);
setPosition(0x10, 20);
setPosition(0x30, 20);
}
}

task main()
{
int left_X,left_Y,right_X,right_Y;
int a_speed,c_speed;
psp currState;
SetSensorLowspeed(S1); //
SetSensorLowspeed(S4); //設定輸出模式為RAW, 9V Lowspeed
pwm_func(0x10,true);pwm_func(0x30,true);  //Enable PWM
Wait (100);
while (true) {
PSP_ReadButtonState(S1, ADDR, currState);
left_X = currState.l_j_x;
left_Y = currState.l_j_y;
right_X = currState.r_j_x;
right_Y = currState.r_j_y;

a_speed = -(left_Y/2);
c_speed = -(right_Y/2);

OnFwdReg(OUT_A, a_speed, OUT_REGMODE_SPEED);
OnFwdReg(OUT_C, c_speed, OUT_REGMODE_SPEED);
if(currState.l1 ==0)
{
PlayTone(220,40);
//Wait(300);
}
if(currState.r1 ==0)
{
PlayTone(440,40);
//Wait(300);
}
if(currState.cross ==0)
{
PlayTone(880,40);
start shoot;

}
Wait(300);

}
}

About CAVEDU 阿吉 - 雜工 (2521 Articles)
CAVEDU 教育團隊 打雜
Contact: Website

Leave a comment

Your email address will not be published.


*