PS2 호환 게임패드(게임컨트롤러, 조이스틱)로 로봇팔 제어하기

PS2 호환 게임패드를 변환 모듈을 통해 아두이노 보드와 연결하고 이 게임패드로 6자유도 로봇팔을 조정하는 등 아두이노를 활용한 다양한 응용 분야에서 활용가능합니다. PS2 호환 조이스틱은 12개의 아날로그키(4개의 방향키, 십자형, 삼각형, 원형, 사각형, L1, L2, R1, R2) 와 5개의 디지털 키(MODE, START, SELECT, R3, L3) 그리고 2개의 조이스틱키(RXRY, LXLY)를 가지고 있습니다.

PS2 게임패드 제어키트의 구성은 아래와 같습니다.

1. PS2 게임패드 사용방법 및 테스트

아두이노 프로그램에서 PS2 게임패드의 입력을 쉽게 받기 위해서는 PS2게임패드 라이브러리를 설치해야 합니다.

라이브러리는 아래 링크에서 다운로드하고 아두이노 프로그램 메뉴에서 스케치->라이브러리 포함하기->.ZIP 라이브러리 추가를 누르고, 파일선택창이 나오면 다운받은 라이브러리 파일을 선택하시면 됩니다.

라이브러리

 

라이브러리가 설치되면 아래 사진과 같이 메뉴에서 파일->예제->PS2X_lib->PS2X_Example 을 선택하여 예제 파일을 엽니다.

예제 파일 소스 중에서 아래 부분이 변환모듈과 연결되는 아두이노 필을 설정하는 부분이며 수정없이 사용합니다.

 error = ps2x.config_gamepad(13,11,10,12, true, true); 

아두이노 우노의 13번 핀은 변환보드의 CLK에 연결하고 11번은 CMD, 10번은 CS, 12번은 DAT와 연결합니다. 변환보드의 VCC는 아두이노 보드의 5V, GND는 GND핀에 연결합니다. 테스트 목적이며 실제 6자유도 로봇팔 조정시에는 다른 핀을 사용합니다.

아래는 아두이노 우노보드와 실제 결선한 모습입니다.

이제 컴파일한 후 업로드합니다. 업로드가 성공하면 시리얼모니터를 열어서 아무키나 눌러보면 아래 사진과 같이 키를 누를 때마다 해당 키값이 출력됩니다.

반드시 시리얼모니터의 통신속도(보레이트)를 57600 baud 로 변경하시기 바랍니다. 그렇지 않으면 화면에 쓰레기 데이터가 출력됩니다.

PS2 게임패드를 인식하지 못하거나 아래와 같이 출력되지 않는 경우 업로드 오류가 발생하지 않았는지와 결선이 올바른지 등을 다시 한번 확인하시기 바랍니다.

PS2 게임패드의 키맵은 아래 사진과 같습니다.

 

2. 6자유도 로봇팔과 연결하기

6자유도 로봇팔을 구동하기 위해서는 PS2 게임패드 이외에도 아래와 같은 추가적인 구동부품이 필요합니다. 구동부품 연결방법은 여기서는 생략하며 아래 링크등에서 확인하시기 바랍니다.

여기서는 자세한 구동부품 연결방법은 생략하며 6자유도 로봇팔 서보모터의 연결순서와 아두이노 보드와 연결(센서쉴드 경유)을 위한 핀맵만 보여줍니다.

6자유도 로봇팔 PS2 게임패드 조종용 아두이노 소스는 하단부의 링크를 참조하시기 바랍니다. 압축 암호는 PS2 게임패드 제어키트에 포함되어 있습니다.

로봇암에는 총 6개의 서보모터가 있으며 결선을 위해 편의상 아래쪽에서 위쪽으로 순차적으로 #1에서 #6까지로 번호를 붙이겠습니다.

센서쉴드보드에 #1부터 #6까지 순서대로 모터 케이블을 꼽아줍니다. 이 때 케이블의 방향에 유의하여 연결하시기 바랍니다.

 

이제 PS2 게임패드 변환모듈을 연결할 차례입니다. 

총 6개의 핀을 가지고 있으며 GND와 VCC에 전원(GND, 5V)을 연결하고 나머지 4개의 핀은 센서쉴드를 통해 아두이노 보드의 각각의 디지털 IO와 연결됩니다.

아래 핀맵을 참조하여 연결합니다.

아래 링크는 PS2 게임패드 조종용 6자유도 로봇팔 아두이노 소스입니다. 압축 암호는 PS2 게임패드 제어키트에 포함되어 있습니다.

아래는 구동 데모 영상입니다.

 

Topic: 

Tags