図1は、本発明の実施形態を説明するための、情報処理システムの一例の構成を示す。
情報処理システム1は、ディジタルコードを保持した情報保持媒体2と、情報保持媒体2が保持するディジタルコードを読み取る情報読取装置3とを備えている。
情報読取装置3には、情報保持媒体2が装着される装着部4が設けられている。情報読取装置3は、装着部4に装着された情報保持媒体2が保持しているディジタルコードを読み取る。
図示の例では、情報保持媒体2は列車を模した形状に形成されており、列車の進行方向に対応する方向(Y方向)への相対移動を伴って装着部4に挿入され、装着部4に装着される。また、情報保持媒体2は、Y方向とは反対方向への相対移動を伴って装着部4から抜去され、装着部4から取り外される。
装着部4には、一対のガイド部5a,5bと、スライダ6と、係合ピン7と、操作釦8と、が設けられている。
ガイド部5a,5bは、情報保持媒体2のY方向の相対移動をガイドするためのものであって、Y方向に互いに平行に延びて設けられており、断面略L字状に形成されている。
スライダ6は、一方のガイド部5aの側部に設けられており、Y方向に移動可能に支持されている。スライダ6は、情報保持媒体2の装着部4への挿入に伴い、情報保持媒体2に係合してY方向に押し込まれる。また、スライダ6は、図示しない付勢手段によってY方向とは反対方向に付勢されており、情報保持媒体2が装着部4から抜去される際に情報保持媒体2を抜去方向に押圧する。
係合ピン7は、情報保持媒体2を装着部4に留め置くためのものであって、突没可能に設けられており、図示しない付勢手段によって突出方向に付勢されている。係合ピン7は、情報保持媒体2の装着部4への挿入完了に伴って突出され、情報保持媒体2に係合する。それにより、情報保持媒体2は、スライダ6の押圧に抗して装着部4に留め置かれる。
操作釦8は、係合ピン7を没入させるためのものであって、操作釦8に対する操作に伴って係合ピン7が没入されると、係合ピン7と情報保持媒体2との係合が解除される。それにより、情報保持媒体2は、スライダ6によって押圧され、装着部4から押し出される。
図2は情報保持媒体2の構成を示す。
情報保持媒体2は、列車を模した形状に形成された媒体基体10と、媒体基体10の裏面10aに設けられた単位データ部11の配列と、同じく裏面10aに形成された一対のガイド部12a,12bとを有している。
ガイド部12a,12bは、Y方向に互いに平行に延びて設けられており、断面略L字状に形成されている。ガイド部12a,12bが、装着部4のガイド部5a,5bにそれぞれ係合することにより、情報保持媒体2は、装着部4への挿入においてY方向にガイドされる。また、情報保持媒体2の装着部4への挿入に伴い、一方のガイド部12aは、その先端においてスライダ6に当接し、スライダ6をY方向に押し込む。
単位データ部11の配列は、ディジタルコードを保持するものであって、ガイド部12a,12bの間に設けられており、X方向(第1方向)及びY方向(第2方向)に2次元状に配列されている。図示の例では、単位データ部11は、X方向に三つ、Y方向に三つ設置されているが、X方向及びY方向の各方向の単位データ部11の設置数は特に制限されるものではない。
単位データ部11の配列には、ディジタルコードを形成するための複数のマーク13が形成されている。図示の例では、マーク13は、所定の高さを有する凸部として構成されており、マーク13の有無に応じて「1」又は「0」の二値のデータが単位データ部11にそれぞれ付与され、それにより、ディジタルコードが形成される。
図3は、図2の単位データ部11の配列に形成されたマークパターンを「1」又は「0」の二値のデータに置換してなるディジタルコードを示している。
X方向に並ぶ三つの単位データ部11によって構成される単位データ部列14a,14b,14cの各々は、少なくとも一つのマーク13を含んで構成されている。
そして、単位データ部列14a,14b,14cのY方向の並びにおいて隣り合う二つの単位データ部列の、X方向順列のマークパターンは互いに異なっている。例えば単位データ部列14aのX方向順列のマークパターンは「有、無、無」であって、対応するデータ列は「1,0,0」であるところ、単位データ部列14bのX方向順列のマークパターンは「無、無、有」であって、対応するデータ列は「0,0,1」であり、互いに異なっている。また、本実施形態においては一つのディジタルコード内には、同一のデータ列は含まれないようにしている。つまり、一つのディジタルコード内において、「1,0,0」というデータ列を表す単位データ部列と隣り合う単位データ部列が「1,0,0」というデータ列を表す単位データ部列になることはなく、かつ、「1,0,0」というデータ列が2回現れることはないので、情報読取装置3の制御部26は、そのようなデータ列が読み取られた場合は読み取りエラーと判断できる。すなわち、容易に読み取りエラーを判断できるようになっている。
情報保持媒体2は、Y方向の並びにおける一端側の単位データ部列14aを先頭にして装着部4に挿入され、装着部4に装着される。以下、単位データ部列14aを先頭単位データ部列と称し、他端側の単位データ部列14cを末尾単位データ部列と称する。
図4は情報読取装置3の機能ブロックを示し、図5は情報読取装置3の第1検出部及び第2検出部の構成を示す。
情報読取装置3は、情報保持媒体2の単位データ部11の配列に形成されたマーク13を検出し、検出結果に応じた検出信号を出力する第1検出部20と、第1検出部20から出力される検出信号を取得して情報保持媒体2のディジタルコードを読み取り、各種の処理を実行する処理部21と、処理部21におけるディジタルコードの読み取り動作を制御する制御信号を出力する第2検出部22と、情報読取装置3の各部に電力を供給する電源部23とを備えている。そして、処理部21は、動作部24と、記憶部25と、制御部26と、を含んで構成されている。
動作部24は、例えば音声又は発光のうち少なくともいずれかを含む演出を出力可能に構成され、図示の例では、スピーカ27を含み、音声による演出を出力可能に構成されている。
記憶部25は、例えばROM(Read Only Memory)やRAM(Random Access Memory)などの記憶媒体を含み、制御部26が実行するプログラムや、情報保持媒体2に付与される各種のディジタルコードと動作部24に出力させる各種の音声データとを関連付けてなるテーブルなどを記憶している。
制御部26は、例えばマイクロプロセッサなどの処理装置を含み、記憶部25に記憶されたプログラムに従って動作し、情報読取装置3の各部の動作を統括する。
第1検出部20は、情報保持媒体2の単位データ部11の配列に設けられたマーク13によって押下されるスイッチSW1,SW2,SW3を含んで構成されている。スイッチSW1,SW2,SW3は、情報保持媒体2におけるX方向の単位データ部11の設置数と同数設けられ、回路基板28の表面上でX方向に配列されており、それらの可動部はガイド部12a,12bの間で装着部4に露呈している(図1参照)。
スイッチSW1,SW2,SW3の各々は、マーク13によって押下されている間はON状態となってHighレベルの検出信号を出力し、マーク13による押下が解除された後に自動的に浮上し、浮上している間はOFF状態となってLowレベルの検出信号を出力する。
情報保持媒体2の装着部4への挿入又は装着部4からの抜去に伴い、単位データ部列14a,14b,14cがスイッチSW1,SW2,SW3の上を順次通過する。一つの単位データ部列がスイッチSW1,SW2,SW3の上を通過する毎に、通過する単位データ部列のマークパターンに対応するスイッチがON状態とされ、スイッチSW1,SW2,SW3からマーク13の検出結果に応じた検出信号が出力される。
制御部26は、単位データ部列毎にスイッチSW1,SW2,SW3から出力される検出信号に基づいてデータ列を生成する。本例では、スイッチSW1,SW2,SW3がHighレベル又はLowレベルの検出信号を出力するように構成されており、制御部26は、信号レベルがHighレベルである場合に「1」のデータを、またLowレベルである場合に「0」のデータを割り当てるように構成されている。従って、例えば先頭単位データ部列14aのX方向順列のマークパターン「有、無、無」に対しては「1,0,0」のデータ列が生成される(図3参照)。そして、制御部26は、単位データ部列14a,14b,14cの各々に対して生成されるデータ列の群に基づいて情報保持媒体2のディジタルコードを読み取る。
第2検出部22は、制御部26のディジタルコードの読み取り動作を制御する制御信号を出力するものである。第2検出部22は、スライダ6と、スライダ6に連動する摺動部30と、摺動部30によって押し下げられるスイッチSW4と、を含んで構成されている。スイッチSW4は、回路基板28の裏面に設けられており、摺動部30は、Y方向にスイッチSW4と並んで配置されている。
情報保持媒体2の装着部4への挿入に伴い、スライダ6は情報保持媒体2のガイド部(駆動部)12aによってY方向に押し込まれる。スライダ6がY方向に押し込まれると、摺動部30もまた同方向に移動さる。摺動部30は、Y方向への移動に伴い、スイッチSW4を押し下げながらスイッチSW4上を摺動する。
スイッチSW4は、摺動部30によって押下されている間はON状態となって制御信号を出力し、摺動部30による押下が解除された後に自動的に浮上し、浮上している間はOFF状態となって制御信号を出力しない。
摺動部30のY方向の長さL1は、情報保持媒体2の先頭単位データ部列14aの終端から末尾単位データ部列14cの始端までの距離L2(図2参照)よりも大きく、スイッチSW1,SW2,SW3によって先頭単位データ部列14aから末尾単位データ部列14cまでの各単位データ部列のマーク13が検出される間、スイッチSW4から制御信号が連続して出力される(すなわち、スイッチSW4がON状態となっている)ように構成されている。
制御部26は、スイッチSW1,SW2,SW3から検出信号の出力があった際に、スイッチSW4から制御信号が出力されている場合にのみ(すなわち、スイッチSW4がON状態となっている場合にのみ)、スイッチSW1,SW2,SW3から出力された検出信号に基づいてデータ列を生成する。そして、制御部26は、情報保持媒体2の装着部4への挿入又は装着部4からの抜去に伴って単位データ部列毎に順次得られるデータ列を、記憶部25に確保されたメモリ領域に格納する。
さらに、摺動部30は、スイッチSW1,SW2,SW3によって先頭単位データ部列14aのマーク13が検出されるよりも前にスイッチSW4から制御信号の出力が開始され(すなわち、スイッチSW4がON状態になり)、且つスイッチSW1,SW2,SW3によって末尾単位データ部列14cのマーク13が検出されている間にスイッチSW4から制御信号の出力が停止されるように構成されている。
制御部26は、スイッチSW4から出力される制御信号の立ち上がり及び立ち下がりのタイミングで、スイッチSW1、SW2,SW3からの検出信号に基づいて、情報保持媒体2の装着部4への挿入開始、挿入完了及び装着部4からの抜去完了を検出し、挿入開始、挿入完了及び抜去完了の各々に応じた処理を実行する。なお、本実施形態においては、制御部26は、スイッチSW4から出力される制御信号の立ち上がりのタイミングで、スイッチSW1、SW2、SW3からの検出信号が、いずれもLowレベルであるならば、挿入開始であると検出し、また、スイッチSW4から出力される制御信号の立ち下がりのタイミングで、スイッチSW1、SW2、SW3のうち少なくともいずれか一つのスイッチからの検出信号がHighレベルであるならば、挿入完了であると検出するようになっている。また、スイッチSW4から出力される制御信号の立ち下がりのタイミングで、スイッチSW1、SW2、SW3のいずれのスイッチから出力される検出信号も、いずれもLowレベルであるならば、抜去完了であると検出する。
図6は、情報保持媒体2が装着部4に挿入される際に第1検出部20から出力される検出信号及び第2検出部22から出力される制御信号の一例を示し、図7は、図6に示す検出信号に基づいて生成されるデータ列のメモリ格納処理の一例を模式的に示し、図8及び図9は、制御部26によって実行される処理のフローを示す。
まず、制御部26によって生成されるデータ列を格納する一次メモリ領域m及び単位データ部列と同数の二次メモリ領域M1,M2,M3と、読み取られたディジタルコードが格納されるコードメモリ領域Cとが記憶部25に確保される。
情報保持媒体2の装着部4への挿入に伴い、スライダ6がY方向に押し込まれ、スライダ6に連動する摺動部30がタイミングT0にてスイッチSW4を押し下げる。スイッチSW4はON状態となり、スイッチSW4から制御信号の出力が開始される。
制御部26は、タイミングT0にてスイッチSW4から出力される制御信号の立ち上がりを検出すると(ステップS1)、まず、スイッチSW1,SW2,SW3のうち、いずれかがON状態か(つまり、検出信号がHighレベルか)を判断する。もしいずれかがON状態であるとすると、これは情報保持媒体2を情報読取装置2に装着完了した後、抜去を開始することで、スイッチSW4がOFF状態からON状態に変化したということなので、制御部26は、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。また、制御部26は、スイッチSW1,SW2,SW3のいずれもがON状態ではない(つまり、検出信号がHighレベルでなくLowレベルである)と判断した場合は、情報保持媒体2の装着が開始されたものとして、一次メモリ領域m及び二次メモリ領域M1,M2,M3をクリアして、過去に格納されたデータ列を消去し、併せて情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグFもクリア(フラグF←false)する(ステップS2)。
続いて、タイミングT1にて先頭単位データ部列14aのマーク13がスイッチSW1,SW2,SW3によって検出される。先頭単位データ部列14aのX方向順列のマークパターン「有、無、無」に応じて、スイッチSW1,SW2,SW3のうちスイッチSW1のみが押し下げられてON状態となり、スイッチSW1からはHighレベルの検出信号が、スイッチSW2,SW3からはLowレベルの検出信号がそれぞれ出力される。
制御部26は、スイッチSW1,SW2,SW3の少なくとも一つのスイッチにおける検出信号の立ち上がりを検出すると(ステップS3)、次に、スイッチSW4がON状態か否かを判断する。ここで、スイッチSW4がON状態ではない、と判断した場合は、指等でスイッチSW1,SW2,SW3を押す等の不正な操作がされたものとして、制御部26は何ら処理を行わず、再びスイッチSW1,SW2,SW3,SW4から出力される信号が変化することを待つ。また、スイッチSW4がON状態であると判断した場合は、次に、情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグFがtrueであるかを判断する。もしフラグF=trueの場合は、一旦情報保持媒体2を装着完了した後、抜去を行っている最中と判断し、制御部26は処理を行わず、スイッチSW1,SW2,SW3,SW4から出力される信号が変化することを待つ。また、フラグF=trueではない、と判断した場合は、制御部26は、スイッチSW1,SW2,SW3から出力される検出信号に基づいてデータ列を生成する。そして、生成されたデータ列は、制御部26によって一次メモリ領域mに一時的に格納される(ステップS4)。
タイミングT1では、制御部26は、スイッチSW1における検出信号の立ち上がりを検出し(ステップS3)、その後、スイッチSW4がON状態かどうかを判断する。タイミングT1では、スイッチSW4はONなので、次にフラグF=trueかどうかを判断する。タイミングT1では、フラグF=trueではないことから、次に、スイッチSW1,SW2,SW3から出力される検出信号に基づき、先頭単位データ部列14aに対応するデータ列として「1,0,0」のデータ列を生成する。生成されたデータ列「1,0,0」は、図7(A)に示すように、制御部26によって一次メモリ領域mに一時的に格納される(ステップS4)。
タイミングT2にて先頭単位データ部列14aがスイッチSW1,SW2,SW3の上を通過すると、スイッチSW1がON状態からOFF状態となり、スイッチSW1から出力される検出信号がHighレベルからLowレベルへと立ち下がる。
制御部26は、スイッチSW1,SW2,SW3の少なくとも一つのスイッチにおける検出信号の立ち下がりを検出すると(ステップS5)、まずは、スイッチSW1,SW2,SW3のいずれもON状態ではないか、つまり、情報保持媒体2の単位データ部列が、スイッチSW1,SW2,SW3を通過しているか否かを判断する。制御部26は、もし、スイッチSW1、SW2、SW3のいずれかがON状態の場合は、まだ単位データ部列がスイッチSW1,SW2,SW3を通過していないものとして、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。そして、制御部26は、スイッチSW1,SW2,SW3のいずれもON状態ではないと判断した場合は、次に、二次メモリ領域M1,M2,M3のうちM2について、M2≠0、すなわち、「空」ではないかどうかを判断する。もし、M2が「空」ではない(M2≠0)の場合は、すでに末尾から2番目の単位データ部列(本実施形態では単位データ部列14b)に対応するデータ列まで二次メモリ領域に格納されていることになるので、現在一次メモリ領域mに記憶されているのは末尾の単位データ部列(本実施形態でいえば、単位データ部列14c)に対応するデータ列ということになるが、ステップS5のようにスイッチSW1,SW2,SW3のいずれか一つのスイッチにおける検出信号が立ち下がったということは、末尾の単位データ部列3をスイッチSW1,SW2,SW3が検出し一次メモリ領域mに対応するデータ列が格納された後、情報保持媒体2の装着が完了する前に(スイッチSW4がOFFになる前に、スイッチSW4から出力される制御信号が停止する前に)、情報保持媒体2の位置をスイッチSW1,SW2,SW3のうち、少なくとも一つのスイッチにおける検出信号が立ち下がる位置まで戻したことになるので、二次メモリ領域M3に一次メモリ領域mに格納されているデータ列を格納することは行わず、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。また、制御部26は、M2≠0ではない(つまり、M2=0、末尾から2番目のデータ列を格納する二次メモリ領域M2が「空」、二次メモリ領域M1にのみデータ列が格納されている(つまり、先頭の単位データ列(本実施形態でいう単位データ部列14a)のみを検出済)か、または、二次メモリ領域M1も「空」(つまり、情報保持媒体2を装着した直後で、初めて単位データ部列を検出した場合)と判断した場合は、一次メモリ領域に格納されているデータ列と、二次メモリ領域M1,M2,M3に格納されているデータ列との比較を行う。もし一次メモリ領域mに格納されているデータ列が、二次メモリ領域M1,M2,M3に格納されているデータ列のいずれかと一致していると判定した場合、読取エラーと判断し、一次メモリ領域mに格納されているデータ列によって、二次メモリ領域M1,M2,M3に格納されているデータ列の更新は行わず、一次メモリ領域mをクリア(格納されているデータ列の消去)を行う。これは、前述のとおり、本実施形態における情報保持媒体2が保持しているディジタルコードにおいては、1つのディジタルコード内に同じデータ列が含まれることはないようにしているためである。また、制御部26は、一次メモリ領域mに格納されているデータ列が、二次メモリ領域M1,M2,M3に格納されているデータ列のいずれかとも一致していないと判断した場合は、二次メモリ領域M1,M2,M3を二次メモリ領域M2,M3及び一次メモリ領域mに格納されているデータ列によってそれぞれ更新する(ステップS6)。
タイミングT2では、制御部26は、スイッチSW1における検出信号の立ち下がりを検出し(ステップS5)、スイッチSW1,SW2,SW3のいずれもON状態ではない、つまり、情報保持媒体2の単位データ部列が、スイッチSW1,SW2,SW3を通過しており、また、図7(A)の状態では、二次メモリ領域M2≠0ではない(M2=0、すなわち、「空」である)ので、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列との比較を行う。ここで、制御部26が一致しないと判断した場合は、二次メモリ領域M1,M2,M3を二次メモリ領域M2,M3及び一次メモリ領域mに格納されているデータ列によってそれぞれ更新する(ステップS6)。図7(A)の状態では、二次メモリ領域M1,M2,M3のいずれも「空」であるから、一次領域mのデータ列「1,0,0」とは一致しないので、制御部26は、図7(B)に示すように、二次メモリ領域M3にデータ列「1,0,0」を格納することで、二次メモリ領域M1,M2,M3を更新する。なお、制御部26は、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列を比較し、一致すると判断した場合は、一次メモリ領域mをクリア(格納されているデータ列を消去)し、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。
続いて、タイミングT3にて単位データ部列14bのマーク13がスイッチSW1,SW2,SW3によって検出される。単位データ部列14bのX方向順列のマークパターン「無、無、有」に応じて、スイッチSW1,SW2,SW3のうちスイッチSW3のみが押し下げられてON状態となり、スイッチSW3からはHighレベルの検出信号が、スイッチSW1,SW2からはLowレベルの検出信号がそれぞれ出力される。
制御部26は、スイッチSW1,SW2,SW3の少なくとも一つのスイッチにおける検出信号の立ち上がりを検出すると(ステップS3)、次に、スイッチSW4がON状態か否かを判断する。ここで、スイッチSW4がON状態ではない、と判断した場合は、制御部26は何ら処理を行わず、再びスイッチSW1,SW2,SW3,SW4から出力される信号が変化することを待つ。また、スイッチSW4がON状態であると判断した場合は、次に、情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグFがtrueであるかを判断する。もしフラグF=trueの場合は、一旦情報保持媒体2を装着完了した後、抜去を行っている最中と判断し、制御部26は処理を行わず、スイッチSW1,SW2,SW3,SW4から出力される信号が変化することを待つ。また、フラグF=trueではない、と判断した場合は、制御部26は、スイッチSW1,SW2,SW3から出力される検出信号に基づいてデータ列を生成する。そして、生成されたデータ列は、制御部26によって一次メモリ領域mに一時的に格納される(ステップS4)。
タイミングT3では、制御部26は、スイッチSW3における検出信号の立ち上がりを検出し(ステップS3)、その後、スイッチSW4がON状態かどうかを判断する。タイミングT3では、スイッチSW4はONなので、次にフラグF=trueかどうかを判断する。タイミングT3では、フラグF=trueではないことから、次に、スイッチSW1,SW2,SW3から出力される検出信号に基づき、単位データ部列14bに対応するデータ列として「0,0,1」のデータ列を生成する。生成されたデータ列「0,0,1」は、図7(C)に示すように、制御部26によって一次メモリ領域mに一時的に格納される(ステップS4)。
タイミングT4にて単位データ部列14bがスイッチSW1,SW2,SW3の上を通過すると、スイッチSW3がON状態からOFF状態となり、スイッチSW3から出力される検出信号がHighレベルからLowレベルへと立ち下がる。
タイミングT4では、制御部26は、スイッチSW3における検出信号の立ち下がりを検出し(ステップS5)、スイッチSW1,SW2,SW3のいずれもON状態ではない、つまり、情報保持媒体2の単位データ部列が、スイッチSW1,SW2,SW3を通過しておりまた、図7(C)の状態では、二次メモリ領域M2≠0ではない(M2=0、すなわち、「空」である)ので、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列との比較を行う。そして、制御部26は、一致しないと判断した場合は、二次メモリ領域M1,M2,M3を二次メモリ領域M2,M3及び一次メモリ領域mに格納されているデータ列によってそれぞれ更新する(ステップS6)。図7(C)の状態では、一次メモリ領域mのデータ列「0,0,1」と、二次メモリ領域M1,M2,M3に格納されているデータ列(「1,0,0」と「空」)は一致していないので、制御部26は、図7(D)に示すように、二次メモリ領域M2にそれまで二次メモリ領域M2に格納されていたデータ列「1,0,0」を格納し、二次メモリ領域M3に一次メモリ領域mに格納されているデータ列「0,0,1」を格納するようにして、二次メモリ領域M1,M2,M3を更新する。なお、制御部26は、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列を比較し、一致すると判断した場合は、一次メモリ領域mをクリア(格納されているデータ列を消去)し、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。
続いて、タイミングT5にて末尾単位データ部列14cのマーク13がスイッチSW1,SW2,SW3によって検出される。末尾単位データ部列14cのX方向順列のマークパターン「無、有、無」に応じて、スイッチSW1,SW2,SW3のうちスイッチSW2のみが押し下げられてON状態となり、スイッチSW2からはHighレベルの検出信号が、スイッチSW1,SW3からはLowレベルの検出信号がそれぞれ出力される。
タイミングT5において、制御部26は、スイッチSW2における検出信号の立ち上がりを検出し(ステップS3)、その後、スイッチSW4がON状態かどうかを判断する。タイミングT5では、スイッチSW4はONなので、次にフラグF=trueかどうかを判断する。タイミングT5では、フラグF=trueではないことから、次に、スイッチSW1,SW2,SW3から出力される検出信号に基づき、末尾単位データ部列14cに対応するデータ列として「0,1,0」のデータ列を生成する。生成されたデータ列「0,1,0」は、図7(E)に示すように、制御部26によって一次メモリ領域mに一時的に格納される(ステップS4)。
そして、タイミングT6にて摺動部30がスイッチSW4を通過すると、スイッチSW4はOFF状態となり、スイッチSW1,SW2,SW3によって末尾単位データ部列14cのマーク13が検出されている間に、スイッチSW4から制御信号の出力が停止される。
なお、末尾単位データ部列14cに設けられたマーク13のY方向の長さは、他の単位データ部列14a,14bに設けられたマーク13のY方向の長さよりも大きくなっている。それにより、制御信号の出力停止のタイミングに対する制約が緩和される。
制御部26は、制御信号の立ち下がりを検出し(ステップS7)、制御信号が立ち下がったタイミングでスイッチSW1,SW2,SW3の少なくとも一つのスイッチから出力される検出信号がHighレベル(ON状態)であるか否かを確認する(ステップS8)。
そして、制御部26は、少なくとも一つのスイッチから出力される検出信号がHighレベル(ON状態)である場合に、情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグF=trueであるか、すなわち、以前のタイミングで情報保持媒体2が装着部4に装着されたことがあるかを確認する。ここで、もしYesであれば、これは、一旦挿入完了した後(つまり、装着完了に伴う動作を行った後)、情報保持媒体2をスイッチSW4がON状態になる位置まで戻して、再度スイッチSW4がOFF状態になる位置まで戻しただけなので、制御部26は、装着完了に伴う動作を行うことなく、再びスイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。また、もし、フラグF=trueでない(フラグF=false)場合は、二次メモリ領域M1にデータ列が格納されているか否か(M1=0、すなわち「空」か否か)を確認する。もし二次メモリ領域M1にデータ列が格納されていないとすれば、何らかの不正操作(例えば、使用者が情報保持媒体2を装着するのではなく、指等でスイッチSW1,SW2,SW3,SW4を操作して、所持していない情報保持媒体2のディジタルコードに対応する音声データを、情報読取装置3から出力させようとした場合等)を行ったものとして、エラー処理を行う。そして、二次メモリ領域M1にデータ列が格納されている場合(M1≠0、すなわち、「空」ではない場合)は、制御部26は、次に、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列との比較を行う。そして、制御部26が一次メモリ領域mのデータ列が、二次メモリ領域M1,M2,M3に格納されているデータ列のいずれとも一致しないと判断した場合は、情報保持媒体2を正常に装着部4への挿入完了したものとして(すなわち、挿入完了を検出し)、二次メモリ領域M1,M2,M3を二次メモリ領域M2,M3及び一次メモリ領域mに格納されているデータ列によってそれぞれ更新する(ステップS9)。なお、制御部26が、一次メモリ領域mのデータ列が、二次メモリ領域M1,M2,M3に格納されているデータ列のいずれかと一致すると判断した場合は、何らかの読取エラーか、不正操作があったものとして、装着は完了したものとして情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグFはtrueにするが、それ以外の制御は行わず、再び、スイッチSW1,SW2,SW3,SW4から出力される信号の変化を待つ。
制御信号が立ち下がるタイミングT6では制御部26は、制御信号の立ち下がりを検出し(ステップS7)、スイッチSW2から出力される検出信号が依然としてHighレベルである(ステップS8)ので、フラグF=trueかどうかを判断する。タイミングT6では、フラグFは、タイミングT0におけるステップS2においてfalseとしたままなので、制御部26は、フラグF=trueではないと判断し、次に、二次メモリ領域M1=0、つまり、「空」であるか否かを判断する。図7(E)の状態では、二次メモリ領域M1=0、つまり、「空」なので、制御部26は、次に、一次メモリ領域mのデータ列と、二次メモリ領域M1、M2、M3に格納されているデータ列との比較を行う。タイミングT6においては、二次メモリ領域は図7(E)の状態なので、一次メモリ領域mに格納されているデータ列「0,1,0」であるのに対し、二次メモリ領域M1,M2,M3に格納されているデータ列「空」、「1,0,0」、「0,0,1」であるため、制御部26は、一致しないと判断して、二次メモリ領域M1,M2,M3を二次メモリ領域M2,M3及び一次メモリ領域mに格納されているデータ列によってそれぞれ更新する(ステップS9)。すなわち、制御部26は、二次メモリ領域M1には、それまで二次メモリ領域M2に格納されていたデータ列「1,0,0」を格納し、二次メモリ領域M2には、それまで二次メモリ領域M3に格納されていたデータ列「0,0,1」を格納し、二次メモリ領域M3には、一次メモリ領域mに格納されているデータ列「0,1,0」を格納して、二次メモリ領域M1,M2,M3を更新するようになっている。このように、制御部26は、一時メモリ領域mに格納されているデータ列を二次メモリ領域M3に格納する際には、二次メモリ領域M2のデータ列を二次メモリ領域M1に、二次メモリ領域M3のデータ列を二次メモリ領域M2に移動、格納するようになっている。
以上のメモリ格納処理により、図7(F)に示すように、二次メモリ領域M1,M2,M3には単位データ部列14a,14b,14cの各々に対して生成されたデータ列が順に格納される。
そして、制御部26は、二次メモリ領域M1,M2,M3から順にデータ列を取り出してコードメモリ領域Cに格納する(ステップS10)。このとき、情報保持媒体2が装着部4に装着完了されたことがあることを表すフラグFについてもtrueに変化させる。そして、制御部26は、コードメモリ領域Cに格納されているデータ列に基づいてディジタルコードを認識し、記憶部25に記憶されている各種のディジタルコードと動作部24に出力させる各種の音声データとを関連付けてなるテーブルを参照して、認識したディジタルコードに対応する音声データを読み出し、読み出した音声データに基づいて動作部24を動作させる(ステップS11)。
図10は、ディジタルコードと動作部24に出力させる各種の音声データとを関連付けてなるテーブルの一例を示す。
例えば上述の例では、コードメモリ領域Cには二次メモリ領域M1,M2,M3から順に取り出されたデータ列「1,0,0」、「0,0,1」、「0,1,0」が順に格納されており、制御部26は、これらのデータ列に基づいて認識されるディジタルコードに対応する音声データとして、「音声データ1」を読み出し、この「音声データ1」に基づいて動作部24を動作させる。
図11は、情報保持媒体2が装着部4から抜去される際に第1検出部20から出力される検出信号及び第2検出部22から出力される制御信号の一例を示す。以下の説明では、図8及び図9に示したフローも適宜参照する。
まず、タイミングT7にて末尾単位データ部列14cのマーク13がスイッチSW1,SW2,SW3によって検出され、スイッチSW2からHighレベルの検出信号が、スイッチSW1,SW3からはLowレベルの検出信号がそれぞれ出力される。ただし、タイミングT7では、スイッチSW4から制御信号が出力されておらず、制御部26はスイッチSW2における検出信号の立ち上がりを検出しても(ステップS3)、スイッチSW1,SW2,SW3から出力される検出信号に基づくデータ列の生成は行わない。
続いて、タイミングT8にてスライダ6と共にY方向とは反対方向に移動される摺動部30がスイッチSW4を押し下げる。スイッチSW4はON状態となり、スイッチSW4から制御信号の出力が開始される。制御部26は、スイッチSW4からの制御信号の立ち上がりを検出する(ステップS1)が、スイッチSW1,SW2,SW3のうち、スイッチSW2がON状態にあるため、ステップS2には進まず、再びスイッチSW1,SW2,SW3の変化を待つ。
そして、タイミングT9にてスイッチSW2から出力される検出信号がHighレベルからLowレベルへと立ち下がる。制御部26は、スイッチSW2における検出信号の立ち下がりを検出し(ステップS5)、まずは、スイッチSW1,SW2,SW3のうち少なくとも一つのスイッチがON状態であるかを判断する。タイミングT9では、スイッチSW1,SW2,SW3のいずれもON状態ではないので、次に、制御部26は二次メモリ領域M2≠0か否かを判断する。タイミングT9では、二次メモリ領域の状態は図7(F)に示した状態なので、M2≠0、すなわち、「空」ではないので、一次メモリ領域mに格納されているデータ列をクリアし、再びスイッチSW1,SW2,SW3の変化を待つ。
続いて、タイミングT10にて単位データ部列14bのマーク13がスイッチSW1,SW2,SW3によって検出され、スイッチSW3からHighレベルの検出信号が、スイッチSW1,SW2からはLowレベルの検出信号がそれぞれ出力される。制御部26は、スイッチSW3からの検出信号の立ち上がりを検出し(ステップS3)、まずは、スイッチSW4がON状態か否かを判断する。タイミングT10では、スイッチSW4からはON状態なので、次に、フラグF=trueかどうかを判断する。タイミングT10では、情報保持媒体2の装着部4への装着完了に伴ってフラグFが設定されている(フラグF=true)ため、制御部26は、スイッチSW3における検出信号の立ち上がりを検出しても(ステップS3)、スイッチSW1,SW2,SW3から出力される検出信号に基づくデータ列の一次メモリ領域mへの格納は行わず、再びスイッチSW1,SW2,SW3の変化を待つ。
そして、タイミングT11にてスイッチSW3から出力される検出信号がHighレベルからLowレベルへと立ち下がる。制御部26は、スイッチSW3における検出信号の立ち下がりを検出し(ステップS5)、まずは、スイッチSW1,SW2,SW3のうち少なくとも一つのスイッチがON状態であるかを判断する。タイミングT11では、スイッチSW1,SW2,SW3のいずれもON状態ではないので、次に、制御部26は二次メモリ領域M2≠0か否かを判断する。タイミングT11では、二次メモリ領域の状態は図7(F)に示した状態なので、M2≠0、すなわち、「空」ではないので、一次メモリ領域mに格納されているデータ列をクリアし、再びスイッチSW1,SW2,SW3の変化を待つ。
続いて、タイミングT12にて先頭単位データ部列14aのマーク13がスイッチSW1,SW2,SW3によって検出され、スイッチSW1からHighレベルの検出信号が、スイッチSW2,SW3からはLowレベルの検出信号がそれぞれ出力される。制御部26は、スイッチSW3からの検出信号の立ち上がりを検出し(ステップS3)、まずは、スイッチSW4がON状態か否かを判断する。タイミングT12では、スイッチSW4からはON状態なので、次に、フラグF=trueかどうかを判断する。ただし、タイミングT12においても、情報保持媒体2の装着部4への装着完了に伴ってフラグFが設定されている(フラグF=true)ため、制御部26は、スイッチSW1における検出信号の立ち上がりを検出しても(ステップS3)、スイッチSW1,SW2,SW3から出力される検出信号に基づくデータ列の一次メモリ領域mへの格納は行わず、再びスイッチSW1,SW2,SW3の変化を待つ。
そして、タイミングT13にてスイッチSW1から出力される検出信号がHighレベルからLowレベルへと立ち下がる。制御部26は、スイッチSW1における検出信号の立ち下がりを検出し(ステップS5)、まずは、スイッチSW1,SW2,SW3のうち少なくとも一つのスイッチがON状態であるかを判断する。タイミングT13では、スイッチSW1,SW2,SW3のいずれもON状態ではないので、次に、制御部26は二次メモリ領域M2≠0か否かを判断する。タイミングT13では、二次メモリ領域の状態は図7(F)に示した状態なので、M2≠0、すなわち、「空」ではないので、一次メモリ領域mに格納されているデータ列をクリアし、再びスイッチSW1,SW2,SW3の変化を待つ。
続いて、タイミングT14にて摺動部30がスイッチSW4を通過し、スイッチSW4はOFF状態となり、スイッチSW4から制御信号の出力が停止される。このとき、先頭単位データ部列14aは既にスイッチSW1,SW2,SW3の上を通過しており、スイッチSW1,SW2,SW3から出力される検出信号はいずれもLowレベルとなっている。
制御部26は、制御信号の立ち下がりを検出し(ステップS7)、制御信号が立ち下がったタイミングでスイッチSW1,SW2,SW3の少なくとも一つのスイッチから出力される検出信号がHighレベル(ON状態)であるか否かを確認する(ステップS8)。
タイミングT14においては、スイッチSW1、SW2、SW3のいずれもON状態ではないため、制御部26は、一次メモリ領域m、二次メモリ領域M1,M2,M3、コードメモリ領域Cに格納されているデータ列をクリアし、フラグFがtrueであるかを判断する。タイミングT14では、情報保持媒体2の装着部4への装着完了に伴ってフラグFが設定されている(フラグF=true)ため、ステップS12へ進み、制御部26はフラグFをfalseとし、抜去完了時処理を行う。すなわち、制御部26は、全てのスイッチSW1,SW2,SW3から出力される検出信号がLowレベルである場合に、所定の処理を経て、情報保持媒体2の装着部4からの抜去完了を検出する。そして、制御部26は、抜去完了を検出すると、抜去完了時の処理として、記憶部25に記憶されている所定の音声データを読み出し、読み出した音声データに基づいて動作部24を動作させる。
以上説明したように、本情報保持媒体2及び情報読取装置3では、単位データ部列14a,14b,14cの並びにおいて隣り合う二つの単位データ部列のマークパターンが互いに異なっており、スイッチSW1,SW2,SW3の少なくとも一つから出力される検出信号が隣り合う二つの単位データ部列の間で変化する。
そこで、検出信号の切り替わり(立ち下がり)のタイミングでスイッチSW1,SW2,SW3の検出信号からデータ列を生成することで、データ列を生成するタイミングを制御部26に別途指示することなく、単位データ部列14a,14b,14cの境界を精度良く認識させて単位データ部列毎のデータ列を制御部26に生成させることができる。
好ましくは、隣り合う二つの単位データ部列のマークパターンは、少なくとも二箇所において異なっていることが好ましい。それによれば、単位データ部列14a,14b,14cの境界認識の精度をより一層高めることができる。
そして、データ列を生成するタイミングを制御部26に別途指示する必要がなくなることから、単位データ部11の配列の全てを用いてディジタルコードを形成することができ、ディジタルコードの種別を多くすることができる。
特に、情報読取装置3の読み取り動作を制御する制御信号を出力するスイッチSW4を情報保持媒体2によって駆動し、情報保持媒体2の装着又は取り外しに関連する制御信号の立ち上がり及び立ち下がりのタイミングでのスイッチSW1,SW2,SW3の検出信号に基づいて、情報保持媒体2の装着及び取り外しの完了を検出するようにしているので、先頭単位データ部列14aや末尾単位データ部列14cのマークパターンが限定されず、ディジタルコードの種別を多くすることができる。
また、スイッチSW4から制御信号が出力されている場合にのみ情報読取装置3は読み取り動作が可能となることから、情報読取装置3の誤動作を防止することができ、また、ディジタルコードの類推を防止することも可能となる。特に、先頭等の末尾以外の単位データ部列により表現されるデータ列の読取が、単にスイッチSW1,SW2,SW3から出力される検出信号がLowレベルになった(スイッチSW1,SW2,SW3がOFF状態になった)タイミングで行われるのに対し、末尾の単位データ部列により表現されるデータ列の読取(本実施形態では二次メモリ領域への格納)についてのみ、単にスイッチSW1,SW2,SW3から出力される検出信号がLowレベルになった(スイッチSW1,SW2,SW3がOFF状態になった)タイミングではなく、スイッチSW4からの制御信号の出力が停止されたタイミングで行うようにしたので、例えば、使用者が所有していない等の理由から情報保持媒体2を装着せずに、代わりに、指等でスイッチSW1,SW2,SW3を操作して当該情報保持媒体2が有するディジタルコードに対応するデータ列の群を情報読取装置3に入力して、当該ディジタルコードに対応する音声等を出力させようとしたとしても、ディジタルコードの末尾のデータ列については、末尾以外のデータ列とは異なり、末尾のデータ列に対応する検出信号を出力するようにスイッチSW1,SW2,SW3を操作したままスイッチSW4をOFF状態にしなければ読取が行われない(二次メモリ領域に格納されない)ことに気付かないかぎり、そのような不正な操作は成功しない(音声等は出力されない)ので、不正な操作をしようとするモチベーションを削ぐことが期待できる。つまり、情報読取装置3において、先頭等の末尾以外の単位データ部列により表現されるデータ列の読取が行われるための操作(本実施形態では、スイッチSW1,SW2,SW3から出力される検出信号についていずれかがHighレベルの状態からいずれもLowレベルの状態にすること、スイッチSW1,SW2,SW3についていずれかがONの状態からいずれもがOFFの状態とすること)と、末尾の単位データ部列により表現されるデータ列の読取が行われるための操作(本実施形態では、スイッチSW4からの制御信号の出力を停止させさること、スイッチSW4をOFF状態にすること)が異なっている、という点も本実施形態の特徴である。
以上の説明では、マーク13が所定の高さを有する凸部として構成され、マーク13の有無によって情報保持媒体2の単位データ部11に二値のデータが付与されているが、単位データ部11に与えられるデータは二値のデータに限られない。例えば高さの異なるマークを用い、マークの有無及びマーク高さによって、単位データ部11に三値以上のデータを付与することも可能である。また、マーク13は特定の物理量に関して複数の離散値を取り得るものであればよく、例えば反射率の異なる色彩によって単位データ部11を着色してマーク13を構成すること可能である。