ArduinoベースのAtari 2600コントローラーアダプターの製作
必要な部品と材料
| Arduino Micro | ×1 |
必要な工具と機械
| はんだごて(汎用) |
使用するアプリとオンラインサービス
- Arduino IDE
プロジェクト概要
近年、ビンテージコンピューター技術に強い関心を持つようになりました。最も興味深く影響力のあるクラシックデバイスの一つが、1977年に発売されたAtari 2600です。残念ながら私が子供の頃にはすでに20年以上前の機種だったため、プレイする機会がありませんでした。
最近、オンラインで比較的安価なAtari 2600を見つけ購入しましたが、電源を入れると「プスッ」と音を立てて動作しませんでした。古い技術を扱うリスクの一つです。動作保証はなく、煙を出すだけの代物にお金を払うことになりかねません。
当然の解決策はAtariエミュレーターをダウンロードすることですが、キーボード操作ではオリジナルハードウェアの感覚が味わえません。そこで、オリジナルのAtariコントローラーをPCに接続してプレイできるアダプターを自作することにしました。それが本プロジェクトです。
ステップ1: コントローラー内部を確認する




まずAtariコントローラーの仕組みを理解するために分解しました。驚いたことに、中身は制御回路なしの5つのボタンのみでした。つまり、マイクロコントローラーを使えばUSBへの変換は非常に簡単です。分解ついでに汚れをすべて清掃しました。
ステップ2: 必要なもの


重要: このプロジェクトはArduino Uno、Nano、Megaでは動作しません。HID(Human Interface Device)として振る舞えるマイクロコントローラーが必要です。ATmega32U4搭載のマイクロコントローラーが該当し、Arduino Micro(Pro Micro)に搭載されています。
パーツリスト:
- Arduino Pro Micro
- オスピンヘッダー
- USB - Micro USBケーブル
- プロジェクトケース(3Dプリント予定)
ステップ3: 各ピンの役割を調べる


Atariコントローラーには9ピンコネクタがあり、各ボタンに専用ピンとグランド用ピンが1本ずつ割り当てられています。つまり9ピン中6ピンが使用されています。テスターの導通モードでどのピンが繋がるか調べれば対応関係がわかります。面倒な場合は以下の図を参照してください。
例えばファイアボタンを押すとオレンジ線がグランドと導通し、これがボタン押下となります。Arduinoでこれを検知し、対応するキーボードコマンドをPCへ送信します。
ステップ4: ケースの製作




9ピンコネクタはすでに製造されておらず入手困難です。解決策は3Dプリントです。9ピンコネクタのハウジングをプリントし、オスピンヘッダーを差し込んでArduino側のコネクタと接触させます。3Dプリント用ファイルは以下から入手可能です。
Atari+Adapter_(31_29).stl
作り方:オスピンをAtari 9ピンコネクタに差し込み、その上からプリントしたコネクタを被せ、ピンの根元を接着剤で固定します。コネクタを外すとピンがプリント側に残り、完璧に位置合わせされます。
ステップ5: 配線

9ピンコネクタのどの色がどのピンに対応するか確認の上、以下のように配線します:
- 黒 線 → Arduino GND
- 橙 線 → Arduino ピン3
- 緑 線 → Arduino ピン4
- 茶 線 → Arduino ピン5
- 青 線 → Arduino ピン6
- 白 線 → Arduino ピン7
わかりにくい場合は配線図を参照してください。
ステップ6: コードのアップロード
使用するコードは後述します。Keyboardライブラリを活用し、特定のボタンがLOWになったら対応するキーボードキーを押下、HIGHになったら離すというif文の羅列です。
Keyboardライブラリは非常に簡単で、Keyboard.press(119); でキーコード119(ASCIIで'W')を押下、Keyboard.release(119); で離します。内部プルアップ抵抗をコードで有効化しているため、外部抵抗のハンダ付けは不要です。コードはArduino IDEで開くとコメントで詳しく説明されています。
Arduino Pro Microにアップロードしたら次のステップへ進みます。
AtariController.ino
ステップ7: ケースの組み立て



3Dプリントファイルには9ピンコネクタハウジングのほか、基板を収納するトップ/ボトムパーツが含まれます。これらをプリントしたら、ボトムパーツ(Micro USBケーブル用スペースあり)にArduinoを接着し、フロントに9ピンコネクタを接着します。両方が固定できたらトップパーツを接着して完成です。内部にホットボンドを多めに入れると強度が増し、適度な重みで安っぽさが軽減されます。
予算版3Dプリンターだと表面が粗くなるため、サンドペーパーで研磨してから塗装します。Atariコントローラーと本体に倣い、赤いストライプ版と木目調版の2色を作りました。
ステップ8: 使い方


完成したら実際に使ってみましょう。
- Atariコントローラーをアダプターに接続
- Micro USBケーブルをPCに接続(「キーボードが接続されました」通知が出ます)
キー割り当ては以下の通りです:
- 上 → W
- 左 → A
- 右 → D
- 下 → S
- ファイア → スペースバー
エミュレーター側でキーバインドを調整すれば快適にプレイできます。OTGケーブルがあればAndroidスマホでも動作します。
ご質問があればコメントでお気軽にどうぞ!
コード
- AtariController.ino
AtariController.ino Arduino
No preview (download only).
カスタムパーツとエンクロージャ
Atari+Adapter_(31_29).stl
製造プロセス
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- Arduino Nano R3で本格的なCNCマシンを自作する
- Earth Analyzer: 農業支援のための高度IoT環境監視ローバー