以下、本発明を実施するための形態について図面を参照しながら説明する。
実施形態では、液体吐出装置の一例として、インク(液体の一例)を吐出して印刷媒体上に画像を形成するハンドヘルドプリンタ(以下、HHPという)について説明する。また、実施形態では、記録ヘッドを「IJ記録ヘッド」と称する。
なお、実施形態の用語における印刷、画像形成、印字、記録はいずれも同義である。
<実施形態に係るHHPの構成>
先ず、実施形態に係るHHPについて説明する。図1は、実施形態に係るHHPによる印刷の様子の一例を説明する図である。HHP20には、スマートフォンやPC(Personal Computer)等の画像データ出力器11から画像データが送信される。ユーザはHHP20を把持して、印刷媒体12(定形用紙やノート等)から浮き上がらないようにフリーハンドで走査させる。なお、このHHP20が走査される面は、「移動面」の一例である。
HHP20は後述するようにナビゲーションセンサ30とジャイロセンサ31で位置を検出し、HHP20が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされるため(インクの吐出の対象とならないため)、ユーザは、印刷媒体12上で任意の方向にHHP20を走査させることで、印刷媒体12上に画像を形成することができる。
印刷媒体12からHHP20が浮き上がらないことが好ましいのは、ナビゲーションセンサ30が印刷媒体12からの反射光を利用して移動量を検出するためである。印刷媒体12からHHP20が浮き上がると反射光を検出できなくなり移動量を検出できない。印刷媒体12からナビゲーションセンサ30がはみ出した場合も、印刷媒体12の厚みにより反射光を検出できなくなったり、検出できても位置がずれたりする場合がある。このため、ナビゲーションセンサ30は印刷媒体12上で走査されることが好ましく、上記のようにノズル61とナビゲーションセンサ30が印刷媒体12上に共に存在することが好ましい。
<実施形態に係るHHPのハードウェア構成>
図2は、実施形態に係るHHPのハードウェア構成の一例を説明する図である。HHP20は、制御部25によって全体の動作が制御され、制御部25には通信I/F(Interface)27、IJ(Inkjet)記録ヘッド駆動回路23、OPU(Operation panel Unit)26、ROM(Read Only Memory)28、DRAM(Dynamic Random Access Memory)29、ナビゲーションセンサ30、及びジャイロセンサ31等が電気的に接続されている。
また、HHP20は電力により駆動されるため、電源22と電源回路21とを有している。電源回路21が生成する電力は、点線22aで示す配線等により、通信I/F27、IJ記録ヘッド駆動回路23、OPU26、ROM28、DRAM29、IJ記録ヘッド24、制御部25、ナビゲーションセンサ30、及びジャイロセンサ31に供給されている。
電源22としては主に電池(バッテリー)が利用される。太陽電池や商用電源(交流電源)、燃料電池等が用いられても良い。電源回路21は、電源22が供給する電力をHHP20の各部に分配する。また、電源22の電圧を各部に適した電圧に降圧や昇圧する。また、電源22が充電可能な電池である場合、電源回路21は交流電源の接続を検出して電池の充電回路に接続し、電源22の充電を可能にする。
通信I/F27は、スマートフォンやPC等の画像データ出力器11から画像データの受信等を行う。通信I/F27は例えば無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、赤外線、3G(携帯電話)、又は、LTE(Long Term Evolution)等の通信規格に対応した通信装置である。また、このような無線通信の他、有線LAN、USBケーブルなどを用いた有線通信に対応した通信装置であっても良い。
ROM28は、HHP20のハードウェア制御を行うファームウェアや、IJ記録ヘッド24の駆動波形データ(液滴を吐出するための電圧変化を規定するデータ)や、HHP20の初期設定データ等を格納している。
DRAM29は通信I/F27が受信した画像データを記憶したり、ROM28から展開されたファームウェアを格納したりするために使用される。したがって、CPU33がファームウェアを実行する際のワークメモリとして使用される。
ナビゲーションセンサ30は、所定のサイクル時間毎にHHP20の移動量を検出するセンサである。ナビゲーションセンサ30は、例えば、発光ダイオード(LED)やレーザ等の光源と、印刷媒体12を撮像する撮像センサを有している。HHP20が印刷媒体12上を走査されると、印刷媒体12の微小なエッジが次々に検出され(撮像され)エッジ間の距離を解析することで移動量が得られる。実施形態では、ナビゲーションセンサ30は、HHP20の底面に1つだけ搭載されている。従来は2つであった。ただし、説明のためナビゲーションセンサ30が2つあるHHP20について説明する場合がある。なお、ナビゲーションセンサ30として、さらに多軸の加速度センサを用いても良く、HHP20は加速度センサのみでHHP20の移動量を検出しても良い。
ジャイロセンサ31は、印刷媒体12に垂直な軸を中心にHHP20が回転した際の角速度を検出するセンサである。詳細は後述される。
OPU26は、HHP20の状態を表示するLED、ユーザがHHP20に印刷を指示するためのスイッチ等を有している。ただし、これに限定されるものではなく、液晶ディスプレイを有していても良く、さらにタッチパネルを有していても良い。また、音声入力機能を有していても良い。
IJ記録ヘッド駆動回路23は上記の駆動波形データを用いて、IJ記録ヘッド24を駆動するための駆動波形(電圧)を生成する。インクの液滴のサイズ等に応じた駆動波形を生成できる。
IJ記録ヘッド24は、インクを吐出するためのヘッドである。図ではCMYKの4色のインクを吐出可能になっているが、単色でも良く5色以上の吐出が可能でも良い。色毎に一列(二列以上でも良い)に列状に並んだ複数のインク吐出用のノズル61(吐出ノズルの一例)が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でも良く、この他の方式でも良い。IJ記録ヘッド24は、ノズル61からインク等の液体を吐出・噴射する機能部品である。吐出される液体は、IJ記録ヘッド24から吐出可能な粘度や表面張力を有するものであれば良く、特に限定されないが、常温、常圧下において、または加熱、冷却により粘度が30〔mPa・s〕以下となるものであることが好ましい。より具体的には、水や有機溶媒等の溶媒、染料や顔料等の着色剤、重合性化合物、樹脂、界面活性剤等の機能性付与材料、DNA、アミノ酸やたんぱく質、カルシウム等の生体適合材料、天然色素等の可食材料、などを含む溶液、懸濁液、エマルジョンなどであり、これらは例えば、インクジェット用インク、表面処理液、電子素子や発光素子の構成要素や電子回路レジストパターンの形成用液、3次元造形用材料液等の用途で用いることができる。
制御部25はCPU33を有し、HHP20の全体を制御する。制御部25は、ナビゲーションセンサ30により検出される移動量及びジャイロセンサ31により検出される角速度を元に、IJ記録ヘッド24の各ノズルの位置と、その位置に応じて形成する画像の決定、後述する吐出ノズル可否判定等を行う。制御部25について詳細は次述する。
<制御部のハードウェア構成>
図3は、制御部25のハードウェア構成の一例を説明するブロック図である。制御部25はSoC(System on a Chip)50とASIC(Application Specific Integrated Circuit)/FPGA(Field-Programmable Gate Array)40を有している。SoC50とASIC/FPGA40はバス46,47を介して通信する。ASIC/FPGA40はどちらの実装技術で設計されても良いことを意味し、ASIC/FPGA40以外の他の実装技術で構成されて良い。また、SoC50とASIC/FPGA40を別のチップにすることなく1つのチップや基板で構成してもよい。或いは、3つ以上のチップや基板で実装してもよい。
SoC50は、バス47を介して接続されたCPU33、位置算出回路34、メモリCTL(コントローラ)35、及びROM CTL(コントローラ)36等の機能を有している。なお、SoC50が有する構成要素はこれらに限られない。
また、ASIC/FPGA40は、バス46を介して接続されたImage RAM37、DMAC38、回転器39、割込みコントローラ41、ナビゲーションセンサI/F42、印字/センサタイミング生成部43、IJ記録ヘッド制御部44及びジャイロセンサI/F45を有している。なお、ASIC/FPGA40が有する構成要素はこれらに限られない。
CPU33は、ROM28からDRAM29に展開されたファームウェア(プログラム)などを実行し、SoC50内の位置算出回路34、メモリCTL35、及び、ROM CTL36等の動作を制御する。また、ASIC/FPGA40内のImage RAM37、DMAC38、回転器39、割込みコントローラ41、ナビゲーションセンサI/F42、印字/センサタイミング生成部43、IJ記録ヘッド制御部44及びジャイロセンサI/F45等の動作を制御する。
位置算出回路34は、ナビゲーションセンサ30が検出するサンプリング周期毎の移動量及びジャイロセンサ31が検出するサンプリング周期毎の角速度に基づいてHHP20の位置(座標情報)を算出する。HHP20の位置とは、厳密にはノズル61の位置であるが、ナビゲーションセンサ30のある位置が分かればノズル61の位置を算出できる。実施形態では、特に断らない限りナビゲーションセンサ30の位置としてナビゲーションセンサS0の位置をいう。また、位置算出回路34は目標吐出位置を算出する。なお、位置算出回路34をCPU33がソフト的に実現しても良い。位置算出回路34は、「位置検出部」の一例である。
ナビゲーションセンサ30の位置は、後述するように所定の原点(印刷が開始される時のHHP20の初期位置)等を基準に算出されている。また、位置算出回路34は、過去の位置と最も新しい位置の差に基づいて移動方向や加速度を推定し、次回の吐出タイミングにおけるナビゲーションセンサ30の位置を予測することができる。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
メモリCTL35は、DRAM29とのインタフェースであり、DRAM29に対しデータを要求し、取得したファームウェアをCPU33に送出したり、取得した画像データをASIC/FPGA40に送出したりする。
ROM CTL36は、ROM28とのインタフェースであり、ROM28に対しデータを要求し、取得したデータをCPU33やASIC/FPGA40に送出する。
I2C CTL69は、NVRAM67とのインタフェースである。但し、I2Cに限定されるものではなく、SPI(Serial Peripheral Interface)やパラレルバス等のインタフェースを用いても良い。
回転器39は、DMAC38が取得した画像データを、インクを吐出するヘッド、ヘッド内のノズル位置、及び、取り付け誤差等によるヘッド傾きに応じて回転させる。DMAC38は回転後の画像データをIJ記録ヘッド制御部44へ出力する。
Image RAM37はDMAC38が取得した画像データを一時的に格納する。すなわち、ある程度の画像データがバッファリングされ、HHP20の位置に応じて読み出される。
IJ記録ヘッド制御部44は、画像データ(ビットマップデータ)にディザ処理などを施して大きさと密度で画像を表す点の集合に画像データを変換する。これにより、画像データは吐出位置と点のサイズのデータとなる。IJ記録ヘッド制御部44は点のサイズに応じた制御信号をIJ記録ヘッド駆動回路23に出力する。IJ記録ヘッド駆動回路23は上記のように制御信号に対応した駆動波形データを用いて、駆動波形(電圧)を生成する。
ナビゲーションセンサI/F42は、ナビゲーションセンサ30と通信し、ナビゲーションセンサ30からの情報として移動量ΔX´、ΔY´(これらについては後述する)を受信し、その値を内部レジスタに格納する。
印字/センサタイミング生成部43は、ナビゲーションセンサI/F42とジャイロセンサI/F45が情報を読み取るタイミングを通知し、IJ記録ヘッド制御部44に駆動タイミングを通知する。情報を読み取るタイミングの周期はインクの吐出タイミングの周期よりも長い。IJ記録ヘッド制御部44は吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
ジャイロセンサI/F45は印字/センサタイミング生成部43により生成されたタイミングになるとジャイロセンサ31が検出する角速度を取得してその値をレジスタに格納する。
割込みコントローラ41は、ナビゲーションセンサI/F42がナビゲーションセンサ30との通信が完了したことを検知して、SoC50へそれを通知するための割込み信号を出力する。CPU33はこの割込みにより、ナビゲーションセンサI/F42が内部レジスタに記憶するΔX´、ΔY´を取得する。その他、エラー等のステータス通知機能も有する。ジャイロセンサI/F45に関しても同様に、割込みコントローラ41はSoC50に対し、ジャイロセンサ31との通信が終了したことを通知するための割込み信号を出力する。
<ジャイロセンサによる検出原理>
図4は、ジャイロセンサ31が角速度を検出する原理を説明する図である。移動している物体に回転が加わると、物体の移動方向と回転軸の両方に直行する方向にコリオリ力が発生する。
物体を移動させるため、ジャイロセンサ31ではMEMS(Micro Electro Mechanical Systems)素子を振動させることで速度v(ベクトル)を発生させる。振動している質量mのMEMS素子に外部から角速度ω(ベクトル)の回転が加わると、MEMS素子にコリオリ力が加わる。コリオリ力Fは以下のように表すことができる。
F=-2mΩ×v
なお、「×」はベクトルの外積を表し、上記のように物体の移動方向と回転軸に直交する方向がコリオリ力Fの方向である。MEMS素子は例えば櫛歯構造の電極を有しており、ジャイロセンサ31はコリオリ力Fにより発生した変位を静電容量の変化として捉える。コリオリ力Fの信号はジャイロセンサ31内で増幅されフィルタリングされた後、角速度に演算されて出力される。すなわち、F,m、vが既知なので角速度ωを取り出すことができる。
<ナビゲーションセンサのハードウェア構成>
図5は、ナビゲーションセンサのハードウェア構成の構成例を示す図である。ナビゲーションセンサ30は、Host I/F301、イメージプロセッサ302、LEDドライバ303、2つのレンズ304、306及び、イメージアレイ305を有する。LEDドライバ303は、LEDと制御回路が一体となっておりイメージプロセッサ302からの命令によりLED光を照射する。イメージアレイ305は、レンズ304を介して印刷媒体12からのLED光の反射光を受光する。2つのレンズ304,306は、印刷媒体12の表面に対して光学的に焦点が合うように設置されている。
イメージアレイ305は、LED光の波長に感度を有するフォトダイオード等を有し、受光したLED光からイメージデータを生成する。イメージプロセッサ302はイメージデータを取得して、イメージデータからナビゲーションセンサの移動距離(上記のΔX´、ΔY´)を算出する。イメージプロセッサ302は、算出した移動距離を、ホストI/F301を介して制御部25へ出力する。
光源として使用される発光ダイオード(LED)は、表面が粗い印刷媒体12、例えば紙を使用する場合に有用である。これは、表面が粗い場合、影が発生するため、その影を特徴部分として、X軸方向及びY軸方向の移動距離を正確に算出することができる。一方、表面が滑らか、或いは透明な印刷媒体12に対しては、光源としてレーザ光を発生させる半導体レーザ(LD)を使用することができる。半導体レーザで、印刷媒体12上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができる。
<ナビゲーションセンサの動作>
次に、図6を用いて、ナビゲーションセンサ30の動作について説明する。図6はナビゲーションセンサ30による移動量の検出方法の一例を説明する図であり、(a)は印刷媒体への光の照射の様子を説明する図、(b)はイメージデータの一例を示す図である。
LEDドライバ303が照射した光は、レンズ306を介して印刷媒体12の表面に照射される。印刷媒体12の表面は、図6(a)に示すように様々な形状の微小な凹凸を有している。このため、様々な形の影が発生する。
イメージプロセッサ302は、予め決められたサンプリングタイミング毎に、レンズ304及びイメージアレイ305を介して反射光を受光し、イメージデータ310を取得する。図6(b)に示すように生成したイメージデータ310を、イメージプロセッサ302は規定の分解能単位でマトリクス化する。すなわち、イメージデータ310を複数の矩形領域に分割する。
そして、イメージプロセッサ302は、前回のサンプリングタイミングで得られたイメージデータ310と、今回のサンプリングタイミングで得られたイメージデータ310とを比較してイメージデータ310が移動した矩形領域の数を検出し、それを移動距離として算出する。図6(b)で図示するΔX方向にHHP20が移動したとする。t=0とt=1のイメージデータ310を比較すると、右端にある形状が中央の形状と一致する。したがって、形状は-X方向に移動しているので、HHP20がX方向に一マス分移動したことが分かる。時刻t=1とt=2についても同様である。
<ヘッドモジュールの構成>
図7は、実施形態に係るヘッドモジュールの構成の一例を説明するブロック図である。図7に示すように、ヘッドモジュールは、IJ記録ヘッド駆動回路23と、IJ記録ヘッド24と、NVRAM67と、サーミスタ202と、インクタンク203とを有する。
NVRAM67は、インクのカートリッジのシリアルナンバー等の識別情報、及びインク残量等の情報を保持する。不揮発性であるため電源切断しても情報は保持される。サーミスタ202は、IJ記録ヘッド24の温度を検出する。インクタンク203は、吐出するインクを格納しておき、吐出時にIJ記録ヘッド24へインクを供給する。ヒータ回路204は、サーミスタ202からの温度情報に基づいて、IJ記録ヘッド24を温めるためのヒータ制御を行う。
ヘッドモジュールは、制御部25とはシリアルI/F等を介して接続され、情報及び制御信号のやり取りを行う。IJ記録ヘッド制御部44は、CPU33から制御要求を受けて、IJ記録ヘッド駆動回路23の制御、例えば、駆動波形の設定、ヒータ制御のON/OFF等を実施する。
<IJ記録ヘッドにおけるノズル位置について>
次に、図8を用いて、IJ記録ヘッド24におけるノズル位置等について説明する。図8(a)は、HHP20の平面図の一例である。図8(b)はIJ記録ヘッド24のみを説明する図の一例である。図示されている面が印刷媒体12に対向する面である。
実施形態に係るHHP20は、1つのナビゲーションセンサS0を有している。図8(a)のS1は、説明の便宜上、ナビゲーションセンサ30が2つある場合の設置位置を示す。ナビゲーションセンサ30が2つある場合の、2つのナビゲーションセンサS0,S1の間の長さは距離Lである。距離Lは長いほどよい。これは、距離Lが長いほど検出可能な最小の回転角θが小さくなり、HHP20の位置の誤差が少なくなるからである。
ナビゲーションセンサ30からIJ記録ヘッド24までの距離はそれぞれ距離a、bである。距離aと、距離bは等しくてもよいし、ゼロでもよい(IJ記録ヘッド24に接している)。また、ナビゲーションセンサ30が1つだけの場合、ナビゲーションセンサS0はIJ記録ヘッド24の周囲の任意の場所に配置される。したがって、図示するナビゲーションセンサS0の位置は一例である。ただし、IJ記録ヘッド24とナビゲーションセンサS0の距離が短いことでHHP20の底面のサイズを削減しやすくなる。
図8(b)に示すように、IJ記録ヘッド24の端から最初のノズル61までの距離は距離d、隣接するノズル間の距離は距離eである。a~eの値はROM28等に予め記憶されている。
位置算出回路34等がナビゲーションセンサS0の位置を算出すれば、距離a(距離b)、距離d及び距離eを用いて、位置算出回路34はノズル61の位置を算出できる。
<印刷媒体12におけるHHP20の位置について>
図9は、実施形態に係るHHPの座標系と位置の算出方法の一例を説明する図であり、(a)はHHPのX座標を説明する図、(b)はナビゲーションセンサが検出する移動量を示す図である。
実施形態では、印刷媒体12に水平な方向をX軸、垂直な方向をY軸に設定する。原点は印刷が開始された際のナビゲーションセンサS0の位置である。この座標を印刷媒体座標と称することにする。これに対し、ナビゲーションセンサS0は図9の座標軸(X´軸、Y´軸)で移動量を出力する。すなわち、ノズル61の配列方向をY´軸、Y´軸に直交する方向をX´軸として移動量を出力する。
図9(a)に示したように、印刷媒体12に対しHHP20が時計回りにθ回転している場合を例にして説明する。ユーザがHHP20を印刷媒体座標に対し全く傾けることなく走査させることは困難で、ゼロでないθが生じると考えられる。全く回転していなければ、X=X´、Y=Y´である。しかし、HHP20が印刷媒体12に対し回転角θ、回転した場合、ナビゲーションセンサS0の出力とHHP20の印刷媒体12における実際の位置が一致しなくなる。回転角θは時計回りが正、X、X´は右方向が正、Y、Y´は上方向が正である。
図9(a)では回転角θのHHP20がX方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。なお、ナビゲーションセンサ30が2つある場合、相対位置は固定なので2つのナビゲーションセンサ30の出力(移動量)は同じである。ナビゲーションセンサS0のX座標はX1+X2であり、X1+X2はΔX´、ΔY´及び回転角θから求められる。
図9(b)は回転角θのHHP20がY方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。ナビゲーションセンサS0のY座標はY1+Y2であり、Y1+Y2は-ΔX´、ΔY´及び回転角θから求められる。
したがって、HHP20がX方向及びY方向に回転角θのまま移動した場合、ナビゲーションセンサS0が出力するΔX´、ΔY´は印刷媒体座標のX,Yに以下のように変換できる。
X=ΔX´cosθ+ΔY´sinθ …(1)
Y=-ΔX´sinθ+ΔY´cosθ …(2)
<<回転角θの検出方法>>
実施形態では、回転角θをジャイロセンサ31の出力により位置算出回路34が求める。しかしながら、距離Lが長い方が位置を高精度に求められることを示すため、ナビゲーションセンサ30が2つある場合の回転角θの求め方を説明する。
図10は、印刷中に生じるHHP20の回転角dθの求め方の一例を説明する図である。回転角dθは2つのナビゲーションセンサS0,S1が検出する移動量ΔX´を用いて算出される。印刷媒体12の上側のナビゲーションセンサS0が検出する移動量ΔX´0、ナビゲーションセンサS1が検出する移動量をΔX´1とする。なお、図10ではすでに得られている回転角をθとしている。
HHP20が平行移動しながらdθ回転した場合、移動量ΔX´0とΔX´1は一致しない。しかし、どちらの出力も2つのナビゲーションセンサS0,S1を結ぶ直線に垂直な方向の移動量なので、移動量ΔX´0とΔX´1の差は「ΔX´0-ΔX´1」として求めることができる。この差はHHP20がdθ回転したことにより生じた値である。また、「ΔX´0-ΔX´1」、L、及び、dθに図10に示す関係があることから、dθは以下のように表すことができる。
dθ=arcsin{(ΔX´0-ΔX´1)/L} …(3)
位置算出回路34がこのdθを積算することで回転角θを求めることができる。式(1)(2)に示すように、回転角θは位置の算出に用いられるので、回転角θが位置の精度に影響する。また、式(3)から分かるように、より小さいdθを検出するには距離Lを大きくすることが好ましい。したがって、距離Lが位置の精度に影響するが、距離Lを大きくするとHHP20の底面積が大きくなり、印刷可能範囲501が小さくなる。
続いて、ジャイロセンサ31の出力を用いた回転角θの算出方法を説明する。ジャイロセンサ31の出力は角速度ωである。
ω=dθ/dt
であるから、dtをサンプリング周期とすると回転角dθは以下で表せる。
dθ=ω×dt
したがって、現在(時間t=0~N)の回転角θは以下のようになる。
このように、ジャイロセンサ31でも回転角θを求めることができる。式(1)(2)に示すように、回転角θを用いて位置を算出できる。ナビゲーションセンサS
0の位置を算出できれば、図8(b)に示したa~eの値により、位置算出回路34は各ノズル61の座標を算出することができる。なお、式(1)のX、式(2)のYはそれぞれサンプリング周期における変化量なのでこのX,Yを累積することで現在の位置が求められる。
<目標吐出位置>
続いて、図11を用いて目標吐出位置について説明する。図11は、目標吐出位置とノズル61の位置の関係の一例を説明する図である。目標吐出位置G1~G9は、HHP20がノズル61からインクを着弾させる目標位置(画素の形成先)である。目標吐出位置G1~G9は、HHP20の初期位置とHHP20のX軸/Y軸方向の解像度(Xdpi,Ydpi)から求めることができる。
例えば、解像度が300dpiの場合、IJ記録ヘッド24の長手方向及びこれに対し垂直な方向に約0.084[mm]ごとに目標吐出位置が設定される。この目標吐出位置G1~G9に吐出される画素があれば、HHP20はインクを吐出する。
しかし、実際には、ノズル61と目標吐出位置が完全に一致するタイミングを捉えることは困難であるため、HHP20は目標吐出位置とノズル61の現在位置との間に許容誤差62を設けている。そして、ノズル61の現在位置が目標吐出位置から許容誤差62の範囲内にある場合に、ノズル61からインクを吐出する(このような許容範囲を設けることを「吐出ノズル可否判定」という。)。
また、矢印63に示すように、HHP20はノズル61の移動方向と加速度を監視しており、次回の吐出タイミングのノズル61の位置を予測している。したがって、予測された位置と許容誤差62の範囲内を比較してインクの吐出を準備することが可能になる。
<画像データ出力器とHHPによる印刷動作>
図12は、画像データ出力器11とHHP20による印刷動作の一例を説明するフローチャートである。
まず、ステップU101において、ユーザは画像データ出力器11の電源ボタンを押下する。画像データ出力器11はそれを受け付け、電池等から電源が供給されて起動する。
続いて、ステップU102において、ユーザは画像データ出力器11で出力したい画像を選択する。画像データ出力器11は画像の選択を受け付ける。ワープロアプリケーションのようなソフトウェアの文書データが画像として選択されてもよいし、JPEG等の画像データが選択されても良い。必要であればプリンタドライバが画像データ以外のデータを画像に変更してよい。
続いて、ステップU103において、ユーザは選択した画像をHHP20で印刷する操作を行う。HHP20は印刷ジョブの実行の要求を受け付ける。印刷ジョブの要求により画像データがHHP20へ送信される。
続いて、ステップU104において、ユーザは、HHP20を持ち、印刷媒体12(例えばノート)の上で初期位置を決定する。
続いて、ステップU105において、ユーザはHHP20の印刷開始ボタンを押下する。HHP20は印刷開始ボタンの押下を受け付ける。
続いて、ステップU106において、ユーザはHHP20を印刷媒体12の上で滑らせるように自由に走査する。
次に、HHP20の動作を説明する。以下の動作はCPU33がファームウェアを実行することで行われる。
HHP20も電源のONにより起動する。
先ず、ステップS101において、HHP20のCPU33は、HHP20に内蔵されている図3,4のハードウェア要素を初期化する。例えば、ナビゲーションセンサI/F42やジャイロセンサI/F45のレジスタを初期化したり、印字/センサタイミング生成部43にタイミング値を設定したりする。また、HHP20と画像データ出力器11との間の通信を確立する。
続いて、ステップS102において、HHP20のCPU33は初期化が完了したかどうかを判定し、完了していない場合(ステップS102、No)はこの判定を繰り返す。
初期化が完了すると(ステップS102、Yes)、ステップS103において、HHP20のCPU33は、OPU26の例えばLED点灯によりユーザに印刷可能な状態であることを報知する。これにより、ユーザは印刷可能な状態であることを把握し、上記のように印刷ジョブの実行を要求する。
続いて、ステップS104において、印刷ジョブの実行の要求により、HHP20の通信I/F27は画像データ出力器11から画像データの入力を受け付け、画像が入力された旨をOPU26のLEDを点滅させる等によりユーザに対し報知する。
続いて、ステップS105において、ユーザが印刷媒体12上でHHP20の初期位置を決め印刷開始ボタンを押下すると、HHP20のOPU26はこの操作を受け付け、CPU33がナビゲーションセンサI/F42に位置(移動量)を読み取らせる。これにより、ステップS1001において、ナビゲーションセンサI/F42はナビゲーションセンサS0と通信し、ナビゲーションセンサS0が検出した移動量を取得しレジスタ等に格納しておく。CPU33はナビゲーションセンサI/F42から移動量を読み出す。
続いて、ステップS06において、ユーザが印刷開始ボタンを押下した直後に取得された移動量はゼロであるがゼロでないとしても、CPU33は例えば座標(0,0)の初期位置としてDRAM29やCPU33のレジスタなどに格納する。
また、ステップS107において、初期位置を取得すると印字/センサタイミング生成部43がタイミングの生成を開始する。印字/センサタイミング生成部43は、初期化で設定されたナビゲーションセンサS0の移動量の取得タイミングに達するとナビゲーションセンサI/F42にタイミングとジャイロセンサI/F45にタイミングを指示する。これが周期的に行われ上記のサンプリング周期となる。
続いて、ステップS108において、HHP20のCPU33は、移動量と角速度情報を取得するタイミングであるか否かを判定する。この判定は、割込みコントローラ41からの通知により行うが、印字/センサタイミング生成部43と同じタイミングをCPU33がカウントすることで判定しても良い。
続いて、ステップS109において、移動量と角速度情報を取得するタイミングになると、HHP20のCPU33はナビゲーションセンサI/F42から移動量を取得し、ジャイロセンサI/F45から角速度情報を取得する。上記のように、ジャイロセンサI/F45は印字/センサタイミング生成部43が生成するタイミングでジャイロセンサ31から角速度情報を取得しており、ナビゲーションセンサI/F42は印字/センサタイミング生成部43が生成するタイミングでナビゲーションセンサS0から移動量を取得している。
続いて、ステップS110において、位置算出回路34は角速度情報と移動量を用いてナビゲーションセンサS0の現在の位置を算出する。具体的には、位置算出回路34は、前回のサイクルで算出した位置(X,Y)と、今回取得した移動量(ΔX´、ΔY´)及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサS0の位置を算出する。初期位置のみで、前回算出した位置がない場合は、初期位置に今回取得した移動量(ΔX´、ΔY´) 及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサS0の位置を算出する。
続いて、ステップS111において、位置算出回路34はナビゲーションセンサS0の現在の位置を用いて各ノズル61の現在の位置を算出する。
このように、印字/センサタイミング生成部43により角速度情報と移動量が同時に又はほぼ同時に取得されるので、回転角と回転角が検出されたタイミングで取得された移動量でノズル61の位置を算出できる。したがって、種類が異なるセンサの情報でノズル61の位置が算出されても、ノズル61の位置の精度が低下しにくい。
続いて、ステップS112において、CPU33はDMAC38を制御して、算出した各ノズル61の位置を基に、各ノズル61の周辺画像の画像データをDRAM29からImage RAM37へ送信する。なお、回転器39は、ユーザにより指定されたヘッド位置(HHP20の持ち方など)及びIJ記録ヘッド24の傾きに応じて、画像を回転させる。
続いて、ステップS113において、IJ記録ヘッド制御部44は周辺画像を構成する各画像要素の位置座標と、各ノズル61の位置座標とを比較する。位置算出回路34は、ノズル61の過去の位置と現在の位置を用いてノズル61の加速度を算出している。これにより、位置算出回路34は、ナビゲーションセンサI/F42が移動量を取得しジャイロセンサI/F45が角速度情報を取得する周期よりも短いIJ記録ヘッド24のインク吐出周期ごとにノズル61の位置を算出している。
続いて、ステップS114において、IJ記録ヘッド制御部44は、位置算出回路34が算出するノズル61の位置から所定範囲内に画像要素の位置座標が含まれるか否かを判定する。
吐出条件を満たさない場合(ステップS115、No)、処理はステップS108に戻る。吐出条件を満たす場合(ステップS115、Yes)、ステップS115において、IJ記録ヘッド制御部44はノズル61ごとに画像要素のデータをIJ記録ヘッド駆動回路23に出力する。これにより、印刷媒体12にはインクが吐出される。
続いて、ステップS116において、CPU33は全画像データを出力したかを判定する。出力していない場合(ステップS116、No)、ステップS108~S115までの処理を繰り返す。
全画像データを出力した場合(ステップS116、Yes)、ステップS117において、CPU33は、例えばOPU26のLEDを点灯させユーザに印刷が終了したことを報知する。
このようにして、実施形態に係るHHP20は、画像データ出力器11から入力した画像を印刷媒体上に印刷することができる。
なお、全画像データを出力しなくても、ユーザが十分と判断した場合には、ユーザは印刷完了ボタンを押下し、OPU26がそれを受け付けて、印刷を終了して良い。印刷終了後、ユーザが電源をOFFにすることもできるし、印刷が終了した時点で、自動で電源がOFFにされるようになっていても良い。
[第1の実施形態]
次に、第1の実施形態に係るHHP20aについて説明する。なお、既に説明した実施形態と同一の構成部についての説明は省略する。後述する第2の実施形態、及び第3の実施形態においても同様である。
<第1の実施形態に係るHHPの構成>
図13は、本実施形態に係るHHPのハードウェア構成の一例を説明する図である。HHP20aは、制御部25aによって全体の動作が制御され、制御部25aにはヘッド温度センサ64、環境温度センサ65、AD(Analog/Digital)変換器66、及びNVRAM(Non-Volatile RAM)67、ヒータ駆動回路69A、及びヒータ69B等が電気的に接続されている。
また、HHP20aの電源回路21が生成する電力は、点線22aで示す配線等により、ヘッド温度センサ64、環境温度センサ65、AD変換器66、NVRAM67、ヒータ駆動回路69A、及びヒータ69Bに供給されている。
ヘッド温度検出部の一例であるヘッド温度センサ64は、IJ記録ヘッド24の基板に一体に形成された薄膜抵抗(thin film metal resistor)等であり、IJ記録ヘッド24の温度に応じた電気信号をAD変換器66に出力することができる。但し、ヘッド温度センサ64は、薄膜抵抗に限定されるものではなく、ダイオードセンサ等の他の温度センサであっても良い。
環境温度検出部の一例である環境温度センサ65は、IJ記録ヘッド24aの近傍に設けられたサーミスタ等の温度センサであり、IJ記録ヘッド24aの近傍の温度(HHP20の装置内温度)に応じた電気信号をAD変換器66に出力することができる。
AD変換器66は、ヘッド温度センサ64及び環境温度センサ65のそれぞれから入力した温度を示すアナログ電圧信号を、デジタル電圧信号に変換して制御部25aに出力する電気回路である。なお、AD変換器66は少なくとも2つの入出力チャンネルを備え、1つのチャンネルでヘッド温度センサ64の検出信号を入力し、AD変換後のデジタル電圧信号を制御部25aに出力する。また、別の1つのチャンネルで環境温度センサ65の検出信号を入力し、AD変換後のデジタル電圧信号を制御部25aに出力することができる。
NVRAM67は、上述したように、不揮発性のメモリであり、IJ記録ヘッド24aが含まれるインクカートリッジのシリアルナンバー等の識別情報を格納する。但し、IJ記録ヘッド24a自体にシリアルナンバー等の識別情報が付与されている場合は、NVRAM67は、IJ記録ヘッド24aの識別情報を記憶しても良い。
ここで、インクカートリッジは、IJ記録ヘッド24aと、インクを貯蔵するインクタンクとが一体化された部材である。また、インクカートリッジは、吐出によりインクタンク内にインクがなくなった場合に交換される、いわゆる消耗品である。インクタンクにインクがなくなりインクカートリッジが交換されると、それに伴い、新品のIJ記録ヘッド24aがHHP20aに装着されることになる。
また、NVRAM67は、補正情報を格納する。補正情報は、ヘッド温度センサ64の出力する電気信号に基づく検出値をIJ記録ヘッド24aの温度に変換する変換式において、用いられる定数を補正するための情報である。この詳細は後述する。
ヒータ駆動回路69Aは、制御部25aからの制御信号に応じてヒータ69を駆動させるための電気回路である。ヒータ69Bは、IJ記録ヘッド24aの基板に一体に形成された電気抵抗等で構成され、ヒータ駆動回路69Aからの駆動信号によりIJ記録ヘッド24を加熱して、IJ記録ヘッド24に充填されたインクの温度を変化させることができる。
制御部25aはCPU33を有し、HHP20の全体を制御する。制御部25aは、ヘッド温度センサ64の出力する電気信号に基づく検出値を、IJ記録ヘッド24aの温度に変換するために用いられる定数を補正する処理等を実行することができる。この補正についても別途詳述する。
次に、図14は、制御部25aのハードウェア構成の一例を説明するブロック図である。制御部25aはSoC50aとASIC/FPGA40aを有している。
SoC50aは、I2C CTL69等の機能を有している。また、ASIC/FPGA40は、バス46を介して接続されたIJ記録ヘッド制御部44a及びAD変換器I/F68を有している。
CPU33は、ROM28からDRAM29に展開されたファームウェア(プログラム)等を実行して、SoC50a内のI2C CTL69等の動作を制御し、また、ASIC/FPGA40a内のIJ記録ヘッド制御部44a、ヘッド温度センサ64、及びヒータ69B等の動作を制御する。
I2C CTL69は、NVRAM67とのインタフェースである。但し、I2Cに限定されるものではなく、SPI(Serial Peripheral Interface)やパラレルバス等のインタフェースを用いても良い。
IJ記録ヘッド制御部44aは、上述したIJ記録ヘッド制御部44の備える機能に加え、ヘッド温度センサ64により検出されたヘッド温度に応じてヒータ駆動回路69Aに制御信号を出力し、ヒータ駆動回路69Aによるヒータ69Bの駆動を制御する機能を有する。
AD変換器I/F68は、AD変換器66と通信し、ヘッド温度センサ64の出力信号に基づくIJ記録ヘッド24の内部抵抗値R、及び環境温度センサ65により検出された環境温度Taの情報をAD変換器66から受信し、その値を内部レジスタに格納する。
次に、図15は、ヘッド温度センサと環境温度センサの配置の一例を説明する図である。図15において、印刷媒体12にノズルが対向するようにIJ記録ヘッド24aが配置され、矢印71で示す方向にノズルからインクが吐出されて印刷媒体12上に印刷が行われる。
図15に示すように、IJ記録ヘッド24aには、ヘッド温度センサ64と、ヒータ69Bとが設けられ、ヘッド温度センサ64及びヒータ69Bは、IJ記録ヘッド24aの基板に一体に形成されている。一方、環境温度センサ65は、IJ記録ヘッド24aとは別構成であり、IJ記録ヘッド24aの近傍に設けられている。
ここで、HHP20aでは、IJ記録ヘッド24a内のインクの温度に応じて、IJ記録ヘッド24aから吐出されるインクの吐出量や吐出速度が変動し、形成される画像の品質を低下させる場合がある。インクの温度の影響を抑制するために、インク温度を正確に把握することが好ましいが、インク温度を直接検出することは困難である。
そこで、本実施形態では、IJ記録ヘッド24aの温度Tiを検出するヘッド温度センサ64を設け、ヘッド温度センサ64の出力電気信号に基づき、インクの吐出制御やIJ記録ヘッド24aの温度制御を実行可能にしている。換言すると、インク温度の代用値として検出したIJ記録ヘッド24aの温度Tiに基づき、インクの吐出制御やIJ記録ヘッド24aの温度制御を実行することができる。
ヘッド温度センサ64には、コストや応答性に優れることから、IJ記録ヘッド24aの基板に一体に形成されたダイオードセンサが用いられているが、ダイオードセンサの製造ばらつき等に起因して、温度の検出値に個体差が生じ、正確な温度検出が行えない場合がある。
具体的には、IJ記録ヘッド24aは、上述したようにインクカートリッジとして提供されるため、インクがなくなると、インクカートリッジ交換に伴い、新たなIJ記録ヘッド24aが液体吐出装置に装着される。IJ記録ヘッド24aの交換により、IJ記録ヘッド24aに設けられたヘッド温度センサ64も異なるものとなり、ヘッド温度センサ64の個体差によってカートリッジの交換の前後で温度の検出値が変化し、正確な温度検出が行えなくなる場合がある。
そこで、本実施形態では、IJ記録ヘッド24aとは別構成として、IJ記録ヘッド24aの近傍の環境温度を検出する環境温度センサ65を備え、以下の(4)式に従って、IJ記録ヘッド24aの温度Tiを求める。且つ、カートリッジ交換に伴ってIJ記録ヘッド24aが交換された際に、ヘッド温度センサ64及び環境温度センサ65による検出値に基づき、(4)式で用いられる定数を補正する。ここで、(4)式は「変換式」の一例である。
(4)式において、Tiは、インクの吐出制御や記録ヘッドの温度制御の時に用いられるIJ記録ヘッド24aの温度である。Rは、IJ記録ヘッド24aの内部抵抗値であり、IJ記録ヘッド24aの出力する電気信号がAD変換された値である。ここで、この内部抵抗値Rは「ヘッド温度検出部の出力する電気信号に基づく検出値」の一例である。
RL及びTLは、カートリッジ交換に伴ってIJ記録ヘッド24aが交換された際に補正される定数の一例であり、定数RLは補正の実行時にヘッド温度センサ64の出力した電気信号に基づいて取得されるIJ記録ヘッド24aの内部抵抗値Rの補正値である。定数TLは補正の実行時にヘッド温度センサ64により検出される環境温度Taの補正値である。また、mは固定値である。
内部抵抗値Rは以下の(5)式により取得される。
(5)式において、VccはAD変換器の電圧レンジ、AdcはAD変換器66の出力信号、nはAD変換器66の分解能である。AD変換器66の分解能nは、一例として、8ビットのAD変換器の場合、2の8乗の値となる。
ここで、IJ記録ヘッド24aに設けられたヘッド温度センサ64は、IJ記録ヘッド24aが含まれるインクカートリッジが交換されると、それに付随して新たなものになる。しかし、環境温度センサ65はインクカートリッジとは別の構成であるため、インクカートリッジが交換されても新たなものにはならない。
従って、環境温度センサ65により検出された環境温度Taを基準とし、環境温度TaとIJ記録ヘッド24aの温度Tiがほぼ同じになった状態におけるIJ記録ヘッド24aの内部抵抗値Rを定数RLとし、環境温度Taを定数TLとすることで、定数RL及びTLを補正することができる。そして、補正された定数RL及びTLを用いた(4)式の変換式によりIJ記録ヘッド24aの温度Tを算出することで、IJ記録ヘッド24aにより取得される温度Tiを補正(校正)することができる。
一方、上述した(4)式で用いられる定数RL及びTLの補正は、IJ記録ヘッド24aの温度TiとIJ記録ヘッド24aの近傍の環境温度Taとがほぼ同じ温度状態でないと正確に行うことができない。そのため、IJ記録ヘッド24aの温度TiとIJ記録ヘッド24aの近傍の環境温度Taとが、どちらも安定した平衡状態になるまで待つ必要があり、定数RL及びTLの補正に時間がかかる場合があった。
そこで、本実施形態に係るHHP20aは、定数RL及びTLの補正にかかる時間を短縮する機能を備えている。以下で、この機能について詳細に説明する。
<第1の実施形態に係るHHPの機能構成>
図16は、本実施形態に係るHHPの機能構成の一例を説明するブロック図である。図16に示すように、HHP20aは制御部25aを有する。制御部25aは、環境温度信号入力部81と、ヘッド温度信号入力部82と、ヘッド温度取得部83と、定数補正部84と、補正実行判定部85とを有する。また、補正実行判定部85は、環境温度変化率検知部851と、ヘッド温度変化率検知部852とを有する。これらの機能部は、CPU33がファームウェアを実行すること等により実現されるが、ASICやFPGA等の電子回路により実現されても良い。
また、HHP20aの備えるNVRAM67は補正情報記憶部671を有する。補正情報記憶部671が記憶する補正情報には、定数RL及びTLが含まれる。
環境温度信号入力部81は、AD変換器66を介し、所定のサンプリング間隔(1秒等)で所定の周期でして入力した環境温度センサ65の検出信号に基づき、(5)式を用いてIJ記録ヘッド24aの近傍の環境温度Taを算出する。そして、環境温度Taを示す信号を定数補正部84、及び環境温度変化率検知部851に所定の周期で出力する。
ヘッド温度信号入力部82は、ヘッド温度センサ64が所定のサンプリング間隔で所定の周期で出力する電気信号がAD変換されたデジタル電圧信号に基づき、(5)式を用いてIJ記録ヘッド24aの内部抵抗値Rを算出する。そして、内部抵抗値Rを示す信号をヘッド温度取得部83及び定数補正部84に所定の周期で出力する。
ヘッド温度取得部83は、補正情報記憶部671を参照して取得した定数RL及びTLを用い、所定の周期で入力される内部抵抗値Rを(4)式によりIJ記録ヘッド24aの温度Tiに変換する。そして、温度Tiを示す信号をヘッド温度変化率検知部852、及びIJ記録ヘッド制御部44aに所定の周期で出力する。IJ記録ヘッド制御部44aは、IJ記録ヘッド24aの温度Tiに応じて、ヒータ駆動回路69Aを介してヒータ69Bを駆動させ、IJ記録ヘッド24aの温度を制御することができる。
定数補正部84は、(4)式で用いられる定数の補正を実行する。定数補正部84により実行される補正は、具体的には、環境温度TaとIJ記録ヘッド24aの温度Tiがほぼ同じ状態になった時に、ヘッド温度信号入力部82から入力した内部抵抗値Rを定数RLとし、また環境温度信号入力部81から入力した環境温度Taを定数TLとする処理である。定数RL及びTLは補正情報記憶部671に記憶される。
補正を実行する時に、内部抵抗値Rと環境温度Taは、それぞれ連続的に取得されるが、定数補正部84は、一例として、補正を実行する直前に取得された内部抵抗値Rを定数RLとし、補正を実行する直前に取得された環境温度Taを定数TLとする。但し、これに限定されるものではなく、連続的に取得された内部抵抗値と環境温度のそれぞれの平均値を用いて定数RL及びTLとしても良い。
定数補正部84は、補正情報記憶部671に定数RL及びTLを記憶させる際に、IJ記録ヘッド24aが含まれるインクカートリッジの識別情報と、定数RL及びTLとを対応付けて記憶させる。インクカートリッジの識別情報に対応付いた定数RL及びTLを(4)式で用いることで、ヘッド温度取得部83は、ヘッド温度センサ64の個体差の影響を低減し、ヘッド温度センサ64の検出値に基づき適切にIJ記録ヘッド24aの温度を取得することができる。
補正実行判定部85は、環境温度変化率検知部851と、ヘッド温度変化率検知部852とを有し、IJ記録ヘッド24aの温度Tiの時間変化、及びIJ記録ヘッド24aの近傍の環境温度Taの時間変化に基づき、定数補正部84による補正を実行するか否かを判定する機能を有する。以下に、補正実行判定部85による判定方法を具体的に説明する。
環境温度変化率検知部851は、環境温度信号入力部81から入力した環境温度Taの時間変化から環境温度変化率ΔTaを取得する。ここで、環境温度変化率とは、単位時間当たりの環境温度Taの変化、つまり環境温度変化の傾きを示す値である。
環境温度変化率検知部851は、一例として1秒のサンプリング間隔で30個の環境温度のデータを入力し、最小二乗法により環境温度Taの時間変化の傾きを算出し、この傾きを環境温度変化率ΔTaとする。
ヘッド温度変化率検知部852は、同様に、ヘッド温度取得部83から入力したIJ記録ヘッド24aの温度Tiの時間変化からヘッド温度変化率ΔTiを取得する。ここで、ヘッド温度変化率ΔTiとは、単位時間当たりのIJ記録ヘッド24aの温度Tiの変化、つまりIJ記録ヘッド24aの温度変化の傾きを示す値である。
ヘッド温度変化率検知部852は、一例として1秒のサンプリング間隔で30個のIJ記録ヘッド24aの温度Tiのデータを入力し、最小二乗法によりIJ記録ヘッド24aの温度Tiの時間変化の傾きを算出し、この傾きをヘッド温度変化率ΔTiとする。
補正実行判定部85は、ヘッド温度変化率ΔTiが予め定められたヘッド温度変化率閾値TH1以下で、環境温度変化率ΔTaが予め定められた環境温度変化率閾値TH2以下で、且つヘッド温度変化率ΔTiと環境温度変化率ΔTaの差の絶対値が予め定められた変化率差閾値TH3以下となった時に、定数補正部84に補正を実行させる。
<第1の実施形態に係る制御部による処理>
図17は、本実施形態に係る制御部による処理の一例を示すフローチャートである。
先ず、ステップS171において、環境温度信号入力部81は、所定のサンプリング間隔でAD変換器66を介して入力した環境温度センサ65の検出信号に基づき、(5)式を用いてIJ記録ヘッド24aの近傍の環境温度Taを算出し、環境温度Taを示す信号を定数補正部84、及び環境温度変化率検知部851に所定の周期で出力する。
続いて、ステップS172において、ヘッド温度信号入力部82は、ヘッド温度センサ64が所定のサンプリング間隔で出力する電気信号がAD変換されたデジタル電圧信号に基づき、(5)式を用いてIJ記録ヘッド24aの内部抵抗値Rを算出し、ヘッド温度取得部83及び定数補正部84に所定の周期で出力する。
続いて、ステップS173において、ヘッド温度取得部83は、補正情報記憶部671を参照して取得した定数RL及びTLを用い、内部抵抗値Rを(4)式によりIJ記録ヘッド24aの温度Tiに変換する。そして、温度Tiを示す信号をヘッド温度変化率検知部852、及びIJ記録ヘッド制御部44aに所定の周期で出力する。
続いて、ステップS174において、補正実行判定部85は、環境温度Taのデータと、IJ記録ヘッド24aの温度Tiのデータを所定の数(30個等)だけ取得したか否かを判定する。取得していないと判定した場合は(ステップS174、No)、ステップS171に戻り、取得したと判定した場合は(ステップS174、Yes)、ステップS175に移行する。
ステップS175において、環境温度変化率検知部851は、所定の数の環境温度Taのデータを入力し、最小二乗法により環境温度Ta時間変化の傾きを算出して環境温度変化率ΔTaを取得する。
続いて、ステップS176において、ヘッド温度変化率検知部852は、所定の数のIJ記録ヘッド24aの温度Tiのデータを入力し、最小二乗法によりIJ記録ヘッド24aの温度Tiの時間変化の傾きを算出してヘッド温度変化率ΔTiを取得する。
続いて、ステップS177において、補正実行判定部85は、ヘッド温度変化率ΔTiが予め定められたヘッド温度変化率閾値TH1以下で、環境温度変化率ΔTaが予め定められた環境温度変化率閾値TH2以下で、且つヘッド温度変化率ΔTiと環境温度変化率ΔTaの差の絶対値が予め定められた変化率差閾値TH3以下であるか否か(以下、補正実行条件を満たすか否かという)を判定する。
ステップS177において、補正実行条件を満たさないと判定された場合は(ステップS177、No)、ステップS171に戻り、補正実行条件を満たすと判定された場合は(ステップS177、Yes)、ステップS178に移行する。
ステップS178において、定数補正部84は、定数RL及びTLを補正する。
続いて、ステップS179において、定数補正部84は、定数RL及びTLを補正情報記憶部671に出力し、補正情報記憶部671は入力した定数RL及びTLを記憶する。
このようにして、制御部25aは、(4)式で用いられる定数RL及びTLの補正を行うことができる。
<第1の実施形態に係るHHPの作用効果>
ここで、図18は、IJ記録ヘッド24aの温度TiとIJ記録ヘッド24aの近傍の環境温度Taの時間変化の一例を説明する図である。図18において、横軸は時間を示し、縦軸は温度を示している。グラフ131はIJ記録ヘッド24aの温度Tiの時間変化を示し、グラフ132は環境温度Taの時間変化を示す。
実線の直線131aは時間taにおけるIJ記録ヘッド24aのヘッド温度変化率(傾き)ΔTiを表し、破線の直線132aは時間taにおける環境温度変化率(傾き)ΔTaを表す。また、実線の直線131bは時間tbにおけるIJ記録ヘッド24aのヘッド温度変化率ΔTiを表し、破線の直線132bは時間tbにおける環境温度変化率ΔTaを表す。
時間taでは、実線の直線131aは傾きが大きく、ヘッド温度変化率ΔTiはヘッド温度変化率閾値TH1を上回っており、また、実線の直線132aも傾きが大きく、環境温度変化率ΔTaは環境温度変化率閾値TH2を上回っている。さらに、ヘッド温度変化率ΔTiと環境温度変化率ΔTaとの差も大きい。従って、補正実行条件を満たさないため、補正実行判定部85は補正を実行しないと判定する。
一方、時間tbでは、実線の直線131aは傾きが小さく、ヘッド温度変化率ΔTiはヘッド温度変化率閾値TH1以下であり、また実線の直線132aも傾きが小さく、環境温度変化率は環境温度変化率閾値TH2以下である。また、ヘッド温度変化率ΔTiと環境温度変化率ΔTaとの差も小さい。従って、補正実行条件を待たすため、補正実行判定部85は補正を実行すると判定する。
ここで、上述したように、IJ記録ヘッド24aの温度Tiと環境温度Taがほぼ同じ状態で定数の補正を行わないと正確な補正が行えない。例えば、単に、IJ記録ヘッド24aの温度Ti及び環境温度Taを監視すると、IJ記録ヘッド24aの出力信号に基づき取得される温度Tiの誤差が大きい場合に、IJ記録ヘッド24aの温度Tiと環境温度Taがほぼ同じ状態であるか否かを判定することが困難な場合がある。また、両温度が安定する前に偶然に両者が一致して、両者が同じ状態であることを誤って判定する場合がある。さらに、これらを防ぐために、両者が十分に安定するまで待つと、待ち時間が長くなる場合がある。
本実施形態では、温度の時間変化率に注目し、ヘッド温度変化率ΔTi、環境温度変化率ΔTa、及び両者の差分の絶対値が所定の範囲内にあるか否かを判定する。このようにすることで、IJ記録ヘッド24aの温度及び環境温度がそれぞれ安定したか否かをいち早く検知し、IJ記録ヘッド24aの温度と環境温度がほぼ同じ状態であるか否かを迅速に判定することができる。そして、(4)式で用いられる定数RL及びTLの補正にかかる時間を短縮することができる。
[第2の実施形態]
次に、第2の実施形態に係るHHP20bについて説明する。
<第2の実施形態に係るHHPの機能構成>
図19は、本実施形態に係るHHPの機能構成の一例を説明するブロック図である。図19に示すように、HHP20bはNVRAM67bと、制御部25bを有する。また、NVRAM67bは補正情報記憶部671bを有し、制御部25bは補正実行制御部86と、補正時間計測部87と、機能制限部88とを有する。
補正情報記憶部671bは、インクカートリッジの識別情報と、インクカートリッジの識別情報に対応付けられた補正情報と、補正確定フラグ情報とを記憶する。ここで、補正確定フラグ情報とは、補正情報が確定したか否かを示す情報である。補正情報が確定した場合、補正確定フラグ情報はオンになり、再度の補正処理は実行されない。一方、補正情報が確定していない場合、補正確定フラグ情報はオフになり、再度の補正処理が実行され得る。
補正実行制御部86は、HHP20bの状態に基づき、定数補正部84による補正の実行を制御する機能を有する。以下に、この機能について具体的に述べる。
HHP20bに対するインクカートリッジの装着は、インクカートリッジを新品のものに交換する場合以外にも行われる場合がある。一例として、識別情報(シリアルナンバー等)の確認やIJ記録ヘッド24aの吐出ノズルの清掃のために、インクカートリッジをHHP20bから一旦取り外し、再びHHP20bに装着した場合等である。
この場合は、インクカートリッジがHHP20bに装着されても、以前のインクカートリッジの交換時に定数補正部84により補正された補正情報(定数RL及びTL)をそのまま使用して、IJ記録ヘッド24aの温度を正確に検出できる場合がある。
しかし、インクカートリッジを装着する動作によりインクカートリッジが交換されたことを検知し、定数補正部84による補正が自動的に実行されるように制御の設定がされている場合は、インクカートリッジの装着動作に応じて定数補正部84による補正が自動的に実行される。或いは、HHP20bのユーザがOPU26を操作して、定数補正部84による補正を実行する指示を行うと、補正が実行される。そうすると、不要な補正のために時間がかかってしまう。
そこで、補正実行制御部86は、IJ記録ヘッド24aが含まれるインクカートリッジがHHP20bに装着された際に、インカートリッジの備えるIDチップ等から装着されたインクカートリッジの識別情報を取得する。そして、補正情報記憶部671を参照して、装着されたインクカートリッジの識別情報が記憶されているか否か、及び装着されたインクカートリッジの識別情報に対応付いた補正情報が補正情報記憶部671に記憶されているか否かを判定する。
装着されたインクカートリッジの識別情報が補正情報記憶部671に記憶され、且つ識別情報に対応付けられた補正情報が補正情報記憶部671に記憶されている場合に、補正実行制御部86は、定数補正部84に補正を実行させないように制御する。
このようにすることで、不要な補正のために時間がかかることを防ぐことができる。
また、インクカートリッジが新品のものに交換された場合でも、ヘッド温度センサ64の個体差が小さいと、補正情報記憶部671に既に記憶されている補正情報をそのまま使用して、IJ記録ヘッド24aの温度を正確に検出できる場合がある。この場合にも、定数補正部84による補正を行うと、不要な補正のために時間がかかってしまう。
そこで、補正実行制御部86は、補正情報記憶部671を参照して補正情報を取得し、これを用いた(4)式により、新たに取得したIJ記録ヘッド24aの内部抵抗値Rを変換してIJ記録ヘッド24aの温度Tiを取得する。そして、取得したIJ記録ヘッド24aの温度Tiが予め定められた有効温度範囲以内であるか否かを判定し、有効温度範囲内である場合に、定数補正部84に補正を実行させないように制御する。補正実行制御部86が補正情報記憶部671を参照して取得する補正情報は、一例として、最も新しく(最近に)、補正情報記憶部671に記憶された補正情報である。
このようにすることで、補正情報記憶部671に既に記憶されている補正情報をそのまま使えるにも関わらず、新たに補正を行うような無駄を防ぎ、不要な補正のために時間がかかることを防ぐことができる。
一方で、インクカートリッジが新品のものに交換され、定数補正部84による補正が実行された場合に、ヘッド温度センサ64や環境温度センサ65の検出誤差等に起因して、補正が適切に行われない場合がある。適切でない補正により取得された補正情報を用いると、IJ記録ヘッド24aの温度を正確に取得できなくなる。
そこで、補正実行制御部86は、補正情報記憶部671を参照して補正情報を取得し、これを用いた(4)式により、新たに取得したIJ記録ヘッド24aの内部抵抗値Rを変換してIJ記録ヘッド24aの温度Tiを取得する。そして、取得したIJ記録ヘッド24aの温度Tiが予め定めた有効温度範囲内であるか否かを判定する。且つ取得したIJ記録ヘッド24aの温度Tiと、環境温度センサ65により検出された環境温度Taとの差の絶対値が、予め定められた閾値より大きいか否かを判定する。
そして、補正実行制御部86は、IJ記録ヘッド24aの温度Tiが予め定めた有効温度範囲外であって、且つIJ記録ヘッド24aの温度Tiと環境温度Taとの差の絶対値が予め定められた閾値より大きい場合に、定数補正部84に、補正を実行させた後に、再度、補正を実行させる(再補正)。そして、上記の条件を満足する適切な補正が行われるまで、再補正が繰り返される。
このようにすることで、適切な補正により取得された補正情報を用いることができ、IJ記録ヘッド24aの温度を正確に取得することができる。
図19に戻り、補正時間計測部87は、定数補正部84が補正を開始した後の経過時間を計測し、補正実行制御部86に出力する。補正時間計測部87は、補正の開始を示す信号を定数補正部84から入力したタイミングでカウンタをプリセットしてCPU33のクロックのカウントを開始させる。そして時間の経過とともに累積されるクロックのカウント値を時間に換算することで、定数補正部84が補正を開始した後の経過時間を計測することができる。
補正時間計測部87は、計測した経過時間を所定の周期で補正実行制御部86に出力し、定数補正部84から補正の終了を示す信号を入力するか、或いは補正実行制御部86から補正の中止を示す信号を入力するまで、経過時間の計測と、補正実行制御部86への出力とを継続する。
ここで、定数補正部84が補正を開始した後、HHP20bの内部の温度変動等によって補正開始条件を満たすまでに時間がかかってしまう場合がある。
そこで、補正実行制御部86は、補正時間計測部87から入力される、定数補正部84が補正を開始した後の経過時間を監視し、補正開始後の経過時間が予め定められた補正時間閾値を超えた場合に、定数補正部84に補正を中止させる。また補正が中止された場合に、補正の中止を示す信号を機能制限部88に出力する。
このようにすることで、補正に多くの時間がかかってしまうことを防ぎ、温度が安定せず一向に補正実行条件を満たさないような場合に、補正時間を節約することができる。
また、定数補正部84が補正を中止すると、適切な補正情報が得られないため、IJ記録ヘッド24aの温度を正確に取得できなくなる。そして、IJ記録ヘッド24aの温度に基づくヒータの温度制御、及びIJ記録ヘッド24aのインク吐出による印刷品質を確保できなくなる。
そこで、補正実行制御部86が補正を中止させた場合に、機能制限部88は、補正実行制御部86から入力した補正の中止を示す信号に応じて、IJ記録ヘッド24aにより印刷媒体にインクを吐出する機能を制限する。これにより、品質が確保されない印刷が行われることを防止することができる。ここで、IJ記録ヘッド24aにより印刷媒体にインクを吐出する機能は、「HHP20bの備える機能の一部」の一例である。IJ記録ヘッド24aにより印刷媒体にインクを吐出する機能以外でも、IJ記録ヘッド24aの温度Tiが用いられる機能は、機能制限部88により制限される。
但し、HHP20bの備える機能のうち、IJ記録ヘッド24aの温度Tiを用いない機能は、補正の中止の影響を受けないため、制限されずに、定数補正部84による補正が中止された後でも利用可能である。IJ記録ヘッド24aの温度Tiを用いない機能は、具体的には、HHP20bの状態を示すステータス信号の表示や、インクカートリッジにおけるインク残量の表示等である。
また、機能制限部88は、補正実行制御部86が補正を中止させた場合に、その旨を示す信号をOPU26に出力し、OPU26に含まれる表示部261に、補正が失敗したことを示す通知を表示させる。これにより、補正が失敗したことをHHP20bのユーザに報知することができる。なお、補正が中止されたことを示す信号は、補正実行制御部86からOPUに出力されても良い。
<第2の実施形態に係る制御部による処理>
次に、図20は、本実施形態に係る制御部による処理の一例を示すフローチャートである。ここでは第1の実施形態との相違点を中心に説明する。
先ず、ステップS201において、補正時間計測部87は、定数補正部84が補正を開始した後の経過時間tを計測し、所定の周期で補正実行制御部86に出力する。
続いて、ステップS202において、補正実行制御部86は、補正時間計測部87から入力した経過時間tが予め定められた補正時間閾値tth以下であるか否かを判定する。そして、経過時間tが予め定められた補正時間閾値tth以下である場合は(ステップS202、Yes)、ステップS203に移行し、経過時間tが予め定められた補正時間閾値tth以下でない場合は(ステップS202、No)、ステップS212に移行する。
ステップS212において、補正実行制御部86は、定数補正部84による補正を中止させ、補正の中止を示す信号を機能制限部88に出力する。
続いて、ステップS213において、機能制限部88は、補正実行制御部86から入力した補正の中止を示す信号に応じて、HHP20bが備える機能の一部である印刷機能等を制限し、補正の中止を示す信号をOPU26に出力する。
続いて、ステップS214において、OPU26に含まれる表示部261は、補正が失敗したことを示す通知を表示する。
ステップS203~S211の処理は、図17におけるステップS171~S179の処理と同様であるため、説明を省略する。
このようにして、制御部25bは、(4)式で用いられる定数RL及びTLの補正を実行でき、HHP20bの内部の温度変動等によって補正実行条件を満たすまでに時間がかかってしまう場合には、補正を中止させることができる。
次に、図21は、本実施形態に係る制御部による補正判定処理の一例を示すフローチャートである。
先ず、ステップS211において、補正実行制御部86は、IJ記録ヘッド24aが含まれるインクカートリッジがHHP20bに装着された際に、装着されたインクカートリッジの識別情報を、インカートリッジの備えるIDチップ等から取得する。
続いて、ステップS212において、補正実行制御部86は、装着されたインクカートリッジの識別情報が補正情報記憶部671に記憶されているか否かを判定する。記憶されていないと判定された場合は(ステップS212、No)、ステップS217に移行し、補正実行制御部86は、定数補正部84に補正を実行させる。一方、記憶されていると判定された場合は(ステップS212、Yes)、ステップS213に移行し、補正実行制御部86は、装着されたインクカートリッジの識別情報に対応した補正情報が、補正情報記憶部671に記憶されているか否かを判定する。
ステップS213において、装着されたインクカートリッジの識別情報に対応した補正情報が記憶されていないと判定された場合は(ステップS213、No)、ステップS217に移行する。一方、装着されたインクカートリッジの識別情報に対応した補正情報が記憶されていると判定された場合は(ステップS213、Yes)、ステップS214に移行し、補正実行制御部86は、装着されたインクカートリッジの識別情報に基づき、補正情報記憶部671を参照して、識別情報に対応した補正情報を取得する。
続いて、ステップS215において、補正実行制御部86は、補正情報に含まれる定数RLが予め定められた定数RLの下限値RLdl以上で、上限値RLul以下であり、且つ補正情報に含まれる定数TLが予め定められた定数TLの下限値TLdl以上で、上限値TLul以下であるか否か(以下、有効定数範囲を満たすか否かという)を判定する。
有効範囲を満たさないと判定された場合は(ステップS215、No)、ステップS217に移行する。一方、有効定数範囲を満たすと判定された場合は(ステップS215、Yes)、ステップS216に移行し、補正実行制御部86は、定数補正部84に補正を実行させないように制御する。
このようにして、制御部25bは、補正判定処理を実行することができる。
次に、図22は、本実施形態に係る制御部による再補正判定処理の一例を示すフローチャートである。
先ず、ステップS221において、補正実行制御部86は、IJ記録ヘッド24aが含まれるインクカートリッジがHHP20bに装着された際に、装着されたインクカートリッジの識別情報を、インカートリッジの備えるIDチップ等から取得する。
続いて、ステップS222において、補正実行制御部86は、装着されたインクカートリッジの識別情報に基づき、補正情報記憶部671を参照して、前回の補正で取得された補正情報を取得する。前回の補正で取得された補正情報とは、具体的には、補正情報記憶部671に既に記憶されている補正情報であって、装着されたインクカートリッジの識別情報に対応付いた補正情報である。
続いて、ステップS223において、補正実行制御部86は、装着されたIJ記録ヘッド24aの補正確定フラグ情報を補正情報記憶部671から取得する。
続いて、ステップS224において、補正実行制御部86は、補正確定フラグ情報がオンかオフかを判定する。補正確定フラグ情報がオンの場合は(ステップS224、Yes)、処理を終了し、補正確定フラグ情報がオフの場合は(ステップS224、No)、ステップS225に移行する。
ステップS225において、ヘッド温度信号入力部82は、IJ記録ヘッド24aの内部抵抗値Rを算出し、ヘッド温度取得部83に出力する。そして、ヘッド温度取得部83は、前回の補正情報を用いた(4)式により、入力した内部抵抗値RをIJ記録ヘッド24aの温度Tiに変換し、取得した温度Tiを示す信号を補正実行制御部86に出力する。
続いて、ステップS226において、環境温度信号入力部81は、IJ記録ヘッド24aの近傍の環境温度Taを算出し、取得した環境温度Taを示す信号を補正実行制御部86に出力する。
続いて、ステップS227において、補正実行制御部86は、IJ記録ヘッド24aの温度Tiと環境温度Taの差分の絶対値が、予め定められた温度閾値以下であるか否かを判定する。温度閾値以下でない場合は(ステップS227、No)、ステップS228に移行し、温度閾値以下である場合は(ステップS227、Yes)、ステップS229に移行する。
ステップS228において、補正実行制御部86は定数補正部84に補正を実行させる。その後、処理は終了する。
ステップS229において、補正実行制御部86は補正確定フラグをONにし、ステップS230において、補正実行制御部86は補正情報を補正情報記憶部671に記憶させる。
このようにして、制御部25bは、再補正判定処理を実行することができる。
なお、図21に示す補正判定処理が実行された後、連続して図22に示す再補正判定処理が実行されても良い。
本実施形態の説明において述べた効果以外の効果は、第1の実施形態で説明したものと同様である。
[第3の実施形態]
次に、第3の実施形態に係るHHP20cについて説明する。
<第3の実施形態に係るHHPの機能構成>
図23は、本実施形態に係るHHPの機能構成の一例を説明するブロック図である。図23に示すように、HHP20cは制御部25cと、IJ記録ヘッド24cとを有する。また、制御部25cは補正実行制御部86cと、残量検知部89とを有し、IJ記録ヘッド24cは残量記憶部241を有する。
残量検知部89は、IJ記録ヘッド制御部44aがIJ記録ヘッド駆動回路23を介してIJ記録ヘッド24cに吐出させたインクの吐出滴サイズ(大滴、中滴、小滴等)と吐出滴サイズ毎の吐出数をカウントする。そして、その累積値から吐出インク量を求め、インクタンクに貯蔵されるインク量との差分により、インクカートリッジ内のインク残量を検知し、インク残量データを残量記憶部241に出力する。残量検知部89がインク残量データを残量記憶部241に出力するタイミングは、一例として、HHP20cが1枚の印刷媒体への印刷を完了するタイミングである。
残量記憶部241は、IJ記録ヘッド24cが備えるIDチップ等のメモリにより実現され、残量検知部89から入力したインク残量データを記憶する。残量記憶部241に記憶されたインク残量データは、残量検知部89からインク残量データが入力されるたびに更新される。
補正実行制御部86cは、IJ記録ヘッド24c内のインク残量が予め定められた残量閾値以下の場合に、定数補正部84による補正を実行させないように制御する。
なお、本実施形態では、残量記憶部241がIJ記録ヘッド24c内に設けられている例を示すが、残量記憶部241は、HHP20cのIJ記録ヘッド24c以外の部分(HHP20cの本体等)に設けられていても良い。
<第3の実施形態に係る制御部による処理>
図24は、本実施形態に係る制御部による補正判定処理の一例を示すフローチャートである。ステップS241~S245の処理は、図21のステップS211~S216の処理と同様であるため、ここでは説明を省略する。
ステップS246において、補正実行制御部86cは、残量記憶部241を参照してインク残量データDを取得する。
続いて、ステップS247において、補正実行制御部86cはインク残量データDが予め定められた残量閾値以下であるか否かを判定する。残量閾値以下である場合は(ステップS247、Yes)、ステップS248に移行し、補正実行制御部86cは定数補正部84に補正を実行させないように制御する。一方、残量閾値以下でない場合は(ステップS247、No)、ステップS249に移行し、補正実行制御部86cは定数補正部84に補正を実行させるように制御する。
インクカートリッジにおけるインクの残量が少ないと、補正を行った後で、すぐにインクカートリッジを交換しなければならなくなってしまう場合があり、実行した補正が無駄になる。そして、無駄な補正のために時間がかかってしまう。
本実施形態では、インク残量が予め定められた残量閾値以下の場合には、補正実行制御部86cが定数補正部84に補正を実行させないように制御することで、無駄な補正の時間をなくすことができる。
また、IJ記録ヘッド24cが残量記憶部241を備えることで、IJ記録ヘッド24cが別のHHPに装着された場合にも、別のHHPにおいて、残量記憶部241を参照して上述の処理を実行することができ、上述したものと同様の効果を得ることができる。
なお、これ以外の効果は、既に説明した実施形態で説明したものと同様である。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
また、実施形態は、液体吐出方法も含む。例えば、液体吐出方法は、記録ヘッドに含まれる吐出ノズルから印刷媒体に液体を吐出する記録工程と、画像データに基づき、前記吐出ノズルからの前記液体の吐出を制御する吐出制御工程と、前記記録ヘッドの温度に応じた電気信号を出力するヘッド温度検出工程と、定数を用いた変換式により、前記電気信号に基づく検出値を変換し、前記記録ヘッドの温度を取得するヘッド温度取得工程と、前記記録ヘッド近傍の環境温度を検出する環境温度検出工程と、前記環境温度を含む補正情報に基づき、前記定数を補正する定数補正工程と、前記記録ヘッドの温度の時間変化、及び前記環境温度の時間変化に基づき、前記定数補正部による補正を実行するか否かを判定する補正実行判定工程と、を含む。このような液体吐出方法により、上述した液体吐出装置と同様の効果を得ることができる。
さらに、実施形態は、プログラムも含む。例えば、プログラムは、液体吐出装置を、記録ヘッドに含まれる吐出ノズルから印刷媒体に液体を吐出する記録部、画像データに基づき、前記吐出ノズルからの前記液体の吐出を制御する吐出制御部、前記記録ヘッドの温度に応じた電気信号を出力するヘッド温度検出部、定数を用いた変換式により、前記電気信号に基づく検出値を変換し、前記記録ヘッドの温度を取得するヘッド温度出力部、前記記録ヘッド近傍の環境温度を検出する環境温度検出部、前記環境温度を補正情報に基づき、前記定数を補正する定数補正部、前記記録ヘッドの温度の時間変化、及び前記環境温度の時間変化に基づき、前記定数補正部による補正を実行するか否かを判定する補正実行判定部、として機能させる。このようなプログラムにより、上述した液体吐出装置と同様の効果を得ることができる。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。