※個人の感想ですスマートフォン用の表示で見る※個人の感想ですこの広告は、90日以上更新していないブログに表示しています。2016-01-10スプラトゥーンが最高すぎてIchigoJamにアナログスティックを装備した話IchigoJamゲームパッドのアナログスティックを交換2015年の最高傑作。UゲームパッドのLアナログスティックがおかしくなってきた。走ってるのにゆっくり歩きになるとか、かなり致命的な症状が頻発するようになってきたのだ。ゲームパッドのAとBと+と-を3秒間押してキャリブレーションやり直したりしても改善したりしなかったりという状況はもう、アナログスティックの可変抵抗部品が磨耗したりして、いい感じの抵抗値にならなくなってきたんだろうなということで部品だけアマゾンで買ってみた。この部品、縦横に動く可変抵抗と押し込んだ時のスイッチが実装された小さな基盤。これをごっそり交換するので作業の難しさは特にない。特殊なネジを回すためのY字ドライバーさえあればね。見るで、交換してめでたしめでたし。イカちゃんはうまく動くようになってストレスフリー。あとは機械の不調を言い訳にできない実力の世界。(最近不調っす)こういう部品はどういうルートで出回っているんだろうか?純正なのかコピーなのか?新品なのか中古なのか?とか気になることは保留しつつ。「倒したら戻ってこない不良品」というアマゾンレビューについて追記(2016/6/26)アナログスティックのパーツ、アマゾンのレビューで見ると「スティックを倒したら戻ってこない不良品」ってのがたまにあるけど、そのことについて一言追記しておく。Uに装着すれば、そこまでの角度で倒すことはないからロックされることもない。確かにゲームパッドに装着せずに生のパーツのままスティックを倒したら戻ってこない。軽いクリック感でロックされる状態。逆方向に軽く力を加えれば元のセンターに復帰できる。これは不良品じゃなくてゲームパッドに装着すればそこまで倒すことはないくらい、生のパーツを無理やり倒している状態だと考える。「無理やり」と判断するかというと、このパーツはおそらくALPSのこのページにある部品。direction」に対して「46°max.」が倒せる範囲と記されている。生のパーツのままスティックを倒して戻ってこない時、これは確かにスティックの角度は46°(センターからすると、その半分の23°)を超えている。この時の角度はざっくり言うと約60°(センターから30°くらい)倒し込んでいる。この倒し方は仕様の範囲を超えた使用方法だから、戻ってこないことがあってもそれは不良とは言えない。不要になった方の部品は、捨てるのがもったいないのでちょっと調べて何かに使えないか考えてみて、結果このブログに思い出として記録しておくことになった。写真にあるように5ピンのコネクタが付いている。これがゲームパッドのメイン基盤につながるところ。テスター片手にそれぞれのピンの信号が何かを調べてみたので、以下に記す。GNDX(横方向のスティック位置。抵抗値は左>右)電源Y(縦方向のスティック位置。抵抗値は下>上)SW(スティック押し込み時にGNDとつながる)IchigoJamにつなぐ電源ONで即BASIC起動のおっさんホイホイなIchigoJamはデジタル入力もアナログ入力もできるので、つないでみることにする。いいコネクタを持ってなかったので、コネクタの裏側の端子に近くにあったフラットケーブルをペタペタ半田付けした。間にコネクタやらジャンバケーブルやら適当なものを挟んで基盤とIchigoJamを接続する。GNDにはIchigoJamのGND、電源にはVCC、Xはアナログ入力の5番目であるOUT1、Yはアナログ入力の6番目であるOUT2、SWはデジタル入力の1番目であるIN1に接続する。IchigoJamのBASICからアクセスするBASICのプログラムからはSWの方はIN(1)でポートの状態を取得できて、押し込んでいいないときは1、押し込んだときは0が得られる。XとYはANA(5)とANA(6)でそれぞれ0〜1023の値を取得することになるが、まずはデジタル出力になっている各端子を、アナログ入力に切り替えて使う必要がある。この切り替えのための-1出力は、アナログ入力を繰り返すだけなら初期化時だけやれば良い。Xは左に倒したとき最大値、中立センターで中間値、右に倒したときに最小値となる。大体の場合、端まで倒しきっても1023や0といった最大/最小値が得られることもないだろうし、中立にしても511が得られるわけでもないだろうって感じなので、キャリブレーションというものがあってだねって話になる。Yは上に倒したとき最小値、下に倒したときに最大値となるが、Xと同様にそんなにきっちりとした値が得られるわけではない。ゲームでは使い物にならないくらいの廃品再利用なので、新品だともっときれいな値が取れたりするのかもしれないけど、まぁとりあえずあるものでやってみよう。プログラムスティック位置にアスタリスクを表示して、スティックをグリグリしたらアスタリスクがグリグリ画面をうろうろする。画面中にアスタリスクがたまりすぎたらスティックを押し込んで画面クリア。そんなプログラムを作ってみた。キャリブレーションも何もないのでAD変換値そのままを画面に荒くプロットしているようなものだが、ポインティグデバイスを装備してIchigoJamが急激に進化した気分が味わえた。4010行目はコメント。FILESコマンドでファイル一覧が表示されるときに「ANALOG」と表示されるようにするためのコメント。20行目で画面クリア。30行目でデジタル出力端子OUT1とOUT2を両方ともアナログ入力に切り替える。ここまでが初回限りの初期化処理。40行目でXとYにそれぞれAD変換値を取り込む。50行目はコメンドアウトしているが、有効化すれば前回位置アスタリスク消去後に出力されるようになるので、アスタリスクが画面中にたまることはなくなる。60行目、70行目はAD変換値を画面サイズに収まるように変換している。Xは左>右なのでその反転も含めて実施してUとVに設定する。80行目、計算したU、V、そしてスティク押し込み状態(押し込んで0)を画面最上行に表示する。桁数が増減したときの上書きがきれいになるようにDEC$()の第2引数に桁数指定を実施している。昔のBASICで言うところのUSINGとかなんとかか。90行目、新しい位置へのアスタリスクの出力。100行目、この時点でスティックが押し込まれていたら画面を消去して気分をリセット。110行目、アナログ入力処理へジャンプ。時間待ちも何もなしに、全速力でこのループを走らせている。まとめ余った部品をIchigoJamで再利用することができた。文字しか出ない画面でもダイレクトに位置指定できるポインティングデバイスを接続するとちょっとワクワクすることがわかった。Uゲームパッドの部品交換で不要部品ができたときは今回のような廃品利用に挑戦していただくのもよいかと。読者になる検索リンクはてなブログブログをはじめる(無料)お知らせ最新記事ロードバイクの乗り始めに何を買ったのか(5)ロードバイクの乗り始めに何を買ったのか(4)ロードバイクの乗り始めに何を買ったのか(3)ロードバイクの乗り始めに何を買ったのか(2)ロードバイクの乗り始めに何を買ったのか月別アーカイブはてなブログをはじめよう!rohiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。