図1は、本発明の印刷システムの一実施形態を示す図である。図1に示す印刷システムには、ハンドヘルドプリンタ10と、画像提供装置11と、印刷媒体12が含まれる。
ハンドヘルドプリンタ10は、ユーザが印刷媒体12上を自由に移動させて、印刷媒体12上に画像を印字して形成可能な印刷装置である。ハンドヘルドプリンタ10は、ユーザが持ち運び可能な大きさや重量で構成することが好適であり、ノートなどの紙や壁面、ボード、衣服等の種々の印刷媒体上に画像を形成することができる。
ハンドヘルドプリンタ10は、ハンドヘルドプリンタ10に内蔵されたノズルから顔料インクや染料インク等の液滴を吐出するインクジェット方式のプリンタである。なお、ハンドヘルドプリンタ10の印字方式は、これに限られるものではなく、細いピンをインクリボンに叩き付けて印刷するドットインパクト方式等の他の印字方式を採用することができる。また、ハンドヘルドプリンタ10は、モノクロ方式またはカラー方式も採用することができる。
ハンドヘルドプリンタ10は、画像提供装置である画像提供装置11から印刷対象の画像データを受信し、当該画像データに基づいて液滴を印刷媒体12上に吐出して画像を形成する。画像データは、文字のみからなるテキストデータであってもよく、または図、絵、写真等を含む文書データ、表データ等でもよい。ハンドヘルドプリンタ10は、画像データと共に、モノクロ印刷やカラー印刷、解像度の高低等の印刷に関する種々の印刷設定情報を受信し、印刷設定情報に基づいて液滴を吐出する。
ハンドヘルドプリンタ10は、赤外線通信、Bluetooth(登録商標)、Wi−Fi(登録商標)等の無線通信により、画像提供装置11から画像データを受信する。ハンドヘルドプリンタ10は、画像提供装置11から画像データを直接受信してもよいし、アクセスポイント等を介して受信してもよい。なお、ハンドヘルドプリンタ10は、無線通信によって画像データを受信するだけでなく、有線通信によって画像データを受信してもよい。
画像提供装置11は、印刷対象の画像データをハンドヘルドプリンタ10に提供する装置であり、例えば、スマートフォン、タブレット端末、ノートPC等の電子機器を採用することができる。
本実施形態では、画像提供装置11は、印刷対象の画像データを無線通信によってハンドヘルドプリンタ10に送信する。他の実施形態では、画像提供装置11は、サーバ等の他の画像提供装置が提供する画像データをハンドヘルドプリンタ10に送信してもよい。
画像提供装置11は、印刷対象の画像の表示や編集を行うアプリケーションやOS等のプログラムを実行するCPUと、アプリケーションやOS等のプログラムを記憶するROMと、これらのプログラムの実行空間を提供するRAMと、印刷対象の画像データを表示する表示装置と、ユーザが画像データの印刷を指示可能な入力装置とを備える。なお、表示装置および入力装置は、個別の装置として構成されたものに限らず、これらを一体的に構成したタッチパネルとしてもよい。
図2は、ハンドヘルドプリンタ10のハードウェア構成を示す図である。以下、図2を参照してハンドヘルドプリンタ10のハードウェア構成について説明する。
ハンドヘルドプリンタ10は、電源20と、電源回路21と、画像データ通信I/F22と、メモリ23と、ナビゲーションセンサ24と、制御部25と、操作ユニット(OPU)26と、記録ヘッドユニット27と、記録ヘッド駆動回路28とを備える。
電源20は、ハンドヘルドプリンタ10が使用する電力を供給する電池等の電源である。電源回路21は、ハンドヘルドプリンタ10の各ユニットへの電力供給を制御する回路である。
画像データ通信I/F22は、画像提供装置11が送信したデータを受信するデータ通信I/Fである。画像データ通信I/F22は、無線LANやBluetooth(登録商標)、NFC等の無線通信によって送信されたデータを受信する。
メモリ23は、ROMやDRAMで構成される記憶装置である。ROMには、ハンドヘルドプリンタ10のハードウェア制御を行うプログラム、記録ヘッドを駆動させる駆動波形データおよび初期設定情報等のデータが格納される。DRAMは、プログラムの実行空間を提供し、画像データや駆動波形でデータ等の種々のデータが一時的に格納される。
ナビゲーションセンサ24は、ナビゲーションセンサ24の移動量を光学的に算出する装置である。ナビゲーションセンサ24は、印刷媒体等の被照射体に光を照射し、その反射光を撮影してイメージデータを生成し、ハンドヘルドプリンタ10の移動前のイメージデータと移動後のイメージデータの差分に基づいてナビゲーションセンサ24の移動量を算出する。
制御部25は、ハンドヘルドプリンタ10の全体制御を行う手段である。なお、ハンドヘルドプリンタ10のハードウェア構成については、図3を参照して詳述する。
OPU26は、ユーザからの印字動作の指示を受け付けるスイッチや操作ボタン等の入力手段やハンドヘルドプリンタ10の状態を通知する通知手段を備える装置である。通知手段は、発光ダイオード(LED)や液晶ディスプレイ(LCD)を採用することができる。
記録ヘッドユニット27は、インク等の液滴を吐出する吐出手段である複数のノズルを含む記録ヘッドを備える装置である。記録ヘッド駆動回路28は、記録ヘッドユニット27が備える記録ヘッドを制御する手段である。
図3は、制御部25のハードウェア構成を示す図である。以下、図3を参照して、制御部25のハードウェア構成について説明する。
制御部25は、SoC(System on chip)300と、ASIC(Application Specific Integrated Circuit)310とを備える。SoC300は、CPU301と、メモリコントローラ302と、位置算出回路303とを備える。これらの装置はバス304に接続され、バス304を介してデータ通信を行う。
CPU301は、ハンドヘルドプリンタ10の全体制御を行う手段である。メモリコントローラ302は、メモリ23を制御する手段である。
位置算出回路303は、ナビゲーションセンサ24が提供するナビゲーションセンサ24の移動量を使用して、ナビゲーションセンサ24の位置座標を算出する手段である。
ASIC310は、ナビゲーションセンサI/F311と、タイミング生成回路312と、記録ヘッド制御回路313と、イメージRAM314、DMAC(Direct Memory Access Controller)315と、回転器316と、割り込み回路317とを含む。これらの装置はバス318に接続され、バス318を介してデータ通信を行う。バス318はバス304とも接続され、SoC300およびASIC310は、これらのバスを介してデータ通信を行う。
タイミング生成回路312は、ナビゲーションセンサI/F311がナビゲーションセンサ24の出力情報を読み取るタイミングと、記録ヘッドが液滴を吐出するタイミングを生成し、これらのタイミングをナビゲーションセンサI/F311および記録ヘッド制御回路313に通知する手段である。
ナビゲーションセンサI/F311は、ナビゲーションセンサ24とデータ通信を行う手段である。ナビゲーションセンサI/F311は、タイミング生成回路312が指定するタイミングでナビゲーションセンサ24から出力情報であるナビゲーションセンサ24の移動量を受信し、ナビゲーションセンサI/F311の内部メモリである内部レジスタに格納する。
DMAC315は、位置算出回路303が算出したノズルの位置情報を基に、各ノズルが液滴を吐出して形成すべき画像データを、メモリコントローラ302を介してメモリ23から読み出し、イメージRAM314に保存する。
イメージRAM314は、DMAC315が読み出した画像データを一時的に格納する記憶装置である。
回転器316は、ハンドヘルドプリンタ10の回転角に応じて、印刷対象の画像データを回転させる手段である。回転器316は、イメージRAM314から画像データを取得し、ハンドヘルドプリンタ10の回転角に応じて画像データを回転させ、当該画像データが吐出に必要な所定の条件(以下、「吐出条件」とする。)を満たす場合に、当該画像データを記録ヘッド制御回路313に送信する。
記録ヘッド制御回路313は、記録ヘッド駆動回路28を制御して記録ヘッドの吐出動作を制御する手段である。記録ヘッド制御回路313は、タイミング生成回路312が指定するタイミングで、記録ヘッドの吐出動作を制御する制御信号および印刷対象の画像データを記録ヘッド駆動回路28に送信する。
割り込み回路317は、SoC300に対して割り込み信号を送信する手段である。割り込み回路317は、ナビゲーションセンサI/F311がナビゲーションセンサ24との通信を終了した際、その旨をSoC300に通知する割り込み信号をSoC300に送信する。また、割り込み回路317は、エラー等のステータス情報を通知する割り込み信号をSoC300に送信する。
本実施形態では、ASIC310がナビゲーションセンサ24および記録ヘッド駆動回路28を制御するが、他の実施形態では、ASIC310の代わりに、ユーザが製造後に構成を設定できるFPGA(Field Programmable gate alley)を用いてもよい。
図4は、CPU301の機能構成を示す図である。以下、図4を参照して、CPU301に実装される機能構成の一実施形態について説明する。
CPU301は、イベント判定部40と、OPU制御部41と、角度算出部42と、受信完了判定部43と、印刷指示判定部44と、初期位置設定部45と、印刷完了判定部46と、移動量補正部47と、ノズル位置算出部48とを含む。
イベント判定部40は、ユーザの操作によって発行されるイベントの種類を判断する手段である。OPU制御部41は、OPU26を制御する手段である。
角度算出部42は、ナビゲーションセンサ24の取付角度のずれ(以下、「ずれ角」とする。)を算出する手段である。ずれ角とは、図11に示すように、ハンドヘルドプリンタ10の記録ヘッドの短手方向をX軸とし、長手方向をY軸とするX−Y平面のX軸と、実際にハンドヘルドプリンタ10に取り付けられているナビゲーションセンサ24によって規定されるX’−Y’平面のX’軸とが成す角度である。ずれ角が0の場合、すなわち、ナビゲーションセンサ24の取付角度が正しい場合は、X−Y平面とX’−Y’平面とが一致する。
角度算出部42は、時間判定部420と、ずれ角算出部421と、終了判定部422とを有する。時間判定部420は、タイミング生成回路312を使用して、所定の設定時間が経過したか否か判断する手段である。ずれ角算出部421は、ナビゲーションセンサ24から取得した移動量を使用して、ナビゲーションセンサ24のずれ角を算出する手段である。
終了判定部422は、テストモードが終了したか否か判断する手段である。終了判定部422は、ユーザが再度テストモードスイッチを押下することによって発行されるイベントを受信した場合に、テストモードが終了したと判断することができる。また、終了判定部422は、ハンドヘルドプリンタ10の移動量の合計が所定値以上になった場合に、テストモードが終了したと判断してもよい。さらに、終了判定部422は、ハンドヘルドプリンタ10が持ち上げられたことを検出し、テストモードが終了したと判断してもよい。
受信完了判定部43は、画像提供装置11からの画像データの受信が完了したか否か判断する手段である。印刷指示判定部44は、印刷指示を受け付けたか否か判断する手段である。初期位置設定部45は、ハンドヘルドプリンタ10の初期位置を設定する手段である。
印刷完了判定部46は、印刷が完了したか否か判断する手段である。印刷完了判定部46は、画像提供装置11から受信した画像データを総て印刷した場合や、ユーザが印刷終了を指示するスイッチを押下することによって発行されるイベントを受信した場合に、印刷が完了したと判断する。
移動量補正部47は、時間判定部470と、移動量取得部471と、補正要否判断部472と、移動量補正部473とを有する。時間判定部470は、タイミング生成回路312を使用して、所定の設定時間が経過したか否か判断する手段である。移動量取得部471は、ナビゲーションセンサ24から移動量を取得する手段である。
補正要否判断部472は、ナビゲーションセンサ24のずれ角を使用して、ナビゲーションセンサ24から取得した移動量の補正が必要か否か判断する手段である。移動量補正部473は、ずれ角が0のときは、補正が不要と判断し、それ以外のときは補正が必要と判断する。
移動量補正部473は、ナビゲーションセンサ24のずれ角を使用して、ナビゲーションセンサ24から取得したナビゲーションセンサ24の移動量を補正する手段である。
ノズル位置算出部48は、ナビゲーションセンサ24の位置座標に基づいて、記録ヘッドが備える全てのノズルの現在の位置座標を算出する手段である。ノズル位置算出部48は、位置算出回路303が算出するナビゲーションセンサ24の位置座標に基づいて全てのノズルの位置座標を算出する。
図5は、ナビゲーションセンサ24のハードウェア構成を示す図である。以下、図5を参照して、ナビゲーションセンサ24のハードウェア構成について説明する。
ナビゲーションセンサ24は、ホストI/F50と、イメージプロセッサ51と、LEDドライブ52と、発光ダイオード(LED)53と、レンズ54,55と、イメージアレイ56とを備える。
LEDドライブ52は、LED53を制御して発光させる手段である。LED53は、LEDドライブ52の制御下で光を発光する半導体素子である。レンズ54は、LED53の光を集光して印刷媒体12に照射する手段である。レンズ55は、印刷媒体12の表面で反射した光を集光してイメージアレイ56に照射する手段である。
イメージアレイ56は、印刷媒体12で反射したLED53の光を受光してイメージデータを生成する手段である。イメージアレイ56は、生成したイメージデータをイメージプロセッサ51に出力する。
イメージプロセッサ51は、イメージアレイ56が生成したイメージデータを処理する手段である。イメージプロセッサ51は、イメージデータからナビゲーションセンサ24の移動量を算出する。イメージプロセッサ51は、ナビゲーションセンサ24の移動量として、ナビゲーションセンサ24によって規定されるX−Y平面におけるX軸方向の移動量ΔX’と、Y軸方向の移動量ΔY’とを算出し、これらの移動量をホストI/F50を介して制御部25に送信する。
表面が粗い紙等の印刷媒体に印刷する実施形態では、光源としてLEDを採用することが好適である。印刷媒体の表面が粗い場合、LED光によって印刷媒体の表面の凹凸に応じた陰影が形成されるため、その陰影を特徴部分とすることができ、ナビゲーションセンサ24の移動量を正確に算出することができるからである。
表面が滑らかな印刷媒体や透明な印刷媒体に印刷する実施形態では、光源としてレーザ光を発生させる半導体レーザ(LD)を採用することが好適である。LDによって、例えば、縞模様等を印刷媒体12上に形成し、その模様を特徴部分とすることができるからである。
図6は、ナビゲーションセンサ24の移動量の算出方法を示す概念図である。以下、図6を参照して、ナビゲーションセンサ24の移動量の算出方法について概説する。
ナビゲーションセンサ24は、図6(a)に示すように、LED53からの光を、レンズ54を介して印刷媒体12の表面に斜めに照射する。印刷媒体12の表面には、図6(a)に示すように様々な形状の微細な凹凸を有しているため、LED53の照射光によって様々な形状の陰影が表面上に形成される。
イメージアレイ56は、予め決められたタイミング毎に、レンズ55を介して印刷媒体12の反射光を受光し、イメージデータを生成する。イメージプロセッサ51は、イメージデータを既定の分解能単位で複数の矩形領域に分割し、前回のタイミングで得られたイメージデータと、今回のタイミングで得られたイメージデータとを比較し、これらのイメージデータを抽出し、ナビゲーションセンサ24の移動量を算出する。
例えば、図6(b)に示すようなイメージデータが、タイミングSamp1、Samp2、Samp3の順に得られたものとする。図6(b)に示すイメージデータでは、灰色で表された印影部分、すなわち、特徴部分が右から左へ1分解能ずつ移動する様子が表されている。
ここで、Samp1を基準タイミングとすると、Samp2では、特徴部分がX軸方向に1分解能分移動しており、移動量(ΔX’,ΔY’)は(1,0)となる。また、Samp2を基準タイミングとすると、Samp3では、特徴部分がX軸方向に1分解能分移動しており、このときの移動量(ΔX’,ΔY’)も(1,0)となる。なお、移動量の単位は、デバイスに依存するが、例えば1200dpi程度の分解能を有することが好適である。
図7は、ハンドヘルドプリンタがイベントを受信した場合に実行する処理の一実施形態を示すフローチャートである。以下、図7を参照して、ハンドヘルドプリンタ10が、ユーザ操作に対応するイベントを受信した場合に実行する処理について説明する。
図7に示す処理は、ステップS700から開始し、ステップS701でCPU301のイベント判定部40が、ユーザの操作によって発行されるイベントの種類を判断する。イベントの種類が、テストモードスイッチの押下を示すイベントである場合は、ステップS702に処理が分岐する。
ステップS702では、OPU制御部41が、OPU26を制御してテストモード動作中である旨を通知する。本実施形態では、OPU制御部41は、テストモード動作中である旨を示すLEDを点灯させる。他の実施形態では、OPU制御部41は、ハンドヘルドプリンタ10の液晶ディスプレイにテストモード動作中である旨を表示してもよい。
ステップS703では、角度算出部42が、ナビゲーションセンサ24のずれ角を算出する。なお、ステップS703の処理については、図8を参照して詳述する。
ステップS704では、OPU制御部41は、OPU26を制御してテストモードが終了した旨を通知し、ステップS713で処理が終了する。本実施形態では、OPU制御部41は、テストモード動作中である旨を示すLEDを消灯させる。他の実施形態では、ハンドヘルドプリンタ10の液晶ディスプレイにテストモードが終了した旨を表示してもよい。
一方、ステップS701でイベントの種類が印刷ジョブの実行を示すイベントであると判断した場合、ステップS705に処理が分岐する。ステップS705では、OPU制御部41は、OPU26を制御して画像提供装置11から印刷対象の画像データを受信している旨を通知する。本実施形態では、OPU制御部41は、ステータスLEDを点滅させる。他の実施形態では、ハンドヘルドプリンタ10の液晶ディスプレイに画像データを受信している旨を表示してもよい。
ステップS706では、受信完了判定部43が、画像データの受信が完了したか否か判断する。ステップS707では、OPU制御部41は、OPU26を制御して印刷準備が完了した旨を通知する。本実施形態では、OPU制御部41は、ステータスLEDを点灯させると共に、印刷準備が完了した旨を示すLEDを点灯させる。他の実施形態では、ハンドヘルドプリンタ10の液晶ディスプレイに印刷準備が完了した旨を表示してもよい。
ステップS708では、印刷指示判定部44が、印刷指示を受け付けたか否か判断する。より詳細には、印刷指示判定部44は、ユーザが印刷開始を指示するスイッチを押下することによって発行されるイベントを受信した場合に、印刷指示を受け付けたと判断する。印刷指示を受け付けていない場合は(no)、ステップS708の処理を反復する。一方、印刷指示を受け付けた場合は(yes)、ステップS709に処理が分岐する。
ステップS709では、初期位置設定部45が、ハンドヘルドプリンタ10の現在の位置を初期位置として設定する。ステップS710では、図9を参照して詳述する印刷処理が実行される。ステップS711では、印刷完了判定部46が、印刷が完了したか否か判断する。印刷が完了していない場合は(no)、ステップS710に処理を戻す。一方、印刷が完了した場合は(yes)、ステップS712に処理が分岐する。
ステップS712では、OPU制御部41が、OPU26を制御して印刷が完了した旨を通知し、ステップS712で処理が終了する。本実施形態では、OPU制御部41は、印刷準備が完了した旨を示すLEDを消灯させる。他の実施形態では、ハンドヘルドプリンタ10の液晶ディスプレイに印刷処理が完了した旨を表示してもよい。
図8は、図7のステップS703の一実施形態を示すフローチャートである。ユーザはテストモード動作中、図10に示すように、ハンドヘルドプリンタ10の記録ヘッドによって規定されるX軸方向と平行なガイドに沿って、ハンドヘルドプリンタ10を平行移動させる。以下、図8を参照して、角度算出部42がテストモード動作中にナビゲーションセンサ24のずれ角を算出する処理について説明する。
図8に示す処理は、ステップS800から開始し、ステップS801で角度算出部42の時間判定部420が、タイミング生成回路312を使用して設定時間(リードタイミング)が経過したか否か判断する。設定時間は、ユーザがハンドヘルドプリンタ10を移動させた場合にハンドヘルドプリンタ10の有意な移動量を算出するのに必要な微小時間とすることが好適である。
設定時間が経過していない場合(no)、ステップS801の処理が反復する。一方、設定時間が経過した場合(yes)、ステップS802に処理が分岐する。
ステップS802では、ずれ角算出部421が、ナビゲーションセンサ24から移動量(ΔX’,ΔY’)を取得する。ステップS803では、ずれ角算出部421は、ナビゲーションセンサ24から取得した移動量を数式1に代入して、ナビゲーションセンサ24のずれ角を算出し、記憶装置に保存する。
ここで、ψは、図11に示すようにナビゲーションセンサ24のずれ角を示す。また、ΔX’は、X’−Y’平面におけるナビゲーションセンサ24の移動ベクトルのX’軸成分を示し、ΔY’は移動ベクトルのY’軸成分を示す。
ステップS804では、終了判定部422が、テストモードが終了したか否か判断する。テストモードが終了していないと判断した場合(no)、ステップS801に処理を戻し、ステップS801〜ステップS804の処理を再び実行する。一方、テストモードが終了したと判断した場合(yes)、ステップS805に処理が分岐する。
ステップS805では、ずれ角算出部421は、ステップS803で記憶装置に保存された全ての角度を取得し、これらの角度の平均値を算出し、ナビゲーションセンサ24のずれ角ψとして記憶装置に保存し、ステップS806で処理が終了する。
図9は、図7のステップS710の一実施形態を示すフローチャートである。図9に示す処理は、ステップS900から開始し、ステップS901で移動量補正部47の時間判定部470が、タイミング生成回路312を使用して設定時間が経過したか否か判断する。設定時間は、ヘッド側の駆動周期(例えば、ピエゾヘッドの場合に、ヘッドを駆動する駆動波形の波形長等によって規定される駆動周期)や画像転送時間を満たす時間とすることが好適である。
設定時間が経過していない場合(no)、ステップS901の処理が反復する。一方、設定時間が経過した場合(yes)、ステップS902に処理が分岐する。
ステップS902では、移動量取得部471が、ナビゲーションセンサ24から移動量(ΔX’,ΔY’)を取得する。ステップS903では、補正要否判断部472が、記憶装置に保存されているずれ角ψを使用して移動量(ΔX’,ΔY’)の補正が必要か否か判断する。移動量の補正が不要な場合(no)、ステップS905に処理が分岐する。一方、移動量の補正が必要な場合(yes)、ステップS904に処理が分岐する。
ステップS904では、移動量補正部473が、ずれ角ψを使用して移動量(ΔX’,ΔY’)を補正する。より詳細には、移動量補正部473は、移動量(ΔX’,ΔY’)およびずれ角ψを数式2に代入して、補正された移動量(ΔX,ΔY)を算出する。
ステップS905では、位置算出回路303が、ステップS709で設定した初期位置または前回のナビゲーションセンサの位置座標と、補正された移動量(ΔX,ΔY)とを用いて、現在のナビゲーションセンサの位置座標を算出し、記憶装置に保存する。なお、移動量の補正が不要と判断した場合は、移動量(ΔX’,ΔY’)を使用して現在のナビゲーションセンサの位置座標を算出する。
ここで、ステップS709で初期位置を設定した後、図9に示す処理を初めて実行する場合、位置算出回路303は、初期位置または前回のナビゲーションセンサの位置座標と、補正された移動量(ΔX,ΔY)とを用いて、現在のナビゲーションセンサの位置座標を算出する。
一方、図9に示す処理を反復して実行する場合は、位置算出回路303は、前回算出したナビゲーションセンサの位置座標と、補正された移動量(ΔX,ΔY)とを用いて、現在のナビゲーションセンサの位置座標を算出する。なお、ナビゲーションセンサの位置座標の算出方法については、図14を参照して詳述する。
ステップS906では、位置算出回路303は、現在のナビゲーションセンサの位置座標をCPU301に送信する。ステップS907では、CPU301のノズル位置算出部48が、現在のナビゲーションセンサの位置座標に基づいて、記録ヘッドが備える全てのノズルの現在の位置座標を算出する。なお、ノズルの位置座標の算出方法については、図15〜図18を参照して詳述する。
ステップS908では、DMAC315が、ノズル位置算出部48が算出したノズルの現在の位置座標に基づいて、各ノズルの周辺の印刷対象の画像データを取得する。ステップS909では、回転器316は、位置算出回路303が算出したハンドヘルドプリンタ142の回転角を取得する。ステップS910では、回転器316は、回転角に基づいて印刷対象の画像データの回転が必要か否か判断する。回転角が0の場合は、回転器316は、印刷対象の画像データの回転が不要と判断し、それ以外の場合は、印刷対象の画像データの回転が必要と判断する。
印刷対象の画像データの回転が不要と判断した場合(no)、ステップS912に処理が分岐する。一方、印刷対象の画像データの回転が必要と判断した場合(yes)、ステップS911に処理が分岐する。ステップS911では、回転器316は、印刷対象の画像データを回転角に応じて回転させる。
ステップS912では、回転器316が、印刷対象の画像データと記録ヘッドの各ノズル位置とを使用して、吐出条件を満たすか否か判断する。より詳細には、回転器316は、印刷媒体平面Xm−Ymにおけるノズルの位置座標と、当該平面における印刷対象の画像データの位置座標とが一致した場合に、吐出条件を満たすと判定する。例えば、図19に示すように、黒丸で示される画像データの位置座標74と、記録ヘッドの先頭ノズル70の位置座標とが一致する場合、回転器316は、吐出条件を満たすと判断する。一方、画像データの位置座標とノズルの位置座標が一致しない場合、回転器316は、吐出条件を満たさないと判断する。
吐出条件を満たさない場合(no)、ステップS914で処理が終了する。一方、吐出条件を満たす場合(yes)、ステップS913に処理が分岐する。ステップS913では、DMAC315が、印刷対象の画像データを記録ヘッド制御回路313に転送し、ステップS914で処理が終了する。そして、記録ヘッド制御回路313は、印刷対象の画像データを記録ヘッド駆動回路2に送信し、記録ヘッドの各ノズルが、上述した印刷媒体上の位置座標(すなわち、印刷媒体平面Xm−Ymにおけるノズルおよび印刷対象の画像データの位置座標)に、当該位置座標に吐出すべき印刷対象の画像データに応じた液滴を吐出する。
図12は、ナビゲーションセンサ24の取付角度の異常を検出する方法の一実施形態を示す図である。ユーザは、図10に示すガイドに沿って、ハンドヘルドプリンタ10をX軸方向に平行移動させると共に、ナビゲーションセンサ24の取付角度の異常を検出するテストパターン画像を印刷媒体に印刷する。本実施形態では、テストパターン画像として、X軸に平行な直線を使用する。
図12に示すように、ナビゲーションセンサ24の取付角度が正常な場合は、黒いドットで示すX軸に平行な直線が印刷媒体に形成される。一方、ナビゲーションセンサ24の取付角度が異常な場合は、X軸に平行でない画像が印刷媒体に形成される。このようにして、ユーザは、ナビゲーションセンサ24の取付角度の異常を容易に把握することができる。
図13は、ナビゲーションセンサ24の取付角度の異常を検出する方法の別の実施形態を示す図である。以下、図13を参照して、メンテナンス装置を用いてナビゲーションセンサ24の取付角度の異常を検出する方法について説明する。
ハンドヘルドプリンタは使用しないときには、図13に示すようなメンテナンス装置内に保持される。メンテナンス装置は、ナビゲーションセンサに対応する位置に取付角度異常検出機構が設置される。取付角度異常検出機構は、表面に凹凸を有するベルトと、当該ベルトを駆動するローラとを備えており、ローラが回転することにより、ハンドヘルドプリンタの短手方向と平行にベルトが周動する。
ユーザは、ハンドヘルドプリンタをメンテナンス装置に収容し、ハンドヘルドプリンタのテストモードSWを押下すると共に、メンテナンス装置のベルトを回転させる。そして、ハンドヘルドプリンタは、被照射体であるベルトに光を照射し、その反射光を撮影してイメージデータを生成し、ハンドヘルドプリンタの移動前のイメージデータと移動後のイメージデータの差分に基づいてナビゲーションセンサの移動量を算出し、上述したように、当該移動量を用いてナビゲーションセンサのずれ角度を算出することができる。
図14は、ナビゲーションセンサ71a、71bの位置座標の算出方法を示す図である。図14は、ハンドヘルドプリンタ10が印刷媒体(図示せず)の水平方向および垂直方向によって規定されるXm−Ym平面のYm軸に対して角度θ回転した状態で、ユーザがハンドヘルドプリンタ10を移動させて印刷を行った結果、ハンドヘルドプリンタ10がさらに角度dθ回転した様子を示す。以下、図14を参照して、ナビゲーションセンサ71a、71bの位置座標を算出する方法について説明する。
本実施形態では、ハンドヘルドプリンタ10の回転成分および並行移動成分を算出し、これらの回転成分および並行移動成分と、印刷前のナビゲーションセンサ71a、71bの位置座標とに基づいて、印刷後のナビゲーションセンサ71a、71bの位置座標を算出する。
まず、位置算出回路303は、X−Y平面におけるナビゲーションセンサ71a,71bのX軸方向への移動量を、数式3に代入することにより、印刷前のハンドヘルドプリンタ140に対する印刷後のハンドヘルドプリンタ142の回転角dθを、回転成分として算出する。
ここで、dθは、図15に示すように、印刷前のハンドヘルドプリンタ140のX−Y平面におけるY軸に対する、印刷後のハンドヘルドプリンタ142の回転角である。ΔXS0は、X−Y平面におけるナビゲーションセンサ71aの移動ベクトルのX軸成分であり、X軸方向への移動量を示す。ΔXS1は、X−Y平面におけるナビゲーションセンサ71bの移動ベクトルのX軸成分であり、X軸方向への移動量を示す。距離Lは、ナビゲーションセンサ71a,71b間の距離を示す。
次に、位置算出回路303は、X−Y平面におけるナビゲーションセンサ71aのX軸方向への移動量およびY軸方向への移動量を、数式4に代入することにより、Xm−Ym平面におけるナビゲーションセンサ71aのXm軸方向への移動量と、Ym軸方向への移動量とを、並行移動成分として算出する。
ここで、図15に示すように、位置座標(X0,Y0)、(X1,Y1)は、それぞれ印刷前のナビゲーションセンサ71a,71bの初期位置の座標であるdX0は、Xm−Ym平面におけるナビゲーションセンサ71aの移動ベクトルのXm軸成分であり、Xm軸方向への移動量を示す。dY0は、Xm−Ym平面におけるナビゲーションセンサ71aの移動ベクトルのYm軸成分であり、Ym軸方向への移動量を示す。θは、Xm−Ym平面におけるYm軸に対する、印刷開始時のハンドヘルドプリンタ140の傾斜角を示す。ΔYS0は、X−Y平面におけるナビゲーションセンサ71aの移動ベクトルのY軸成分であり、Y軸方向への移動量を示す。本実施形態では、傾斜角θは印刷開始時にユーザが設定することができる。他の実施形態では傾斜角θを0としてもよい。
そして、位置算出回路303は、ナビゲーションセンサ71aの初期位置(X0,Y0)と、数式4で算出したdX0,dY0とを用いて、Xm−Ym平面における印刷後のナビゲーションセンサ71aの位置座標(X0+dX0,Y0+dY0)を算出することができる。
そして、位置算出回路303は、印刷後のナビゲーションセンサ71aの位置座標(X0+dX0,Y0+dY0)を初期位置(X0,Y0)とし、印刷後のナビゲーションセンサ71aの位置座標と、ハンドヘルドプリンタ140の傾斜角θと、距離Lと、数式3を用いて算出された回転角dθとを数式5に代入することにより、Xm−Ym平面における印刷後のナビゲーションセンサ71bの位置座標(X1,Y1)を算出することができる。なお、数式5では、印刷後のナビゲーションセンサ71bの位置座標を新たな初期位置として算出する。
これ以降、同様の方法で印刷後のナビゲーションセンサ71a,71bの位置座標を算出することができる。
図15は、ハンドヘルドプリンタ10の記録ヘッドユニットおよびナビゲーションセンサの一実施形態を示す概略図である。以下、図15を参照して、ナビゲーションセンサ71a,71bの取付位置の延長線上にあるノズル70の位置座標の算出方法について説明する。
ハンドヘルドプリンタ10には、ナビゲーションセンサ71a,71bが取り付けられる。ナビゲーションセンサ71a,71bは、図15に示すように、等間隔で設置される複数のノズル70の長手方向に取り付けられる。
距離aは、ナビゲーションセンサ71aの中心から記録ヘッド72の上端までの距離を示す。距離bは、ナビゲーションセンサ71bの中心から記録ヘッド72の下端までの距離を示す。距離cは、ナビゲーションセンサ71aとナビゲーションセンサ71bとの距離を示す。距離dは、記録ヘッド72の両端から当該端部に最も近いノズル70までの距離を示す。距離eは、各ノズル70間の距離を示す。これらの距離a〜eは、予め決められた距離である。θは、Xm−Ym平面におけるYm軸に対する、印刷前のハンドヘルドプリンタ140の傾斜角を示す。
ノズル位置算出部は、ナビゲーションセンサ71aの位置座標(X0,Y0)を数式6に代入することにより、ノズル70の位置座標(NZLN_X,NZLN_Y)を算出することができる。
ここで、Nはノズル70の識別番号であり、ナビゲーションセンサ71aの側から順に割り当てられる。
図16は、ハンドヘルドプリンタ10の記録ヘッドユニットおよびナビゲーションセンサの別の実施形態を示す概略図である。以下、図16を参照して、ナビゲーションセンサの取付位置の延長線上に無いノズルの位置座標の算出方法について説明する。
図16に示す距離fは、一群のノズル70y,70c(例えば、黄色(Y)の液滴を吐出するノズルやシアン(C)の液滴を吐出するノズル等)によって長手方向に形成される複数の列(以下、「ノズル列」とする。)の間の距離を示す。ノズル位置算出部は、これらのノズル列間の距離fを数式7に代入することにより、ナビゲーションセンサ71a,71bの取付位置の延長線上に無いノズル70cの位置座標(NZLC−N_X、NZLC−N_Y)を算出することができる。
なお、a〜eおよびθは、上述したa〜eおよびθと同じである。
上述した実施形態では、三角関数を利用する数式6および数式7を使用して各ノズル70の位置座標を算出するが、他の実施形態では、先頭ノズルの位置座標および後尾ノズル70の位置座標を用いて、各ノズル70の位置座標を算出することができる。
図17は、先頭ノズルの位置座標および後尾ノズル70の位置座標を用いて、ノズル70の位置座標を算出する方法を示す図である。以下、図17を参照して、先頭ノズルの位置座標および後尾ノズル70の位置座標を用いて、ノズル70の位置座標を算出する方法について説明する。
図17に示す位置座標(NZLNX,NZLNY)は、N番目のノズルの位置座標である。Nは、先頭ノズルから後尾ノズルに順に割り当てられたノズルの識別番号を示す。位置座標(XS,YS)は、先頭ノズルの位置座標であり、位置座標(XE,YE)は、後尾ノズルの位置座標である。Eは、同一のノズル列に含まれるノズルの数を示す。
ノズル位置算出部は、先頭ノズルの位置座標(XS,YS)、後尾ノズルの位置座標(XE,YE)、NおよびEを数式8に代入することにより、N番目のノズルの位置座標(NZLNX,NZLNY)を算出することができる。
また、他の実施形態では、図18に示すように、ノズル列の延長線上に位置する仮想点を使用してノズルの位置座標を算出することができる。より詳細には、ノズル位置算出部は、先頭ノズル(NXL_1)の位置座標(XS,YS)、仮想点の位置座標(XE,YE)およびNを数式9に代入することにより、N番目のノズルの位置座標(NZLNX,NZLNY)を算出することができる。
ここで、Nは、先頭ノズルから後尾ノズルに順に割り当てられたノズルの識別番号を示す。仮想点の位置座標(XE,YE)は、先頭ノズルの位置座標または後尾ノズルの位置座標と、等間隔であるノズル間の距離eとを用いて導出することができる。なお、数式9は、257番目のノズルの位置座標に仮想点を想定した場合の数式であり、仮想点の位置によって数式9の定数は異なることに留意すべきである。
これまで本発明の実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、上述した実施形態の構成要素を変更若しくは削除し、または上述した実施形態の構成要素に他の構成要素を追加するなど、当業者が想到することができる範囲内で変更することができる。いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。