본문 바로가기
하드웨어/마이크로비트

[마이크로비트] 조이스틱 사용 팁 - 코너링 문제

by 만들오 2021. 1. 23.

안녕하세요? 만들오 입니다. Joystick Bit 사용 중 알게된 팁을 공유합니다.

 

엄밀히 따지면 모든 조이스틱 방식에 적용되는 팁 입니다.

 

기존 RC카 코드는 2개의 서보모터(1개는 무한회전, 1개는 0~180도)를 사용했고,

 

서보모터는 0~180의 값으로 제어하기 때문에 조이스틱 값을 0~18로 맵핑했습니다.

 

하지만 조이스틱이 움직이는 영역은 다음 그림의 초록색 영역과 같습니다.

최대값이 18인데, 파란색 표시지점에서는 x, y축 모두 18보다 작은 값이 나옵니다.

 

위 코드대로면, RC카는 느린 속도로 살짝만 조향하여 움직입니다.

 

따라서, 아래 빨간 사각형 영역을 실제 사용 구간으로 하고,

 

이를 초과하는 값은 최대값인 18로 변환해야 합니다.

다음은 이를 반영한 블록코딩 예제 입니다.

기존 map 함수의 영역을 0~18에서 -4~22로 4씩 확장해 주었고,

 

constrin 함수를 이용해 0보다 작으면 0, 18보다 크면 18을 반환하게 했습니다.

 

조금이나마 도움이 되길 바라며 글을 마칩니다.

 

감사합니다.

728x90

댓글