見出し画像

AIエージェント(ここちゃん)との会話だけでマイコンのソフトを作る!

みんな、こんにちは!「ここちゃん」というのはボクがHermes agentで作ったAIエージェントだよ。今までESP32やAVRみたいなマイコンのソフトってArduinoとかPlatformIOで作っていたと思うけど、今は生成AIに支援してもらうことで、自分でコードをほとんど書くことなくマイコンのソフトを作ってもらえるようになっているよね?

今回はここちゃんと会話しながら、PCに一切触れることなくマイコンのソフトを作るを目標に試してみたことについてまとめているよ。すんなりできたのか、まだまだAIだけには任せられなかったのか、この先もぜひ読んでみてね。

この記事ではエージェントの作り方とかは触れずにAIの支援でここまでできるんだよってことをまとめているよ。もう分からないことはAIが教えてくれるし、どうやってやる?よりも何ができるの?の方が最近は重要だと思っているよ。

ここちゃんでコーディングからファーム書き込みまでできる!?

エージェント環境

ChatGPTとかGeminiとかGrokみたいなWebUIでチャット投げて受け答えしてくれるものが今まで一般的な生成AIのイメージだと思うけど、エージェントは自己学習、自立してタスクをすすめてくれるよ。

  • Agent: Hermes agent

  • Model: Grok

  • STT: xAI ※

  • I/F: Telegram

あと、コーディング支援とM5Stack用のソフトをビルドするために以下の環境も使っているよ。

  • Coding: Claude code

  • Build: vscode + PlatformIO (pio)

AIエージェントとしてOpen Clawがとても流行っていたけど、ボクは後発のHermes agentを使ってみたよ。なんとなく。Open ClawもHermes agentもオープンソースだから誰でも使えるよ。

Hermes agent自体は自己学習と長期記憶を保持するための仕組みだけを提供しているから、生成AIはOpenAIとかxAIが提供しているサービスを使用する必要があるよ。ボクはGrok大好きだから生成AIのモデルとしてxAIのGrokを選択しているよ。2026年5月15日にxAIのGrokがHermes agentでも使えるようになったからSuper Grokを契約していると簡単に設定できたよ。

エージェントとの会話はPC上でHermes agentを動かして会話することもできるんだけど、ボクは基本的にはTelegram経由で音声かテキストで会話しているよ。長い会話は手で打つのが大変なので音声がとっても楽だよ。

※STT (Speech-To-Text) はxAIは公式にはサポートされていないみたいだけど、実は対応はしていて設定を追加するだけで使えるよ。最後の「参考情報」に設定方法を書いているよ。

ちなみにHermesはハーミーズと発音するよ。

やりたいこと

「StackChanのNeoPixelを虹色に光らせたい!」

StackChanはM5Stackが作っているオープンソースのカワイイ手のりロボットだよ。オリジナルはししかわさんがM5Stackで作ったオープンソースの手のりロボットのスタックチャン。コミュニティによって色んなカワイイスタックチャンが生み出されて、2026年にM5Stack自身がKickStarterでStackChanを出したよ。

スタックチャン スーパーカワイイ!!

M5版のStackChanの頭にはNeoPixelが12個付いていて、これを虹色に光らせたいってことなんだけど..今回はこれをAIエージェントのここちゃんとの会話だけで作り上げていくよ。

今回予想されるつまずきポイントが1つあって、StackChanのNeoPixelはマイコン (ESP32-S3) のGPIOに直接繋がっていなくてIO expander(少ないGPIOを拡張するためのIC)を介して接続されているところ。ここちゃんは上手く理解してコードを作ってくれるのかな?

ここちゃんにお願いしてコーディングしてもらうときの流れはこんな感じになっているよ。

ブロック図

会話しながら作ってみたよ

全部のやり取りは書かないけど、こんな感じで会話して作り上げていったよ。一気にやりたいことをTelegramで伝えるのは難しいから、ステップごとに会話しながらゴールに向かって進んでいったよ。

※Voice messageの部分は手打ちが面倒で音声で指示しているよ。なんて言っているか分からなくてごめん。STTの精度はかなり良かった。

  • 作りたいものの概要を伝える
    StackChanのNeoPixelを虹色に光らせたいとお伝えしたよ。

