多機能タイマ製作7


今日は、ヴァイオリンのレッスンが無いのとその他外出を入れていないので、タイマーのほうをやってしまうことにしました。なので、JWCAD を起動しまして、現物合せの位置決めの結果を図面に入れます。ついでに印刷用に不要部分をばっさり削除して上面・裏面・背面の部分だけ印刷出来るように準備です。まずは普通に紙へ印字し大きさの確認。

次は、図面を透明シートに印刷してアルミケースに貼り付け。

あとは、電動ドリルとハンドニブラとヤスリで加工を続行。

で、無事完成です。

あとは、デジカメ接続してシャッターがきれるか動作確認。結果組み込み時に断線などは発生しなかたので問題なく動作。よかった。ボタンやケースのレタリングは透明シートがあまっているのでプリンタで印刷して貼ればいいのですが、手持ちの透明シートは粘着弱いタイプなのであらためて実施かな。でも本人わかってるからねぇ。

多機能タイマ製作6

穴開けの位置決めガイドの準備作業で JWCAD へ図形登録実施。このとき、大きさ測るついでに高さが大丈夫かも現物合せでチャッチャと確認。微妙な場所はありますが入りますな。

ということで JWCAD にポチポチと図形登録実施。上は図形呼び出しが出来るのを確認したところ。あとはタカチのケースに上の図形はめこんで、ラベルシートに印刷して穴開けのガイドにする予定です。ボール盤無いので地道に穴開けしないといけないのが面倒です。四角いところはハンドニブラーとやすりでなんとかなるかなぁ。というかなって欲しいというのが正直なところ。ハンドニブラーの刃大丈夫だっけ。

多機能タイマ用アルミケースやその他買い物

日本橋のシリコンハウスさんへちょいと買い物に。

2階のケースコーナーをぶらぶら見てましてタカチの TS-11 アルミケース(傾斜タイプ)が目に入りました。目分量という根拠の無い感では「余裕で入る」というということだったので購入。もう一つのテイシンの TE-316 のアルミケースは秋月の LM350T だったか LM338T 使用の大容量出力可変安定化電源キット用に仕入れておきました。

こて先クリーナーはつい衝動買いです。普段はスポンジのクリーナー使用していますが、使い終ったあとの片付けでスポンジ湿っているので道具箱入れられんしということでそこら辺に放置というのが常でしたが、今回これが目にはいりましたのでちょっと使ってみようかというやつです。

後は、シリコンハウスさんのレジのところにあった味マップと、ビックカメラで透明ラベルシールを購入。シールのほうはケース加工用です。

多機能タイマ製作5

前回の多機能タイマ4で、Youtube にも動作例をアップロードしました。時間パラメタなどを設定する画面で画面を一旦クリアして一画面丸ごと再描画していましたが、シリアル I/F で VFD モジュールを動かしているためにあきらかに動作が遅いのです。

  012345678901234567890
 +---------------------+
0|                     |
1|  YY __  hh __       |
2|  MM __  mm __       |
3|  DD __  ss __       |
4|  DAY ___            |
5|  ENT=Write RTC      |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

上の画面例で言うと、1 行目の YY の設定をしているときは 1 行目だけ再描画すれば良いので、画面表示するコードに何行目を再描画すれば良いかの判定を追加。これで、目障りな画面のチカチカは減りました。ソフトのほうは、コンパイル後のスケッチのサイズ:13,832バイト(最大容量32,256バイト)なのでまだまだ余裕ありますが、一旦フリーズして。今後は苦手なケース加工へ移行していきたいと思っています。基本的に夜間、屋外で使用するので透明プラケースは避けようかとは思いますが、どうなることやら。

多機能タイマ製作4

タイマの基本部分は以下の画面でなんとかする。ということで仕様はほぼ決定。コード書いていきます。

●ランニング画面(screenID=0)

  012345678901234567890
 +---------------------+
0|Interval Timer       |
1|Del 99'99 Num 9999   |
2|Int 99'99 Exp 99'99" |
3|                     |
4|Ramen Timer          |
5|A 99'99"  B 99'99"   |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

0~6行は、実行中のステータス表示に使用する。

  ESC: メニュー画面
  ENT:時分をしゃべる

  チャイム音のあとに、hh時mm分です
  <NUMK VAL=hh COUNTER=ji>/<NUMK VAL=mm COUNTER=funn>de_su.

ラーメンタイマーは、満了時刻30秒前に

タイマーA あと30秒です
ta'ima-/e'i a'to/<NUMK VAL=30 COUNTER=byo->de'_su. 

タイマーB あと30秒です
ta'ima-/bi'- a'to/<NUMK VAL=30 COUNTER=byo->de'_su.

と事前通知を行ない、時間満了でチャイム2回鳴らす。



●メニュー画面-選択画面(screenID=1)

  012345678901234567890
 +---------------------+
0|Set DATE & TIME      |
1|Interval Timer       |
2|Ramen Timer          |
3|                     |
4|                     |
5|                     |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: ランニング画面に戻る
  ENT: 選択されたメニューを表示
  カーソル上下: メニュー選択

●メニュー画面-Realtime Clock(screenID=2)

Set DATE & TIME選択時の画面

  012345678901234567890
 +---------------------+
