その他

【BongoCat】CorneCherryのOLEDをカスタマイズする

linuslab

corne cherryのOLEDが寂しかったのでBongoCatを住ませました。

少しコードの改変はいるものの、それほど手間がかからずに導入できたので実装方法を解説します。

OLEDに寂しさを感じる方は是非挑戦しみてください!個人的な満足度は非常に高いです。

完成系

OLED上にBongoCatが表示させる。キー入力が無い時は微妙に揺れながら待ってくれていて、キー入力があると左右の手でbongoしてくれる。(かわいい)

corne cherryのOLEDにbongoCatを実装した

事前準備

QMKファームウェアのビルド環境

コードを改変するためビルド環境及びFWの焼き込み環境が必要です。

公式の案内に従ってビルド環境を用意して下さい。

QMKファームウェアの焼き込み環境

corneの制作過程で用意したものと同じでOKです。

BongoCatのソースコードをダウンロード

こちらのGitHubからSatisfaction75用のbongoCatのソースコードを入手します。

今回はこのコードを流用して実装します。

実装してみよう

改変対象のコード

QMK_firmware内のvia対応のcorneファームウェアを改変します。

具体的な場所は以下の通り。

ファイル設置場所

qmk_firmware > keyboards > crkbd > config.h | crkbd.c | rules.mk

実装手順

corneはOLEDが2つ搭載されているため、bongoCatのGit内に記載のあるHowToUseに従っても正しく動きません。本家を少し改変した以下の実装を行うことで導入ができるようになります。

bongo.hの設置

GitHubからダウンロードしたファイル内のbongo.hをcrkbdディレクトリにコピー

config.hの改変

confilg.hに以下の1行を追加

#define BONGO_ENABLE
rules.mkの改変

rules.mkに以下の3行を追加

OLED_DRIVER_ENABLE = yes
OLED_DRIVER = SSD1306
WPM_ENABLE = yes
bongo.hの取り込み設定

crkbd.cに以下を追加。特にこだわりが無ければ #include QMK_KEYBOARD_H の次の行に入れておくと安心です。

#ifdef BONGO_ENABLE
#include "bongo.h"
#endif
oled_task_userの改変

crked.c 内のoled_task_userを以下の通りに変更する。

bool oled_task_user(void) {
    if (is_keyboard_master()) {
        oled_render_layer_state();
        oled_render_keylog();
    } else {
        draw_bongo(false);//追加
        //oled_render_logo(); //削除(既存コード)
    }
    return false;
}
完成!!

あとはビルドして焼き込めばOK!

実装にあたっての補足

BongoCatのシンプルモード

Step5で追記したdraw_bongoの引数をTrueに変えると表示がシンプルモードに切り替わります。

シンプルモードではVPMの表示が無くなり、全面にBongoCatが描画されます。

VPMが動かない

corneではVPMの表示が常時0となっており、VPMが表示できないようでした。

特にVPMが分かっても意味がないところもあるので、私はキーの入力回数をカウントして表示するように変えています。

まとめ

いかがだったでしょうか?

この記事ではCorneCherryのOLEDに可愛いキャラクターを表示する方法を解説しました。

先人のソースコードのおかげでそれほど手間もなく実装できるので、QMKファームウェア改変の入門としては非常に良い素材かと思います。

今回は趣味に走った記事になりましたが、普段はマーケティングや業務効率化に関して発信していますのでご興味のある方は是非他の記事の閲覧もお願いします。

ABOUT ME
zaiwa
zaiwa
プロダクトマネージャー/デジタルマーケター
年功序列の日本企業でプロダクトマネージャーとデジタルマーケターを担当している。

転勤を繰り返えす為に専門性が身につかない状況に焦りを感じ、2017年から専門性人材を目指して活動開始。数年で社内の認定制度に合格し専門職へのキャリアチェンジに成功する。

AIやツールを用いたによる業務効率化に強く、成果を出しながら稼働を最小限にする方法を日夜研究中。
記事URLをコピーしました