
生成AIを使ってスケッチを書くことが面白くなってきた。関数も、文法もあまり気にすることなく、何をやりたいかをAIにわかるように伝えていけばスケッチが入手できるのだ。
今回はATtiny202というマイコンを使って挑戦してみた。このマイコンは8ピンの小さなもので、ArduinoIDEを使ってコンパイルから書き込みまでができる。メモリーの容量は2kと少ないので大きなプログラムは書けない。入出力となるピンの数も5つと少なく制約も多い。それでも実戦で使えそうなガジェット作りに取り組んでみる。
使った生成AIはWindowsのEdgeに組み込まれているCopilotである。Copilotにはいくつもの種類があるとのことだが、手軽に無料で使えるこのCopilotを使った。Edgeを立ち上げると画面の右上に出てくるアイコンを押してCopilotを起動する。右端に縦の帯状に開くのだが使いにくいので、全画面展開にする。「チャット」と「作成 」の選択ができるがチャットを選び、「ノートブック」の入力を使った。通常のチャットでは質問したことがどんどん流れて行ってしまうが、ノートブックなら自分が書いたものを修正しながら質問でき、質問の的を絞りやすい。ただ気を付けなくてはならないのが、ノートブックではそこに書かれていることしかAIに伝わらないのだ。普通のチャットなら何回ものやり取りで話を詰めていけるが、ノートブックでは1回ごとの質問になっているようなのだ。つまり、それまでの話の流れでノートに書く内容を省略すると、そこに書いてあることだけへの回答が返ってくる。どういう文脈からその質問をしているのかが反映されないことがある。ノートブックで質問をひとまとめにして1回ずつに回答を求めるというスタンスだ。
作りたいものの仕様をCopilotに示す。どんな質問をしてもすぐに回答が表示されるのだが、それがこちらの意図していることへの回答とは限らない。AIが理解したところを回答してくる。もっともらしい回答なのですぐ使えそうに思うのだが、検討が必要である。Copilotの回答の一番下には「CopilotはAIを使用しています。間違いがないか確認してください。」との表示が出ている。AIはさまざまな学習をしているのでそれらを組み合わせ回答を生成してくれ、もっともらしく示してくれるが、正しいということを担保するものではないのだ。
スケッチを書く場合、作りたいものの仕様を明確にする必要がある。機能だけでなく使うデバイスの制約、使い方などしっかりとAIに伝えなければならない。実際には単純な機能のスケッチから始める方が良さそうだ。ピン接続など基本的なことを確認し、ほしい機能が動作するかを確認する。
202というマイコンはPDIというオンボードでスケッチの書き換えができる。ブレッドボードに回路を組んでおき、書き込み装置にしたArduinoをVdd,Gnd,信号線の3本のコードで接続しておく。Copilotの示してくれたスケッチをコピー&ペーストしてIDEでコンパイルし、うまく通ったら202に書き込み動作確認する。コンパイルが通るまで何回もCopilotとやり取りしなければならない。IDEからのエラーメッセージをCopilotに示すことで改善策を示してくれる。
コンパイルが通っても、機能を詰めすぎると202のメモリー容量を超えてしまうことがあった。うまく書き込みができるとブレッドボード上の回路が動作を始める。全く動作しないこともあれば意図しない動作のこともある。具体的な状況をCopilotに示してスケッチの修正を行っていく。実際に使えるスケッチにしていくにはこれらの作業を繰り返し、なかなか大変である。しかしこれまではArduinoIDEのマニュアルを片手に関数を探し文法とにらめっこしながらの作業だったことと比べればずいぶん楽になった。
まだまださまざまな試みができそうである。一つ世界が広がった感じだ。