ChatGPTを使ってArduinoプログラムを作る方法 スクラッチもできる?
こんにちは、せでぃあ(@cediablog)です。
今話題のChatGPTでArduinoプログラムの自動作成は可能ですか?
2022年11月にリリースされた話題の対話型AIツール、「ChatGPT」
プログラムで作られたAIツールなのですから、プログラミングは得意中の得意なはず!
ということで、今回はChatGPTを使ってArduinoプログラムを作成してみました。
電気配線やスクラッチプログラミング方法も質問してみたよ!
- ChatGPTの登録方法と使い方
- ChatGPTを使ったArduino IDEプログラム作成方法
- ChatGPTを活用する際の注意点
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
ChatGPTとは
OpenAI社が開発した対話型のサービスで、AIとチャットしながら質問したり、プログラム作成のような作業の依頼もできてしまうツールです。
Eメールアドレスと携帯番号入力による認証を行うだけで、だれでも無料で登録して利用することができます。
ChatGPTの登録方法と使い方
それでは、ChatGPTの登録方法と使い方について解説していきます。
アカウントの登録方法
ChatGPTの公式ページ(https://openai.com/blog/chatgpt/)に移動します。
英語のページが開くので、必要に応じて翻訳ボタンをクリックして日本語表示に変更してください。
チャットGPTをお試しくださいをクリックします。
「人間であることを確認します」のチェックボックスにチェックを入れます。
Sign upをクリックします。
登録用のEメールアドレスを入力し、Continueをクリックします。
任意のパスワードを入力し、Continueをクリックします。
「人間であることを確認します」のチェックボックスにチェックを入れます。
登録したEメールアドレス宛に、認証用のメールが送付されます。
届いた認証用のEメールを開き、Verify email addressをクリックします。
このあとログイン画面がひらきますので、以下を入力します。
- First name:名前
- Last name:苗字
- 電話番号:認証用パスワードを受け取る電話番号
SMSにて6ケタの認証番号が送られてきますので、入力してContinueをクリックします。
いくつか質問されますが、すべてNEXTをクリックして問題ありません。
最後の画面でDoneをクリックすることで、登録が完了します。
使い方
ChatGPTログイン後の画面で、文字入力ボックスに質問などを入力することでAIと会話ができます。
ChatGPTとは?聞いてみた
まずは自己紹介してもらいました。
私が入力した質問コメントが「IN」として表示され、ChatGPTの回答が背景がグレーのコメント欄です。
質問はシンプルでも、詳しく丁寧に回答してくれることが分かると思います。
気軽に話しかけてみてください
ChatGPTを使ったArduinoプログラム作成方法
ChatGPTの登録が完了し、使い方もわかったところでいよいよ本題です。
ChatGPTの対話を通じて、Aruinoプログラムを自動で作ってもらいましたので紹介します。
押しボタンを押している間、LEDを点灯させる
デジタル入出力プログラムの作成を要求しました。
しっかり色分けまでしてプログラムを作成してくれています。
日本語で「押しボタン」「LEDランプ」という言葉を記入しただけで、それっぽい変数名もつけてくれています。
なんと、各プログラム行に対して日本語でコメントを入れてくれています。
AIが作ったプログラムでありながら、人間に対するやさしさが感じられるプログラム内容だと感じました。
押しボタンとLEDランプ点灯のプログラミングについては、こちらの記事にて詳しく説明しています。
明るさセンサ検出値に応じて、LEDの点灯明るさを制御する
アナログ入出力プログラムの作成を要求しました。
アナログ入力値は「0~1023」、アナログ出力値は「0~255」の表現レンジなのですがmap関数を使ってこのレンジ違いの値を変換させる処理を使っています。
私の「アナログ入力0番ソケット」指示に対して、A0ソケット入力と解釈し「analogRead」関数で入力してくれています。
LEDに対しても「analogWrite」関数を使って、アナログ(PWM)出力できています。
明るさ検出値に応じたLEDの明るさ制御のプログラミングについては、こちらの記事にて詳しく説明しています。
サーボモーターの回転角度を変化させる
最後にサーボモーターの制御プログラム作成を要求しました。
「サーボモーターの角度を60°ずつ回転」の指示に対して、Servoライブラリを使用してプログラムを作成しています。
押しボタンが押されてから離れるまでの間プログラムを先に進めない処理があった方が理想かなとも感じましたが、servo関数は動作完了までプログラムが先に進まないため動作的に問題ないです。
ここまで3つのプログラム課題をChatGPTに投げかけましたが、見事にプログラム作成に成功していると言えます。
サーボモーターの回転角度制御プログラミングについては、こちらの記事にて詳しく説明しています。
スクラッチプログラムを作ってと頼んだらどうなる?
スクラッチプログラミングは、機能ブロックを積み木のように積み上げるビジュアルプログラミングです。
Arduinoのビジュアルプログラミングツールである「Scrattino3(スクラッチーノ3)」と「mBlock」について、それぞれプログラムの作り方をChatGPTに質問してみました。
ArduinoIDE
先ほど紹介した、押しボタンを押している間だけLEDを点灯させるプログラムを例にします。
このプログラムと同等のビジュアルプログラミング作成を、ChatGPTに要求していきます。
Scrattino3(スクラッチーノ3)
Scrattino3(スクラッチーノ3) は、Scratch3.0の拡張機能としてArduino制御ブロックが追加されたプログラミングツールです。
Scrattino3プログラム作成を要求
さすがにスクラッチプログラミングの画像を表示してはくれませんでした。
その代わり、どの機能ブロックをつなげていくか指示しています。
文章だけで精一杯要求に応えようとしてくれている姿勢が感じられます。
どのブロックのことを言っているのか?わからない部分もありますしScrattino3でプログラムするためにはファームウェアの転送が必要ですが、そこには触れられていません。
Scrattino3プログラム作成を要求するのは酷な印象を受けました。
Scrattino3でのプログラム作成方法については、こちらの記事にて詳しく説明しています。
mBlock
mBlock は、Makeblock社が開発したスクラッチベースのビジュアルプログラミングツールです。
ブラウザ上または、PC(パソコン)にインストールをしてプログラミングを行う無償ソフトウェアになります。
mBlockプログラム作成を要求
現在のmBlock最新バージョンである、mBlock5を自動的に選定してプログラムの作り方を説明してくれました。
Scrattino3のときと同様に、やはり言葉での解説だけでは理解しづらい印象を受けました。
mBlockでのプログラム作成方法については、こちらの記事にて詳しく説明しています。
電気配線についても教えてくれるのか?
「電気配線図を示します」と記載があるので、画像が表示されるはずがされていないだけ?かもしれません。
が、配線手順の中に重要な記載漏れが存在しています。
それは、LEDの接続ラインに抵抗器接続が必要である旨の記載がないことです。
LEDに流すことができる電流値には限りがあり、それ以上流してしまうと故障してしまいます。
LEDに接続する抵抗の選び方については、こちらの記事にて詳しく説明しています。
ChatGPTを活用する際の注意事項
ChatGPTはとても賢く、いろいろなことを短時間で回答してくれる優秀なAIですが注意事項があります。
- ChatGPTが間違った回答をすることがある
- ChatGPTに注意事項を質問した結果
ChatGPTが間違った回答をすることがある
電気配線図の質問に対する回答で、抵抗器の挿入指示が漏れているという重要なミスがありました。
このようにChatGPTは常に正しい回答をするわけではないということを前提に、質問する必要があります。
また、ChatGPTの回答について真偽を判断できるだけの知識を質問者自身が持ち合わせておく必要があるとも言えます。
抵抗器の接続指示漏れのように、機器の故障につながりかねないミスもありますので十分注意してください。
ChatGPTに注意事項を質問した結果
せっかくですので、ChatGPTにも注意事項を質問してみました。
Arduino本体のメモリ容量や通信関連の注意事項がいくつか挙げられていました。
もちろんこの回答内容も「参考情報」として受け止めておく必要があります。
まとめ
- ChatGPTは無料で利用できる賢い対話型AIツール
- やりたいこと、接続ソケット番号を指示すればプログラムを自動作成してくれる
- 間違った回答をするときがあるので、真偽を見極める必要がある
ここまで正確にプログラムを作ってくれるなんて、ChatGPTは本当に賢いと感じました。
ChatGPTを使ってプログラム作成をすることで、プログラムの組み方に対して新しい気づきが得られるかもしれませんね!
プログラム作成以外でも活用してみたいと思います!
最後まで読んでいただき、ありがとうございました。
コメント