タイムレコーダごっこ--カードのかわりにEEPROMを使う

2003年9月13日 - 2003年9月14日


バーコードやカードを読み取れる機械を作ると、面白いおもちゃに発展させることができます。今回は、8ピンのEEPROMを押し当てると、そのデータを読み取って記録することで、タイムレコーダや宝探しゲーム、オリエンテーリングなどで遊べそうな機械を作ってみました。読み取ったデータは時刻情報とともにパソコンに転送できるので、本当のタイムレコーダとしても使えてしまえそうなしろものです。

タイムレコーダごっこの写真 メモリチップの写真

1024ビットのEEPROMはカードの代わり

タイムレコーダーを作ろう!と思いました。でも、難しいのはカードの部分です。普通のタイムレコーダーは、キャッシュカードみたいなカードを使うのですが、この手のカードを読み書きする機械は、一般の人は買えません。というか、みだりに持っていると、それだけでカード偽造団の犯人と疑われてしまいそうなので、使うべきではないでしょう。

そこで、この作品では秋葉原で1個50円で売られている8ピンのEEPROMに、固有のIDを書き込んで、さながらカードのように使ってしまおうというアイデアで、作ってみることにしました。

作品の概要としては、PIC16F84AにEIA-574インターフェース(世間でRS-232と呼ばれているもの)と外付け1Mbitメモリー(EEPROM)を備え、1024ビットの8ピンEEPROMが「タッチ」されると、そのデータを読み取って、読み取ったIDと時刻を1Mbitメモリーに記録していくというものです。特定のIDを持つEEPROMをタッチすると、蓄積されたデータをパソコンに転送できます。

使い方

電源を入れるとまず、本体に内蔵されている1Mbitメモリーに最後に記録したアドレスを検索します。見つかると、通常の動作に移ります。ちなみに、この装置はメモリーがいっぱいになると、古いデータを上書きしながら記録を続けるように作られています。

基本的には、8ピンのEEPROM「93C46」を「タッチ」するだけで、全ての操作ができるように作られています。

写真では、電源に電池を使っています。据え置きで使うのであれば、電圧安定化回路を内蔵したACアダプタがおすすめできます。

回路の仕組み

こちらが回路図です。今回は液晶ディスプレーがありませんし、ボタンもほとんどありませんが、EIA-574という難しいものが加わっておりまして、それなりのものになっています。

回路図

ソフトウエアの仕組み

こちらがソースコードです。3種類ある外部素子とのインターフェースがけっこうたいへんなので、それなりに長いものになっています。

データのフォーマット

1024ビットメモリへ書き込むIDのフォーマットと、パソコンへ転送するデータのフォーマットをメモしておきます。

1024ビットメモリのデータ形式

カードの代わりに使う1024ビットメモリ(8ピン)には、15ビットぶんのIDが書き込まれています。IDが1024ビットあってもよいのですが、とりあえず個人で使う用途としては、15ビットぶんあれば32768個まで対応できるので、いいかなあと思ってそうしています。

パソコンに送信するデータの形式

パソコンのシリアル端子を通じて、情報をパソコンに取り込むことができます。送られる情報のフォーマットを書き留めておきました。

通信形式

データの内容

データの内容は全てテキストデータです。UNIXの改行コード(0x0a)で区切られています。

以下に実例を示しますので、これを見ながら説明を読んでみましょう

送られるデータの内容は、次のようになっています。

データ形式を決める途中で書いた詳しい企画書がありますので、よろしければご覧になってください。

パソコン側のプログラムの例

パソコンの側で、この装置からの情報を受け取るためのプログラムを作ってみました。かつてのパソコン通信用ソフトでも使えるとは思いますが、Linuxで楽しみたい場合は、こちらが参考になるかもしれません。

なお、このプログラムは「The Linux Serial Programming HOWTO」(Peter H. Baumannさん作、 藤原輝嘉さん訳)にあるサンプルプログラムを改造したものです。再配布・改造などはお好きにどうぞ。ただし、内容に責任は持てません。

デバイスファイルを指定する部分("/dev/cua0"など)の部分で、COMポートを指定していますので、うまくいかない場合は"/dev/cua1"に変えてみたりするとよいかもしれません。

やってみましょう

  1. 一般に、電子工作は危険を伴う遊びです。けがや、やけどをしないように、また、作った品物が火事の原因にならないように、安全には十分気を付けましょう。なお、この記事には間違いがある可能性もありますが、お読みになることにより生じた不都合や事故などに対しては、筆者は責任を負いかねます。ご自身の責任において、お楽しみください。
  2. 外付けの大容量メモリーと、EIA-574インターフェースを用いた通信とを組み合わせて、何か面白いアイデアの作品を作ってみてはいかがですか?
  3. パソコンに送出されるデータのフォーマットを調べてみましょう。自分でフォーマットを考えるというのも、それなりに楽しい遊びだったりしますよね。


としおの部屋 -> PICマイコンを楽しむ電子工作 -> タイムレコーダごっこ--カードのかわりにEEPROMを使う
製作・著作:杉原俊雄(すぎはら としお)
(c)2003 Sugihara Toshio. All rights reserved.