どうしたものか。
浮かない顔をして。
どうすればよいのかわからなくてな。
ChatGPTもAPIをもっているから、マイコンで文章を作って
ChatGPT APIに送信すればよいと思うぞ。
今回はそのあたりを使ってみようか!
- インターネット接続できる(WiFi接続機能など)
- ChatGPTのAPIへリクエストを投げることができる
この記事では、プログラミング学習をされる方に向けた、「おすすめの機器」と「プログラミング方法」をご紹介します。 題して「まじコレ!」 第二回は、「M5Stack Core 2」です。 […]
記事内でご紹介する「M5Stack」はこちら!
M5Stack Core2 開発キット
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!
ChatGPT とは?
ChatGPT(Chat Generative Pre-trained Transformer)は、OpenAIが2022年11月に公開した人工知能チャットボットです。
生成AIの一種で、原語のGenerative Pre-trained Transformerとは、「生成可能な事前学習済み変換器」という意味です。
OpenAIのGPT-3ファミリーの大規模な言語モデルに基づいて構築されており、教師あり学習と強化学習の両方の手法を使って転移学習され、機械学習のサブセットである深層学習を使って開発されています。
ChatGPTは無償で使えるの?
ChatGPTは、パソコンなどのWebブラウザから対話形式で使用する場合、ユーザ登録のみで無料で利用できます。
今回は、ChatGPTのAPIを使用しますので、プランによって課金と機能体系が異なります。
「API」とは、「Application Programming Interface」の頭文字です。簡単に言うと、「アプリケーションをプログラミングするためのインターフェース」です。インターフェイスとは、コンピュータ用語でいうと、「何か」と「何か」をつなぐものという意味を持ちます。ですので、プログラムとアプリケーション(ソフトウェア)をつなぐものを意味します。
今回使うChatGPTのAPIは、プログラムからChatGPTのモデルに問い合わせを行いデータ取得をするインターフェイスとなります。
次のサイトに掲載されています。
ChatGPTのモデルとは?
ChatGPTは、機械学習により学習されたモデルを使って、Chatなどの機能を提供しています。
このモデルにより、使用できる機能が変わってきます。
モデルによって、機械学習を行った時期が異なっています。
大きく分けて次の3つになります。
モデルファミリー | APIエンドポイント | |
Newer models(2023 年以降) | gpt-4, gpt-3.5-turbo | https://api.openai.com/v1/chat/completions |
Updated base models (2023) | babbage-002, davinci-002 | https://api.openai.com/v1/completions |
Legacy models (2020 ~ 2022 年) | text-davinci-003, text-davinci-002, davinci, curie, babbage, ada | https://api.openai.com/v1/completions |
上記のAPIエンドポイントは、各モデルを使う際にリクエストする場所になります。
モデルによりAPIエンドポイントが異なっていますので注意が必要です。
今回は、数あるモデルの中で、「text-davinci-003」を使用します。
ChatGPTを使う
ここでは、ChatGPTを使うために必要な手続きをご紹介します。
手続きは、次の2点です。
- ChatGPTにユーザ登録する
- API Keyを取得する
ChatGPTにユーザ登録する
ChatGPTの公式サイトへのリンクを以下に貼っておきます。
アクセスしてみてください。
API Keyを取得する
ユーザー登録が完了したら、ChatGPTのページから「Login」を押します。
M5StackでChatGPTを使ってみよう
Wi-Fi接続用のSSIDとパスワードをmicroSDカードから取得し設定する
Wi-Fi環境への接続が必要になります。
今回のプログラムでは、事前にM5StackのmicroSDに記憶させた情報を使用しています。
Wi-Fi接続情報の読み出し方法は、次の記事で紹介しています。
すけろく M5Stackは、Wi-Fi機能がついているのか。 げんろく ESP32のおかげだな、2.4GhzのWi-Fi接続に 対応している。 すけろく では、早速Wi-Fi接[…]
microSDは、M5Stackに対応しているものを選びましょう。今回は次のものを使いました。
microSDカード
安心・安全なSanDiskのmicroSDメモリです。JetsonやRaspberry Piなどで使用するには少し遅い部類のメモリになりますが、M5Stackなどでデータロギングやデータ読み込み用途にはこのあたりが最適です。
安価なメモリはほかにもありますが、信頼性が高いこのメーカーを当サイトではおススメしています。
Click Me !!Amazonで確認 M5Stackのデータロギングにつかうならこれ! |
ライブラリを追加する
今回、ライブラリとしては、次のものを使用します。事前にライブラリのインストールが必要です。
ライブラリ名 | バージョン | ライブラリサイト |
ArduinoJson
|
6.21.3 | https://arduinojson.org/?utm_source=meta&utm_medium=library.properties |
LovyanGFX
|
1.1.8 | https://github.com/lovyan03/LovyanGFX |
M5Core2
|
0.1.6 | https://github.com/m5stack/M5Core2 |
ChatGPTから取得するデータはJSON形式になりますので、ArduinoでJSON形式データを扱うためのライブラリ「ArduinoJSON」をインストールします。
ライブラリのインストールは、次の記事で紹介しています。
本記事は、Arduino IDE 1.8.xバージョンのライブラリ管理方法を紹介した記事です。 Arduino IDEは、より新しいバージョン「2.0.x」が発表されています。 機能がよりリッチになった「Ardu[…]
ChatGPTを使うプログラム
今回は、以下の質問をChatGPTへリクエストした結果を、M5Stackのディスプレイに表示させるプログラムを作成します。
「日本で最も高い山はどこですか?」
Where is the highest mountain in Japan?
Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。
※「ChatGPTのAPI Key」、ご自分の環境に合わせて値を修正してください。(スケッチ例では、「”Please correct it to the value that suits your environment.”」と記載しています。)
Arduino IDE スケッチ例
M5Stackへの書き込み
- 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
- 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
ボード:「M5Stack」-「M5Stack-Core2」
「Partition Scheme」で「Not OTA(Large App)」を選択します。 - 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
(転送速度は「115200」です) - 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。
プログラム実行結果
M5Stack Core 2 のディスプレイに以下のとおり表示されれば成功です。
(※表示される文章は、場合により変わる可能性があるので留意してください。)
さて、簡単な質問であれば、M5StackからChatGPTへのリクエストを通して、取得することができました。
ChatGPTにはテキストの他にも画像を取り扱うこともできますので、今後の広がりが期待できそうです。
今回の記事は以上になります。
最後までご覧いただきありがとうございました。
記事内でご紹介する「M5Stack」はこちら!
M5Stack Core2 開発キット
タッチスクリーン、マイク、IMUを使うことができ、従来のM5Stackよりも多機能なモデルです。 バッテリーも搭載しています。一台でいろいろと遊べる機器なのでおススメです!
microSDカード
安価なメモリはほかにもありますが、信頼性が高いこのメーカーを当サイトではおススメしています。
これからはじめる方にお勧めの参考図書はこちら!
M5Stack の他の記事はこちらからどうぞ!
すけろく ううーん。 どうしたものか。 げんろく どうした? 浮かない顔をして。 すけろく ChatGPTをマイコンから使ってみたいのだが、 どうすればよいのかわからなくてな。 げんろく そうか。 ChatGPTもAPIをもっているから、マイコンで文章を作って ChatGPT APIに送信すればよいと思うぞ。 今回はそのあたりを使ってみようか! 皆さん、「ChatGPT」は活用されていますか? 私 […]
すけろく 最近メダカの飼育が流行っているらしいの~ げんろく そうだな。日本の水質にも適用能力が高い魚だからな。 我が家でも飼育してみるか。 すけろく そうなると、メダカに快適な環境を整える必要があるな。 げんろく よし。 まずは、メダカが快適に過ごせる水温か確認するぞ! 皆さん、お家で何か動植物を飼っていますか? 今回、縁あって、げんろく宅にも「メダカ」さんがやってくることになりました。 メダカ […]
すけろく んーどうしたものか。 げんろく どうした? 深刻な顔をして。 すけろく M5Stackにプログラムを書き込んだら 起動しなくなってな。 電源ON/OFFでも無理なのだ。 げんろく 書き込んだプログラムか、バッテリーの 過放電か。工場出荷時に戻してみてはどうだ? この記事では、M5Stackにプログラムを書き込んだ結果、うまく動作しなくなった場合の対処方法を記載します。 ご紹介するのは「工 […]
すけろく んー。 どうしたものか… げんろく どうした?深刻な顔をして。 すけろく 「城の守りを固めるため、敵の接近を検知してみせよ!」 と殿から宿題をもらっての。 げんろく なるほど、それならば人感センサーを使ってみてはどうか? 敵が勝手に部屋に入ったりするのを検知できるぞ! この記事では、M5Stackと、「人感センサー(HC-SR501)」を使って、人が近づいた際に検知して反応するプログラム […]
すけろく 前回は、RTC非搭載のM5Stackでの時刻同期を行ったが、 RTC搭載の場合はどうするのかな。 げんろく うむ。 RTCは、M5Stack Core 2 などで搭載されている。 ちょっと、プログラム内容が異なるから、実装してみるか。 この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法 […]
すけろく ん~。 げんろく どうした難しい顔をして。 すけろく M5Stackのディスプレイにいろいろ描画しているのだが。 画像がチラチラしてみずらいのだ。 げんろく 描画タイミングとか、メモリを使うとか しておるのか? すけろく ・・・ げんろく 今回は、そのあたりを見てみようか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字や画像を表示する際のちらつきや、安定 […]
すけろく M5StackでPCファンの回転を制御することはできたが LEDの点灯制御はまだだな。 げんろく そうだったな。 LEDの点灯制御もM5Stackで行うことができるぞ! 実際に動かしてみよう この記事では、M5StackとLED搭載のパソコン用冷却ファンを使ったLED発光制御の方法について紹介します。 前回は、M5Stackで冷却ファンを使った回転速度制御をおこないましたが、今回はL […]
すけろく M5Stackを使って、モーターをコントロールしてみたいな。 げんろく それならば、モーターコントロールを学べるPC冷却ファン制御というものをやってみるか。 すけろく ん? パソコン用の冷却ファンをコントロールできるのか? げんろく 仕組みはモーターと同じだからな。 とにかくやってみよう! この記事では、M5Stackとパソコン用の冷却ファンを使って回転速度制御を行います。 […]
すけろく 標準ライブラリでの画面描画はできた。 しかし、M5Stack向けのライブラリなので 汎用性がないな。 げんろく たしかに。 M5StickCや他のAruduino機器でも使えるものが必要だな。 すけろく そのようなものがあるのか? げんろく よし。今回は、汎用的に使えるライブラリを紹介しよう。 lovyan03さんが公開されている「Lovyan_GFX」だ。 この記事では、Arduino […]
すけろく M5Stackも時刻同期や日本語表示までできた。 うまくいっておるな。 げんろく ああ、「M5Stack」でもノウハウがたまってきている。 すけろく そういえば、大きな画面を活かしたものを 作ってみたいと思うのだが。 げんろく わかった。今回はM5Stackのディスプレイにおける 画面制御まわりを見てみるか。 この記事では、Arduino IDEを使ってM5Stackのディスプレイに文字 […]
すけろく M5Stackに英語表記で時計を表示することは 前回の記事で行えたが、日本語は表示できないのか? げんろく いや、方法はあるぞ。 eFontライブラリをM5Stackで実行できるように 修正して提供してくれているものを使うのだ。 すけろく ぜひ、やってみたいの~ この記事では、Arduino IDEを使ってM5Stackのディスプレイに日本語を表示させるための方法を紹介します。 今回使用 […]
すけろく 前回は、Wi-Fiアクセスポイントに 接続することができた。 次は時刻同期かな。 げんろく うむ。 時刻同期は、全ての基本だからな。 実装してみるか。 この記事では、M5StackをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。 M5Stackは、内蔵タイマであるRTCが搭載されているモデル(例:M5St […]
すけろく M5Stackは、Wi-Fi機能がついているのか。 げんろく ESP32のおかげだな、2.4GhzのWi-Fi接続に 対応している。 すけろく では、早速Wi-Fi接続してみよう。 げんろく せっかくなので、microSDから読みだした Wi-Fi アクセスポイント情報を使って 接続してみよう! この記事では、M5Stackに実装されているWi-Fi機能を使って、Wi-Fiルータに接続す […]
すけろく M5StackとほかのWebサービスなどとの データのやり取りにJSON形式を使いたいのだが。 げんろく うむ。 M5StackでもJSON形式が使えるか試してみるか。 この記事では、Arduino IDEを使ってM5StackのプログラムでJSON形式を取り扱う方法を紹介します。 JSON形式データは、Webサービスやほかのコンピュータとのやり取りにも使用される汎用形式なので、取り扱う […]
すけろく M5Stackは、各モデル共通でmicroSDカードの スロットが搭載されているな! げんろく そうだな。microSDカードへの読み書きが できるのでログの記録や、データ読み出しからの 画面表示ができる。 すけろく ファイルの中身を画面に表示することができるのか! それはいいな! げんろく では、手始めにmicroSDカードに入っている テキストファイルの中身を表示してみよう。 この記 […]
すけろく M5StackをArduino IDEで使ってみたいのだが。 げんろく ライブラリも揃っているしな。 開発する前に、M5Stack用の設定をArduino IDEに 施す必要がある。 すけろく M5Stack開発ボードの登録とライブラリの インストールだな。 げんろく わかってきたではないか。 新しい機器をArduino IDEで使う場合の初期設定だな。 この記事では、Arduino I […]
すけろく 今回はM5Stackを取り上げたいと思うがどうだ? げんろく なんだ、急にやる気を出して。 どういった風の吹き回しだ? すけろく M5Stickとは異なり、いろいろな種類のモデルがあって 良さそうだからな。 げんろく 開発用モデルから、実用を意識したモデルまで 様々だからな。 面白い、やってみるか! 今回の記事では、「M5Stack」を各モデルを比較して、用途に応じた使い方をまとめていま […]