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