2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

自作キーボードの技術でスクフェスコントローラーを作る

自作キーボードの技術を使って、スクフェス1専用のコントローラーを作りました。
Pro Microqmk_firmwareを使っているため、キーボードとして文字を打つことも可能です

実機でも出来なくはないのですが、設定が大変なためNox Playerを使用しています。

作り方

1 筐体の作成

千石電商 秋葉原本店等で売っている適当なアルミケースを買ってきて、ボタンが入る箇所にドリルで穴をあけます。
almi.PNG

穴を開けたらテーパーリーマーを使ってボタンが入るまでひたすら拡張し、ボタンをはめます。
ボタン自体は三和電子の通販サイトや千石電商ラジオデパート店で購入できます。
技術力より腕力が勝負です。穴の拡張で半日かかりました。

2 キーボードとして実装する

自作キーボードお馴染みのPro Microを、ビニール被覆銅線を用いてボタンに接続します。
ボタン側はファストン端子を使えばあとから取り外しができるのでメンテが楽になります。

ボタンの片方は全てGNDに接続し、もう片方はそれぞれのピンに接続します。
いつものキーボード組み立てではダイオードを使いますが、今回は不要です。
図にすると次のようになります。回路図とかは書き方分からないので察してください

私はリセットスイッチを実装しましたが、ファーム焼くときくらいしか使わないので別になくてもいい気がします

3 LEDの実装

自作キーボード会で定番のSK6812MINI
しろとり氏の発明無限の可能性を使っています。
この辺りは難易度が高いので、分かる人以外はお勧めしません。

4 ファームの書き込み

QMK公式 からcloneし
make handwired/lovelive9:defaulte
をしてリセットスイッチを押します。
リセットスイッチがない場合、Pro MicroRSTGNDをピンセットで一瞬ショートさせます。
環境構築については公式ドキュメントプログラマーではない人向けのQMK Firmware入門が参考になります。

5 動作確認&マッピング

全てのボタンがレイヤーキーになっているため、2ボタンを押して何か入力されるか確認していきます。
(Shiftキーになってるボタンもあるので3ボタンで確認が安全です)

10個以上のレイヤーがありますが、その辺はkeymap.cを参照してください。
次の順番で同時に押していくことで、音ゲーモードになります。
このモードのときは1~9が入力されるので、これをNoxPlayerでマッピングしていきます。

苦戦したこと

LT関数

長押しするとレイヤー、一瞬押すとキャラクター名が入力されたら面白いと実装に挑戦。
キーマップでLT(レイヤー名,キーコード)とやると
「一瞬押すと指定したキー、長押しでレイヤー」 という風に、1キーに2つの動作を割り当てることが可能です。
これを使えば簡単かなーと思ってたのですが、この関数はデフォルトキーコードにしか対応しておらず、
カスタムキーコードは使えません。
仕方なく、自分で実装する羽目になりました。

UNICODE対応

苦戦というか綺麗な方法では無理でした。
1プッシュで「黒澤ルビィ」と入力されるようにしたかったのですがUNICODEは闇でした。
OS毎に別々の対応が必要であり、特にwindowsだとWinComposeというソフトを入れないとまともに使えません。
(レジストリを書き換えたり、MSYSなど一部のソフト上ではちゃんと入力されます。)
ハード側だけで完結するのも自作キーボードの良さなので、WinComposeはちょっと抵抗があります。
公式ドキュメントemojiキーボードを実現する記事が参考になりました。
結局諦めて「KUROSAWA RUBY」になりましたがUCIS_ENABLEとかいう
誰が何の目的で実装したのか分からない謎機能を発見出来たので収穫自体はありました。

LED

rgblight_sethsv_atsethsv
などのLED操作の関数を入れてコンパイルしましたが、未定義だと怒られてしまいました。
しかしLED自体は光っています。
必要そうなものをincludeしましたが状況は変わらず、悩むこと2時間。
rules.mkでLED関連の設定をyesにしていないだけでした。

作ってうれしかったこと

物理ボタンでスクフェスが出来る

個人的な話ですが、タッチパネルより物理ボタンで音ゲーをするのが好きです。
アーケード版のスクフェスもありますが、寒い中外出するのも面倒なので家で出来るのは最高です。

自作キーボードに詳しくなった

配線の為に自作キーボード設計入門を読んだり
ファームを書くときもqmk_firmwareに入っている様々なキーボードのコードを見たりと勉強になりました。
知らない関数とかもたくさんあって勉強になりました。

ゲーム中のtwitterが捗る

格ゲーや音ゲー中にtwitterするときって、みなさんどうしていますか?
机があまり広くないので、アケコンを退けてからキーボードを引っ張り出してツイートしていました。
これならばキーボードとして機能しているのでそのままツイートが出来ます。理論上は。

自由自在のLED

ボタンが光る音ゲー用コントローラーは数多ありますが、大抵は単色だったり、決まった発光パターンです。
キー入力と連動させて自由自在に色を変えれるというのは、無限の可能性を感じました。

乾燥

ネタで作ったつもりが、実用的なものが出来てしまいました。
自作キーボードはファーム、回路、プレート含めオープンソースが多く
今回もMiniAxeの回路やQMK上の様々なファームのコードが物凄く参考になりました。

電子工作など分からん人間でもこういうの作れるので、自作キーボードに手を出して良かったと思います。



(改造ペンライトはライブによっては禁止されている場合があります。使う場合は自己責任でお願いします)

  1. ラブライブ!スクールアイドルフェスティバル 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?