Test example using RC Servo (Kor)

From Neuromeka Wiki
Jump to: navigation, search


STEP BBB Test

  • 사용자는 STEP BBB를 이용하여 RC Servo 모터를 컨트롤 할 수 있다.

준비물

  1. STEP BBB
  2. 사용자 PC에 NRMKFoundation & NRMKPlatform이 설치되어 있어야 한다.
  3. RC Servo 모터


테스트 환경 설정

1. 사용자 PC에 STEP BBB연결
2. RC Servo 모터에 G(PWR) / DIO5-1 / 5V(PWR)핀을 연결.
STEP BBB RC servo test pic 000.png

3. NRMK Launcher에서 이클립스 실행 -> STEP BBB workspace로 이동(File->Switch Workspace)
STEP BBB RC servo test pic 001.png

4. STEP Platform BBB에서 기본으로 제공하는 GPMCCapeDAE/gpmccapedae.cpp의 내용을 수정한다.

gpmccapedae.cpp

void gpmc_run(void *arg){

uint16_t val=0;
float t=0, f=100.0;
rt_task_set_periodic(NULL, TM_NOW, 5e6);

while(1){
...
//DIO demo
gpmc_cape_write_dio(5, 0x1f); //write DIO5
dio_in[5]=gpmc_cape_read_dio(6); //reading DIO6

//============================= add ============================
if(dio_in[5] == 1)
rt_task_sleep(2e6);
else if(dio_in[5] == 0)
rt_task_sleep(1e6);

gpmc_cape_write_dio(5, 0x00);
//==============================================================
...
}
}


int main(int argc, char *argv[]) {
...

//======================================== remove ========================================
uint16_t dio_param= (DIO_PuPd_DOWN<<PIN5_PULL_POS)|(DIO_PuPd_DOWN<<PIN4_PULL_POS)|(DIO_PuPd_DOWN<<PIN3_PULL_POS)|
(DIO_PuPd_DOWN<<PIN2_PULL_POS)|(DIO_PuPd_DOWN<<PIN1_PULL_POS); //all pull down
dio_param |=0x0000; //all IN
//========================================================================================

gpmc_cape_setup_dio(6, 0);
}


테스트

1. 프로젝트 선택 - Build Configurations - Set Active - 2.Release 선택
2. 프로젝트 선택 - Build Project - 완료
3. 프로젝트 선택 - Run As - Run Configurations - 해당 프로젝트의 항목 생성 - run
STEP BBB RC servo test pic 002.png

4. 처음 실행시 해당 팝업이 나온다면, 비밀번호 'root'를 입력하고 계속 진행하면 된다.
STEP BBB RC servo test pic 005.png

5. 입력 포트 DIO6의 1번 핀에 3.3V와 G를 번갈아 접촉해 보면서 RC Servor 모터의 움직임을 관찰한다.
6. 3.3V 접촉시, 모터는 오른쪽 방향으로 회전. G 접촉시, 모터는 왼쪽 방향으로 회전된다.
7. 오실로스코프로 신호를 확인할 수 있다. DIO5의 연결되지 않은 핀과 G를 연결하면, 다음과 같은 데이터를 볼 수 있다.
STEP BBB RC servo test pic 003.png
G에 접촉 -> 왼쪽으로 회전(5milliseconds마다 1millisecond 길이의 신호 출력)

STEP BBB RC servo test pic 004.png
3.3V에 접촉 -> 오른쪽으로 회전(5milliseconds마다 2millisecond 길이의 신호 출력)