• 公開日:2025年09月29日

RL78マイコンで始めるvibe coding入門 – 第1回:定番のLチカ!動いちゃったぞ?!

今、vibe codingが熱い🔥🔥🔥

最近エンジニア界隈でじわじわ広がっている「vibe coding」。人工知能支援ソフトウェアを用いた開発手法で、2025 年 2 月頃「Andrej Karpathy氏」によって提唱されました。

下図の通り、2025年2月頃から検索ワードが増えていますね。「Googleトレンド」調べ
GoogleTrends_vibecoding

「vibe coding」を直訳すると「ノリでコーディング」のような感じですが、これは決して適当にコードを書くことではありません。

難しいことは後回し!vibe codingの本質は?

  • 直感的に動かす → 理論より実践、まず動かしてから理解
  • 楽しさ重視 → 「動いた!」の感動を大切に
  • スピード感 → 完璧を目指さず、まずは80%の完成度で前進
  • 学習効果 → 体験から学ぶサイクルで知識が定着

なぜvibe codingが流行っているのか?

AI技術の進化により、ChatGPTやClaudeなどの生成AIを用いて自然言語から高品質なコードを生成出来るようになりました。例えば、プロンプトに「こんなアプリを作って!」と入力するだけで、正常に動作するかどうかはともかく生成AIが即座にコードを出力してくれます。このように、プログラミングの知識を持たない人でも自然言語でアイデアを伝えるだけでアプリが作れるようになったこともvibe codingが流行している一つの要因でしょう。

  1. 学習効率の革命
    • 従来手法:理論 → 理解 → 実践
    • vibe coding:実践 → 体験 → 理解
  2. モチベーション維持
    • 早い段階で「動く」成果物が得られる
    • 小さな成功体験の積み重ね
    • 「次は何作ろう?」という創作意欲の連鎖
  3. 現代の開発環境にマッチ
    • 高機能な統合開発環境
    • 自動生成ツールの充実
    • 豊富なサンプルコードとコミュニティ

vibe codingのメリットとデメリット

メリット

    • 学習スピードが速い – 手を動かしながら覚える
    • 挫折しにくい – 早期に達成感を得られる
    • 創造性が育つ – 「こうしたらどうなる?」の探求心
    • 実用的なスキル – 実際に動くものを作る経験
    • チーム開発に活かせる – プロトタイプ作成能力

⚠️ デメリット

    • 基礎理論が後回し – 深い理解には別途学習が必要
    • 品質にバラツキ – 動けばOKの発想は本格開発では危険
    • デバッグスキル不足 – なぜ動くのか分からないと障害対応が困難
    • 設計思想の欠如 – 大規模開発には不向き

組み込み開発におけるvibe coding

主にwebアプリなどで利用されるvibe codingですが、組み込み開発の分野でもvibe codingを利用するメリットがあります。最近の多くの生成AIは様々なマイコンの仕様を学習しており、導入的な簡単なものであれば即座に動作するコードを出力が出来るようになっています。例えば以下のようなメリットがあります。

    • ハードウェアとの対話 – LEDが光る、モーターが回る、音が鳴る
    • 即座のフィードバック – コードの結果が物理的に見える
    • 実用性の実感 – 身の回りの製品がどう動いているか体感
    • IoT時代への橋渡し – センサーやネットワーク連携への発展

本シリーズのテーマと目標

🎯 シリーズ全体のコンセプト

「RL78をなんちゃってマスター!簡単に楽しく覚える組み込みプログラミング」

ルネサス・エレクトロニクス社RL78/G23マイコンが搭載されたFPB-RL78/G23評価ボード(64pin版)を用い、vibe codingのスタイルで組み込み開発の基礎を身につけます。理論的な説明は最小限に、「動かす喜び」を最優先で進めていきます。複数回のシリーズ構成を予定しており、初回は「定番のLチカ!動いちゃったぞ?!」です。

🚀 本シリーズの最終的なゴール

🏁 技術的ゴール

    • ルネサス・エレクトロニクス社 RL78/G23マイコンの基本機能を使ってみる
    • e2 studio + Smart Configuratorで開発フローを試してみる
    • 組み込みプログラミングを体験する

🏁 体験的ゴール

    • 「マイコンって楽しい!」という実感
    • 「次は○○を作ってみたい」という創作意欲
    • 「IoTデバイス開発にチャレンジしてみよう」という次のステップへの意欲

🏁 実用的ゴール

    • 簡単なIoTデバイスのプロトタイプが作れる
    • 他のマイコンボードでも応用できる基礎力
    • 組み込み開発の全体像が見える

