2023 年にやったこと

そろそろ 2023 年も終わりという事で、 2023 年の活動を振り返ってみます。

TinyGo 関連

去年 (2022/11) に書籍 「基礎から学ぶ TinyGoの組込み開発」 をリリースしました。 詳しくは以下に記載していますが、 2023 年はこの書籍に基づく、というのか、 TinyGo の活動をさらに活発に行っていました。

sago35.hatenablog.com

Go Conference 2023 でハンズオン開催 + LT 登壇

TinyGo で自作キーボードを作るハンズオン

2023/06/02 開催の Go Conference 2023 では、 TinyGo で自作キーボードを作るハンズオンを開催しました。 詳しくは以下の記事と、当日のハンズオン用のサイトを参照という感じです。

sago35.hatenablog.com

github.com

LT: TinyGo で作る自作キーボードの世界

当日にハンズオンをやりつつ、 LT でも 「TinyGo で作る自作キーボードの世界」 というタイトルで登壇しました。 Go で簡単に USB HID キーボードは作れるよ、というような紹介をする LT です。 この発表をもとに 2023/12 の Go Conference mini 2023 Winter IN KYOTO で、より深いトーク (20 分) をしました。

gocon.jp

www.youtube.com

資料はこちら。

docs.google.com

Go Conference mini 2023 Winter IN KYOTO で登壇

この Go Conference はオフライン開催だったこともあり、いろんな人と再会したり交流したりができました。 また、自身にとっても数年ぶりのオフライン登壇となりました。

自分は、ライブコーディングするのが好きなので、 TinyGo でこんな簡単にキーボードが作れるよ、というのを示すべくトライしました。 結果、 Twitter 等で良い反応をいただけてとてもうれしかったです。

このあたりの話は以下にあります。 振り返ると、今回のトークは TinyGo + 自作キーボードの話として 2023/03/26 の Kyoto.go → 2023/05/13 の Umeda.go → 2023/06/02 の Go Conference 2023 → 2023/12/02 の Go Conference mini 2023 Winter IN KYOTO と何度も発表をしてきた集大成になっています。 自分としても、一年の締めくくりとして良い発表ができた、と思いました。

sago35.hatenablog.com

www.youtube.com

資料はこちら。

docs.google.com

自作キーボード

書籍リリース後はひたすら自作キーボード作ってたし、イベント登壇などを含む自作キーボード関連の活動をしていました。 色々ありますが軽く紹介。

データ等は以下のリポジトリにあります。 (※無いものもありますが)

github.com

sgkey と wiokey

以下は 2023/06 の Go Conference で実施したハンズオンに向けて作った基板です。 TinyGo で自作キーボードを作りたい、って思ったときに基板が手軽に手に入る状態を作りたかったので作成。

sgkey と wiokey については以下から購入できます。

sago35.booth.pm

fric10key

社内で使っているシステムをテンキーだけで触れるようにするために作ったテンキー。 お渡ししてからずっと使い続けてくれていて、こちらとしてもとてもうれしい。

sgkb 0.4.0

HHKB JIS 版と同じキー配列の分割キーボードで、すでに 4 バージョン目。 今回からホットスワップ対応となり、キースイッチの交換が手軽にできるようになりました。 個人的にもとても気に入っているし、社内でこのキーボードのユーザーもたくさんいて面白い状態に。

xiao-kb01

ロータリーエンコーダーと LED を使いたくて作ったマクロパッド。 3D プリンターでキープレートというかケースを作る、というのもトライしてみた。 この経験がその後の 3D プリンターを組み合わせたものにつながっていってる。

sgh60key

市販ケースに入る形のものを作りたかったので、ということで GH60 ケース向けのものを作った。 レイアウトは HHKB JIS と同じ。 右手のスペースキー位置にジョイスティックを付ける、というトライも実施してる。 世間ではトラックボール付きが流行ってるけど、自分はジョイスティックを付けてみた、という感じ。 割と気に入ってる。

sg48key

キー数が少ないキーボードは、あまり乗り気じゃなかったのですが、なんとなく作ってみたもの。 事前に 60% キーボードのレイアウトで 48 キーにトライしてていけそうだったので作ってみた。 これもジョイスティック付き。 今は、基本的にはこのキーボードを使っていて、コード書いたりは 60% を使うことが多い、という感じ。 徐々に慣れていくと、これでよくなりそう。

DIY ハンドルコントローラー

レースゲームをするためのハンドルコントローラーの自作をしています。 元ネタというか大部分を作ってくれたのは @nobonobo 氏で、自分はそれに対してパドルシフターを追加、ステアリングスイッチを追加、という改造を行いました。

@nobonobo 氏による記事はこちら。

www.switch-science.com

パドルシフターの CAD データ、ソースコードはこちら。 ステアリングスイッチの基板データは登録できてないので、そのうち登録予定ということで。

github.com

実際に使って遊んでいる様子はこちら。 FFB の部分などは動画からは伝わらないと思いますが。

Flutter

兵庫県の三ノ宮にある ハックバー で話をしていると店員さんも来ている人も Flutter 激推しだったので、という理由で使い始めてみました。 作ったものはオフロードバイクのレース用のものですがこんな感じの画面を作りました。 あ、 NFC タグを読み取るアプリの画面が手元にないな。。。

BLE ビーコンでラップ集計をするアプリ

バイクの車体側からは BLE Advertising をし続けていて、ピットにおいたパソコンでその信号を拾えたら集計下、という感じにしています。 去年も使ってたのですが、その時点では画面周りは質素でした。 今年は Flutter で作り直したので、ついでに時計と温湿度計を追加したりしてました。 簡単に作れてよかった。

NFC タグを読み取ってラップ集計をするアプリ

先程のは集計対象が自分のチームのバイクだけ、というやつですが、今回のはレーススタッフ側なので参加車両すべてに対してラップ集計を行います。 以前から集会してきたバイクのゼッケンを手入力、それをデータとして蓄えておく、というような形のものを Go で作っていました。 今年はそれに追加して 「手入力の代わりに NFC タグを読み取る (Android / Flutter)」 と 「NFC タグを読み取ったら各種情報を画面に表示する (PC / Flutter web)」 という部分を作り足しました。 作り足した部分は両方 Flutter で作りました。

こんな感じで読み取りを実施します。

NFC で読み取れたら、こんな感じで自分のゼッケンなどが画面に表示されるので、それを確認したら進んで良い、というスタイルにしました。 このやり方であれば、レース中にデータ入力を確認しつつ進めることができるので、データの正しさのチェックがとても楽になります。

ちなみに貼り付けた NFC タグは NFC213 タグというもので 100 枚単位での購入で 1 枚あたり 23.3 円でした。 1,000 枚単位だと 1 枚あたり 19.2 円というところ。 エンデューロごっこというレースでは合計 100 台のエントリーだったので NFC タグの費用としては約 2,300 円ぐらいになります。 例えば以下から購入することができますし、日本の Amazon 等からも購入可能です。

https://ja.aliexpress.com/item/4001260033454.html

まとめ

2023 年は TinyGo でキーボードと DIY ハンコンを作り続けた一年でした。 来年も楽しくやっていきたい。