📚

スーパーツイ廃コントローラをRaspberry Pi Picoで作る。

2022/06/01に公開

というわけで、スーパーツイ廃コントローラをRaspberry Pi Pico を使って作りましす。

『マイコンはじめの一歩! Arduino IDEではじめる100year: 1st』 https://amzn.to/3PWol7W という勝 純一 さんの本を参考に、

まず、Raspberry Pi Pico に勝 純一 さんの作ったファームウェアを入れます。
https://drive.google.com/file/d/10COQre_7RQml7M-m7lWoKjfEUUsGDiRI/edit

そして、
http://100year.cocolog-nifty.com/blog/2010/03/arduino-5b4c.html
のサイトにある「SFCPad.zip」をダウンロードし、解凍

SFCpad.cpp と SFCpad.h
#include "WProgram.h"
の文を
#include "Arduino.h"

に変え、フォルダごとArduinoのライブラリに入れ、
100year さんのサイトを参考にスーパファミコンのコントローラのケーブルを切って、
Raspberry Pi Pico に
赤 : GP5
黄 : GP7
橙 : GP6
白 : 3V3
茶 : GND
に繋げます。
そして、

#include <SFCpad.h>
#include <USBMouse.h>
USBMouse *mouse;
SFCpad pad(5, 7, 6);

void setup(){
  mouse = new USBMouse();
}

void loop(){
  unsigned int rawData;
  rawData = pad.readRaw();
  if(rawData == 16){//上
    mouse->move(0,-10);
  }
  if(rawData == 32){//下
    mouse->move(0,10);
  }
  if(rawData == 64){//左
    mouse->move(-10,0);
  }
  if(rawData == 128){//右
    mouse->move(10,0);
  }
  if(rawData == 512){//スクロール上X
    mouse->scroll(1);
  }
  if(rawData == 2){//スクロール下Y
    mouse->scroll(-1);
  }
  if(rawData == 256){//左クリックA
    mouse->click(MOUSE_LEFT);
  }
   if(rawData == 1){//右クリックB
    mouse->click(MOUSE_RIGHT);
  }
  
  delay(10);
}

を Pico に書き込みます。

そして完成!!

Discussion