0|                     |
1|  YY __  hh __       |
2|  MM __  mm __       |
3|  DD __  ss __       |
4|  DAY ___            |
5|  ENT=Write RTC      |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: ランニング画面に戻る
  ENT: RTC に最新時刻書き込む。ランニング画面に戻る
  カーソル上下: 値上下
  カーソル左右: 項目移動


●インターバルタイマ設定画面(screenID=3)

  012345678901234567890
 +---------------------+
0|Interval Timer       |
1|  Delay    99'99     |
2|  Interval 99'99     |
3|  Exposure 99'99     |
4|  Num Shot  9999     |
5|  ENT=Start ESC=Back |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: ランニング画面に戻る
  ENT: インターバルタイマ開始し、ランニング画面に戻る

●ラーメンタイマ設定画面(screenID=4)

  012345678901234567890
 +---------------------+
0|Ramen Timer          |
1|                     |
2|  Timer A  99'99     |
3|  Timer B  99'99     |
4|  Enable   A X B X   |
5|  ENT=Start ESC=Back |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: ランニング画面に戻る
  ENT: ラーメンタイマ開始し、ランニング画面に戻る


動作の様子は以下の youtube に上げた動画のとおりです。

  • インターバルタイマ機能
  • ラーメンタイマ機能
  • 時間をしゃべらせる

などです。

現状は、画面に出すのを最優先でコーディングしましたので、vfd の描画を一々消してから再描画などやってまして、画面がチカチカします。今後は、再描画の範囲を減らして操作しやすいようにしていきましょう。

多機能タイマ製作 その3くらい

本日も少しコーディング。超基本部分になる時刻の表示と設定です。といってもこの多機能タイマの機能のうちインターバルタイマーやラーメンタイマーにはこの時計を使用する予定はありません。現在は単に現在時刻表示(画面並びに音声)するためだけの用途で実装しています。

検討中ですが、下記画面イメージで検討

□ランニング画面(screenID=0)

  012345678901234567890
 +---------------------+
0|                     |
1|                     |
2|                     |
3|                     |
4|                     |
5|                     |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|  最下行は常に時計表示
 +---------------------+

  0~6行は、実行中機能のステータス表示に使用する。

タイマー全部動かしたら下のような感じかな。検討中
  012345678901234567890
 +---------------------+
0|Interval Timer       |
1|Del 99'99 Num 999  * |
2|Int 99'99 Exp 99'99" |
3|                     |
4|Ramen Timer          |
5|A 99'99"  B 99'99"   |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|  最下行は常に時計表示
 +---------------------+



□メニュー画面(screenID=1)

  012345678901234567890
 +---------------------+
0|Set DATE & TIME      |
1|Interval Timer       |
2|Ramen Timer          |
3|                     |
4|                     |
5|                     |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: ランニング画面に戻る
  ENT: 選択されたメニューを表示
  カーソル上下: メニュー選択

□メニュー画面-Realtime Clock時刻設定」(screenID=2)

Set DATE & TIME選択時の画面

  012345678901234567890
 +---------------------+
0|                     |
1|  YY __  hh __       |
2|  MM __  mm __       |
3|  DD __  ss __       |
4|  DAY ___            |
5|  ENT=Write RTC      |
6|                     |
7|YY/MM/DD hh:mm:ss XXX|
 +---------------------+

  ESC: メニュー画面に戻る
  ENT: RTC に最新時刻書き込む。ランニング画面に戻る
  カーソル上下: 値上下
  カーソル左右: 項目移動

そして、それに則ってコーディングして動作確認中。リアルタイムクロックそのものは特に問題無いでしょう。ということろ。


多機能タイマの構成を少しいじっています。

先日の動作確認で AquesTalk pico を 5V 動作させてもあまり気にならない声だったのでシールドの電源を 5V 統一します。これに伴ない以下の変更を実施

  • AquesTalk pico は 5V 動作に変更。
  • 3.3V の電源ライン廃止
  • I2C レベルシフタ撤去
  • CDS は夜間使用がほぼ固定されるので廃止
  • デジタル一眼用のリモートコード対応

という変更をかけまして基板上の部品も少し変わりました。TLP521 も載せてカメラのリモートコード用軍端も接続。半押しと全押し両方信号出さないとシャッター切れなかったため、都合3本です。

多機能タイマ製作

AquesTalkPico ATP3011F1, Noritake VFD モジュール、リアルタイムクロックで作りかけの多機能タイマもどきのビルディング中。これは写真撮影、天体観望などお外で使いたいと思っているものです。

基本的なモード

  • 現在時刻の表示
  • ボタン押したら時刻をしゃべる(まだボタンは未配線)

追加要素

  • ラーメンタイマ(時間間際にしゃべって知らせる)
  • デジタル一眼用インターバルタイマ(まだ未配線)

Arduino のスケッチで I2C 接続している RTC と AquesTalk Pico, シリアル接続の VFD モジュールの接続確認出来た状態でコンパイル後 5KB くらい。マイコンは32kB なので入って欲しいなぁと思いつつ。割り込み使う方法か、メインループでベタに時間見ながら処理するかが実は決まっていないというひどい状態。ここらへんはトライ アンド トライ でいきましょう。