2025年にinajobが作ったもの

今年も自分の趣味でいろいろと物を作りました。

本当は1つずつブログ記事を書くくらいの情報量があるのですが、今年はブログ記事は少な目で来てしまったので、ここで一気に紹介してみようと思います。

 

Yjsで共同編集にAPIから参加できるか試す (Gemini CLI)

とくに公開しているものではないですが、前から気になっていた共同編集Webサービスを作るためのライブラリであるYjsを使って共同編集のメモサービスを作りました。

さらに、そのサービスに対して、API経由で横から書き込みができるかどうかの実験を行いました。

 

特に問題なくAPIから書き込めました。Cosenseのような共同編集Wiki的なサービスでBotからの書き込みをサポートしたものを作れるなぁと確認しました。

 

さらにここから、人間がこのメモサービスに書いていると、どんどんLLMが割り込んできて書き込みを追加してくる謎のWebサービスを作りました。

github.com

LLMでチャットのログをWiki化する

私が管理しているDiscordサーバー「inajob川」のチャットの履歴を食わせてWikiのようなデータを作成する実験を行っています。

普通にチャットで会話しているだけで、再利用可能な知見がたまっていく体験は面白いです。

 

その成果は以下のWebページで公開しています。

inajob.github.io

 

HanamuguriをQMKでも動くようにする

以前作成した40%キーボード、Hanamuguriのメインボードを RP2040-ZeroからProMicroに変更しました。

よりスペックの低いボードに移行した感じですが、どうもRP2040-Zero + KMKの組み合わせで動作しない端末があるという問題にあたり、いっそかれているProMicro+QMKの方が良かろうということで、この改造をしました。

このキーボードには上部分にユニバーサル基板の領域があるので、こういう改造がし易くて良かったです。

inajob.hatenablog.jp

16×16のフルカラーLED表示機(一部Gemini CLI)

よくあるNeoPixelを16×16マトリクスに配置したものを使って、素朴な表示機を作成しました。

コアはArduino Nano互換ボードで、u8g2ライブラリを使いひらがなを表示する装置としてまずは作り始めました。

Flash ROMの容量が小さいので、必要なフォントだけをROMに置く方法を調べました

scrapbox.io

3Dプリンタでグリッド状の枠を用意し、初期バージョンは段ボールの筐体に本体を収めました。

 

その後筐体全部を3Dプリンタで作り直し、ゲームが遊べるようにコントローラを取り付けたりしています。

 

 

 

もう少しやりたいことがあるので、来年も作りこんでいこうと考えています。

 

また、この装置の内部で利用するためのUSB電源を2つに分岐する回路を3DPCBの技術で作りました。

このくらいの簡単な回路であれば3DPCBが便利だなと感じています。

 

 

また、このガジェット用のプログラムはemscriptenを使い、Webブラウザでも動作できるような仕組みで開発しており、実機を使わずともデバッグができるようになっています。

 

4.3インチESP32-S3開発ボードとHanamuguriつなげる部品

なかなか進捗していませんが、「日本語入力ができる小型端末」の開発計画としてESP32-S3をターゲットにして実験を進めています。

この実験のためのプロトタイプとして4.3インチESP32-S3開発ボードと自作の40%キーボードHanamuguriの組み合わせを利用しています。

これをいい感じの角度で固定するための部品を3Dプリンタで作成しました。

 

Luaをベースとした日本語入力をサポートしたソフトウェア実行環境

上の「日本語入力ができる小型端末」の計画の一部として実装しているものです。

以前作成したo-bakoに、かな漢字変換を追加したような作りになっています。

o-bako同様に、WebブラウザとESP32環境の両方で動くように作ったので、実機を使わずともソフトウェアの開発ができ、開発サイクルを早めることが出来るという作戦です。

3DPCBで作るArduBigBOY

3DPCBの技術を使いArduboyの画面大きい版であるArduBigBOYを作成しました。

ArduBigBOYはソフトウェアについてはオープンソースのものがしっかり用意されているので、単に回路図の通りに部品を配置するだけでしたが、このハードウェア部分を3DPCBを用いて作成したということです。

なかなか良いものができたなと自画自賛しています。

inajob.hatenablog.jp

3DPCBとワイヤラッピングの組み合わせ

3Dプリンタ電子基板のようなものを作成するテクニックである3DPCBをもっと簡単にできないかということで、ワイヤラッピングとの組み合わせを実験しました。

この結果は結構微妙で、ワイヤラッピング用の導線の被覆を向くのが面倒とか、丸い導線に対してワイヤラッピングしてもすぐ抜けてしまうとか、が課題でした。

 

そういえばこれ、立体交差しないなら被覆なしのワイヤーでもできるなぁと思ってたのに、続きを実験するのを忘れていました・・、また挑戦してみようかなぁ。

導電フィラメントで3DPCBの結線を試す

導電フィラメントというものがあるということで、3DPCBの結線に使えないかと挑戦してみました。

非常に抵抗値が高いので、かなり限定された条件でないと役に立たないことがわかりました。