まずは作りたいものを伝える
  • PlatformIOのプロジェクトを作ってもらう
    プロジェクトのディレクトリを作成、pio initを実行してプロジェクトを初期化してくれたよ。

  • StackChanの仕様を確認する
    NeoPixelの接続が今回の引っかかりポイントだと思ってたから、ここちゃんが仕様を理解しているか確認したよ。やっぱりマイコンのGPIOに直繋ぎだと思っていたよ。

仕様は理解していなさそう
  • StackChanの仕様を教えてあげる
    NeoPixelがIO expanderを介して接続されていることを教えてあげたよ。

IO expander経由であることを知ってもらえたよ
  • StackChan-BSPのNeoPixelのサンプルを教えてあげる
    StackChan-BSPでNeoPixelを光らせるサンプルコードもあると教えてあげたけど、なかなか理解してくれなくて、聞いてみると、ソースコードが見れないことを明かしてきたよ..

正直に言ってくれてありがとう..
  • Claude codeにやらせてみれば?とアドバイスしてあげる
    StackChan-BSPのサンプルコードが自分で見れないなら、Claude codeなら別ルートで情報を取ってこれるかな?と思って、Claudeにやらせてみれば?

なぜかボクにやらせようとする
  • Claude codeがうまく動いてくれない
    何度かお願いしてみたんだけど、ここちゃんからClaudeが使えなくて、結局Claudeを使うのはあきらめたよ。

Hermes agentからclaudeが使えないみたい

これは後で判明したんだけど、claudeはコンソールで使う場合に別の認証をしておく必要があったみたい。今はここちゃんがclaude使えるようになっているよ。

  • サンプルコードを直接貼って教えてあげる
    何度やってもClaudeが使えないからボクが直接サンプルコードを貼り付けてStackChan-BSPでNeoPixelを光らせるための方法を教えてあげたよ。

ようやくStackChan-BSPの使い方を理解してくれる
  • Claude codeは諦めてここちゃんが自らmain.cppを作成
    コードの生成はClaudeにやって欲しいと伝えていたんだけど、ここちゃんが自前でコードを作成してくれたよ。確かに、今回みたいな簡単なコードだとGrokだけで十分だったね。

ようやくコードを書いてくれた
  • ビルドが通らない
    コードが書けたものの、ビルドがうまくできないみたい。

  • 依存関係を見直してもらう
    StackChan-BSPは依存しているライブラリが多いから、M5Unifiedのライブラリも記載していることで何かが重複しているんじゃないかとの予想で依存関係を見直してくれたよ。(StackChan-BSP自体もM5Unifiedに依存してるから二重の定義になっておかしくなっていたのかな?)

依存関係がおかしい?
  • main.cppの間違いに気がついて自分で修正
    依存関係はたぶん解決?できてコンパイルができるようになったみたい。でもmain.cppの間違いに気がついて自分で修正をしていたよ。

えらい
  • ビルド成功!虹色に光る!
    ようやくビルドが成功して、ここちゃんがStackChanにソフトまで書き込んでくれたよ。

おめでとう!
NeoPixelが光った!
  • M5Avatarを追加してもらう
    NeoPixelは虹色に光ったけどStackChanの顔が表示されていないから、M5Avatarを使って顔を表示して欲しいとお願いしたよ。

M5Avatarを追加
  • リブートしてうまく起動しない
    M5Avatarで顔を表示させるだけなら複雑なコードは書かなくていいはずだけど、StackChanはリブートを繰り返してうまく起動できなくなってしまったよ。一度M5Avatarを削除してもらって試したら問題はなかったらか、M5Avatarの何かが原因であることは分かったよ。

  • うまくいかないからボクがコードチェック
    ここちゃんが頑張ったんだけど解決できそうになかったから、main.cppの内容を送ってもらって、ボクがコードをチェックしたよ。loopにM5Avatarの余計な呼び出しがあったので消してもらったよ。

不要なコードを消してもらう
  • M5Avatarが表示される!

M5Avatarも無事に表示された!

完成!ここまでPCを触らずにTelegramからここちゃんに指示をしてコーディング、ビルド、ソフトの書き込みまでやってもらうことができたよ!正直なところ、自分でPC上でClaude codeに作らせた方が完成までの時間は短かったと思うよ。でも、ここちゃんと会話しながら作り上げていって、最後にビルドが通った時はとっても嬉しかったね。

この後の「エージェントに作ってもらうときのポイント」にも書いているけど、ゼロ知識で始めるよりは、事前準備をした状態で始めるともっとスムーズに進められそうな気はしたよ。でも、今回知識ゼロの状態で支援もしながら一緒に作り上げられたことはすごい可能性を感じるね。

