先日、と言っても早3ヶ月、バイオリンの発表会に出て、自分のボーイング(の角度)を客観的に見ることで、ボーイングのレベル向上が今年のテーマになりました。
以前もこんなものや
こんな物を作ってますが、結局は。使い物にならず。まあ、そうでしょう。
そのうち、ちょっとは上手になったので道具の助けは、要らなくなりました。
と、思っていたところの先日の発表会でした。
前回までの作品は、強制的に弓の角度を矯正する物でした。今は、意識すればそれなりに弾ける様にある程度なってきたので、状況を正確に把握することが重要と考えました。
普段は、小さい鏡を見て練習してますが、正確に角度を見れる工夫が欲しいな。車のバックモニタ見たなのが。
と、言うことで、特に用途もなく買ったRaspberry PIを使ってボーイングの角度を客観的に確認するツールを作ることにしました。
構想
構成は簡単です。USBカメラ、Rasberry Pi、AIです。駒のあたりの真上からUSBカメラで、弦と弓を撮影し、httpサーバをたて、リモートPCで表示させるだけです。

USBカメラは、以前買ったELECOM製の廉価なものです。台から外してカメラ部のみ使用します。
製作
httpサーバプログラム
最初は、Claude codeを使い、バイブコーディングです。お試しの1ヵ月の課金で使っていたので、途中からGemini CLIの力を借りました。
最初に目的として、弓が弦に対して直角かをリアルタイムで確認するアプリを作ることを伝え、いくつか構想を指示して、まずは、要件定義書を作成してもらいました。
次に、要件定義書に基づいて、雛形アプリの作成を指示。
ClaudeCodeは、バックエンドをPython+Opencv+ flask・FastAPI 、フロントエンドをHTML5+JS+CSSで実装してくれました。
雛型が出来たことで、GUIや処理内容について、追加の指示をして、要件定義書にも反映することを指示しました。
ここまで、一切、自分ではコード作成/修正せず、出来上がったものが次のものです。大体、意図した感じのものが出来ましたが、弓の認識アルゴリズムが正しいかなどは詳しく見ていく必要があります。また、最後、Gemini CLIを使ってGUIを仕上げたので飾り気のない感じになりました(Gemini CLIはアルゴリズムは強いがGUIは少し弱いと言っている人もいるようす)。

プログラムの細部のチューニングは、実際の画像を食わせてから行うことにしました。
カメラステー
次は、USBカメラをバイオリンに固定するステーを作成します。イメージは次の様なものです。演奏時の邪魔にならない様に、バイオリンの左の所からステーで片待ちで支える形としました。部品は3Dプリンタで作りながら、細部をチューニングしていきます。

カメラは、15gと軽いので良いですが、バイオリンへのステー固定は、ちょっと工夫がいるかと思います。クランプ固定もありですが、簡便性と何と言ってもバイオリンにキズをつかないこと。
今後
カメラステーの製作は、もう少しかかりそうです。そのあと、プログラムのチューニングも。
完成しても使い物になるかというのが一番大きいですが、宜しかったらお付き合いください。