SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

タイムカード警告装置

この4月から、職場の情報センターにタイムカードが設置されました。
が、これまで長らくタイムカードを打刻していなかったので、押し忘れ防止のために、IchigoJamで警告装置を作りました。

福野さんのブログ記事「IchigoJamで温度表示付きオリジナル時計作りに、245円の4KBメモリ&RTCモジュールが便利!」
fukuno.jig.jp
に書かれている、aitendoの時計モジュール「RTCモジュール [M3231]」
www.aitendo.com
と設定プログラムを使わせていただきました。

こうしたアンチョコ細工を簡単に作れるのが、IchigoJamのいい所ですね。
RTCモジュールも簡単に使えることがわかったので、今後の工作教室のネタとして考えたいと思います。

プログラム

あらかじめRTCモジュールに時刻を設定した後、事務所の出入り口へ赤外線センサーを向けておきます。

  • 出勤時間帯/退勤時間帯の間(8:45~9:00、17:45~19:00)
  • かつ、出入り口を人が通った時

に、ブザーで2秒ごとに警告音が鳴ります。
動作確認のため、赤外線センサーが人間を検知している最中は(時間帯を問わず)LEDが光ります。
※「ブザー音だとすぐに慣れてしまう」という声があったので、不規則にメロディを鳴らすように改良しました。

1 '*Time Card Warning
2 CLV:CLS
3 P="C;D;E;F;G;A;B;<C"
4 LED 1:BEEP 10,30:WAIT 30:LED 0
5 @LOOP
6 GSB @TIMEREAD
7 CLS:?DEC$(H,2);":";DEC$(M,2);":";DEC$(S,2)
8 IF !IN(4) GOTO @LOOP
9 LED 1
10 T=H*100+M
11 IF 845<=T AND T<900 GSB @BP
12 IF 1745<=T AND T<1900 GSB @BP
13 WAIT 60+RND(60):LED 0:GOTO @LOOP
14 @TIMEREAD
15 POKE #700,0
16 IF I2CR(#68,#700,1,#701,7) ERR
17 X=PEEK(#703)
18 H=X>>4*10+X&15
19 X=PEEK(#702)
20 M=X>>4*10+X&15
21 X=PEEK(#701)
22 S=X>>4*10+X&15
23 RTN
24 @BP
25 PLAY P+RND(8)*2
26 RTN

追記

「音が小さい」という意見があったので、トランジスタ一石アンプ+100均スピーカーを付けて、ボリュームを上げました。