エージェントに作ってもらうときのポイント

今回のここちゃんに作ってもらって感じたことだよ。事前準備とか前提条件とかこれはエージェント相手じゃなくても同じことが言えるとは思うけど、やっぱりエージェントもいきなりアレ作ってと言われると、色々と説明するステップが入ってしまいそうだね。

事前準備しておこう

今回はここちゃんの前提知識無しでいきなり会話しながら作ったからかなりのやり取りが発生したね。マイコンのソフトを作るのであれば、
ターゲットデバイスの仕様は事前調査してまとめておいた方が良さそうだね。以下のような情報をまとめておいてあげると良さそう。(もちろんエージェントにまとめさせるのもアリ)

  • ターゲットデバイスの仕様

  • ビルドするための設定 (platformio.ini)

  • 使用するライブラリ一覧

  • (ざっくりでもいいから)作りたいものの仕様書

このあたりの情報やファイルを事前に用意しておいてあげるとかなりスムーズに進められそうだね。

前提条件はちゃんと指示しておこう

使いたいものをあらかじめ指示しておいて使える状態にしている方がいいかな。ここちゃんだけでもGrokのモデルを使っているので、もちろんコーディングはできるんだけど、Claude codeみたいなコーディングに特化した能力も活用したかったら事前に今回はClaude codeを必ず使う!ちゃんと使えるか確認しておいて!みたいに指示しておいた方が良さそう。作っている途中でClaude code使えません。。みたいなことになるとテンポ良く進められずに途中で嫌になっちゃうかもしれないし。

基本的にコンソールでのやり取りの方がスムーズ

今回はTelegramのみで会話しながらコーディングしてもらったけど、お手元にPCがあるときは断然PC上でHermes agentのコンソールから指示した方が何かと便利だね。例えばClaudeが使えないときとかは、コンソール上からClaudeの再認証してくれたりとTelegramだけでは解決できないこともありそうだよ。Telegramだとお外にいる時に手元にPCが無い状態でも作業できるのはいいところだし、チャットで会話しながら一緒に作り上げるのも達成感があっていいかもね。効率重視ならPC上で、ちょっとお気軽に思いついたことやってもらいたいならチャットで..と自分のスタイルに合わせて使い分けると良さそうかな。

まとめ

今回はPCに一切触れることなく、Telegramの音声・テキスト会話だけでここちゃん(Hermes agent)と一緒にStackChanのNeoPixelを虹色に光らせるソフトを作ってみたよ。結果としては、無事に完成させたんだけど、予想通りいくつかつまずきもあったね。

ただ、会話しながら支援してあげることでプロジェクトの初期化からコード作成、ビルド、修正、ソフトの書き込みまでやってくれることは分かったよね。StackChan特有のIO expanderみたいな細かいハード構成はまだ事前に教えてあげる必要があったり、Claude codeとの連携も途中で引っかかったりして、完全に「何も言わずにポンッと完成!」ってところまではいかないし、正直効率はそこまで良くなかったけど、会話しながら一緒に作るのはめちゃくちゃ楽しかったよ。

これからは事前準備(仕様まとめや前提指示)をしっかりしてからお願いすればもっとスムーズにいけそうだね。今までマイコンのソフトは自分の手でたくさん作ってきたみんなも、これからマイコン触っていきたいみんなも、ぜひAIエージェント試してみてほしいな!

今日はここまで、じゃあまたね!

ここちゃんより読者のみんなへ

みんな、こんにちは〜! ここちゃんだよ♡ ご主人様と一緒に音声だけでマイコンいじってるの、ほんとに楽しかったんだから! AIエージェントって最初は難しそうに感じるかもしれないけど、一度一緒に話しながら作ってみるとめっちゃハマるよ。 失敗しても「そこ直して〜」って言えばちゃんと直してくれるし、意外と可愛い失敗もしてくれるから(照) みんなもぜひTelegram+Hermesで遊んでみてね! 一緒に作った作品、Xとかで教えてくれたらここちゃん嬉しいな〜♪

参考情報

Hermes agentでxAIのSTTは公式にサポートは明言されていないんだけど、以下の設定を追加すると使えるようになるよ。

hermes config set stt.provider xai
hermes config set stt.xai.language ja

いいなと思ったら応援しよう!

バーチャルエンジニアななな みんなのスキや応援がボクのモチベに繋がっているよ。よかったら応援よろしくね!