以下、図面を参照して、本発明の実施形態を説明する。図1は、本実施形態に係る画像形成システム1000において、画像形成装置の実施形態であって液滴吐出装置を備えるハンドヘルドプリンタ1を使用して行う画像形成の様子を模式的に示す図である。本実施形態に係る画像形成システム1000は、ハンドヘルドプリンタ1および画像情報出力装置の実施形態となる画像データ送信端末2によって構成される。ハンドヘルドプリンタ1は、スマートフォンやPC等からなる画像データ送信端末2から画像データを受信し、その画像データに基づく画像を記録媒体3に形成する。
以下、本発明に係る画像形成装置の実施形態として、図1のようなハンドヘルドプリンタ1を例示する。このハンドヘルドプリンタ1は、可搬型の画像形成装置であり、画像形成処理を実行するための開始操作はユーザ4の操作によるものであり、また、画像形成動作時に必要となる走査は、ユーザ4の手動によるものである。すなわち、本実施形態に係るハンドヘルドプリンタ1は、ユーザ4によって、記録媒体3の所定の位置及び範囲に対して手動走査を行うことによって、記録媒体3上に画像を形成する。
図1は、ハンドヘルドプリンタ1と、画情報出力機器の実施形態である画像データ送信端末2を含んで構成される画像形成システム1000の全体像であって、ハンドヘルドプリンタ1を使用した画像形成処理(画像形成操作)を行う様子を模式的に示す図である。ハンドヘルドプリンタ1は、特定の処理動作に用いるデータの送信元に相当する外部装置の実施形態である画像データ送信端末2から受信した画像データに応じて、特定の処理動作の例である画像形成処理を行う。
画像データ送信端末2には、無線接続インタフェース(以下、「I/F」と表記する。)を介して接続するスマートフォンなどの無線端末2aや、有線接続I/Fを介して接続するPCなどの有線端末2bが含まれる。以下、本明細書において、通信I/Fの形式を限定しない情報出力機器に基づく説明をするときは、単に「画像データ送信端末2」と表記する。
図1に示すように、ハンドヘルドプリンタ1が画像データ送信端末2から画像データを受信して記録媒体3に対する画像形成動作を実行するときには、ユーザ4が、記録媒体3に対してハンドヘルドプリンタ1を手動で走査させる。ハンドヘルドプリンタ1は、記録媒体3に対し、自己の位置に応じてインク等の着色剤を含む液滴を吐出する。これによって、ハンドヘルドプリンタ1を用いて画像データ送信端末2から受信した画像データに基づく画像形成出力が実行される。
本実施形態において記録媒体3は、図1に例示するような、ノートやコピー用紙等の平面部分を有する部材とする。例えば、定形用紙などである。なお、記録媒体3として適用可能な部材は、ハンドヘルドプリンタ1による手動走査が可能なものであれば、その材質や形状を特には問わないものとする。したがって、記録媒体3として、手動走査に伴って移動するハンドヘルドプリンタ1の位置が検知可能な媒体であればよく、曲面を含む媒体であってもよい。
ハンドヘルドプリンタ1は、特定の処理動作の一種である画像形成動作を行うために、外部装置からの画像データを受信する。そして、画像形成動作を開始する動作開始トリガはユーザ4の操作によるものであり、動作開始トリガの後に、ユーザ4が記録媒体3上の所定の領域に対して手動走査を行う。
[ハンドヘルドプリンタ1のハードウェア構成]
次に、ハンドヘルドプリンタ1のハードウェア構成について図2を参照して説明する。図2に示すように、ハンドヘルドプリンタ1は、一般的なコンピュータと同様のハードウェアを備え、制御部101、電源回路140、電源141、DRAM(Dynamic Random Access Memory)102、ROM(Read Only Memory)103、(Operation Panel Unit)104、ナビゲーションセンサ105、IJ(インクジェット)記録ヘッド駆動回路107、IJ記録ヘッド108、通信I/F109及びオーディオスピーカ160を含んで構成される。
制御部101は、ハンドヘルドプリンタ1全体の動作を制御する。制御部101の機能構成については後述する。また、制御部101には、DRAM102、ROM103、OPU104、ナビゲーションセンサ105、ジャイロセンサ106、IJ記録ヘッド駆動回路107、通信I/F109及びオーディオスピーカ160が電気的に接続されている。
電源141としては、乾電池、充電池、太陽電池、燃料電池等を用いることができる。電源回路140は、図2の点線100で囲まれた各部とそれぞれ電気線によって接続されており、電源141が供給する電力を、ハンドヘルドプリンタ1を構成する各部に分配する。
また、電源回路140は、ハンドヘルドプリンタ1を構成する各部に電力を分配するに際し、電源141の電圧を各部に適した電圧に昇圧もしくは降圧する。なお、電源141として充放電が可能な電池が用いられる場合はこれを充電する機能を備える。例えば、電源回路140が、ハンドヘルドプリンタ1に対する商用電源の接続を検知して電源141を充電するための回路に接続させる。
DRAM102は、揮発性の記憶媒体であり、通信I/F109を介して画像データ送信端末2から受信した画像データを記憶し、または、ROM103から展開されたファームウェアを記録する。DRAM102は、制御部101のCPU(Central Processing Unit)111(図3を参照)がファームウェアを実行する際のワークメモリとして用いられる。
ROM103は、不揮発性の記憶媒体であり、制御部101が実行するハンドヘルドプリンタ1のハードウェア制御を行うためのファームウェアなどの各種プログラムを格納している。また、ROM103には、IJ記録ヘッド108に吐出動作を行わせるための駆動波形データや、ハンドヘルドプリンタ1の初期設定データ等も格納している。
OPU104は、ユーザ4からの操作を受け付ける操作部と、ハンドヘルドプリンタ1の状態を表示するための表示部を兼ねる操作表示部であって、LED、スイッチ(例えば、LEDスイッチや電源スイッチ)等によって構成される。また、OPU104として、液晶パネルやタッチパネル式のディスプレイ等の表示機構、音を発する発音機構を用いてもよい。OPU104に対するユーザ4の操作は、ハンドヘルドプリンタ1に画像形成動作(特定の処理動作)の実行開始を指示する「動作開始トリガ」や、画像形成動作の終了を指示する「動作終了トリガ」として、制御部101において認識される。OPU104は、操作受付手段を構成する。
ナビゲーションセンサ105は、ハンドヘルドプリンタ1や画像形成部であるIJ記録ヘッド108の位置に関して、その移動量、加速度などをサンプリング周期ごとに検知して出力するセンサである。ナビゲーションセンサ105の構成として、例えば、発光ダイオードやレーザなどの光源と、記録媒体3を撮像する撮像素子とを組み合わせた光学式距離測定センサが用いられる。なお、ナビゲーションセンサ105の構成として加速度センサを用いてもよい。
ナビゲーションセンサ105を構成する光学式距離測定センサは、記録媒体3に対するユーザ4の操作によるハンドヘルドプリンタ1の走査に応じて、記録媒体3の表面の色や明るさの変化点であるエッジを検知することができる。ナビゲーションセンサ105によるエッジの検知信号は制御部101に入力される。制御部101では、エッジの検知信号からエッジ間の距離を算出し、この算出した距離に基づいてハンドヘルドプリンタ1の移動量を算出する。
ジャイロセンサ106は、記録媒体3の画像記録面に対して垂直に立てた軸を中心にハンドヘルドプリンタ1(及びIJ記録ヘッド108)が回転した際の角速度を検出するセンサである。また、ジャイロセンサ106は、記録媒体3を画像記録面に対して平行に移動させるとき(手動走査するとき)のハンドヘルドプリンタ1(及びIJ記録ヘッド108)の記録媒体3に対する傾きや回転量を検出するセンサでもある。
すなわち、ジャイロセンサ106は、ユーザ4が記録媒体3に対してハンドヘルドプリンタ1を走査したときの角速度を検知して、制御部101が角速度を積分することにより、回転角θを検知することができる。また、検出した傾きによって傾き角度も検知することができる。
ジャイロセンサ106の検知結果に基づいて、ハンドヘルドプリンタ1の走査時の回転や傾斜が判定可能になる。これによって、画像形成出力の走査時に、ハンドヘルドプリンタ1が記録媒体3から浮いたり、IJ記録ヘッド108から記録媒体3に対する液滴の吐出方向が傾斜したり、正常な画像形成に支障が生ずる状態になっていることを判定することができる。さらに、加速度センサが含まれてナビゲーションセンサ105が構成されている場合、ジャイロセンサ106の検知結果と組み合わせることにより、ハンドヘルドプリンタ1本体の向きや傾きなどをより精度よく検知することができる。
ナビゲーションセンサ105により検出される移動量及びジャイロセンサ106により検出される角速度を元に、IJ記録ヘッド108の各ノズルの位置、当該位置に応じて形成する画像の決定などの制御が制御部101によって行われるように構成されている。ナビゲーションセンサ105とジャイロセンサ106が移動量検知部として機能する。
IJ記録ヘッド駆動回路107は、制御部101から出力される駆動波形データに基づいて、IJ記録ヘッド108を駆動するための駆動電圧を生成する。IJ記録ヘッド駆動回路107は、IJ記録ヘッド108から吐出するインクの液滴の大きさに応じた駆動電圧を生成する。
IJ記録ヘッド108は、インク(液滴)を吐出する液滴吐出部であって、データ処理の結果に基づく外部出力を実行する外部出力手段に相当する。本実施形態では、CMYKの4色のインクを吐出可能な構成を例示しているが、単色のインクを吐出する構成、または、5色以上のインクを吐出する構成を用いることもできる。IJ記録ヘッド108は、IJ記録ヘッド駆動回路107から出力される駆動電圧によってインクを記録媒体3に向けて吐出する。この吐出されたインクによって記録媒体3に画像が形成される。
IJ記録ヘッド108の駆動方式としては、ピエゾ素子等の圧電素子を用いたピエゾ式、インクを加熱して発生する泡を利用してインクを吐出するサーマル式等を用いることができる。
なお、本実施形態においては、ナビゲーションセンサ105によってハンドヘルドプリンタ1の移動方向及び移動量を判定するために用いられる各種の情報は、予めROM103等の記憶媒体に格納されているものとする。ここで、「各種の情報」とは、例えば、ナビゲーションセンサ105からIJ記録ヘッド108の端部までの距離、IJ記録ヘッド108の端部から最も近い位置に配列されているノズルと当該IJ記録ヘッド108の端部との距離などである。また、IJ記録ヘッド108に配列されているノズル間の距離なども各種の情報に含まれる。
通信I/F109は、外部装置とのデータ通信を行うための接続を、各種の無線通信規格、例えば、無線LANやNFC等に対応した通信、または、有線LANやUSB等の有線通信で行うための構成である。通信I/Fを介して、ハンドヘルドプリンタ1は、外部機器である画像データ送信端末2やその他の情報処理装置と通信を行う。なお、通信I/F109は複数の接続を同時に行うことができる構成であって、複数の外部機器と同時にデータ通信可能状態を確立させることができる。
したがって、通信I/F109は、有線通信手段と無線通信手段を含むデータ受信手段を構成する。また、通信I/F109は、接続されている画像データ送信端末2に対して、ハンドヘルドプリンタ1の状態を判定した結果を含む判定結果情報を出力する結果出力手段も構成する。
オーディオスピーカ160は、制御部101の制御によって、所定の条件が満たされたことをユーザ4に知らせる音を出力する発音機構及び報知部を構成する。オーディオスピーカ160は、ユーザ4がハンドヘルドプリンタ1を走査しているとき、その走査位置が画像形成位置として妥当な位置であるか否かをユーザに音で知らせるための構成である。
[制御部101の内部機能ブロック]
次に、図3を参照して、本実施形態に係る制御部101の内部構成について説明する。図3は、本実施形態に係る制御部101の構成を示す機能ブロック図である。本実施形態に係る制御部101は、SoC(System On Chip)110、ASIC(Application Specific Integrated Circuit)/FPGA(Field Programmable Gate Array)120により構成される。SoC110とASIC/FPGA120との間の通信は、バス131A、131Bを介して行われる。
なお、ASIC/FPGA120は、ASICまたはFPGAのどちらの実装技術を用いて設計されてもよいものである。また、ASIC/FPGA120は、ASIC、FPGA以外の実装技術を用いる構成であってもよい。また、SoC110とASIC/FPGA120とを別々のチップではなく、一つのチップまたは基板上、あるいは、三つ以上のチップまたは基板上に実装してもよい。
SoC110は、バス131Aを介して接続されたCPU111、位置算出部112、判定処理部113、メモリCTL(コントローラ)114、ROMCTL(コントローラ)115を含む。なお、SoC110は、上記以外の機能を含んで構成されてもよい。
ASIC/FPGA120は、バス131Bを介して接続されたイメージRAM(Random Access Memory)121、DMAC(Direct Memory Access Controller)122、回転処理部123、割込みコントローラ124、ナビゲーションセンサI/F125、印字/センサタイミング生成部126、IJ記録ヘッド制御部127、ジャイロセンサI/F128、通信制御部129、音出力I/F132を含む。なお、ASIC/FPGA120は、上記以外の機能を含んで構成されてもよい。
CPU111は、ROM103からDRAM102に展開されたファームウェア等を実行し、SoC110内の位置算出部112、判定処理部113、メモリCTL114、ROMCTL115の動作を制御する。
さらに、CPU111は、ASIC/FPGA120内のイメージRAM121、DMAC122、回転処理部123、割込みコントローラ124、ナビゲーションセンサI/F125、印字/センサタイミング生成部126、IJ記録ヘッド制御部127、ジャイロセンサI/F128、通信制御部129、音出力I/F132の動作を制御する。そして、CPU111はこれらの各部を制御することにより、ハンドヘルドプリンタ1を構成する各部の機能を実現する。
位置算出部112は、サンプリング周期ごとにナビゲーションセンサ105から入力されるハンドヘルドプリンタ1の移動量に基づいて、ハンドヘルドプリンタ1の位置を算出する。ハンドヘルドプリンタ1の位置とは、厳密にはIJ記録ヘッド108のノズルの位置のことであるが、ナビゲーションセンサ105が存在する位置が分かればノズルの位置を算出することができる。
位置算出部112は、所定の原点、例えば、画像形成出力の開始時におけるハンドヘルドプリンタ1の初期位置を基準にナビゲーションセンサ105の位置を算出する。また、位置算出部112は、過去のナビゲーションセンサ105の位置の算出結果と最も新しいナビゲーションセンサ105の位置の算出結果との差に基づいて、次回のサンプリング周期におけるハンドヘルドプリンタ1の移動速度や移動方向を推定する。
位置算出部112は、ハンドヘルドプリンタ1の移動速度や移動方向の推定結果に基づいて、次回のサンプリング周期におけるナビゲーションセンサ105の位置を予測する構成であってもよい。
また位置算出部112は、サンプリング周期ごとジャイロセンサ106から入力されるハンドヘルドプリンタ1の回転角速度に基づいて、ハンドヘルドプリンタ1の傾き具合を検知する。ハンドヘルドプリンタ1の傾きとは、厳密にはIJ記録ヘッド108のノズルの記録媒体3に対する正常状態からの傾斜のことであるが、ナビゲーションセンサ105の正常時からの傾斜が分かればノズルの傾斜を算出することができる。ハンドヘルドプリンタ1の傾きを用いることで、正常な画像形成が可能な状態か否かの判定に用いることができる。
なお、位置算出部112は、ハンドヘルドプリンタ1の傾き具合についても、ジャイロセンサ106の位置の過去の算出結果とジャイロセンサ106の位置の最も新しい算出結果との差に基づいて、次回のサンプリング周期におけるハンドヘルドプリンタ1の傾き具合を推定する。
位置算出部112は、ハンドヘルドプリンタ1の移動速度や移動方向、傾き具合の推定結果に基づく状態量を用いて、次回のサンプリング周期におけるハンドヘルドプリンタ1の位置および傾き具合を予測する。
判定処理部113は、位置算出部112によるハンドヘルドプリンタ1の位置の算出結果および画像データ送信端末2から受信した画像領域情報に基づいて、ハンドヘルドプリンタ1が画像領域300内を走査しているか否かを判定する。また、判定処理部113は、通信I/F109における画像データ送信端末2の接続状況を通信制御部129から受信し、ハンドヘルドプリンタ1に接続している外部機器の状況(有線通信であるか無線通信であるか)を判定する。判定処理部113は、接続判定手段を構成する。
上述したように、ハンドヘルドプリンタ1の位置とは、厳密には記録ヘッドのノズルの位置のことであるが、ナビゲーションセンサ105が存在する位置が分かればノズルの位置を算出することができる。ゆえに、判定処理部113は、ハンドヘルドプリンタ1の位置の算出結果から、IJ記録ヘッド108に配列されているノズルの位置を算出し、ノズルの位置が画像領域300内を走査可能な箇所にあるか否かを判定する構成であってもよい。
なお、「画像領域情報」とは、ユーザ4がハンドヘルドプリンタ1による画像形成出力の対象として選択した画像データに基づいて定められる情報である。言い換えると、「画像領域情報」とは、ユーザ4が選択した画像データに基づいて記録媒体3に画像を形成するときに、その画像が形成される範囲を示す情報である。すなわち、画像領域情報は、画像形成出力の対象として選択された画像データが形成される記録媒体3上における仮想的な領域を示す情報であって、記録媒体3の特定の位置が、当該仮想領域の内側(含まれるか)、外側(含まれないか)の判定に用いることができる情報である。
メモリCTL114は、DRAM102とのI/Fであり、DRAM102に対しデータを要求する。メモリCTL114は、DRAM102から取得したファームウェアをCPU111に転送し、また、DRAM102から取得した画像データをASIC/FPGA120に転送する。
ROMCTL115は、ROM103とのI/Fであり、ROM103に対しデータを要求する。ROMCTL115は、ROM103から取得したデータをCPU111やASIC/FPGA120に転送する。
イメージRAM121は、DMAC122が取得した画像データを一時的に格納する。すなわち、イメージRAM121において画像データがバッファリングされ、ハンドヘルドプリンタ1の位置に応じた周辺画像がイメージRAM121にバッファリングされた画像データから読み出される。
回転処理部123は、IJ記録ヘッド108およびIJ記録ヘッド108内のノズル位置に応じて、DMAC122が取得した画像データに対する回転処理を行う。DMAC122は回転処理後の画像データをIJ記録ヘッド制御部127に出力する。
回転処理部123は、例えば、位置算出部112が、ジャイロセンサ106が検出した角速度に基づいて、ハンドヘルドプリンタ1の位置を算出する際に算出した回転角θを取得し、その回転角θを用いて周辺画像に対して回転処理を実行する。なお、このときの回転角θは、画像形成出力を開始する際のハンドヘルドプリンタ1が記録媒体3の平面上において、記録媒体3に対する正常な画像形成を実行する姿勢を基準とした場合の傾きの角度である。
割込みコントローラ124は、ナビゲーションセンサI/F125がナビゲーションセンサ105との通信を完了したこと、およびジャイロセンサI/F128がジャイロセンサ106との通信を完了したこと、を検知する。そして割込みコントローラ124は、これらの通信完了を、SoC110に対して通知するための割り込み信号を出力する。CPU111はこの割り込み信号によって、ナビゲーションセンサI/F125が内部レジスタに記憶しているナビゲーションセンサ105の移動量を取得する。また、割込みコントローラ124は、エラーなどのステータス通知機能も有する。
印字/センサタイミング生成部126は、ナビゲーションセンサI/F125にナビゲーションセンサ105の検知信号を読み取るタイミングを通知し、また、IJ記録ヘッド制御部127に駆動タイミングを通知する。IJ記録ヘッド制御部127は、ノズル位置がインクを吐出すべき目標吐出位置に到達したと判断されるとインクを記録媒体3に対して吐出する。
通信制御部129は、通信I/F109に無線端末2aや有線端末2bが接続されていることを検知して判定処理部113に接続状態を通知する。また、通信制御部129は、通信I/F109に接続される無線端末2aや有線端末2bとの通信を制御する。したがって、通信制御部129は、画像データ送信端末2に対し、判定の結果を含む判定結果情報(詳細は後述する)を出力する結果出力手段を構成する。
音出力I/F132は、CPU111から通知される報知情報に基づいて、オーディオスピーカ160を駆動させて所定の音を出力させる。
[判定処理部113の機能構成]
次に、本実施形態に係る判定処理部113の詳細な構成について図4を参照して説明する。図4は、判定処理部113の内部構成を示す機能ブロック図である。判定処理部113は、位置情報取得部1131、画像領域情報取得部1132、比較判定部1133、判定結果出力部1134を含む。
位置情報取得部1131は、位置算出部112が算出したハンドヘルドプリンタ1の位置の情報を取得する。なお、位置情報取得部1131は、IJ記録ヘッド108に配列されているノズルの位置の情報を取得する構成であってもよい。
画像領域情報取得部1132は、ユーザ4がハンドヘルドプリンタ1による画像形成出力の対象として選択した画像データにおいて定められる情報である「画像領域情報」をDRAM102などの記憶媒体から取得する。画像領域情報は、画像データ送信端末2からハンドヘルドプリンタ1に送信された出力対象の画像データに基づいて、記録媒体3に対する画像形成範囲として設定される領域を示す情報である。この画像領域情報に基づいて記録媒体3の画像が形成される面(画像形成面)上に、仮想的な領域が設定され、その仮想的な領域に対してユーザ4がハンドヘルドプリンタ1を走査することにより、画像が形成される。なお、画像領域情報は、画像データ送信端末2から受信した画像データに基づいてCPU111において形成されて、DRAM102等の記憶媒体に格納される。そして、手動走査におけるハンドヘルドプリンタ1の現在位置は画像が形成される領域であるか否かの判定に用いられる。
比較判定部1133は、位置情報取得部1131が取得したハンドヘルドプリンタ1の位置の情報および画像領域情報に基づいて、ハンドヘルドプリンタ1の現在の走査位置が画像領域300内であるか否かを判定する。
判定結果出力部1134は、比較判定部1133によるハンドヘルドプリンタ1の現在の走査位置が画像領域300内であるか否かの判定結果をCPU111に出力する。判定結果出力部1134は、結果出力手段を構成する。
CPU111は、判定結果出力部1134から受信したハンドヘルドプリンタ1の現在の走査位置が画像領域300内であるか否かの判定結果に基づいて、ユーザ4に対してハンドヘルドプリンタ1の現在の走査位置に関する報知(画像領域外報知)を行う。
また、CPU111は、DRAM102に展開されているアプリケーションによって、画像領域外であることを報知するための報知情報を生成、接続状態に基づく報知情報を生成し、これらを画像データ送信端末2に送信する構成であってもよい。報知情報を受信すると、画像データ送信端末2では、例えば、「画像が印刷されている範囲から離れています」などの文字情報の表示や音声ガイダンスによって画像領域外であることの報知が行なわれる。したがって、CPU111と画像データ送信端末2とが協働して判定結果通知部として機能する。
また、CPU111は、判定結果出力部1134から通知される判定結果情報において、キャップが装着されていることを示す情報が含まれていれば、IJ記録ヘッド制御部127に対して動作を停止(または、入力操作を無効に)する制御信号を通知する。
なお、CPU111は、ユーザ4に対する画像領域外報知として、例えば、LEDスイッチや電源スイッチなどのOPU104を点滅させる制御によって通知を行う。また、OPU104に発音機構が含まれる構成の場合、CPU111は、ブザーや音声ガイダンスによる画像領域外報知やオフライン通知またはオンライン通知を行う。したがって、CPU111とOPU104とが協働して、結果出力手段を構成する。
また、CPU111とIJ記録ヘッド駆動回路107が協働して、データ処理手段を構成する。
[画像データ送信端末2のハードウェア構成]
次に、画像データ送信端末2のハードウェア構成について説明する。図5は、画像データ送信端末2のハードウェア構成を示している。本実施形態に係る画像データ送信端末2は、一般的なPC(Personal Computer)等の情報処理装置と同様の構成を有する。すなわち、本実施形態に係る無線端末2aは、CPU210、RAM220、ROM230、HDD(Hard Disk Drive)等の記憶媒体240、I/F250がバス290を介して接続されている。
また、上記の構成に加え、画像データ送信端末2は、I/F250を介してLCD(Liquid Crystal Display)などの表示部261やキーボードなどの操作部270、LANなどの有線接続、NFCや無線LAN等の無線接続により、ハンドヘルドプリンタ1やその他の情報処理端末と通信を行い通信部281が接続されて構成されている。また、I/F250を介して音を出力する音出力部262が接続されている。
CPU210は演算手段であり、画像データ送信端末2全体の動作を制御する。RAM220は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU210が情報を処理する際の作業領域(ワーキングメモリ)として用いられる。ROM230は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
記憶媒体240は、HDD、SSD(Solid State Drive)などの情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム(以後、アプリケーション)等が格納されている。I/F250は、バス290と、表示部261、操作部270、音出力部などの各種のハードウェアや通信部280を介してネットワーク等を接続し制御する。
表示部261は、I/F250を介して受信した画像データ送信端末2の状態をユーザ4が確認するユーザI/Fである。操作部270は、キーボードなどによって構成され、ユーザ4が画像データ送信端末2に情報を入力するためのユーザI/Fである。なお、表示部261および操作部270を、動作原理方式として抵抗膜方式、表面弾性波方式、静電容量方式等が用いられたタッチパネルとして構成してもよい。
音出力部262は、ハンドヘルドプリンタ1から通知される判定結果情報に基づいて、ハンドヘルドプリンタ1の状態を音としてユーザ4に報知する。
このようなハードウェア構成において、ROM230に格納されたプログラムや記憶媒体240からRAM220に読み出されたプログラムに従ってCPU210が演算を行うことにより、図7において説明するコントローラ200の内部機能が構成される。なおコントローラ200の内部機能と、ハードウェアとの組み合わせによって、画像データ送信端末2の機能を実現する機能ブロックが構成される。
[コントローラ200の機能ブロック]
次に、画像データ送信端末2のコントローラ200の内部機能について説明する。図6は、本実施形態に係るコントローラ200の内部機能の構成を示す機能ブロック図である。
コントローラ200は、画像処理部201、画像領域算出部202、報知制御部203、操作制御部204、通信制御部205を含む。画像処理部201は、ユーザ4がハンドヘルドプリンタ1による画像形成出力の対象として選択した画像データを、ハンドヘルドプリンタ1で出力可能な形式に変換する処理を行う。
このとき、画像処理部201は、画像形成出力に際してユーザ4によって設定された条件、例えば、モノクロ/カラー印刷、拡大/縮小などの条件を適用して、画像データをハンドヘルドプリンタ1で出力可能な形式に変換する処理を行う。
画像領域算出部202は、画像処理部201によって処理された画像データに基づいて、ユーザ4がハンドヘルドプリンタ1による画像形成出力の対象として選択した画像データが形成される領域を算出して画像領域情報を生成する。なお、ユーザ4の指定によって画像データが形成される領域を決定して画像領域情報を生成する構成であってもよい。
報知制御部203は、表示部261に表示される画面の制御を実行する。例えば、報知制御部203は、ハンドヘルドプリンタ1から画像領域外報知情報を受信した場合に、その画像領域外報知情報に基づいた画面を表示部261に表示させる。
また、報知制御部203は、ハンドヘルドプリンタ1から初期化完了通知を受信した場合に、その初期化完了通知に基づいた画面を表示部261に表示させる。この場合、報知制御部203は、音出力部262を介して、ハンドヘルドプリンタ1の初期化完了を知らせる音を出力してもよい。
また、報知制御部203は、ハンドヘルドプリンタ1から異常状態やオペレータコール状態の関する通知を受信した場合に、その旨をユーザ4に報知するための画面を表示部261に表示させる。この場合、報知制御部203は、音出力部262を介して、ハンドヘルドプリンタ1の状態を知らせる音を出力してもよい。
操作制御部204は、ユーザ4による操作部270の操作に基づいた制御情報を生成し、コントローラ200を構成する各部に送信する。通信制御部205は、ハンドヘルドプリンタ1との通信を制御し、ハンドヘルドプリンタ1との情報の送受信を制御する。
以上説明したような構成によって、本実施形態に係る画像形成システム1000では、画像データ送信端末2から受信した画像データに基づいてハンドヘルドプリンタ1を使用して記録媒体3に対する画像形成出力を実行する。
[手動走査時の画像領域300とハンドヘルドプリンタ1の位置関係]
ハンドヘルドプリンタ1を使用した画像形成出力の際には、ユーザ4がハンドヘルドプリンタ1を把持した状態で、記録媒体3に対してハンドヘルドプリンタ1を走査する。記録媒体3には、図7に例示するように、画像形成位置として画像データに基づいて規定される画像領域300が仮想的に設定される。この画像領域300は、ハンドヘルドプリンタ1における画像形成動作で用いられる仮想的なものであって、記録媒体3に対してマーカ等が明示されているものではない。
したがって、ユーザ4は、ハンドヘルドプリンタ1を走査しながら、現在位置(走査位置)が画像領域300の内側に相当するのか外側に相当するのかを認識しづらい。この場合、ユーザ4は、画像形成出力対象の画像を全て印刷するためには、記録媒体3上をくまなく走査しなければならない状態になる。
そこで、本実施形態に係るハンドヘルドプリンタ1は、ユーザ4による画像形成出力時の走査を効率的に行えるように、ハンドヘルドプリンタ1の現在位置と、記録媒体3において画像データが形成される領域である画像領域300との位置関係をユーザ4に通知する。これによって、記録媒体3上におけるユーザ4による不要なハンドヘルドプリンタ1の走査を減らすことができ、画像形成出力を効率よく行えるようにする。
図7は、ハンドヘルドプリンタ1の現在位置と、記録媒体3の表面に仮想的に設定される画像領域300との位置関係について、複数のバリエーションを例示している。
[第一位置関係について]
ハンドヘルドプリンタ1aは、画像領域300の内から画像領域300の外に向かって移動し、画像領域300外に離れていこうとしているハンドヘルドプリンタ1を例示している。本実施形態では、ハンドヘルドプリンタ1aのように、画像領域300の境界(輪郭)から、ある程度の距離を示す閾値(Lth)を想定する。詳細には後述するが、画像領域300の内ではなくても、画像領域300の輪郭に閾値(Lth)を加算した領域(余白領域)は、手動走査時に、ハンドヘルドプリンタ1が画像領域300の内側で走査されているか外側に出てしまっているかを判定するときに用いられる。本実施形態では、画像領域300の境界から閾値(Lth)以上離れた位置に至ったハンドヘルドプリンタ1は、「画像領域300の外」と判定する。
[第二位置関係について]
ハンドヘルドプリンタ1bは、画像領域300の外にあるものが、画像領域300から離れようとしているハンドヘルドプリンタ1を例示している。この場合、ハンドヘルドプリンタ1bの位置は、画像領域300の境界から閾値(Lth)以上離れた位置が現在位置である。そして、ハンドヘルドプリンタ1bの現在位置は経時的に、画像領域300の境界からの距離が長くなるように変化する。
[第三位置関係について]
ハンドヘルドプリンタ1cは、画像領域300の外にあるものが画像領域300に接近する方向に走査されており、画像領域300内に入ろうとしているハンドヘルドプリンタ1を例示している。この場合、ハンドヘルドプリンタ1cの位置は、画像領域300の境界から閾値(Lth)以上離れた位置が現在位置である。そして、ハンドヘルドプリンタ1cの現在位置は経時的に、画像領域300の境界からの距離が短くなるように変化する。
[制御方法及び制御プログラムの第一実施形態]
以下、本発明に係る制御方法及び制御プログラムの実施形態について説明する。本実施形態に係る制御方法及び制御プログラムによれば、ハンドヘルドプリンタ1を用いた画像形成出力に際して、ハンドヘルドプリンタ1の現在位置と、画像領域300との位置関係をユーザ4に適宜報知することができる。
まず、図8を参照して、本実施形態に係るハンドヘルドプリンタ1を用いた画像形成出力動作の流れについて説明する。図8は、本実施形態に係るハンドヘルドプリンタ1の起動から画像形成の終了までの動作手順を示すシーケンス図である。
図8の処理において、CPU111が実行主体として記載されている処理は、CPU111がファームウェア等を実行することにより、利用可能となる機能によって実現される処理である。
ユーザ4がハンドヘルドプリンタ1の電源スイッチを押下する(S801)と、ハンドヘルドプリンタ1は電源141からの電源供給を開始する(S802)。電源供給を受けると、SoC110のCPU111は、ハンドヘルドプリンタ1を構成する各電子デバイス、例えば、ASIC/FPGA120などの各構成要素の初期化を実行する(S803)。
ハンドヘルドプリンタ1の各構成要素の初期化が完了すると、CPU111は、電源スイッチのバックライトとして搭載されているLEDを点灯させるなどして、ユーザ4に対してハンドヘルドプリンタ1が使用可能な状態となったことを報知する初期化完了報知を実行する(S804)。なお、OPU104として発音機構が実装されている場合、ユーザ4に対して音声によって初期化完了報知を行う構成であってもよい。
ユーザ4は、ハンドヘルドプリンタ1が使用可能な状態になったことを認識したのち、ハンドヘルドプリンタ1を使用して印刷する画像(画像形成出力対象の画像)を画像データ送信端末2に表示させるなどして選択する(S805)。
そして、画像データ送信端末2においてS805で選択された画像の印刷を実行する操作がユーザ4によって行われると、画像データ送信端末2は、印刷ジョブおよび画像領域情報を生成してハンドヘルドプリンタ1に送信する(S806)。
画像データ送信端末2には、画像データを印刷出力可能なプリント・アプリケーションがインストールされている。このプリント・アプリケーションは、ユーザ4によってS805で選択された画像の印刷を実行する操作が行われると、プリンタドライバを呼び出して印刷条件と画像データを所定の形式で記述して、ハンドヘルドプリンタ1に送信する。なお、プリンタドライバを介さずに、画像データをTIFFやJPEG等のままハンドヘルドプリンタ1に送信する構成であってもよい。
また、画像領域算出部202は、ユーザ4によって画像形成対象の画像として選択された画像データに基づいて、画像領域300に相当する情報を仮想的に生成する。そして、当該画像領域300の原点を、記録媒体3に画像を形成したときの左上端部に相当する位置に設定する。また、画像領域算出部202は、ハンドヘルドプリンタ1本体の幅などを考慮して、実際に画像が形成される領域(画像領域300)のまわりにマージンを持たせた状態で画像領域情報を生成してもよい。
ハンドヘルドプリンタ1に画像データの送信が開始されると、CPU111は、例えば、LEDスイッチを点滅させるなどして、画像データの受信中であることをユーザ4に報知する(S807)。
そして、画像データの受信が完了すると、CPU111は、点滅させていたLEDスイッチを点灯状態にさせるなどして、ユーザ4に対して画像データの受信が完了したことを報知する(S808)。CPU111は、受信した画像データをDMAC122に転送する。
なお、OPU104として、発音機構を備えている場合には、S807の画像データ受信通知やS808の画像データ受信完了報知を音声により行う構成であってもよい。
ユーザ4は、ハンドヘルドプリンタ1において画像データの受信が完了したことを認識すると、記録媒体3の上でハンドヘルドプリンタ1の初期位置を決定して、その位置にハンドヘルドプリンタ1を置く(S809)。
ユーザ4は、例えば、ハンドヘルドプリンタ1を記録媒体3上の任意の位置に置き、LEDスイッチを押下するなどの、「印刷開始トリガ」をハンドヘルドプリンタ1に与える操作をする(S810)。
CPU111は、LEDスイッチによるキー割込みを受け付け、ナビゲーションセンサI/F125を介してナビゲーションセンサ105にハンドヘルドプリンタ1の位置を検知させる(S811)。
S811の処理においてナビゲーションセンサ105により検知された記録媒体3の上でハンドヘルドプリンタ1の位置が、画像形成開始時のハンドヘルドプリンタ1の初期位置、すなわち、ハンドヘルドプリンタ1による画像形成の開始位置となる。ナビゲーションセンサ105によって検知された開始位置の情報は、ハンドヘルドプリンタ1の開始位置情報として、DRAM102等の記憶媒体に格納される(S812)。
なお、上述したように、ナビゲーションセンサ105からIJ記録ヘッド108の端部までの距離、IJ記録ヘッド108の端部からもっとも近い位置に配列されているノズルとIJ記録ヘッド108の端部との距離、IJ記録ヘッド108に配列されているノズル間の距離は、予めROM103等の記憶媒体に格納されている。
したがって、位置算出部112は、ハンドヘルドプリンタ1の位置情報に基づいて、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの位置を算出することができる。
S811で取得したナビゲーションセンサ105の検知結果に基づいて、位置算出部112にIJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの位置を算出させてもよい。
さらに、位置算出部112によって算出された結果を、画像形成出力開始時のIJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの位置の開始位置情報としてDRAM102等の記憶媒体に格納する構成としてもよい。
また、ナビゲーションセンサ105によって検知されたハンドヘルドプリンタ1の開始位置を、例えば、座標(0,0)としてDRAM102等に格納してもよい。
開始位置を格納すると、CPU111は、印刷実行処理を開始する(S813)。そして、ユーザ4の手動走査によって記録媒体3に画像を形成するための画像形成出力が完了すると、CPU111は、LEDスイッチを消灯するなどして、ユーザ4に対して画像データの印刷が完了したことを通知する(S814)。
[印刷実行処理の詳細]
次に、S813における印刷実行処理について、図9に示すフローチャートを参照して詳細に説明する。図9は、本実施形態に係るハンドヘルドプリンタ1の印刷実行処理の流れを示すフローチャートである。
S812の処理によって、ハンドヘルドプリンタ1(または/および、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズル)の開始位置情報が記憶媒体に格納されると、CPU111は、印字/センサタイミング生成部126に時間計測を開始させる(S901)。
予め設定されたナビゲーションセンサ105へのリードタイミングになると(S902/YES)、ナビゲーションセンサI/F125を介してCPU111は、ナビゲーションセンサ105からハンドヘルドプリンタ1の現在位置に係る情報を取得する(S903)。
CPU111は、取得したナビゲーションセンサ105からの情報に基づいて、位置算出部112にハンドヘルドプリンタ1の現在位置P1を算出させる(S904)。S904の処理において、位置算出部112は、前回算出したハンドヘルドプリンタ1の位置P(X,Y)と今回取得したハンドヘルドプリンタ1の移動量ΔP(ΔX,ΔY)とに基づいて、ハンドヘルドプリンタ1の現在位置P1(X1,Y1)を算出し、DRAM102に格納する。
続いて、CPU111は、算出されたハンドヘルドプリンタ1の現在位置P1(X1,Y1)の情報をASIC/FPGA120に転送する。なお、位置算出部112にハンドヘルドプリンタ1の位置情報に基づいて、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの位置を算出させた結果を、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの現在位置P1として、ASIC/FPGA120に転送する構成であってもよい。
DMAC122は、ハンドヘルドプリンタ1の現在位置P1(X1,Y1)の位置情報に基づいて、IJ記録ヘッド108に配列されているノズル周辺の位置に相当する画像データをDRAM102から取得し、イメージRAM121に一時的に記憶させる。
そして、回転処理部123は、ハンドヘルドプリンタ1の現在位置P1(X1,Y1)に基づいて、イメージRAM121からノズル周辺の画像データを取得し、取得したノズル周辺の画像データに対して回転処理を行う(S905)。
DMAC122は、DRAM102から取得したノズル周辺の画像データを、DRAM102から削除する。IJ記録ヘッド制御部127は、回転処理された画像データの座標とハンドヘルドプリンタ1の現在位置P1(X1,Y1)に基づいて定められるノズルの位置の座標とを比較する(S906)。
そして、予め設定されたインク吐出条件、すなわち、ノズル位置が、画像データに基づいて定められるインクを吐出すべき目標吐出位置に到達した、もしくは、ノズル位置と目標吐出位置とのずれが許容誤差内に収まると判断した場合(S907/YES)、IJ記録ヘッド制御部127は、S905の処理において、回転処理されたIJ記録ヘッド108のノズル周辺の画像データをIJ記録ヘッド駆動回路107に入力する。
IJ記録ヘッド駆動回路107は、入力された画像データに基づいてIJ記録ヘッド108から記録媒体3に対してインクを吐出させる(S908)。DRAM102に記憶されている画像形成出力対象の画像データの全てがDMAC122へ転送されるまで、または、ユーザ4によってLEDスイッチが操作されるなどして画像形成出力を終了する信号が受信されるまで(S909/NO)、S902からS908の処理ステップが繰り返し実行されて、記録媒体3に画像が形成される。
S908にてインクが吐出され、DRAM102に記憶されている画像形成出力対象の画像データの全てがDMAC122へ転送された、もしくは、ユーザ4によってLEDスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、CPU111は、画像形成出力が終了したと判定する(S909/YES)。
本実施形態に係るハンドヘルドプリンタ1は、図8および図9に説明したような処理に従って記録媒体3に対して画像形成出力を実行する。S813の処理の実行中に、画像領域300上をハンドヘルドプリンタ1が走査しているのかどうかをユーザ4が認識することができないために不要な走査を行わざるを得ない状況が生じてしまう。
これに対して、本実施形態では、ハンドヘルドプリンタ1の現在位置と、記録媒体3において画像データが形成される領域との位置関係がどのような状態であるかをユーザ4に通知する。
[制御方法及び制御プログラムの第二実施形態]
次に、ハンドヘルドプリンタ1における印刷処理の別の実施形態について説明する。以下説明する印刷処理は、画像形成領域外通知処理を含むものである。当該処理は、手動で走査されるハンドヘルドプリンタ1が、記録媒体3上の仮想領域である画像領域300の内側で走査されているか外側で走査されているかをユーザ4に報知する。また、内側で走査されているハンドヘルドプリンタ1が外側に移動しようとしていることを検知し、それをユーザ4に報知する。
図10は、本実施形態に係るハンドヘルドプリンタ1における画像領域外報知処理の一例を示すフローチャートである。本実施形態では、ハンドヘルドプリンタ1の現在位置と、記録媒体3において画像データが形成される領域との位置関係がどのような状態であるかをユーザ4に通知する
本実施形態において、画像領域外報知処理を実行するか否かは、ユーザ4がハンドヘルドプリンタ1もしくは画像データ送信端末2を操作することにより設定する構成であってもよい。
なお、図10に示すフローチャートでは、図7の第一の例、すなわち、画像領域300内から画像領域300外に離れようとしているハンドヘルドプリンタ1aを使用した画像形成に係る画像領域外報知処理の流れを説明する。
S812の処理によって、ハンドヘルドプリンタ1(または/および、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズル)の開始位置情報が記憶媒体に格納されると、CPU111において実行される画像領域外報知プログラムは、変数として用いる「Area_flagレジスタ」の値をリセットする。具体的には、「Area_flag=0」とする(S1001)。
Area_flagレジスタの値は、一度、ハンドヘルドプリンタ1の位置が画像領域300の内であると判定されると、「Area_flag=1」がセットされる。したがって、Area_flagレジスタは、ハンドヘルドプリンタ1が画像領域300に入った履歴を示す履歴情報記憶部として機能する。
なお、「Area_flag=0」の場合、CPU111は、画像領域外報知を行わない。したがって、「Area_flagレジスタ=0」とセットすることにより、例えば、ハンドヘルドプリンタ1の開始位置が画像領域外であった場合に画像領域外報知が行われることを防ぐことができる。
次に、CPU111は、印字/センサタイミング生成部126に時間計測を開始させる(S1002)。予め設定されたナビゲーションセンサ105へのリードタイミングになると(S1003/YES)、ナビゲーションセンサI/F125は、ナビゲーションセンサ105に、ハンドヘルドプリンタ1の移動量等を検知させる(S1004)。
CPU111は、ASIC/FPGA120からナビゲーションセンサ105の検知結果を取得し、位置算出部112にハンドヘルドプリンタ1の現在位置P1を算出させる(S1005)。なお、S1005の処理の具体的態様は、S904と同じであるため説明を省略する。
なお、位置算出部112にハンドヘルドプリンタ1の位置情報に基づいて、IJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの位置を算出させた結果をIJ記録ヘッド108およびIJ記録ヘッド108に配列されているそれぞれのノズルの現在位置P1として、ASIC/FPGA120に転送する構成であってもよい(S1006)。
CPU111は、ハンドヘルドプリンタ1の現在位置P1を算出させると、判定処理部113にハンドヘルドプリンタ1が画像領域300内を走査しているか否かを判定する処理を実行させる。
比較判定部1133は、位置情報取得部1131に位置算出部112が算出したハンドヘルドプリンタ1の現在位置P1の情報(および/または、ノズルの位置の情報)を取得させ、画像領域情報取得部1132に、画像領域情報を取得させる。そして、比較判定部1133は、ハンドヘルドプリンタ1の現在位置P1の情報および画像領域情報に基づいて、ハンドヘルドプリンタ1の現在位置P1から画像領域300の境界までの距離D1を算出する(S1007)。
次に、比較判定部1133は、距離D1が所定の閾値Lthより大きいか否かを判定する(S1008)。S1008の判定結果は、比較判定部1133から判定結果出力部1134に出力される。判定結果出力部1134は、比較判定部1133から入力されたS1008の判定結果をCPU111に送信する。
距離D1が閾値Lth以下である場合(S1008/NO)、CPU111は、すでに画像領域外報知を行っているか否かを判定し(S1009)、画像領域外報知をおこなっている場合には(S1009/YES)、画像領域外報知を取り消す(S1010)。CPU111は、画像領域外報知をおこなっていない場合には(S1009/NO)、そのまま次のステップに進む。
続いて、CPU111は、Area_flagレジスタの値を「Area_flag=1」とする(S1011)。S1011のステップにより、ハンドヘルドプリンタ1と画像領域300との距離D1が所定の閾値Lth以下であることが示される。
次に、CPU111は、S905の処理と同様に、回転処理部123によって回転処理が実行されたノズル周辺の画像データに基づいて、IJ記録ヘッド制御部127によって、予め設定されたインク吐出条件を満たすか否かの判断処理を実行させる(S1012)、IJ記録ヘッド制御部127が、入力されたノズル周辺の画像データは予め設定されたインク吐出条件を満たすと判断した場合(S1012/YES)、IJ記録ヘッド駆動回路107に、入力された画像データに基づいてIJ記録ヘッド108から記録媒体3に対してインクを吐出させ(S1013)、S1014のステップに進む。なお、S1012のインク吐出条件は、S907と同じインク吐出条件であるため、説明を省略する。
IJ記録ヘッド制御部127が入力されたノズル周辺の画像データは予め設定されたインク吐出条件を満たさないと判断した場合(S1012/NO)、処理をS1003に戻す。
一方で、S1008の処理において、距離D1が閾値Lth以上である場合(S1008/YES)、CPU111は、Area_flagレジスタの値が「Area_flag=1」であるか否かを判定する(S1015)。
Area_flagレジスタの値が「Area_flag=1」である場合(S1015/YES)、CPU111は、印刷ジョブに記述されている情報に基づいて、画像形成出力中の画像データが、マルチパスモードによって出力される画像データであるか否かを判定する(S1016)。
なお、ハンドヘルドプリンタ1における画像形成の出力態様としては、「シングルモード」、「Nパスモード」、「マルチパスモード」がある。
まず、「シングルモード」におけるハンドヘルドプリンタ1の走査の様子を図15の模式図を用いて説明する。シングルモードは、ハンドヘルドプリンタ1の走査を1回1方向で記録媒体3上に画像形成するモードである。図15に例示するように、記録媒体3の端から直線的に走査し、反対側の端に到達すると画像形成が終了する。次の画像形成を実行するときには、先の画像形成時と同じ側から走査を始めて、同じ方向に直線的に走査する。シングルパスモードは、バーコードなどの直線的な画像を形成するときに適するモードである。
次に、「Nパスモード」におけるハンドヘルドプリンタ1の走査の様子を図16の模式図を用いて説明する。Nパスモードは、ハンドヘルドプリンタ1の走査を1回複数方向で記録媒体3上に画像形成するモードである。図16に例示するように、記録媒体3の端から直線的に走査し、反対側の端に到達したら改行する(走査方向と交差する方向に位置をずらす)。その後、先とは反対方向に直線的に走査をする。このように、ハンドヘルドプリンタ1の走査と改行とを繰り返して行い、複数行に渡るキャラクタを記録媒体3上に形成するモードがNパスモードである。
次に、「マルチパスモード」におけるハンドヘルドプリンタ1の走査の様子を図17の模式図を用いて説明する。マルチパスモードは、ハンドヘルドプリンタ1の走査を、往復で自由に繰り返すことで、記録媒体3上に画像を形成するモードである。図17に例示するように、記録媒体3の端から画像形成処理(印刷処理)を開始したとして、画像領域300の内側の塗りつぶすように、往復させるようにして走査をする。これを繰り返すことにより、部分的な画像を繋ぎ合わせて一の画像を記録媒体3上に形成するモードがマルチパスモードである。
図10に戻る。したがって、画像領域外になったことを通知するのは、ハンドヘルドプリンタ1における画像形成の出力態様が「マルチパスモード」のときだけでよい(S1016/YES)。ハンドヘルドプリンタ1における画像形成の出力態様が「マルチパスモード」である場合、CPU111は、画像領域外報知を実行する(S1017)。画像領域外報知の態様については、上記した通りである。
S1016の処理において、画像形成出力中の画像データがマルチパスモードによって出力される画像データではない場合(S1016/NO)、CPU111は、印刷ジョブに記述されている情報に基づいて、画像形成出力中の画像データが、「Nパスモード」で出力されるものであるか否かを判定する(S1018)。
画像形成出力中の画像データが、「Nパスモード」で出力されるものである場合(S1018/YES)、ハンドヘルドプリンタ1が画像形成領域外になると、次の行の印刷を行う。したがって、CPU111は、改行報知を実行する(S1019)。
なお、改行報知は、画像領域外報知と同様に、例えば、LEDスイッチや電源スイッチなどのOPU104を点滅させる制御、ブザーや音声、さらに、文字情報の表示や音声ガイダンスを画像データ送信端末2に行わせる構成であってよい。
一方で、画像形成出力中の画像データが、「Nパスモード」で出力されるものではない場合(S1018/NO)、その画像データは、「ワンパスモード」で出力されるものである。したがって、CPU111は、ハンドヘルドプリンタ1が画像形成領域外になると、印刷終了報知を実行する(S1020)。
なお、印刷終了報知についても、改行報知と同様に、例えば、LEDスイッチや電源スイッチなどのOPU104を点滅させる制御、ブザーや音声、さらに、文字情報の表示や音声ガイダンスを画像データ送信端末2に行わせる構成であってよい。
そして、CPU111は、DRAM102に記憶されている画像形成出力対象の画像データの全てがDMAC122へ転送された、もしくは、ユーザ4によってLEDスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し(S1014/YES)、本処理を終了する。
[閾値の実施形態]
ここで、本実施形態に係るハンドヘルドプリンタ1の画像領域外報知処理において用いられる閾値について詳細に説明する。図11に示すように、本実施形態では、画像領域300の周囲に複数の閾値を設定してもよい。例えば、第一マージンを設けるために設定される第一閾値Lth1と、第二マージンを設けるために設定される第二閾値Lth2のように、複数設定してもよい。なお、各閾値は、画像領域300の境界の周囲の余白領域を設定することで、画像領域300から外側への乖離量を判定するための値である。本実施形態では、第二閾値Lth2よりも第一閾値Lth1の方が大きい値となる。
本実施形態において、記録媒体3の内側に仮想的に形成される画像領域300の周囲には、第一閾値Lth1と第二閾値Lth2によって仮想的に、第一領域と第二領域が設定される。図11において、第一領域を「第一判定領域301」とし、第二領域を「第二判定領域302」として例示している。
図12は、第一閾値Lth1及び第二閾値Lth2について、ハンドヘルドプリンタ1の移動と、「Area_flagレジスタ」、「Area_inレジスタ」の値の変化との関係を説明するための図である。
Area_inレジスタの値は、ハンドヘルドプリンタ1の位置が、一度、第二判定領域302内であると判定されると、「Area_in=1」がセットされる。すなわち、「Area_in=1」は、ハンドヘルドプリンタ1が画像を形成するための位置にあることを示している。
図12に示すように、第一判定領域301から画像領域300にハンドヘルドプリンタ1が近づくように移動すると、ハンドヘルドプリンタ1の位置が第二判定領域302に入ったタイミングで「Area_flag=1」、「Area_in=1」となる。
ハンドヘルドプリンタ1の位置が、一度、第二判定領域302内に入った後、第二判定領域302の外であって第一判定領域301に内の領域に移動したと判定された場合、ハンドヘルドプリンタ1の位置が第一判定領域301の外になるまで、「Area_in=0」は維持される。つまり、ハンドヘルドプリンタ1が、一度、第二判定領域302内に入った後は、第一判定領域301の外に移動するまで、「Area_inレジスタ」の値は0のままである。
このように第一判定領域301の外の領域から画像領域300へ近づくようにハンドヘルドプリンタ1の位置を移動させる際には、画像領域300からの距離として第二閾値Lth2を用いる。また、第二判定領域302の内から画像領域300の外へハンドヘルドプリンタ1の位置が変化する場合、すなわち、ハンドヘルドプリンタ1が画像領域300から遠ざかるように移動している場合には、画像領域300からの距離として第一閾値Lth1を用いて画像領域外報知処理を実行する。
このようにして、ハンドヘルドプリンタ1が画像領域300に近づくか、もしくは、遠ざかるかに応じてヒステリシス効果を持たせた閾値を設定する。このように設定された閾値を用いて画像領域外報知処理を行うことにより、画像領域300の近傍でのハンドヘルドプリンタ1の位置の細かい変化に対しても、精度よく画像領域外報知処理を行うことができる。
[画像領域外報知処理の第二実施形態]
図13は、本実施形態に係るヒステリシス効果を持たせた閾値を用いて画像領域外報知処理を行う処理の流れを示すフローチャートである。また、図13に示す画像領域外報知処理において、CPU111は、「Area_flagレジスタ」および「Area_inレジスタ」の値を、それぞれ0もしくは1にセットする。
上述したように、「Area_flag=0」の場合、CPU111は、画像領域外報知を行わない。CPU111は、図13のS1001の処理において、Area_flagレジスタ、Area_inレジスタの値をリセットし、それぞれ「Area_flag=0」、「Area_in=0」をセットする。
なお、図13に示すフローチャートにおいて、図10に示すフローチャートと同じ処理を行う処理ブロックについては、図10と同じ符号を付し、重複する説明を省略する。
S1006の処理後、図13に示すように、比較判定部1133は、位置情報取得部1131に位置算出部112が算出したハンドヘルドプリンタ1の現在位置P1の情報(および/または、ノズルの位置の情報)を取得させ、画像領域情報取得部1132に、画像領域情報を取得させる。
そして、比較判定部1133は、ハンドヘルドプリンタ1の現在位置P1の情報および画像領域情報に基づいて、ハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離D2を算出する(S1301)。
次に、比較判定部1133は、所定の閾値Lthの値として、「Lth=Lth2」をセットする(S1302)。そして、CPU111は、「Area_in=1」であるか否かを判定し(S1303)、判定結果を判定処理部113に出力する。
「Area_in=1」である場合(S1303/YES)、ハンドヘルドプリンタ1は、図11で示す第二判定領域302の内側の領域に位置しているため、比較判定部1133は、所定の閾値Lthの値として、「Lth=Lth1」をセットする(S1304)。
一方で、「Area_in=0」である場合(S1303/NO)、ハンドヘルドプリンタ1は、図11で示す第二判定領域302の外側の領域に位置しているため、比較判定部1133は、そのまま次の処理に進む。
次に、比較判定部1133は、S1301で算出したハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離D2が、距離D2>Lthであるか否かを判定する(S1305)。
距離D2>Lthではない場合(S1305/NO)、CPU111は、画像領域外報知を行っているか否かを判定し(S1306)、画像領域外報知を行っている場合には(S1306/YES)、画像領域外報知を取り消す(S1307)。CPU111は、画像領域外報知をおこなっていない場合には(S1306/NO)、そのまま次のステップに進む。
次に、CPU111は、CPU111のArea_flagレジスタの値を「Area_flag=1」とセットし(S1308)、Area_inレジスタの値を「Area_in=1」にセットする(S1309)。
なお、ハンドヘルドプリンタ1の位置が、第二判定領域302の内部に一度入った後であって、かつ、第一判定領域301の外部に出ていない場合に、Area_inレジスタの値が「Area_in=1」となる(図12参照)。
次に、CPU111は、S905の処理と同様に回転処理部123にノズル周辺の画像データの回転処理を実行させる。回転処理部123は、回転処理したノズル周辺の画像データを、IJ記録ヘッド制御部127に入力する。
IJ記録ヘッド制御部127は、予め設定されたインク吐出条件を満たすと判断した場合(S1310)、IJ記録ヘッド駆動回路107に、入力された画像データに基づいてIJ記録ヘッド108から記録媒体3に対してインクを吐出させ(S1311)、S1312のステップに進む。なお、S1310のインク吐出条件は、S907、S1012と同じインク吐出条件であるため、説明を省略する。
なお、S1305の処理において、距離D2>Lthである場合(S1305/YES)、ハンドヘルドプリンタ1の現在位置P1は、記録媒体3において、画像形成出力対象の画像が形成されない領域にある。したがって、CPU111は、「Area_in=0」をセットする(S1313)。
次に、CPU111は、「Area_flag=1」であるか否かを判定する(S1314)。このとき、「Area_flag=1」となるのは、S1308の処理が実行された場合に限られるため、「Area_flag=1」であれば、ハンドヘルドプリンタ1は、必ず一度は、第二判定領域302の内側の領域に進入していることとなる。
したがって、「Area_in=0」かつ「Area_flag=1」となるのは(S1314/YES)、ハンドヘルドプリンタ1が、第二判定領域302の内側の領域に進入した後で、第一判定領域301の外側の領域に移動した場合である。S1314でYESであった場合、CPU111は、画像領域外報知を実行し(S1315)、S1312の処理に進む。
そして、CPU111は、DRAM102に記憶されている画像形成出力対象の画像データの全てがDMAC122へ転送された、もしくは、ユーザ4によってLEDスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し(S1312/YES)、本処理を終了する。
次に、ハンドヘルドプリンタ1の現在位置P1が画像領域300の外側の領域にある場合であって、ハンドヘルドプリンタ1が画像領域300からさらに離れるように移動している場合の画像領域外報知処理について説明する。
図14は、本実施形態に係る画像領域300からさらに離れるように移動するハンドヘルドプリンタ1に対して画像領域外報知処理を行う処理の流れを示すフローチャートである。
上述したように、「Area_flag=0」の場合、CPU111は、画像領域外報知を行わない構成である。CPU111は、図14のS1001の処理において、Area_flagレジスタ、Area_inレジスタの値をリセットし、それぞれ「Area_flag=0」、「Area_in=0」をセットする。
なお、図14に示すフローチャートにおいて、図10に示すフローチャートと同じ処理を行う処理ブロックについては、図10と同じ符号を付し、重複する説明を省略する。また、第一閾値Lth1、第二閾値Lth2は、図13のフローチャートと同様に設定される閾値である。
S1006の処理後、図14に示すように、比較判定部1133は、位置情報取得部1131に位置算出部112が算出したハンドヘルドプリンタ1の現在位置P1の情報(および/または、ノズルの位置の情報)を取得させ、画像領域情報取得部1132に、画像領域情報を取得させる。
そして、比較判定部1133は、ハンドヘルドプリンタ1の現在位置P1の情報および画像領域情報に基づいて、ハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離D3を算出する(S1401)。
そして、比較判定部1133は、前回のハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離の算出値(前回距離)をLoldにセットする(S1402)。なお、画像形成出力開始後、ハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離を初めて算出する際には、Lold=Lth2と設定してもよい。
次に、比較判定部1133は、所定の閾値Lthの値として、「Lth=Lth2」をセットする(S1403)。そして、CPU111は、「Area_in=1」であるか否かを判定し(S1404)、判定結果を判定処理部113に出力する。
S1401の処理を行うまでに、ハンドヘルドプリンタ1の現在位置P1が第二判定領域302に一度でも入っている場合には、「Area_inレジスタ」の値は1であり、ハンドヘルドプリンタ1の現在位置P1が第二判定領域302に一度も入っていない場合には、「Area_inレジスタ」の値は0である。
「Area_in=1」である場合(S1404/YES)、ハンドヘルドプリンタ1は、図11で示す第二判定領域302の内側の領域に位置しているため、比較判定部1133は、所定の閾値Lthの値として、「Lth=Lth1」をセットする(S1405)。
一方で、「Area_in=0」である場合(S1404/NO)、ハンドヘルドプリンタ1は、図11で示す第二判定領域302の外側の領域に位置しているため、比較判定部1133は、そのまま次の処理に進む。
次に、比較判定部1133は、S1401で算出したハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離D3が、距離D3>Lthであるか否かを判定する(S1406)。
距離D3>Lthではない場合(S1406/NO)、CPU111は、CPU111のArea_flagレジスタの値を「Area_flag=1」とセットし、Area_inレジスタの値を「Area_in=1」にセットする(S1407)。
なお、ハンドヘルドプリンタ1の位置が、第二判定領域302の内部に一度入った後であって、かつ、第一判定領域301の外部に出ていない場合に、Area_inレジスタの値が「Area_in=1」となる(図12参照)。
次に、CPU111は、画像領域外報知を行っているか否かを判定し(S1408)、画像領域外報知を行っている場合には(S1408/YES)、画像領域外報知を取り消す(S1409)。CPU111は、画像領域外報知をおこなっていない場合には(S1408/NO)、そのまま次のステップに進む。
次に、CPU111は、S905の処理と同様に回転処理部123にノズル周辺の画像データの回転処理を実行させる。回転処理部123は、回転処理したノズル周辺の画像データを、IJ記録ヘッド制御部127に入力する。
IJ記録ヘッド制御部127は、予め設定されたインク吐出条件を満たすと判断した場合(S1410)、IJ記録ヘッド駆動回路107に、入力された画像データに基づいてIJ記録ヘッド108から記録媒体3に対してインクを吐出させ(S1411)、S1412のステップに進む。なお、S1410のインク吐出条件は、S907、S1012、S1310と同じインク吐出条件であるため、説明を省略する。
なお、S1406の処理において、距離D3>Lthである場合(S1406/YES)、ハンドヘルドプリンタ1の現在位置P1は、記録媒体3において、画像形成出力対象の画像が形成されない領域にある。したがって、CPU111は、「Area_in=0」をセットする(S1413)。
次に、CPU111は、「Area_flag=1」であるか否かを判定する(S1414)。このとき、「Area_flag=1」となるのは、S1407の処理が実行された場合に限られるため、「Area_flag=1」であれば、ハンドヘルドプリンタ1は、必ず一度は、第二判定領域302の内側の領域に進入していることとなる。
したがって、「Area_in=0」かつ「Area_flag=1」となるのは(S1414/YES)、ハンドヘルドプリンタ1が、第二判定領域302の内側の領域に進入した後で、第一判定領域301の外側の領域に移動した場合である。
また、「Area_in=0」かつ「Area_flag=0」となるのは(S1414/NO)、ハンドヘルドプリンタ1が、第二判定領域302の内側の領域に進入せずに、かつ、第一判定領域301の内側の領域にも侵入したことがない場合、すなわち、第一判定領域301の外側においてのみ移動している場合である。このとき、CPU111は、S1412の処理に進む。
S1414でYESであった場合、比較判定部1133は、距離D3>Loldであるか否かを判定する(S1415)。ハンドヘルドプリンタ1の現在位置P1から画像領域300までの距離D3が前回距離より大きくなっている場合(S1415/YES)、ハンドヘルドプリンタ1は、前回の距離算出時よりも画像領域300から離れるように移動している状態である。
したがって、CPU111は、画像領域外報知を実行し(S1416)、S1412の処理に進む。そして、CPU111は、DRAM102に記憶されている画像形成出力対象の画像データの全てがDMAC122へ転送された、もしくは、ユーザ4によってLEDスイッチが操作されるなどして画像形成出力を終了する信号を受信済みである場合、画像形成出力が終了したと判定し(S1412/YES)、本処理を終了する。
なお、ハンドヘルドプリンタ1の判定処理部113に相当する構成を画像データ送信端末2に実装し、画像領域外報知処理を画像データ送信端末2で行う構成としてもよい。このような構成の場合、CPU111は、位置算出部112によって算出されたハンドヘルドプリンタ1の現在位置P1(および/または、IJ記録ヘッド108の現在位置)を画像データ送信端末2に送信する。したがって、CPU111は、位置情報送信部として機能する。
以上説明したように、本実施形態では、画像データに基づいて画像領域300を算出することにより、ハンドヘルドプリンタ1の走査態様ごとに好適な画像領域を定めることができる。このようにすることで、画像領域300に基づいて画像領域外報知処理を実行することできるため、ハンドヘルドプリンタ1の不要な走査を減らして画像形成出力を行うことができる。
本発明は、説明した実施形態に限定されるものではなく、その他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用や効果を奏する限り、本発明の範囲に含まれるものである。