[Arduino]SFC用マウス

・Arduinoで自作したスーパーファミコンマウスです。200円のマイコンで作れます。
・アナログスティックで操作します。
「マリオペイント」のカートリッジを持っているけど、スーパーファミコンマウスを持っていないという人にオススメです

YouTube 動画




Parts List
 VR1/2アナログジョイスティックDIP化キット
 http://akizukidenshi.com/catalog/g/gK-10263/
 SW1/2 タクトスイッチ http://akizukidenshi.com/catalog/g/gP-01282/
 U1 AVRマイコン ATmega168/P
 Arduinoのbootloaderを書き込みます。
 http://akizukidenshi.com/catalog/g/gI-03033/ 
 X1 16MHz セラミック発振子 http://akizukidenshi.com/catalog/g/gP-00525/
 CN1 ピンヘッダ 6pin
Arduino IDE使用時にUSBシリアルを接続します。
 
 CN2 SFCコントローラ用プラグ 7pin SFCコントローラ延長ケーブルを使う
SFCコントローラ延長ケーブル。切断してオス側を使います。

回路図
・ADコンバータを使って、アナログスティックのX軸とY軸を0~1023カウントとして検出します。中心が約512カウントです。このままだと値が大きすぎるので、128で割って送信しています。
・P/S(ラッチ)がLow→High→Lowに変化するまで待ちます。
・DAT(データ)から32ビットぶんのデータをスーファミ側に送信します。
・CLK(クロック)がLow→Highの立ち上がりのタイミングで次のDATに切り替えます。最初の1ビット目ではCLKは元からHighのままです。
・16ビット目のDATはLowである必要があります。これでゲームパッドかマウスかの判別を行っています。
・17~23ビット目がY軸の移動量。24~32ビット目がX軸の移動量です。

ゲームパッド用のアナログジョイスティックを使用した例。
ċ
snes_mouse.ino
(4k)
Matsubara Takuya,
2019/09/17 10:01
Comments