💡 ゴールを目指すうえで必要な心構え

    • 完璧を求めない – まずは動かしてみる
    • 理論は後から – 体験してから理解する
    • 楽しむことが最優先 – 「動いた!」を大切に
    • 失敗を恐れない – トライ&エラーで学ぶ

⚠️ 注意すべき点

    • 理想と現実 – 生成AIが出力するコードは不完全な事が多く、実際には手直しや調整が必要です
    • 品質や保守性の問題 – 生成AIが出力するコードにはバグやセキュリティリスクを含んでいる可能性があります
    • 技術的な問題 – 複雑で大規模なシステムは、生成AIが出力するコードだけで作る事は出来ません

開発環境の準備 – サクッと済ませて本題へ!

🛠️ 必要なもの

今回使用するハードウェア・ソフトウェアは以下の通りです

✨ ハードウェア

    • e2 studioが動作するUSBポート搭載のパソコン – 当記事ではWindows 11搭載のパソコンを使っています
    • FPB-RL78/G23 64pin評価ボード – ルネサス・エレクトロニクス社の公式評価ボードです
    • USBケーブル(Type-A to Micro-B) – PC接続・電源供給・プログラム書き込み用に使用します

✨ ソフトウェア

    • e2 studio – ルネサス・エレクトロニクス社 統合開発環境(無料)
    • Smart Configurator – 自動コード生成ツール(e2 studioに統合されており、個別インストールは不要です)

✨ 使用する生成AI

    • お気に入りの生成AIをお使い下さい
    • 当記事では「Claude」と「Copilot」を使用しています

セットアップはルネサス・エレクトロニクス社の公式ウェブサイトにお任せ!

開発環境のセットアップは、今回の記事の本質(vibe codingでLEDを光らせる楽しさ)ではないので詳細は省略します。

セットアップ手順は以下の公式ページが最も確実で最新です!

  1. FPB-RL78/G23評価ボード情報
  2. e2studioダウンロード
  3. e2studioインストール
  4. クイックスタートガイド
  5. ユーザーズマニュアル

💡 セットアップのコツは?

いよいよ本題!プロジェクト作成からLチカまで

セットアップが完了したら、いよいよvibe codingの真骨頂です! 「理論はいいから、まず光らせてみよう」の精神で進めていきます🚀

Step 1: e2 studioプロジェクト作成 – 魔法の始まり

  1. e2 studioを起動
    • 起動画面が出たら、もうワクワクが止まりません!
  2. 新規プロジェクト作成
    • メニューからFile → New → Renesas C/C++ Project → Renesas RL78として下さい
  3. 魔法のSmart Configurator登場! プロジェクト作成ウィザードで以下を選択 ※「Smart Configuratorはピン設定やコード生成を自動化するツールです」
    • マイコン: R7F100GSN(RL78/G23 64pin)
    • ツールチェーン: CC-RL
    • プロジェクト名: RL78_LedBlink(お好みでOK!)
    • 基本はSmart Configuratorが自動でお膳立て!

🔧 Step 2: Smart Configurator LED用ピンの設定 – ポチッと簡単設定

  1. FPB-RL78/G23評価ボードには、ユーザが使用できるLEDが最初から2個も付いています!
    • LED1:マイコンポート番号 P53ピン(緑色LED)
    • LED2:マイコンポート番号  P52ピン(緑色LED)
  2. Smart Configuratorの設定
    • 「コンポーネント」タブをクリック
    • 「コンポーネントの追加」→「ポート」→「ポート出力」を選択
    • P53(LED1)、P52(LED2)ピンを出力に設定
      • P53: Output設定
      • P52: Output設定
  3. 上記を設定したら「コードの生成」ボタンをポチッ!
  4. すると…なんということでしょう!以下のような必要最低限の基礎的なコードが自動で生成されます🎉

📄 e2studioが自動生成した必要最低限のmain関数(main.c)

#include "r_smc_entry.h"

int main(void);

int main(void)
{
    EI();
    return 0;
}

💻 Step 3: Lチカコード – 「え、これだけ?」の衝撃

  1. これからが本番!生成AIによる「vibe coding」の始まりです!
  2. お気に入りの生成AIにノリノリで以下のようなプロンプトを入力してみましょう
  3. 生成AIが出力したコードを「main.c」に貼り付けて下さい

💬 プロンプトの例

よぉーし!FPB-RL78/G23評価ボードでLチカやるよ~!
コード生成の条件は以下なんだよね~!アゲていこ~!

• Renesas社 e2studio+スマートコンフィグレータをインストールしたよ
• 「なにこれw簡単じゃん!」って思わせるLチカコード
• コードは必要最小限で「えっ!?これだけ?」みたいにシンプルなやつで
• 評価ボードには2個の緑色LEDが搭載されているみたい、それぞれP53とP52に割り当てられているね
• Lチカの点灯間隔は1秒くらいがいいかな