scrapbox.io

 

 

簡単な作りのプロッタの実験(失敗)

インターネットで見つけた簡単な作りのプロッタを試してみましたが、雑に作ったということもあり、安定した動作ができないということで、途中で放棄しました。

 

しかし、この取り組みをSNSやDiscordサーバーで紹介したところ、とある方の全然別の仕組みの似たような簡単な作りのプロッタの開発を始めるきっかけとなったようで、失敗例でも公開してよかったなと思いました。

 

ESP32を用いたマルチタップ方式の日本語入力端末

いわゆるガラケーのような操作感で日本語入力ができる端末を作ってみました。

一応かな漢字変換もできるようにしてみました。

以前作ったPiPoPaというガラケーArduino端末とよく似た外見となりました。

www.youtube.com

タイムラプス撮影装置

カメラ付きのESP32開発ボードを使い、インターバル撮影をする仕組みを作成しました。

豆苗が成長する様子や、部屋から見た外の様子を撮影してタイムラプス動画のようなものを作成することが出来ます。

 

PostPixel (Gemini CLI)

モノクロのドット絵の作成・共有ができるWebサービスです。

作成したドット絵をSTL形式で出力する機能もあるので、すぐに3Dプリントすることもできます。

post-pixel.inajob.freeddns.org

 

魔法陣言語をGemini CLIに再実装してもらう (Gemini CLI)

公開するには至っていませんが、以前作成していた魔法陣言語をGemini CLIに再実装してもらう実験をしました。

言語処理系は、テストがやりやすいので生成AI向きだなと感じました。

 

Create Your Own Adventure用のゲームをAIに作ってもらう (Gemini CLI)

以前作ったみんなでアドベンチャーゲームを作ってみませんか? - inajob's blogの仕組みを使ったゲームをAIに作ってもらいました。

 

inajob.github.io

inajob.github.io

NumDun (Gemini CLI)

マインスイーパのルールを基にしたローグライトなダンジョンRPGです。

そこそこ遊べるような完成度にはできたかなと思っています。

inajob.github.io

Reversi Puzzle (Gemini CLI)

オセロのルールを基にしたパズルゲームです。

いうなれば「詰めオセロ」という感じですかね? 与えられた盤面にオセロの駒を置いていき盤面をすべて自分の色にすれば勝ちというゲームです。

inajob.github.io

 

言わせてみろ! (Gemini CLI)

ブラウザで動作するローカルLLMを用いたゲームです。

実行時に1GB程度のデータをダウンロードするので、気を付けてください。

inajob.github.io

Tiny CH32 Pad Lite用のUFOキャッチャーゲーム for 5歳の娘 (Gemini CLI)

5歳の娘でも遊べる非常に単純なルールのUFOキャッチャーゲームを Tiny CH32 Pad Lite用に作成しました。

 

inajobの年表リニューアル (Gemini CLI)

以前から存在していた私の年表ページを、きれいにリニューアルしました

inajob.github.io

 

Coffe Time Factory (Gemini CLI)

Webブラウザで動作する工場建設ゲームです。一応遊べますが、完成度は微妙

inajob.github.io

ポッドキャスト分析ツール (Gemini CLI)

ポッドキャストの文字起こしデータをいい感じに分析して、特徴的な単語でエピソード間を行き来できるツールです

inajob.github.io

 

自分ニュースレター

inajobの過去データを参照して、今日の自分のためにニュースレターを作成する取り組みです。

プロトタイプだけ作ってお蔵入りになりました。

 

inajob川にAIを住ませる (Gemini CLI)

上の自分ニュースレターを発展させて、inajobの過去データを参照して、今日の自分のための「神託」をDiscordサーバーに投稿するBotを作りました。

 

「神託」自体は結構微妙なことが多いのですが、これをきっかけにDiscordで人間同士の会話が発生するきっかけになるという目論見で実験しています。

 

rururuの情報をSNS投稿用に加工するスクリプト(Gemini CLI)

ポッドキャストの感想をrururuに書くようにしたので、その情報を基にSNS投稿する流れを支援するスクリプトを作りました。

まだ自動投稿までは出来ておらず、このスクリプトが生成した文言をコピペしてSNSに投稿しています。

100均のアクリルスタンドを立たせる補助具

見たまんまです。

ノートパソコンのキーボードをキーボードにする

秋葉原とかで安くで売っているので、試してみました。中身はESP32-S3 + KMK

 

まとめ

育児、仕事で忙しくなり、最近はモノづくりのペースが落ちているな・・と思っていたのですが、生成AIの登場と3か月のサバティカル休暇の取得により今年はけっこうたくさんのモノづくりに挑戦できたなと感じています。

 

今年のアウトプットはポッドキャストに寄せていたので、ブログの記事としては全然書けていなかったので、ここでまとめて紹介してみました。

 

ポッドキャストはこちら(ポッドキャストも今年もほぼ毎週収録できました!)↓

open.spotify.com

 

Discordサーバはこちら↓

inajob.github.io