以下、図面に基づいて本発明の実施の形態を説明する。
図1は、ハンドヘルドプリンタ10による印刷の例を示す図である。ハンドヘルドプリンタ10は、例えば、スマートデバイス又はPC(Personal Computer)等の画像データ出力器から、画像データを受信する。続いて、ハンドヘルドプリンタ10は、当該画像データに基づいて、印刷媒体上を平面状自由に、すなわち、フリーハンド走査し、画像を形成することができる。印刷媒体は、例えば、ノート又は定型用紙である。
ハンドヘルドプリンタ10は、後述するようにナビゲーションセンサ30とジャイロセンサ20で位置を検出し、ハンドヘルドプリンタ10が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされインクの吐出の対象とならないため、ユーザは、印刷媒体上で任意の方向にハンドヘルドプリンタ10をフリーハンド走査することで画像を形成できる。
図2は、本発明の実施の形態におけるハンドヘルドプリンタ10のハードウェア構成例を示す図である。ハンドヘルドプリンタ10は、印刷媒体に画像を形成する画像形成装置の一例である。ハンドヘルドプリンタ10は、電源11、電源回路12、通信I/F(インタフェース)13、制御部14、IJ(インクジェット)記録ヘッド駆動回路15、ROM(Read Only Memory)16、RAM(Random Access Memory)17、OPU(Operation panel Unit)18、IJ記録ヘッド19、ジャイロセンサ20及びナビゲーションセンサ30を有する。
電源11には、主に電池が利用される。太陽電池、交流商用電源、燃料電池等が用いられてもよい。電源回路12は、電源11が供給する電力をハンドヘルドプリンタ10の各部に分配する。また、電源回路12は、電源11の電圧を各部に適した電圧に降圧又は昇圧する。また、電源11が充電可能な電池である場合、電源回路12は、例えば交流電源の接続を検出して電池の充電回路に接続し、電源11の充電を可能にする。
通信I/F13は、スマートデバイス又はPC(Personal Computer)等の画像入力機器から画像データの受信を行う。通信I/F13は、例えば、無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、赤外線、携帯電話の通信方式である3G又はLTE(Long Term Evolution)等の通信規格に対応した通信インタフェースである。また、通信I/F13は、このような無線通信の他、有線LAN、USB(Universal Serial Bus)ケーブルなどを用いた有線通信に対応した通信装置であってもよい。
制御部14は、CPU(Central Processing Unit)101、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等に含まれるワイヤードロジック回路を有し、ハンドヘルドプリンタ10の全体を制御する。例えば、制御部14は、ナビゲーションセンサ30により検出される移動量及び角速度、又はジャイロセンサ20により検出される角速度に基づいて、IJ記録ヘッド19の各ノズルの位置を決定し、当該位置に応じてインクを吐出し画像を形成する制御を行う。また、制御部14は、IJ記録ヘッド駆動回路15及びIJ記録ヘッド19を含むヘッドモジュールを制御して、ヒータ回路の制御を行う。制御部14及びヘッドモジュールについて詳細は後述する。
IJ記録ヘッド駆動回路15は、制御部14から供給される駆動波形データを用いて、IJ記録ヘッド19を駆動するための駆動波形を生成する。IJ記録ヘッド駆動回路15は、インクの液滴のサイズなどに応じた駆動波形を生成できる。
ROM16は、ハンドヘルドプリンタ10のハードウェア制御を行うファームウェア、IJ記録ヘッド19の駆動波形データ、その他ハンドヘルドプリンタ10の初期設定に必要なデータ等を格納するROMを含む。ROMは、マスクROM、PROM(Programmable ROM)、EEPROM(Electrical Erasable ROM)、フラッシュメモリ又は外部記憶媒体であるメモリカード等のいずれであってもよいし、それらの複数を含んでもよい。
RAM17は、制御部14がファームウェアを実行するときにワークメモリとして使用され、通信IF13が受信した画像データを記憶し、展開されたファームウェアの実行のために使用される。RAMは、DRAM(Dynamic RAM)、SRAM(Static RAM)、SDRAM(Synchronous DRAM)等のいずれであってもよいし、それらの複数を含んでもよい。
OPU18は、ハンドヘルドプリンタ10の状態を表示するLED(Light Emitting Diode)、液晶ディスプレイ、ブザー、ユーザがハンドヘルドプリンタ10に画像形成を指示するためのタッチパネル等を有する。また、OPU18は、音声入力機能を有していてもよい。
IJ記録ヘッド19は、インクを吐出するためのヘッドであり、複数のノズルを有する。図2においては、CMYKの4色のインクを吐出可能になっているが、単色でもよく5色以上の吐出が可能であってもよい。IJ記録ヘッド19には、色ごとに一列又は複数列となるように、複数のインク吐出用のノズルが配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、この他の方式でもよい。
ジャイロセンサ20は、印刷媒体に垂直な軸を中心にハンドヘルドプリンタ10が回転したときの角速度を検出するセンサである。ジャイロセンサ20の詳細は後述する。
ナビゲーションセンサ30は、所定のサイクル時間ごとにハンドヘルドプリンタ10の移動量を検出するセンサである。ナビゲーションセンサ30は、例えば、LED又は半導体レーザ等の光源と、印刷媒体を撮像する撮像センサを有する。ユーザが、ハンドヘルドプリンタ10に、印刷媒体上を走査させると、印刷媒体の微小なエッジが次々に撮像又は検出され、当該エッジ間の距離を解析することで移動量が得られる。ナビゲーションセンサ30の詳細は後述する。なお、ナビゲーションセンサ30として、さらに多軸の加速度センサを用いてもよく、ハンドヘルドプリンタ10は加速度センサに基づいて移動量を検出してもよい。
図3は、ナビゲーションセンサ30のハードウェア構成例を示す図である。ナビゲーションセンサ30は、ホストI/F31、イメージプロセッサ32、LED/LASERドライバ33、レンズ34、イメージアレイ35及びレンズ36を有する。LED/LASERドライバ33は、LED又は半導体レーザと制御回路とが一体となっており、イメージプロセッサ32からの命令によりレンズ36を介して印刷媒体に光を照射する。イメージアレイ35は、印刷媒体からの反射光を、レンズ34を介して受光する。2つのレンズ34及びレンズ36は、印刷媒体表面に対して光学的な焦点を調整するために設置されている。
イメージアレイ35は、光の波長に感度を有するフォトダイオード等の受光素子を有し、受光した光からイメージデータを生成する。イメージプロセッサ32は、イメージアレイ35からイメージデータを取得して、イメージデータからナビゲーションセンサの移動距離を算出する。図4に示されるΔXは、X軸方向の移動量、ΔYはY軸方向の移動量を示す。イメージプロセッサ32は、算出した移動距離をホストI/F31を介して、制御部14へ出力する。
光源として使用されるLEDは、表面が粗い印刷媒体、例えば紙を使用する場合に有用である。表面が粗い場合、影が発生するため、その影を特徴部分として、X軸方向及びY軸方向の移動距離を正確に算出することが可能になるからである。一方、表面が滑らか、あるいは透明な印刷媒体に対しては、光源としてレーザ光を発生させる半導体レーザ(LD)を使用することができる。半導体レーザで、印刷媒体上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができるからである。
図4は、ナビゲーションセンサ30の機能を説明するための図である。イメージプロセッサ32は、反射光を受光したイメージアレイ35から規定のサンプリングタイミングごとに取得したデータを、規定の分解能単位でマトリックス化し、直前のサンプリングタイミングと現時点のサンプリングタイミングとの差分を検知し、移動量を算出する。
例えば、図5に示される場合では、あるサンプリングタイミング:Samp1のときの画像からSamp2、Samp3と進むにつれて、黒又はグレイで表示される画像が移動していることがわかる。
Samp1を基準とした場合、Samp2での出力値(ΔX,ΔY)は、(1,0)となる。ΔX、ΔYは、ナビゲーションセンサ30の向きを基準とした水平方向、垂直方向の移動量を示す。なお、ナビゲーションセンサ30が1つの場合、センサが印刷媒体上で回転したとしても、回転成分を検知することはできない。移動量の分解能は、搭載されるデバイスの要求に依存するが、プリンタを想定した場合、例えば1200dpi程度の分解能を要する。
図5は、ジャイロセンサ20の機能を説明するための図である。一般的な振動式ジャイロセンサについて以下説明する。図5に示されるように、コリオリの力Fcorは、移動している質量mに回転を加えた際に、当該質量の移動方向と回転軸の両方に直行する方向に発生する力である。
ジャイロセンサ20では、内部MEMS(Micro Electro Mechanical Systems)素子を振動させることで図5に示す速度vを発生させ、当該素子に外部から回転(Ω)が加わると、当該素子にコリオリの力が加わることを利用して角速度を求める。コリオリの力を検知して、物体に加わった角速度が算出される。ジャイロセンサ20は、検知されたコリオリの力をジャイロセンサ20内の信号処理ASICで増幅、フィルタリング、同期を取り、演算して角速度とした後に外部に出力する。
図6は、インクジェットノズル位置の算出について説明するための図(1)である。単純な比例演算で、各ノズルの座標を求める方法を以下説明する。ナビゲーションセンサ30の位置と、各ノズルへの相対位置は既知であるため、ナビゲーションセンサ30の位置を取得し、各ノズルの座標を求める方法を用いれば、各ノズルの位置を求めることができる。
図6に示されるノズル列内のノズル間距離eは等しいため、先頭ノズル座標(XS,YS)及び後尾ノズル座標(XE,YE)の座標から、ノズルNの座標(NZLNX,NZLNY)は、下記の数式に基づいて求めることができる。Eはノズル総数であり、Nは先頭ノズルから後尾ノズルに向けて数えた場合に何番目のノズルであるかを示す。
NZLNX=XS+(XE−XS)/(E−1)×N
NZLNY=YS+(YE−YS)/(E−1)×N
図7は、インクジェットノズル位置の算出について説明するための図(2)である。ノズル座標を求めるための演算を、単純な演算となるように全体を2のべき乗数で分割するため、図7に示される仮想点nozzle_257を設けて、実際にノズルが配置されているnozzle_1からnozzle_192までの座標が算出される。nozzle_1の座標は(NZLXS,NZLYS)、nozzle_257の座標は(NZLXE,NZLYE)である。nozzle_1からnozzle_192に向けて数えた場合にN番目のnozzle_Nの座標(NZLNX,NZLNY)は、下記の数式に基づいて求めることができる。
NZLNX={NZLXS×(257−N)+NZLXE×(N−1)}÷256
NZLNY={NZLYS×(257−N)+NZLYE×(N−1)}÷256
図8は、本発明の実施の形態における制御部14のブロック図である。制御部14は、図8に示されるように、CPU101、位置算出部102、メモリ制御部103、ImageRAM104、DMAC(CACHE)(Direct Memory Access Controller(Cache memory))105、回転器106、割り込み部107、ジャイロセンサI/F108、ナビゲーションセンサI/F109、印字/センサタイミング生成部110及びIJ記録ヘッド制御部111の各機能部を有する。また、制御部14のハードウェアとしての構成は、例えば図8に示されるようなSoC(System on Chip)とASIC/FPGAとから構成され、SoC及びASIC/FPGAは、バスを介して通信して接続されてもよい。ASIC/FPGAはどちらの実装技術で設計されてもよいことを意味し、ASIC/FPGA以外の他の実装技術で構成されてよい。また、制御部14は、SoCとASIC/FPGAを別のチップにすることなく1つのチップ又は基板で構成されてもよい。あるいは、制御部14は、3つ以上のチップ又は基板で実装されてもよい。また、制御部14が有する各機能部は、CPU101が実行するファームウェアによって実現されてもよいし、SoC、ASIC/FPGAに含まれるワイヤードロジック回路によって実現されてもよい。
CPU101は、RAM17に展開されたファームウェアをメモリ制御部103を介して読み込み、実行することにより、制御部14の各機能部を実現する。
位置算出部102は、ナビゲーションセンサ30が検出するサンプリング周期ごとの移動量、及びジャイロセンサ20が検出するサンプリング周期ごとの角速度に基づいて、ハンドヘルドプリンタ10の位置を算出する。正確な印刷をするために必要なハンドヘルドプリンタ10の位置とは、厳密にはノズルの位置であるが、ナビゲーションセンサ30の位置が分かれば、図6及び図7で説明したようにノズルの位置を算出できる。また、位置算出部102は、インクの目標吐出位置を算出する。なお、位置算出部102は、CPU101がファームウェアを実行することにより実現されてもよいし、ワイヤードロジック回路により実現されてもよい。
メモリ制御部103は、各機能部からのRAM17に対する読み込み又は書き込みを制御する。
ImageRAM104は、読み書きに高速性が必要とされる情報の記憶に使用される。例えば、ナビゲーションセンサ30の位置情報、RAM17から読み込んだ画像データ等が記憶される。ImageRAM104のハードウェアは、例えばSRAMで構成されてもよい。
DMAC(CACHE)105及び回転器106は、位置算出部102で算出されたナビゲーションセンサ30の位置情報から、IJ記録ヘッド19に搭載されている各ノズル位置を算出し、当該ノズル位置に応じた画像データをRAM17から読み込んで、指定されたヘッド位置・ヘッド傾きに応じて回転させ、IJ記録ヘッド制御部111にデータを出力する。
割り込み部107は、ナビゲーションセンサI/F109が、ナビゲーションセンサ30との通信が完了したことを検知して、CPU101に通知するための割り込み信号を出力する。CPU101は割り込みにより、ナビゲーションセンサI/F109が内部レジスタに記憶するΔX、ΔYを取得する。また、割り込み部107は、エラー等のステータス通知機能も有する。ジャイロセンサI/F108に関しても同様に、割り込み部107はCPU101に対し、ジャイロセンサ20との通信が終了したことを通知するための割り込み信号を出力する。
ジャイロセンサI/F108は、印字/センサタイミング生成部110により生成されるタイミングで、ジャイロセンサ20が検出する角速度を取得して、RAM17又は制御部14内のレジスタ等に格納する。
ナビゲーションセンサI/F109は、ナビゲーションセンサ30と通信し、ナビゲーションセンサ30からの情報として移動量ΔX、ΔYを受信し、当該移動量をRAM17又は制御部14内のレジスタに格納する。
印字/センサタイミング生成部110は、ジャイロセンサI/F108及びナビゲーションセンサI/F109が、センサから情報を読み取るタイミングを通知し、また、IJ記録ヘッド制御部111に駆動タイミングを通知する。
IJ記録ヘッド制御部111は、画像データにディザ処理等を施して大きさと密度で画像を表す点の集合に画像データを変換する。当該変換により、画像データは、吐出位置と点のサイズのデータとなる。IJ記録ヘッド制御部111は、点のサイズに応じた制御信号をIJ記録ヘッド駆動回路15に出力する。IJ記録ヘッド駆動回路15は、当該制御信号に対応する駆動波形データを用いて、駆動波形を生成する。また、IJ記録ヘッド制御部111は、ノズルの位置に応じて吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
図9は、本発明の実施の形態におけるヘッドモジュールのブロック図である。図8に示されるように、ヘッドモジュールは、IJ記録ヘッド駆動回路15、IJ記録ヘッド19、不揮発性メモリ201、サーミスタ202、インクタンク203を有する。
不揮発性メモリ201は、インクのカートリッジID及びインク残量等の情報を保持する。不揮発性であるため電源切断しても情報は保持される。サーミスタ202は、IJ記録ヘッド19の温度を検出する。インクタンク203は、吐出するインクを格納しておき、吐出時にIJ記録ヘッド19へインクを供給する。ヒータ回路204は、サーミスタ202からの温度情報に基づいて、IJ記録ヘッド19を温めるためのヒータ制御を行う。
ヘッドモジュールは、制御部14とはシリアルI/F等を介して接続され、情報及び制御信号のやり取りを行う。IJ記録ヘッド制御部111は、CPU101から制御要求を受けて、IJ記録ヘッド駆動回路15の制御、例えば、駆動波形の設定、ヒータ制御のON/OFF等を実施する。
図10は、本発明の実施の形態におけるハンドヘルドプリンタ10による印字処理の例を示すフローチャートである。
ステップS201において、ユーザが、ハンドヘルドプリンタ10の電源ボタンを押下すると、ハンドヘルドプリンタ10は動作を開始する。続いて、ハンドヘルドプリンタ10は、電源から電源供給され、制御部14は、位置センサ等のデバイスの初期化を実施し、各デバイスを立ち上げる(S101)。初期化が完了すると(S102)、例えばLEDを点灯してユーザに印刷可能状態であることを通知する(S103)。ユーザは、当該通知を確認して、印刷したい画像を画像入力機器(例えばスマートデバイス又はPC)によって、印刷したい画像を選択する(S202)。続いて、画像入力機器に搭載されているアプリ又はプリンタドライバから、TIFF形式又はJPEG形式等の画像データを無線でデータ出力する等の印刷JOBを実行する(S203)。ハンドヘルドプリンタ10は、画像データが入力されると、例えばLED点滅等でユーザに通知する(S104)。
ステップS204において、ユーザは、ハンドヘルドプリンタ10を印刷したい媒体(例えばノート)の上で初期位置を決め、ハンドヘルドプリンタ10に備わる印刷開始ボタンを押下する(S205)。その後、ユーザは印刷媒体上の平面上を自由に走査(フリーハンド走査)し、画像を形成していく(S206)。
ステップS205及びステップS206がユーザによって実行されているとき、ハンドヘルドプリンタ10は、印刷開始ボタン押下を受け、ナビゲーションセンサ30の位置情報を読み込むよう、ナビゲーションセンサI/F109に通知する。続いて、ナビゲーションセンサ30は位置情報の検知を開始し、制御部14の内部メモリに格納する(S301)。ナビゲーションセンサI/F109は、ナビゲーションセンサ30と通信し、位置情報を読み込む(S105)。続いて、ハンドヘルドプリンタ10は、当該位置情報を初期位置とし、例えば座標(0,0)とする(S106)。
続いて、制御部14内部の印字/センサタイミング生成部110によって時間計測し(S107)、予め設定されたナビゲーションセンサ30への読み込みタイミング(=IJ記録ヘッド制御部111の駆動周期)ごとに、(S108)位置情報の読み込みを繰り返す(S109)。ステップS110において、制御部14は、読み込まれた位置情報に基づいて、前回算出したナビゲーションセンサ30の座標(X,Y)と、今回リードした移動量(ΔX,ΔY)から、図6及び図7において説明した方法で、現在のナビゲーションセンサ30の座標を算出し、制御部14の内部メモリに格納する(S110)。続いて、制御部14は、算出した現在の各ナビゲーションセンサ30の位置情報と、ナビゲーションセンサ30とIJ記録ヘッド19の予め定められた組み付け位置情報とに基づいて、IJ記録ヘッド19上の各ノズルの位置座標を算出する(S111)。
続いて、DMAC(CACHE)105及び回転器106は、ステップS111で算出した各ノズルの位置情報に基づいて、IJ記録ヘッド19又は各ノズル周辺の画像データをRAM17から読み込み、位置情報により特定されたIJ記録ヘッド19の位置及び傾きに応じて回転したのち、ImageRAM104に転送する(S112)。続いて、DMAC(CACHE)部105は、内部メモリに記憶させた画像データと、各ノズル位置の座標比較を実施し(S113)、設定された吐出条件を満たすと判断した場合(S114のYES)、IJ記録ヘッド制御部111へ画像データを出力する(S115)。設定された吐出条件を満たさないと判断した場合(S114のNO)、ステップS108に戻る。
上記ステップS108〜ステップS115を繰り返すことで、印刷媒体上に画像を形成していき、全データが吐出された場合(S116のYES)、ハンドヘルドプリンタ10は、例えばLED点灯等の手段で、ユーザに印刷完了を通知する(S117)。全データが吐出されていない場合(S116のNO)、ステップS108に戻る。
なお、全データを吐出しなくても、ユーザが十分と判断した際には、印字完了ボタンを押下し、印字を完了しても良い。
図11は、本発明の実施の形態におけるヒータ制御によるヘッド温度の遷移の例を示す図である。図11は、ハンドヘルドプリンタ10が、ヒータONしてから、印字開始し、印字終了する時系列を横軸に、温度制御されるヘッド温度を縦軸に示したグラフである。
図9に示されるヒータ回路204のヒータ制御によるヘッド温度範囲の定義が、図11のグラフの閾値によって示される。閾値1未満であればヒータ回路204は、ヒータによる温めを行う。閾値1〜閾値2であれば推奨ヘッド温度、すなわち印字品質保証範囲内となり印字可能な状態となる。閾値2以上であればヒータ回路204は、ヒータOFFして温度が下がるまで待ちとなる。閾値3以上の場合は異常状態と判断され、ハンドヘルドプリンタ10は、即座にエラー停止という動作となる。
具体的には、標準的な温度状態で、印字JOBが投入されると、制御部14からの制御によりヒータ回路204は、ヒータONする。当該制御によってヒータによるIJ記録ヘッド19の温めが開始され、約2秒程度で目標温度の範囲に到達する。そして印字開始トリガがかかるとハンドヘルドプリンタ10は、印字動作を開始する。ヒータ制御を実施しない場合に比べて、IJ記録ヘッド19をヒータ制御にて推奨温度まで温めてから印字することによって、印字品質向上の効果がある。ヒータ制御中は制御部14からヒータ回路204を制御して、印字周期ごとのヒータON/ヒータOFFを実施することにより図11に示される閾値1〜閾値2の温度範囲を保つようにする。そして印字終了トリガによって、ハンドヘルドプリンタ10は、印字処理を終了する。
図12は、本発明の実施の形態におけるナビゲーションセンサ30による浮きの判定方法を説明するための図である。
図12の「浮きが発生していない場合」に示されるように、ナビゲーションセンサ30は、LEDから光を印刷媒体に照射して、印刷媒体から反射された光を受光することで移動量を算出している。ハンドヘルドプリンタ10と印刷媒体は、ほぼ平行に接触している。
図12の「浮きが発生した場合」に示されるように、ハンドヘルドプリンタ10に浮きが発生すると、ナビゲーションセンサ30は、LEDから光を印刷媒体に照射しても、印刷媒体から反射された光を受光できなくなる。ハンドヘルドプリンタ10は、ナビゲーションセンサ30から受光できなくなったことを示す情報を取得することにより、浮きを検知することができる。ハンドヘルドプリンタ10が印刷媒体から浮いているとき、ハンドヘルドプリンタ10と印刷媒体は密着しておらず、例えば、ハンドヘルドプリンタ10がいずれかの方向に傾くことにより、ハンドヘルドプリンタ10と印刷媒体の間に隙間が生じている状態となる。
上記浮きの検知は、制御部14により、ナビゲーションセンサ30からの情報に基づいて実行される。
図13は、本発明の実施の形態における印字JOB受信前からのヒータ制御に係る状態遷移を説明するための図である。図13における「ヒート」は、ヒータ回路204によるヒータONに対応する。図13(a)において、印字JOB受信前であり、かつ図12で説明した「浮き」ありからの状態遷移が示されている。
ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S13a−1では、ハンドヘルドプリンタ10の一定時間操作なし又は印字開始トリガが発生しても、制御部14は、何も処理を行わず状態は変化しない。「一定時間操作なし」は、制御部14が、ジャイロセンサ20又はナビゲーションセンサ30の出力に基づいて、ユーザ操作の有無を判定する。「一定時間操作なし」の期間を、「待機時間」ともいう。「データなし」の状態S13a−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S13a−2に状態遷移するが、浮きを検知しているため、印字JOB受信前と同様に、ハンドヘルドプリンタ10の一定時間操作なし又は印字開始トリガが発生しても、制御部14は、何も処理を行わず状態は変化しない。「データあり」の状態S13a−2において、浮きが解消されて紙を検知すると、「データあり」の状態S13a−3に状態遷移し、ヒータ回路204は、ヒータONする。「データあり」の状態S13a−3で、浮きが検知されると、「データあり」の状態S13a−2に状態遷移し、ヒータ回路204は、ヒータOFFする。
図13(b)において、印字JOB受信前であり、かつ図12で説明した「浮き」なしからの状態遷移が示されている。ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S13b−1では、ハンドヘルドプリンタ10の一定時間操作なし又は印字開始トリガが発生しても、制御部14は、何も処理を行わず状態は変化しない。「データなし」の状態S13b−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S13b−2に状態遷移して、ヒータ回路204は、ヒータONする。「データあり」の状態13b−2において、ハンドヘルドプリンタ10の一定時間操作なしが発生すると、「データあり」の状態13b−3に状態遷移して、ヒータ回路204は、ヒータOFFする。「データあり」の状態13b−3において、印字開始トリガが発生すると、「データあり」の状態13b−2に状態遷移して、ヒータ回路204は、再度ヒータONする。
図14は、本発明の実施の形態における印字JOB受信状態からのヒータ制御に係る状態遷移を説明するための図である。図14における「ヒート」は、ヒータ回路204によるヒータONに対応する。図14において、印字JOBは既に受信している状態で、かつ図12で説明した「浮き」なしからの状態遷移が示されている。
ハンドヘルドプリンタ10が印字JOBを受信後の「データあり」の状態S14−1では、図13(b)で説明したようにヒータONは開始されている。印字開始トリガが発生すると、「印字中」の状態S14−2に状態遷移する。「印字中」の状態S14−2において、印字開始トリガが発生しても、状態は変化せず、印字が継続される。また、「印字中」の状態S14−2において、浮きが検出されると、「データなし」の状態S14−3に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S14−3は、図13(a)に示される「データなし」かつ浮きありの状態S13a−1の状態と同一である。また、「印字中」の状態S14−2において、印字終了トリガ又は一定時間操作なしが発生すると、「データなし」の状態S14−4に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S14−4は、図13(b)に示される「データなし」かつ浮きなしの状態S13b−1の状態と同一である。
図15は、本発明の実施の形態におけるヒータ制御の例を示すフローチャートである。図11に示される閾値1、閾値2及び閾値3を説明に使用する。
ステップS401において、ハンドヘルドプリンタ10の電源ON後、制御部14は、サーミスタ202から絶対温度を取得する。続いて、印字JOBを受信すると、ステップS403に進む(S402のYES)。印字JOBを受信するまでは、待機する(S402のNO)。ステップS403において、紙検知なし、または一定時間操作なしが検知されたか否かが判定される。当該判定がYESの場合ステップS404に進み、NOの場合ステップS405に進む。ステップS404において、ヒータOFFとなり、ステップS403に戻る。ステップS405において、制御部14はサーミスタ202から温度情報を取得して、ヘッド温度の判定に使用する。当該温度情報は、温度の差分を示す情報であってもよい。
続いて、取得された温度が閾値1以下の場合、ヒータONとし(S406のYES、S407)、ステップS408に進む。取得された温度が閾値1より高い場合(S406のNO)、ステップS408に進む。
ステップS408において、取得された温度が閾値2〜閾値3の範囲である場合、ヘッドが高温状態にあるとみなして、ヒータOFFとなり(S408のYES、S409)、ステップS403に戻る。取得された温度が、閾値2〜閾値3の範囲にない場合(S408のNO)、ステップS410に進む。
ステップS410において、取得された温度が、閾値3以上の場合(S410のYES)、ステップS411に進み、ヘッドが異常状態にあるとみなして、ヒータをOFFし、さらにLED等のユーザ通知手段によってエラー表示してから、印字停止及び異常終了とする。取得された温度が、閾値3未満である場合、ステップS412に進む。
ステップS412において、取得された温度が閾値1〜閾値2の範囲である場合(S412のYES)、ヘッド温度は印字品質保証範囲にあるとみなして、LED等のユーザ通知手段によって印字可能であることを通知して(S413)、ステップS414に進む。取得された温度が、閾値1〜閾値2の範囲である場合(S412のNO)、ステップS414に進む。
ステップS414において、印字開始トリガが発生していない場合(S414のNO)ステップS403に戻る。印字開始トリガが発生している場合(S414のYES)、ステップS415に進む。続いて、印字処理が開始される(S415)。印字処理中は、温度範囲を印字品質保証範囲(閾値1〜閾値2)に保つため、温度制御が実行される。具体的には、サーミスタ202からの温度情報に基づいて、ヒータ回路204によって、ヒータON/ヒータOFFが行われる(S416)。
ステップS417において、印字終了トリガ、一定時間操作なし又は紙検知なしのいずれも検知されていない場合(S417のNO)、印字処理は継続される。一定時間操作なし又は紙検知なしのいずれかが検知された場合(S417のYES)、ステップS418に進み、ハンドヘルドプリンタ10は、印字終了し、ヒータ回路204は、ヒータOFFする。続いて、ステップS402に戻り、印字JOB待ちとなる。
なお、ステップS402において、印字JOBが受信された場合、すぐにヒータ回路204はヒータONしてもよい。
図16は、本発明の実施の形態におけるヒータ及びプレヒータ制御によるヘッド温度の遷移の例を示す図である。図16は、プレヒータ制御を導入し、ハンドヘルドプリンタ10が、プレヒータ制御によるプレヒータONし、ヒータ制御によるヒータONし、印字開始し、印字終了する時系列を横軸に、温度制御されるヘッド温度を縦軸に示したグラフである。
図9に示されるヒータ回路204のヒータ及びプレヒータ制御によるヘッド温度範囲の定義が、図16のグラフの閾値によって示される。
標準的な温度状態で、印字JOBが投入されると、制御部14からの制御によりヒータ回路204は、プレヒータONする。ヘッド温度が印字品質保証範囲に入らない程度の温度範囲で、ヘッドの温めが行われる。図16に示されるように、プレヒータONされる期間を、ウォームアップ期間とする。ここで、IJ記録ヘッド19は、ユーザが剥き出しのヘッドに触れても火傷を負わない程度の温度が維持されているため、ユーザが誤ってヘッドに触れてしまっても安全性は確保される効果がある。
次に、ユーザがハンドヘルドプリンタを動かしたこと、すなわち実際に印字しようとしている操作を、ジャイロセンサ20の角速度情報又はナビゲーションセンサ30の移動量情報に基づいて、検出される角速度又は移動量が所定の閾値を超えた状態が継続する等により判定する。ユーザにより印字を開始する操作(以下、「ユーザ操作」という。)が行われたと判定した場合に、制御部14は、プレヒータ制御又はヒータ制御を開始する。ここで、例えば、空中に浮かせてハンドヘルドプリンタ10を移動させている場合は、ナビゲーションセンサ30による浮き検知からプレヒータ制御又はヒータ制御を開始しないようにする。
プレヒータ制御によって、ウォームアップ期間にプレヒータONとされ、ヘッド温度が図16に示される閾値A〜閾値Bの範囲にまで上がった状態となっているため、ヒータ制御のみ行われる場合と比べて、目標温度到達時間を短縮できる。例えば、ヒータ制御のみ行われる図11の場合、2秒程度要していた目標温度到達時間が、プレヒータ制御を行った図16の場合、1秒未満に短縮されている。そのため、ユーザによる操作が開始されてから、印字開始までの時間を短縮する効果がある。印字開始以降のヒータ制御は、図11と同様である。
なお、プレヒータONの状態で、図16に示される閾値Cにあたるリロード通知温度に到達すると、ユーザへの通知を実施する。当該通知は、ユーザにハンドヘルドプリンタが操作可能な状態であることを示す通知である。当該通知により、ユーザのトータル操作時間の短縮及び操作時間の短縮による消費電力低減等の効果がある。
図17は、本発明の実施の形態における印字JOB受信前からのヒータ及びプレヒータ制御に係る状態遷移を説明するための図である。図17における「プレヒート」又は「ヒート」は、ヒータ回路204によるプレヒータON又はヒータONに対応する。図17(a)において、印字JOB受信前であり、かつ図12で説明した「浮き」ありからの状態遷移が示されている。
ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S17a−1では、ハンドヘルドプリンタ10の一定時間操作なし、印字開始トリガ又はユーザ操作が発生しても、制御部14は、何も処理を行わず状態は変化しない。「データなし」の状態S17a−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S17a−2に状態遷移するが、浮きを検知しているため、印字JOB受信前と同様に、ハンドヘルドプリンタ10の一定時間操作なし、印字開始トリガ又はユーザ操作が発生しても、制御部14は、何も処理を行わず状態は変化しない。「データあり」の状態S17a−2において、浮きが解消されて紙を検知すると、「データあり」の状態S17a−3に状態遷移し、ヒータ回路204は、プレヒータONする。「データあり」の状態S17a−3において、図16で説明したリロード通知温度に到達すると、ハンドヘルドプリンタ10は、ユーザへの通知を行う。ユーザへの通知は、ハンドヘルドプリンタ10が備える状態表示用LEDの点灯又は点滅あるいはブザーによる音響発生等により行われてもよいし、ハンドヘルドプリンタ10に画像データを送信するスマートデバイスが備える画面の表示によって行われてもよい。当該通知が完了すると、ユーザは、ハンドヘルドプリンタ10が操作可能な状態であることがわかる。「データあり」の状態S17a−3において、浮きが検知されると、「データあり」の状態S17a−2に状態遷移し、ヒータ回路204は、プレヒータOFFする。「データあり」の状態S17a−3において、ユーザ操作が発生すると、「データあり」の状態S17a−4に状態遷移し、ヒータ回路204は、ヒートONする。「データあり」の状態S17a−4において、浮きが検出されると、「データあり」の状態S17a−2に状態遷移する。
なお、印字JOB受信時に、紙検知していない状態であっても、プレヒートではユーザが危険な温度までにはヘッド温度が上昇しないため、プレヒータONとしてもよい。すなわち、「データあり」状態S17a−2において、ヒータ回路204は、プレヒータONとしてもよい。
図17(b)において、印字JOB受信前であり、かつ図12で説明した「浮き」なしからの状態遷移が示されている。ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S17b−1では、ハンドヘルドプリンタ10の一定時間操作なし、印字開始トリガ又はユーザ操作が発生しても、何も処理は行われない。「データなし」の状態S17b−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S17b−2に状態遷移して、ヒータ回路204は、プレヒータONする。「データあり」の状態S17b−2において、図16で説明したリロード通知温度に到達すると、ハンドヘルドプリンタ10は、ユーザへの通知を行う。S17a−3と同様に、ユーザへの通知は、ハンドヘルドプリンタ10が備える状態表示用LEDの点灯又は点滅あるいはブザーによる音響発生等により行われてもよいし、ハンドヘルドプリンタ10が接続されるスマートデバイスが備える画面の表示によって行われてもよい。当該通知が完了すると、ユーザは、ハンドヘルドプリンタ10が操作可能な状態であることがわかる。「データあり」の状態17b−2において、ハンドヘルドプリンタ10の一定時間操作なしが発生すると、「データあり」の状態17b−3に状態遷移して、ヒータ回路204は、プレヒータOFFする。「データあり」の状態17b−2で、ユーザ操作が発生すると、「データあり」の状態17b−4に状態遷移して、ヒータ回路204は、ヒータONする。また、「データあり」の状態17b−3において、ユーザ操作が発生すると「データあり」の状態17b−4に状態遷移して、ヒータ回路204は、ヒータONする。「データあり」の状態17b−4において、一定時間操作なしが発生すると、「データあり」の状態17b−3に状態遷移して、ヒータ回路は、ヒータOFFする。
図18は、本発明の実施の形態における印字JOB受信状態からのヒータ及びプレヒータ制御に係る状態遷移を説明するための図である。図18における「プレヒート」又は「ヒート」は、ヒータ回路204によるプレヒータON又はヒータONに対応する。図18において、印字JOBは既に受信している状態で、図12で説明した「浮き」なし、かつユーザ操作が発生してからの状態遷移が示されている。
ハンドヘルドプリンタ10が印字JOBを受信後の「データあり」の状態S18−1では、ヒータONは開始されている。「データあり」の状態S18−1において、ユーザ操作が発生しても、制御部14は、何も処理を行わず状態は変化しない。印字開始トリガが発生すると、「印字中」の状態S18−2に状態遷移する。「印字中」の状態S18−2において、印字開始トリガが発生しても、状態は変化せず、印字が継続される。また、「印字中」の状態S18−2において、浮きが検出されると、「データなし」の状態S18−3に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S18−3は、図13(a)に示される「データなし」かつ浮きありの状態S17a−1の状態と同一である。また、「印字中」の状態S18−2において、印字終了トリガ又は一定時間操作なしが発生すると、「データなし」の状態S18−4に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S18−4は、図17(b)に示される「データなし」かつ浮きなしの状態S17b−1の状態と同一である。
図19は、本発明の実施の形態におけるヒータ及びプレヒータ制御の例を示すフローチャートである。プレヒータ制御を行うステップS503からステップS511までを説明する。ステップS501、ステップS502、ステップS514〜S529は、図15に示されるヒータ制御と同様である。図16に示される閾値A、閾値Bを説明に使用する。
ステップS503において、紙検知なし、または一定時間操作なしが検知されたか否かが判定される。当該判定がYESの場合ステップS504に進み、NOの場合ステップS505に進む。ステップS504において、プレヒータOFFとし、ステップS503に戻る。ステップS505において、制御部14はサーミスタ202から温度情報を取得して、ヘッド温度の判定に使用する。当該温度情報は、温度の差分を示す情報であってもよい。
続いて、取得された温度が閾値A以下の場合、プレヒータONとし(S506のYES、S507)、ステップS508に進む。取得された温度が閾値Aより高い場合(S506のNO)、ステップS508に進む。
続いて、取得された温度が閾値B以上の場合、プレヒータOFFとし(S508のYES、S509)、ステップS503に戻る。取得された温度が閾値B未満の場合(S508のNO)、ステップS510に進む。
ステップS510において、取得された温度が閾値C以上であって、かつユーザ未通知である場合(S510のYES)、ユーザへの通知を行い(S511)、ステップS512に進む。ユーザへの通知は、図17で説明した「ハンドヘルドプリンタ10が操作可能な状態であること」が示される通知である。取得された温度が閾値C未満であるか又はユーザに通知済みである場合(S510のNO)、ステップS512に進む。
ステップS512において、ユーザ操作が検知されなかった場合、ステップS503に戻る。ユーザ装置が検知された場合、ステップS513に進み、プレヒータOFFとする。ステップS514以降で、ヒータ制御が行われる。
図20は、本発明の実施の形態における印字JOB受信前からのユーザ操作がトリガのヒータ制御に係る状態遷移を説明するための図である。図20における「ヒート」は、ヒータ回路204によるヒータONに対応する。図20(a)において、印字JOB受信前であり、かつ図12で説明した「浮き」ありからの状態遷移が示されている。図20においては、プレヒータ制御は行われない。
ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S20a−1では、ハンドヘルドプリンタ10の一定時間操作なし、印字開始トリガ又はユーザ操作が発生しても、制御部14は、何も処理を行わず状態は変化しない。「データなし」の状態S20a−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S20a−2に状態遷移するが、浮きを検知しているため、印字JOB受信前と同様に、ハンドヘルドプリンタ10の一定時間操作なし又は印字開始トリガが発生しても、制御部14は、何も処理を行わず状態は変化しない。「データあり」の状態S20a−2において、浮きが解消されて紙を検知すると、「データあり」の状態S20a−3に状態遷移する。「データあり」の状態S20a−3においては、ヒータ回路204は、ヒータONしない。「データあり」の状態S20a−3において、浮きが検知されると、「データあり」の状態S20a−2に状態遷移する。また、「データあり」の状態S20a−3において、ユーザ操作が発生すると、「データあり」の状態S20a−4に状態遷移し、ヒータ回路204は、ヒータONする。「データあり」の状態S20a−4において、浮きが検知されると、「データあり」の状態S20a−2に状態遷移し、ヒータ回路204は、ヒータOFFする。
図20(b)において、印字JOB受信前であり、かつ図12で説明した「浮き」なしからの状態遷移が示されている。ハンドヘルドプリンタ10が印字JOBを受信する前の「データなし」の状態S20b−1では、ハンドヘルドプリンタ10の一定時間操作なし、印字開始トリガ又はユーザ操作が発生しても、制御部14は、何も処理を行わず状態は変化しない。「データなし」の状態S20b−1において、ハンドヘルドプリンタ10が、印字JOBを受信すると、「データあり」の状態S20b−2に状態遷移する。「データあり」の状態S20b−2において、ハンドヘルドプリンタ10の一定時間操作なしが発生しても、何も処理を行わず状態は変化しない。「データあり」の状態S20b−2において、ユーザ操作が発生すると、「データあり」の状態S20b−3に状態遷移し、ヒータ回路204は、ヒータONする。「データあり」の状態S20b−3において、一定時間操作なしが発生すると、「データあり」の状態S20b−2に状態遷移し、ヒータ回路204は、ヒータOFFする。
上記のように、実際に印字を開始しようとするユーザ操作が発生するまで、ヒータ制御が行われないため、ユーザが高温状態にある剥き出しのヘッドに誤って触れる機会が減少し、安全性が向上する。
図21は、本発明の実施の形態における印字JOB受信状態からのユーザ操作がトリガのヒータ制御に係る状態遷移を説明するための図である。図21における「ヒート」は、ヒータ回路204によるヒータONに対応する。図21において、印字JOBは既に受信している状態で、かつ図12で説明した「浮き」なし、かつユーザ操作が発生してからの状態遷移が示されている。
ハンドヘルドプリンタ10が印字JOBを受信後の「データあり」の状態S21−1では、ユーザ操作が既に発生していたため、ヒータONは開始されている。さらに、「データあり」の状態S21−1では、ユーザ操作が発生しても状態は変化しない。「データあり」の状態S21−1において、印字開始トリガが発生すると、「印字中」の状態S21−2に状態遷移する。「印字中」の状態S21−2において、さらに印字開始トリガが発生しても、状態は変化せず、印字が継続される。また、「印字中」の状態S21−2において、浮きが検出されると、「データなし」の状態S21−3に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S21−3は、図20(a)に示される「データなし」かつ浮きありの状態S20a−1の状態と同一である。また、「印字中」の状態S21−2において、印字終了トリガ又は一定時間操作なしが発生すると、「データなし」の状態S21−4に状態遷移して、印字を終了し、ヒータ回路204はヒータOFFする。状態S21−4は、図20(b)に示される「データなし」かつ浮きなしの状態S20b−1の状態と同一である。
上述のように、本発明の実施の形態によれば、ヒータ制御にて印字ヘッドを好適に印刷可能となる推奨温度まで温めてから印字することによって、印字品質を向上させることができる。また、プレヒータ制御により、ユーザがハンドヘルドプリンタを持ち上げてすぐに触れてしまったとしても、印字ヘッドの温度が高くならないよう制御されているため、ユーザの安全性は確保される。さらに、プレヒータ制御により目標温度到達時間が短縮されるため、ユーザ操作から印字開始までの時間を短縮することができる。ヒータ制御の開始判定にユーザ操作をトリガに使用することで、実際に印字を開始しようとするユーザ操作が発生するまで、ヒータ制御が行われないため、ユーザが高温状態にある剥き出しのヘッドに誤って触れる機会が減少し、安全性が向上する。すなわち、ハンドヘルドプリンタのヘッド部を温度制御した場合における安全性を向上させることができる。
なお、本発明の実施の形態において、ハンドヘルドプリンタ10は、液滴吐出装置の一例である。IJ記録ヘッド19は、ヘッドの一例である。DMAC(CACHE)105及びIJ記録ヘッド制御部111は、吐出制御部の一例である。ナビゲーションセンサ30及びジャイロセンサ20は、センサの一例である。制御部14は、浮き検知部、ヒータ制御部、待機時間検出部及び通知部の一例である。プレヒータ制御は、第1の制御段階の一例である。ヒータ制御は、第2の制御段階の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。