최근 빈티지 컴퓨터 기술에 관심이 생겨 1977년 출시된 아타리 2600을 조사하게 되었습니다. 중고로 구매해 연결했더니 펑 소리와 함께 연기가 났습니다. 오래된 기기는 작동 보장이 없고, 에뮬레이터를 쓰자니 키보드 조작이 본래의 느낌과 달라 아쉬웠습니다. 그래서 오리지널 아타리 컨트롤러를 컴퓨터에 연결해 쓸 수 있는 어댑터를 직접 만들기로 했습니다.
1단계: 컨트롤러 내부 살펴보기
컨트롤러를 열었을 때 놀랍게도 회로 없이 버튼 5개만 있었습니다. 이 덕분에 마이크로컨트롤러로 USB 변환이 매우 간단합니다. 분해하면서 먼지와 오염도 깨끗이 청소했습니다.
2단계: 필요한 부품 준비
중요: 이 프로젝트는 아두이노 우노, 나노, 메가에서는 작동하지 않습니다. HID(Human Interface Device) 역할을 할 수 있는 마이크로컨트롤러가 필요하며, ATmega32U4 칩을 탑재한 아두이노 마이크로(또는 프로 마이크로)가 적합합니다.
부품 목록:
아두이노 프로 마이크로
수 핀 헤더
USB-마이크로 USB 케이블
프로젝트 케이스 (3D 프린팅 예정)
3단계: 9핀 커넥터 핀아웃 확인
아타리 컨트롤러는 9핀 커넥터를 사용하며, 각 버튼마다 핀이 할당되고 그라운드 핀 1개가 있습니다. 즉 9핀 중 6핀만 사용합니다. 멀티미터 연속성 모드로 어떤 핀이 어떤 버튼에 연결되는지 확인했습니다. 아래는 제가 확인한 배선입니다.
예를 들어 발사 버튼을 누르면 주황색 선이 그라운드와 연결됩니다. 아두이노로 이를 감지해 해당 키보드 키를 컴퓨터로 전송합니다.
4단계: 케이스 제작 (3D 프린팅)
오래된 9핀 커넥터를 구하기 어려워 3D 프린팅으로 하우징을 만들었습니다. 수 핀 헤더를 아타리 9핀 커넥터에 꽂고, 출력한 하우징을 씌운 뒤 핀 뒷면을 접착해 고정합니다. 이렇게 하면 핀이 하우징에 정확히 정렬된 상태로 남습니다.
3D 프린팅 파일: Atari+Adapter_(2831_29).stl
5단계: 배선하기
9핀 커넥터의 색상별 핀 매핑을 확인한 후 다음과 같이 배선합니다.
검정(그라운드) → 아두이노 GND
주황(발사) → 아두이노 핀 3
초록(위) → 아두이노 핀 4
갈색(아래) → 아두이노 핀 5
파랑(왼쪽) → 아두이노 핀 6
하양(오른쪽) → 아두이노 핀 7
헷갈린다면 배선 다이어그램을 참고하세요.
6단계: 코드 업로드
아래 코드를 사용합니다. Keyboard 라이브러리를 활용해 버튼이 눌리면(LOW) 해당 키를 누르고(press), 떼면(HIGH) 키를 해제(release)합니다. 내부 풀업 저항을 사용해 별도 저항 없이 회로를 단순화했습니다.
// AtariController.ino 주요 로직
if (digitalRead(pin) == LOW) {
Keyboard.press(key);
} else {
Keyboard.release(key);
}
코드를 아두이노 프로 마이크로에 업로드합니다. 코드 전체는 첨부 파일(AtariController.ino)을 참조하세요.
7단계: 케이스 조립
3D 프린팅 파일엔 9핀 커넥터 하우징뿐만 아니라 상/하 케이스도 포함되어 있습니다. 아두이노를 하단 케이스에 고정하고(마이크로 USB 포트 구멍 있음), 9핀 커넥터를 전면부에 고정한 뒤 상단 케이스를 덮어 마무리합니다. 내부에 핫글루를 넉넉히 채워 강도와 무게감을 더했습니다.
출력 표면이 거칠면 사포로 다듬고 도색합니다. 아타리 본체 색상에서 영감받아 붉은 줄무늬 버전과 우드 그레인 버전을 만들었습니다.
8단계: 사용하기
아타리 컨트롤러를 어댑터에 꽂습니다.
마이크로 USB 케이블을 컴퓨터에 연결합니다. '키보드가 연결됨' 알림이 뜹니다.
키 매핑은 다음과 같습니다:
위 → W
왼쪽 → A
오른쪽 → D
아래 → S
발사 → 스페이스바
에뮬레이터 설정에서 키 바인딩을 조정하면 바로 플레이 가능합니다. OTG 케이블로 안드로이드 폰에서도 작동합니다.