分解して挫折しました。
はじめは良かったのですが、3Dスティックまで分解して萎えました。
いつもコントローラー作るときは、信号を読むのではなく、1ボタン1信号のパラレル信号を引き出して、外部でシリアル変換する用のマイコンを設置して、オリジナルのプロトコルで通信するように作っています。
そのマイコンはだいたいいつも手持ちのH8/3048なのですが、3DスティックがなんとX軸Y軸方向に2つのロータリーエンコーダーで構成されていました。
とりうことは、位相計数モードで読み取ることができるわけです。
プレステはスティックが可変抵抗なのでH8のADスキャンモードで4軸入力できました。
が、H8/3048には位相計数モードはITU2の1つしかありません。
となると、コレだけのためにデュアルCPUを実現する必要があると・・・。
しかし、8月6日までにやらなければいけないことはたくさんあって、コントローラーにばかり時間は避けないので今回N64を使うのは無理・・・と。
ショボーン..._φ(・ω・` )
そこで、PSのコントローラーを再び使おうかとも思ったのですが、やはりちょっと違った素材を使いたい。
ということで、今回は・・・
スーファミです(笑
あと、今回はコマンドを読み取って結果を入力時に送信するのではなく、とりあえず12ボタンの状態をリアルタイム(実際は10ms毎)に送信して、ロボット側で柔軟に対応するようなしくみにしています。
で、送信に関して、12bit一セットの通信をしてもいいいのですが、通信関係をこれから作りこむのも大変だったので、ありえない同時押しを削除していき、12ボタンを8bitで表現し、既存のchar型に格納できるようにすることで、サンプルプログラムで送信できるように工夫しました。
3Dスティックを使った場合は、文字列処理でもしようかと思ってたのですが、1BYTE送信だと簡潔でいいので、意外と楽にまとまってよかったような。
でも、やっぱりN64のコントローラー使いたいので、8/6のロボゴング後には、手を入れて行きたいと思う。
ROBO-ONEには間に合えば良いなー。