ちなみに空のプロジェクトを作成したら以下のコードが出力されていたよ

#include "r_smc_entry.h"
int main (void);
int main(void)
{
    EI();
    return 0;
}

Claudeが出力したコード

📄 main.c – FPB-RL78/G23(Claude版)

#include "r_smc_entry.h"

int main(void);

int main(void)
{
    EI();
    
    // LED用ピン設定(P52, P53を出力に設定)
    PM5_bit.no2 = 0; // P52を出力モード
    PM5_bit.no3 = 0; // P53を出力モード
    
    // 無限ループでLチカ開始!
    while(1) {
        // LED1点灯、LED2消灯
        P5_bit.no3 = 0; // P53 = LOW (LED1 ON)
        P5_bit.no2 = 1; // P52 = HIGH (LED2 OFF)
        
        // 1秒待機
        for(volatile long i = 0; i < 500000; i++);
        
        // LED1消灯、LED2点灯
        P5_bit.no3 = 1; // P53 = HIGH (LED1 OFF)
        P5_bit.no2 = 0; // P52 = LOW (LED2 ON)
        
        // 1秒待機
        for(volatile long i = 0; i < 500000; i++);
    }
    
    return 0; // ここには来ない
}

Copilotが出力したコード

📄 main.c – FPB-RL78/G23(Copilot版) ※ Smart Configuratorのポートが必須

#include "r_smc_entry.h"

void delay(void)
{
    volatile uint32_t i;
    for (i = 0; i < 100000; i++) {
        // 適当なウェイト(1秒相当)
    }
}

int main(void)
{
    EI(); // 割り込み許可(今回は使わないけどおまじない)
    
    while (1)
    {
        P5_bit.no3 = 1; // P53 ON
        P5_bit.no2 = 0; // P52 OFF
        delay();
        
        P5_bit.no3 = 0; // P53 OFF
        P5_bit.no2 = 1; // P52 ON
        delay();
    }
}

🚀 Step 4: ビルド&書き込み – 興奮の瞬間

  1. ビルド実行
    • Ctrl + B または ツールバーの🔨アイコンでビルド実行!
    • エラーなくビルド完了したら成功!
  2. ボードに書き込み
    • 虫のアイコンをクリックしてデバッグ実行!
    • プログラムが評価ボードに転送されます
  3. 運命の瞬間…
    • 転送されたプログラムの実行!
    • やった!やったよ!LEDが…光った!消えた!光った!

🎉 Step 5: 成功体験 「私、天才かも?」

おめでとう! あなたは今、マイコンを制御してLEDを光らせることに成功しました!

この瞬間の感動を忘れないでください。これがvibe codingの真髄です

  • 複雑な理論なし
  • 面倒な設定なし
  • でも確実に動く
  • 成果がすぐ見える

💡 vibe coding的ポイント

  • 「なぜ動くの?」は後で考える
  • 今は「動いた!」という感動を大切に
  • 理論的な説明は第2回、第3回で自然に身につきます

まずは「作る楽しさ」を存分に味わってください

「失敗は学習のチャンス」

  • エラーが出ても慌てない!vibe codingとエラーはお友達!
  • 「あ、こうするとダメなのね」も大切な学びです
  • トライ&エラーこそがvibe codingの真髄

今回のまとめ – 「私でもできるじゃん!」

🎯 達成できたこと

✅ RL78/G23でプロジェクト作成
✅ Smart Configuratorの威力を体感
✅ Lチカの実装と動作確認
✅ マイコン制御の第一歩を踏み出した

🔥 vibe codingで得られた体験

✅ 即座の成果 – コードを書いてすぐ結果が見える
✅ シンプルさ – 複雑な理論なしで動くものが作れる
✅ 達成感 – 「私でもマイコン制御できるじゃん!」
✅ 次への意欲 – 「他に何ができるんだろう?」

🚀 次回予告:第2回「スイッチとタイマーで相互制御」

次回は今日光らせたLEDを、スイッチで制御してみます!

  • スイッチを押すとLEDが光る
  • 押した回数で点滅パターンが変わる
  • タイマー割り込みで正確な時間制御

今回光らせたLEDが、次回はあなたの意思で制御できるようになります。まるでマイコンと対話しているような感覚を味わえるはずです!

第2回もお楽しみに! 🌟

この記事が「面白かった!」「やってみたい!」と思ったら、ぜひシェアしてくださいね。一緒にvibe codingの輪を広げましょう!