C언어를 기반으로한 NXC 코딩 문제 질문입니다.
아라
질문 제목 : 라인 트랙킹과 관련된 문제...질문 내용 :
#include nxcdefs.h
task light() // 검은선을 중심으로 하고 있는 라인에서 바탕색인 흰색을 비추고 있는 ligtht센서 두개 관련 함수
{
while(true){
if(sensor_2 37 && sensor_3 37) // 가다가 경사면에서 검은줄이 왼쪽에 있는 경우...
{
off(out_a); // 왼쪽 모터를 잠시 껐다가
wait(50);
onrev(out_ab, 100); // 다시 같이 돌린다.
}
else if(sensor_2 37 && sensor_3 37) // 가다가 경사면에서 겅은줄이 오른쪽에 있는 경우...
{
off(out_b); // 오른쪽 모터를 잠시 껐다가
wait(50);
onrev(out_ab, 100); // 다시 같이 돌린다.
}
else // 그 외의 경우, 흰흰일때 그냥 계속 간다.
{
onrev(out_ab, 100);
}
}
}
task attack() // 무기인 크레인을 작동시키는 task 함수
{
while(true){
if(sensor_4 == 1){ // sensor 4에 터치센서를 장착하고서 닿으면 크레인이 작동
onrev(out_c, 100);
wait(3000);
}
}
}
task halt()&; // 30초 경과시 모든 task 종료
{
wait(30000);
stopalltasks();
}
task main() // main 함수
{
setsensorlight(in_2); // 센서 선언
setsensorlight(in_3);
setsensortouch(in_4);
precedes(light, attack, halt); // precedes로 멀티탵스킹
}
task attack과 task halt는 제대로 작동하는데 task light의 경우 제대로 작동하지 않습니다.
컴파일도 되고 구문에도 딱히 오류가 없어보이는데 어떻게 해야 할까요?
-
밤
일단 값이 문제라면 본체다 라이트센서 포트로 연결하시고 컴퓨터에 연결하신다음 nxt전용프로그램켜보면 센서 값 보여주는게 있어요
실시간으로보여주니 a4에 대충 매직칠해서 대보면되요.
변화된뒤 값보다 조금 작게주시면 될꺼예요 -
루나
아..그렇다면 값을 어느값을 줘야할까요?
흰선에서 검은선을 인식하는 그 순간의 값인가요??
그 값 찾기가 어렵네요 ㅋ -
다은
아예 인식을 못하면 검정색과 하얀색을 구분하는 값을 조절해보시거나 센서 포트 점검을 해봐야할것같아요.
전자의 경우엔 센서 민감도가 들쭉날쭉이라 검정색을 구분하는정도가 달라서... -
큰꽃늘
음.....ㅜㅜ아예 인식을 못하는거 같아요...
인식을 못하는건 조건문 문제인거 같은데... -
두빛나래
정확히 라이트센서에서 어떤문제가 생기나요?
라인트레이서를 작년에 전용프로그램으로 해가지고 c쪽은 기억이 가물가물