ATtiny202プロジェクトの一つである。これまで作ってきたエレキーやCPRタイミングアシストと同じ回路でマイコンのプログラムを書き換えることでまったく異なった働きをする。オンボードプログラムができるようになっているので、書き換えも容易だ。PDIと言われる6ピンとVdd,Gndを書き込み装置に接続すれば作成したプログラム(スケッチ)を書き込める。
今回の装置は単純なタイマーだ。即席麺のお湯を入れてからできあがるまでの時間、3分、4分、5分という一般的な時間が経過したら合図の音が出るというガジェットである。Copilotに仕様を伝え、スケッチの提示を受けた。なかなかこちらの意図を伝えるのは難しいものだ。すぐにスケッチ例を出してくれるのだが、こちらが考えているものとは違っている。どのような動作をさせたいのか、どのような入力があり、出力を求めているのか、どのピンを使うかということも伝えなくてはならない。やりとりをしながら修正をしていく。
一番手間取ったのが入力である。3分、4分、5分のどのタイマーを動作させるか、1つのボタンで入力しなければならない。当初、ボタンを押し、ピピピと音がしたら指を話すと3分の設定になり、さらにピピピピと音が鳴って指を放したら4分、ピピピピピと鳴ってからなら5分に設定できる仕様を考えていた。しかし、Copilotはすぐそのスケッチを書いてくれるのだが動作が思い通りではない。ボタンを押している時間経過を測定するアルゴリズムが難しいようだ。何度も数値を変更して試したのだがうまくいかなかった。そこで、このやり方を変更し、クリック、ダブルクリック、長押しによって3つのモードを切り替えることにした。切り替えができそれぞれのモードに入ったときに、それぞれ音を出して知らせる流れにした。何回かの修正はあったがこの方法でどうやらうまく動作するようになり、スケッチとしてまとめることができた。
もう一つ付け加えた機能がある。タイマーはそれが動作している状況がわかりづらいのだ。電源を入れ、モード設定を待っている状態とタイマーがスタートして時間を刻んでいる状態をわかるようにする必要がある。使えるのはLEDである。電源を入れてモード設定を待っている状態の時には2秒に1回50ms点灯し、タイマーが動作しているときには1秒ごとに50ms点灯するようにした。電源を入れてゆっくりとした点滅なら待機中、速めの点滅ならタイマー動作中、LEDが光らなければ電源が入っていないことになる。
時間が経過したときどのように知らせるかは次のようにした。注意が惹かれるのは連続音より断続音であろう。ピピピピという音を間隔を空けて繰り返すようにした。市販のタイマーでは停止操作をするまで鳴り続けるものが多いようだが、うるさく感じる。タイマーの用途からして近くにいることがほとんどなので、時間経過がわかればよい。5回ほどピピピピが繰り返せばよいだろうと考えた。
動作確認をしながら変更点をCopilotのノートブックに書き込みスケッチを変更していく。何をしたいのかだけを考えながら作業を進められるのは有り難い。小さなマイコンに次は何をさせるか楽しみである。