このブログでは、Chat-GPTとRL78 Arduino互換ボードを使用してAIコーディングを行う方法と、その実例を紹介します。
予備知識
Chat-GPTとは
Chat-GPTとはOpenAIによって開発されたAIツールで、学習済のテキスト情報を基にユーザーが入力した文章や質問を理解し、答えを出力することができます。しかし、必ずしも正確な内容が生成されるわけではないため、ユーザーはこの点を理解して使用する必要があります。
Arduino とは
Arduinoは、電子工作を簡単に行うためのオープンソースプラットフォームです。マイコンが搭載されたボード (Arduinoボード) と、ソフトウェア開発環境 (Arduino IDE) から構成されます。RL78製品では '23年9月現在、Arduino IDEを使用して下記のボード向けのソフトウェアを開発することができます。
- RL78/G24 Fast Prototyping Board
- RL78/G23-64p Fast Prototyping Board
- RL78/G22 Fast Prototyping Board
- RL78/G16 Fast Prototyping Board
- RL78/G15 Fast Prototyping Board
対応ボードの情報:
ホーム · renesas/Arduino Wiki · GitHub
実際にAIコーディングをやってみた
今回はRL78/G23-64p Fast Prototyping Boardを使用し、LEDを点滅させるプログラムをChat-GPTで生成しました。
実際の流れを、以下のStep 1 から Step 5で説明していきます。
STEP 1. 環境セットアップ
RL78/G23-64p Fast Prototyping Board (RL78/G23-64p FPB) を準備します。ボードとPC間は、Micro USB Type-Bケーブルで接続します。
Arduino IDEをPCにインストールします。インストール後、ボードマネージャーからRL78/G23-64p FPB用のパッケージをインストールします。
インストールガイド:
クイックスタートガイド_Arduino_IDE_Ver2 · renesas/Arduino Wiki · GitHub
Step 2. 回路情報をChat-GPTに入力
作成するプログラムでは、オンボードLED (User LEDs) を使用します。
下記リンクの情報を参考に、LEDのピン情報と、制御信号の情報をChat-GPTに入力します。
(参考) PIN情報:
RL78G23 64ピン Fast Prototyping Board · renesas/Arduino Wiki · GitHub(JP)
(入力プロンプト例) |
---|
Arduinoボード仕様: 2つのLED (LED1, LED2) が実装されている LEDは抵抗でプルアップされており、カソード側がPinに接続されている Name pin memo LED1 16 - LED2 15 - |
STEP 3. コーディングの仕様をChat-GPTに入力
今回は、LED1とLED2を1秒ごとに点滅させるプログラムをChat-GPTに依頼します。
(入力プロンプト例) |
---|
ソフトウェア仕様: LED1とLED2が1秒ごとに点灯、消灯を繰り返す LED1の初期状態は点灯、LED2の初期状態は消灯 |
STEP 4. Chat-GPTの出力プログラムを実行
Arduino IDEで新しいスケッチを作成し、Chat-GPTが出力したプログラムをコピー&ペーストした後、Verify、Uploadを実行します。
Arduino IDEの詳細な操作方法や実行手順は、
クイックスタートガイド · renesas/Arduino Wiki · GitHubや
ホーム · renesas/Arduino Wiki · GitHub
を参照してください。
STEP 5. 動作確認と修正
今回はgpt-3.5,gpt-4のどちらで生成した場合でも期待通りのプログラムが出力されました。プログラムが期待通りに動作しない場合は、Chat-GPTに修正を依頼します。この際、簡潔かつ明確な情報を入力するように工夫してください。
また、gpt-3.5よりもgpt-4の方が期待通りの結果を得られる傾向にあります。
Conclusion
今回は簡単なテーマでしたが、狙い通りのコードをChat-GPTで生成することが出来ました。今後も更に高度なテーマにも挑戦していきたいと思います。興味を持たれた皆様も、これを機にAIコーディングに挑戦してみてはいかがでしょうか。
付録
Chat-GPTへの入力プロンプト全文: |
---|
Arduinoプログラムの作成を依頼します。 Arduinoボード仕様: 2つのLED (LED1, LED2) が実装されている LEDは抵抗でプルアップされており、カソード側がPinに接続されている Name pin memo LED1 16 - LED2 15 - ソフトウェア仕様: LED1とLED2が1秒ごとに点灯、消灯を繰り返す LED1の初期状態は点灯、LED2の初期状態は消灯 |
ChatGPTによる生成コードについての一般的な注意事項:生成されたコードを利用する前に、特定のスクリーニングプロセスが推奨されます。なぜなら、これらのコードは第三者の知的財産権を侵害する可能性があるだけでなく、マルウェアの断片を含むか、または他の望ましくない結果を引き起こす可能性があるためです。