Switchのコントローラで動く改造オモチャを作ろう! Pythonで『1-2-Switch』風リアル「真剣白刃取りゲーム」を実装したよ【ソースコードも掲載】

1

2

3

「Joy-Con」のボタン入力をRaspberry Piで取得しよう

 実は、「Joy-Con」をパソコンに認識させるのはとても簡単だ。普通のBluetoothのゲームパッドと同じように、ペアリングするだけで扱えるようになるのだ。

SRとSLの間にあるボタンを長押しして、緑のLEDが光ったらペアリング開始の合図。

 あとはWindowsでもMacでも、「Joy-Con(L)」のような表示が出てきたらペアリングしてやればいい。これでSteamなどのゲームをプレイすることができる。
 しかし、今回はせっかくなので、「Raspberry Pi」というものにつないでみよう。簡単にいうと、手のひらサイズの小さなパソコンだ。「Raspbian」というLinuxのOSが動いている。

Nintendo Switchのように外に持ち出せそうな小ささだ。

 しかも最新の「Raspberry Pi3」にはBluetoothが内蔵されているので、すぐに「Joy-Con」をペアリングできる。これで5000円くらいなので、いい時代になりましたね……。

 まずはペアリングしてみよう。「Joy-Con」のボタンを長押ししてみる。

 すると、ペアリング可能なデバイスに「Joy-Con」が出てくる。ペアリングしよう。

 つながったら、ボタン入力を取得するプログラムを書こう。
 「Python」というプログラミング言語と、「pygame」というライブラリを使う。これを使うことで、ゲームパッドの入力が簡単に取得できるのだ。「raspberry pi pygame 入力 取得」などで検索すると、この組み合わせで書かれたプログラムがヒットする。先人の知恵を積極的にお借りしよう。

 プログラムを動かすとこんな感じ。「Joy-Con」のボタンを押すと画面が反応している。ちなみに、そのサイト(Pythonでゲームパッドを操作して、ラズパイを操作しよう。挑戦編 | Divide et impera)の記事を元に僕が書いたコードはこれ。

 長々と書いているように見えるが、実際にデータ取得に関係してくるところは11、14、17行目だけだ。そう思うと、けっこう簡単そうに見えてこないだろうか? 17行目で、実際のボタン入力を画面に表示するようにしているので、表示された値とボタンが対応付けられるはずだ。もちろん、同時押しも読み取ることができる。
 ちなみに、ジャイロセンサーによる「Joy-Con」の傾きを取得するというのは(今のところは)できない。世のガジェット改造好きがこぞって解析しているはずなので、情報が出てくるのを待ちましょう。

 

「Joy-Con」の入力でサーボモーターを動かそう

 これでボタン入力を取ることができたので、次はサーボモーターを動かしたい。

 「Raspberry Pi3」であれば、「pigpio」というライブラリがすでにインストールされているので、これを使うのが簡単だ。
 やり方は、例によって「pigpio サーボモーター」のように検索すると出てくるはずだ。

たくさんピンが出ているところがあるので、対応しているピンとサーボモーターをつなぐ。

 つなぐ必要があるのは「5V」「GND」「PWM」と書かれたピンだ。どこがどのピンかは、Raspberry Pi GPIO Pinoutというサイトを見ておくといいでしょう。
 本当は、サーボモーターの電源は「Raspberry Pi」からではなく、電池など外部のものを使用した方がいい。ただ、とりあえず動かしたい! という場合は直接電源を取ってしまってもいいでしょう。

 「pigpio」でモーターを制御するには、事前にシェルで下記のコマンドを実行しておく必要がある。この辺りは馴染みがない人にはちょっと難しいかもしれないが、どうにか調べてチャレンジしてみてほしい。けっこう簡単です。

 サンプルコードはこちら。「Joy-Con」の入力を読み取ったときよりも、さらに簡単だ。

 2つ目の数字を500〜2500くらいの値にすると、それに合わせてサーボモーターが動く。この上限と下限については、モーターに応じて変わるので、まずは1500くらいにしておいて調整していく。そうすると、“いきなり限度を越えて動かして壊してしまう”ということにならないのでオススメです。

 ここまでで、前述した自動での攻防が実現できる。
 先ほどのボタン入力のプログラムと組み合わせて、「Joy-Con」のボタンが押されたらサーボモーターを動かすようにしてみよう。

 

 

 Aボタンで叩く、ZRボタンで戻すようにしてみた。

 「Joy-Con」で『ポカポンゲーム』を操ることができた!
 破壊されたサーボモーターが脳裏をよぎる。ちゃんと動いたことの感動もひとしおである。

 ここまでできたら、いよいよ実戦だ。掴み取るぞ白刃を。

1

2

3

  • このエントリーをはてなブックマークに追加

この記事に関するタグ

関連記事

SNSで話題の記事

新着記事

新着記事

連載・特集一覧

カテゴリ

ゲームマガジン

関連サイト

脳ゲーマー ヒデヲ
若ゲのいたり

カテゴリーピックアップ