5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

micro:bit Advent Calendar 2022Advent Calendar 2022

Day 16

【micro:bit 2022】micro:bit V2 をゲームコントローラー(BLE接続の HIDデバイスのゲームパッド)にして Gamepad API と組み合わせてみる

Last updated at Posted at 2022-12-16

はじめに

この記事は、micro:bit Advent Calendar 2022 の 16日目の記事です。
(今月、アドベントカレンダー用の記事として公開したものでは、27記事目になったりしていますw)

今回の内容は、micro:bit のアドベントカレンダーの 7日目の記事(microbit-pxt-blehidを使ってオレオレHIDを数分でつくったはなし)で初めて知った「microbit-pxt-blehid」の話です。

micro:bit を手軽に、マウスやキーボードなどの HIDデバイスにできる!?

microbit-pxt-blehid について

@Inoue_Minoru さんの記事にも書いていましたが、microbit-pxt-blehid は、micro:bit V1 だと利用できないようです。
制約

さらに、公式の GitHub のページで情報を見てみることにします。
●bsiever/microbit-pxt-blehid: Micro:bit MakeCode support to act as a Human Interface Devices (keyboard, mouse, etc.) over Bluetooth
 https://github.com/bsiever/microbit-pxt-blehid

冒頭の部分を見ると、何に使えるかというのが書いてあります。
何に使えるか

  • Bluetooth接続 で Human Interface Devices (HID) の以下のサービスを扱える
    • キーボード
    • マウス
    • Media Keys (再生、停止、ボリュームの増減など)
    • ゲームパッド
    • Absolute Mouse (puts the mouse at a specific position on the screen) = ペンタブとかで使われているような位置座標の扱いをするやつっぽい

また、各OS での対応状況は以下となるようです。
各種OSでの対応
対応状況の表

個人的に、ゲームパッドを試してみたいと思いました。

microbit-pxt-blehid を試してみる

今回試す内容

microbit-pxt-blehid を使ったマウス・キーボードは既に試されていたので、自分はゲームパッドを試してみようと思います。

どうやら、公式ページからリンクが貼られていた動画のこのあたり ⇒ https://youtu.be/n4J5GN72N_4?t=382 から再生を開始すると、情報が出てきそうです。
ゲームパッドの利用例

上記のプログラムを元にしたものを作って、試してみようと思います。

プログラムを作る

まずは、MakeCode にアクセスします。
 ●Microsoft MakeCode for micro:bit
  https://makecode.microbit.org/

拡張機能の画面を開きます。
拡張機能

開いた画面で ble で検索しました。今回使いたい拡張機能が出てきました。
bleで拡張機能を検索

これは、Bluetooth系の拡張機能を使う際に出てくる、無線機能ブロックと併用できないよ、というやつ。ピンク色のほうのボタンを押して、次に進みます。
無線機能が使えないという話

拡張機能を追加したことにより、メニューが増えています。
追加されたメニュー

そして、今回試すゲームパッド関連のものはこちら(※ 一部抜粋して、掲載してみます)。
ゲームパッド
選べるボタン
パッドの選択肢

それでは、プログラムを作っていきます。
上で動画からキャプチャしたプログラムを見ると、どうやら変数を作成していた感じがしました。

同じ名前の変数(「buttons」)を作成してみます。
変数の作成

そして、if文のブロックや、micro:bit の A・Bボタン関連のブロックなどを追加して、以下のプログラムとしました。
image.png

あとは、画面右上のアイコンから設定画面を開き、ペアリング設定の変更を(これも、MakeCode で Bluetooth系のやつを作る時に、よく行うやつ)。
ペアリング設定

Gamepad API との組み合わせ

ここまで準備ができたら、ゲームパッドとして動作しているかを、以下の Gamepad API のテストサイトで確認してみることにします。

●Gamepad Tester - Check Controllers and Joysticks Online
 https://gamepad-tester.com

Mac と micro:bit のペアリング

Mac と micro:bit のペアリングを行います。
Mac の Bluetooth設定画面を開くと、micro:bit がペアリング対象として選択できるようになっていました。
micro:bitがペアリングの対象候補として表示されている

(この後、表示名が少し変わったりしました)

Gamepad Tester上での動作確認

Mac とのペアリングもできたので、Gamepad Tester を開き、Gamepad API での接続を有効化するために、micro:bit のボタンを押します。
そしてサイト上で接続されているような見た目になったら、micro:bit の A・B ボタンを押してみます。その結果、サイト上の B0 と B1 のところが反応しているので、ブラウザとの接続・ボタン押下のイベント取得はできたのが確認できました!

余談: Gamepad API 関連で書いた記事

今回も使った Gamepad API については、今月のアドベントカレンダー用記事の中の、以下の記事でも扱っています。
もしよろしければ、ご覧ください。

余談2: HID 関連で書いた記事

ちなみに、HID関連でもアドベントカレンダー用の記事をいくつか書いています。
これらも、もしよろしければ!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?