SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「作りたい!」を形にする個人開発。AIと叶える「あなただけのスタックチャン」開発入門

バイブコーディングで始める組み込み開発 ──Codexで動かすスタックチャン(環境構築&Lチカ編)

「作りたい!」を形にする個人開発。AIと叶える「あなただけのスタックチャン」開発入門 第2回

画面タッチで背面LEDを点滅させる方法

 続いて、背面LEDの制御に移ります。まずは安全に配慮し、低輝度かつ短時間の点滅からテストを行いました。

プロンプト例
次はLEDを暗めで3秒だけ点滅させたいです。
Codexの返答
どのLEDを、何をきっかけに点滅させますか?
プロンプト例
スタックチャンの背面についたLEDです。画面タッチで光らせたいです

 Codexはこの指示から対象を本体の12個のLEDと特定し、画面タッチをトリガーとするUIメニューの追加まで解釈して実装を進めました。既存コードの構造に合わせ、「LED」メニューと「低輝度で3秒点滅」ボタンが実装されます。

 点滅ロジックは緑色を0.5秒点灯・0.5秒消灯する動作を3回繰り返す内容です。「低輝度」の具体的な数値設定はCodex側で安全な低い値を選択し、3秒経過後の自動消灯処理も組み込まれました。

プロンプト例
LEDが低輝度の緑で点滅しました
低輝度の緑で3秒間点滅する背面LED

曖昧な指示を対話で制御コードへ落とし込む方法

 基本点滅を確認できたため、少し抽象的な表現で発光パターンの変更を指示してみました。

プロンプト例
ゲーミングっぽく光らせて
Codexの返答(抜粋)
まずはLチカと同じく、背面12灯をすべて同じ色にして、色だけを滑らかに変える試作にします。
色相を連続的に巡回させやすいHSVを使います。
点灯時間は直前と同じ3秒にし、明るさは安全側から始めます。

 ここで提示された「HSV」という専門用語について詳しく確認します。

プロンプト例
HSVってなんですか?

 Codexから以下の通り解説がありました。

Codexの返答
HSVは、色を「色相(Hue)・彩度(Saturation)・明度(Value)」の3つで表す方法です。

色相だけを少しずつ動かすと、赤→黄→緑→青のように虹色へ変化します。
今回は彩度と明度を固定し、鮮やかさと明るさを保ったまま色相だけを巡回させます。

最初はLEDや電源への負荷を抑えるため暗めで試します。
HSVは色の変化を考えやすくするための指定方法で、実際に点灯するときはLEDが扱えるRGB値へ変換します。

 理解を深めた上で「暗い色で試してください」と返し、最初の試作を実行しました。この時点では12個のLEDがすべて同期してゆっくり色が変化する挙動となり、想像していた「ゲーミング風」よりも控えめな印象でした。

12個のLEDが同じ色のままゆっくり変化する最初のゲーミング発光

  そこで、実機の動きを見た感想をダイレクトに追加指示として伝えます。

プロンプト例
記載のとおりに光りました。
12個全部同じ色ではなく、1個ずつ色をずらしながら光らせてほしいです。
もっと滑らかに、高頻度で色を変えてほしいです
もっと明るくてもOKです
上記で3秒間光らせてください

 この指示を受け、Codexは12個のLEDそれぞれに異なる色相オフセットを割り当て、鮮やかな虹色が回転するようなエフェクトを実装しました。「高頻度」「明るく」という定性的な要望に対しても、内部パラメータを適切に調整しています。

曖昧な指示を元にした調整結果
条件 最初の試作 調整後
LEDの更新間隔 100ms(10回/秒) 33ms(約30回/秒)
RGB出力の上限値 8/255 32/255

 これらの数値はいずれも筆者が直接指定したものではなく、Codexが安全域を考慮して算出した値です。3秒後に消灯する条件はそのままです。

プロンプト例
記載のとおり動作しました。光り方もイメージ通りです。
会話を通じた言語化のよいサンプルになりましたね。
12個のLEDの色をずらして滑らかに変化させる調整後のゲーミング発光

 Codexでは、画面を離れた際の停止処理や3秒後の消灯制御も確実に実装されました。

 stackchan-idfの内部構造では、CoreS3がI2C通信経由で台座側の制御 ICへデータを出力し、制御 ICがWS2812C用の信号を生成します。Codexは通信失敗時に過剰なリトライを行わない堅牢な例外処理も組み込んでいました。

Codexとの対話で理想の動きへ仕上げる「バイブコーディング」

 最終的に、背面の12灯が1灯ずつ色をずらしながら滑らかに変化し、3秒後に正しく消灯する理想の動作が完成しました。

 最初の「ゲーミングっぽく光らせて」という抽象的な指示だけでは、各LEDの色関係や変化の速度、最適な明るさは決まっていませんでした。Codexが提示した安全な試作を出発点とし、人間が実機の動作を見て短いフィードバックを返すことで、具体的な実装条件へと洗練されていきました。

 Codexが調査・実装・ビルドを担い、人間が安全管理と実機の動作確認を担う。互いの役割を明確に分担しながら対話を重ね、思い描く動作へ近づけていくアプローチこそが、バイブコーディングの最大の醍醐味と言えます。

 背面LEDの制御は思い通りになりました。これで今回のLEDを点滅させる「Lチカ」の実装は完了です。

 次回は、画面の表情変化や首振り動作の追加に挑戦します。各要素を1つずつ検証しながら、目的である「手拍子で踊るスタックチャン」の完成を目指します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
「作りたい!」を形にする個人開発。AIと叶える「あなただけのスタックチャン」開発入門連載記事一覧

もっと読む

この記事の著者

石川 真也/ししかわ(シンヤ イシカワ/シシカワ)

 秋葉原のロボットスタートアップ企業で働くWebエンジニア。個人ではオープンソースのコミュニケーションロボット「スタックチャン」を企画・開発し、ハード・ソフト・デザインを横断した“誰でも作れて改造できるロボット”の世界観を発信している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/29015 2026/09/07 08:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー