以下、図面に基づいて本発明の実施の形態を説明する。
図1は、ハンドヘルドプリンタ10による印刷の例を示す図である。ハンドヘルドプリンタ10は、例えば、スマートデバイス又はPC(Personal Computer)等の画像データ出力器から、画像データを受信する。続いて、ハンドヘルドプリンタ10は、当該画像データに基づいて、印刷媒体上を平面状自由に、すなわち、フリーハンド走査し、画像を形成することができる。印刷媒体は、例えば、ノート又は定型用紙である。
ハンドヘルドプリンタ10は、後述するようにナビゲーションセンサ30とジャイロセンサ17で位置を検出し、ハンドヘルドプリンタ10が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされインクの吐出の対象とならないため、ユーザは、印刷媒体上で任意の方向にハンドヘルドプリンタ10をフリーハンド走査することで画像を形成できる。
図2は、本発明の実施の形態におけるハンドヘルドプリンタ10のフリーハンド走査の例を説明するため図である。ハンドヘルドプリンタ10は、ナビゲーションセンサ30の検出情報から吐出ノズルの位置を常に算出することで、ユーザのフリーハンド走査に追従して正確な位置に印刷することが可能なアルゴリズムを備えている。しかしながら、理想的な走査経路から大きく外れた経路が入力された場合、ナビゲーションセンサ30の検出誤差が蓄積し、理想的な経路であった場合と比べ印刷結果に差が生じて、印刷品位が劣化する。
そこで、ハンドヘルドプリンタ10は、複数のアクチュエータを備え、方向を示すような振動又は摩擦等の仮想力覚をユーザに知覚させるように特定パターンでアクチュエータを駆動して、当該力覚提示(ハプティクス)効果によって、ユーザのフリーハンド走査を適切な走査方法へ誘導する特徴を有する。
図2に示される矢印のように、ハンドヘルドプリンタ10本体に備えたアクチュエータは2個であり、それぞれX方向又はY方向に対応する。往路又は復路の走査方向及び改行方向、又は改行量を力覚提示してユーザにガイドする。図2に示される点線の矢印のように、適切な操作方向(例えば、最短の経路)から外れると、振動でユーザに知らせ、摩擦感覚を上げるか又は下げる。また、ハンドヘルドプリンタ10は、力覚提示機能をON/OFFすることができる。
図3は、本発明の実施の形態におけるハンドヘルドプリンタ10のハードウェア構成例を示す図である。ハンドヘルドプリンタ10は、印刷媒体に画像を形成する画像形成装置の一例である。ハンドヘルドプリンタ10は、電源11、電源回路12、メモリ13、制御部14、IJ(インクジェット)記録ヘッド駆動回路15、画像データ通信I/F16、ジャイロセンサ17、OPU(Operation panel Unit)18、IJ記録ヘッド19、アクチュエータ駆動回路20、アクチュエータ21及びナビゲーションセンサ30を有する。
電源11には、主に電池が利用される。太陽電池、交流商用電源、燃料電池等が用いられてもよい。電源回路12は、電源11が供給する電力をハンドヘルドプリンタ10の各部に分配する。また、電源回路12は、電源11の電圧を各部に適した電圧に降圧又は昇圧する。また、電源11が充電可能な電池である場合、電源回路12は、例えば交流電源の接続を検出して電池の充電回路に接続し、電源11の充電を可能にする。
メモリ13は、ハンドヘルドプリンタ10のハードウェア制御を行うファームウェア、IJ記録ヘッド19の駆動波形データ、その他ハンドヘルドプリンタ10の初期設定に必要なデータ等を格納するROM(Read Only Memory)を含む。ROMは、マスクROM、PROM(Programmable ROM)、EEPROM(Electrical Erasable ROM)、フラッシュメモリ又は外部記憶媒体であるメモリカード等のいずれであってもよいし、それらの複数を含んでもよい。
また、メモリ13は、RAM(Random Access Memory)を含み、制御部14がファームウェアを実行するときにワークメモリとして使用され、画像データ通信I/F16が受信した画像データを記憶し、展開されたファームウェアの実行のために使用される。RAMは、DRAM(Dynamic RAM)、SRAM(Static RAM)、SDRAM(Synchronous DRAM)等のいずれであってもよいし、それらの複数を含んでもよい。
制御部14は、CPU(Central Processing Unit)101、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等に含まれるワイヤードロジック回路を有し、ハンドヘルドプリンタ10の全体を制御する。例えば、制御部14は、ナビゲーションセンサ30により検出される移動量及び角速度、又はジャイロセンサ17により検出される角速度に基づいて、IJ記録ヘッド19の各ノズルの位置を決定し、当該位置に応じてインクを吐出し画像を形成する制御を行う。また、制御部14は、アクチュエータ駆動回路20を介してアクチュエータ21を駆動させる。制御部14について詳細は後述する。
IJ記録ヘッド駆動回路15は、制御部14から供給される駆動波形データを用いて、IJ記録ヘッド19を駆動するための駆動波形を生成する。IJ記録ヘッド駆動回路15は、インクの液滴のサイズなどに応じた駆動波形を生成できる。
IJ記録ヘッド19は、インクを吐出するためのヘッドであり、複数のノズルを有する。図3においては、CMYKの4色のインクを吐出可能になっているが、単色でもよく5色以上の吐出が可能であってもよい。IJ記録ヘッド19には、色ごとに一列又は複数列となるように、複数のインク吐出用のノズルが配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、この他の方式でもよい。
画像データ通信I/F16は、スマートデバイス又はPC(Personal Computer)等の画像入力機器から画像データの受信を行う。画像データ通信I/F16は、例えば、無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、赤外線、携帯電話の通信方式である3G又はLTE(Long Term Evolution)等の通信規格に対応した通信インタフェースである。また、画像データ通信I/F16は、このような無線通信の他、有線LAN、USBケーブルなどを用いた有線通信に対応した通信装置であってもよい。
ジャイロセンサ17は、印刷媒体に垂直な軸を中心にハンドヘルドプリンタ10が回転したときの角速度を検出するセンサである。なお、ジャイロセンサ17は、必須の構成ではなく、ハンドヘルドプリンタ10に含まれてもよいし、含まれなくてもよい。ジャイロセンサ17が、ハンドヘルドプリンタ10に含まれない場合、当該角速度は、複数のナビゲーションセンサ30から算出されてもよい。
OPU18は、ハンドヘルドプリンタ10の状態を表示するLED(Light Emitting Diode)、液晶ディスプレイ、ユーザがハンドヘルドプリンタ10に画像形成を指示するためのタッチパネル等を有する。また、OPU18は、音声入力機能を有していてもよい。
ナビゲーションセンサ30は、所定のサイクル時間ごとにハンドヘルドプリンタ10の移動量を検出するセンサである。ナビゲーションセンサ30は、例えば、LED又は半導体レーザ等の光源と、印刷媒体を撮像する撮像センサを有する。ユーザが、ハンドヘルドプリンタ10に、印刷媒体上を走査させると、印刷媒体の微小なエッジが次々に撮像又は検出され、当該エッジ間の距離を解析することで移動量が得られる。本発明の実施の形態においては、ナビゲーションセンサ30は、ハンドヘルドプリンタ10の底面に2つ搭載されて移動量及び角速度を算出してもよい。また、ナビゲーションセンサ30は、ハンドヘルドプリンタ10の底面に1つ搭載されて移動量を算出し、角速度はジャイロセンサ17が算出してもよい。ナビゲーションセンサ30の詳細は後述する。なお、ナビゲーションセンサ30として、さらに多軸の加速度センサを用いてもよく、ハンドヘルドプリンタ10は加速度センサに基づいて移動量を検出してもよい。
アクチュエータ駆動回路20は、制御部14からの制御によりアクチュエータ21を駆動させる信号を生成し、アクチュエータ21に当該信号を供給して駆動させる。
アクチュエータ21は、ユーザに、方向又は摩擦等の仮想力覚を感じさせる特定パターンで振動する装置である。当該力覚提示(ハプティクス)効果によって、ユーザのフリーハンド走査を適切な走査方向に誘導する。アクチュエータ21の種類は、例えば、慣性を利用した偏心モータ(ERM:Eccentric Rotating Mass)、リニア共振アクチュエータ(LRA:Linear Resonant Actuator)、又は電圧印加による圧電材料の屈曲を利用した圧電素子(ピエゾ素子)があるが、力覚の方向がより強く提示できる、リニア共振アクチュエータ又は圧電素子が望ましい。アクチュエータ21の個数は、装置本体が平面状に走査する前提において、少なくともX方向とY方向の2個のアクチュエータが必要となる。
図4は、ナビゲーションセンサ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)を使用することができる。半導体レーザで、印刷媒体上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができるからである。
図5は、ナビゲーションセンサ30の機能を説明するための図である。イメージプロセッサ32は、反射光を受光したイメージアレイ35から規定のサンプリングタイミングごとに取得したデータを、規定の分解能単位でマトリックス化し、直前のサンプリングタイミングと現時点のサンプリングタイミングとの差分を検知し、移動量を算出する。
例えば、図5に示される場合では、あるサンプリングタイミング:Samp1のときの画像からSamp2、Samp3と進むにつれて、黒又はグレイで表示される画像が移動していることがわかる。
Samp1を基準とした場合、Samp2での出力値(ΔX,ΔY)は、(1,0)となる。ΔX、ΔYは、ナビゲーションセンサ30の向きを基準とした水平方向、垂直方向の移動量を示す。なお、ナビゲーションセンサ30が1つの場合、センサが印刷媒体上で回転したとしても、回転成分を検知することはできない。移動量の分解能は、搭載されるデバイスの要求に依存するが、プリンタを想定した場合、例えば1200dpi程度の分解能を要する。
図6は、ナビゲーションセンサ30及びインクジェット記録ヘッドの配置を説明するための図である。図6には、ハンドヘルドプリンタ10の底面にナビゲーションセンサ30が2つ搭載されている場合が示される。図6に示されるナビゲーションセンサ30間の距離cに関して、図7で説明する位置算出演算時、距離cが長いほど演算誤差が少なくなる。
また、ナビゲーションセンサ30とIJ記録ヘッド19とは、図6に示される距離a、距離bで配置される。ナビゲーションセンサ30の位置を算出した後に、IJ記録ヘッド19端と先頭ノズル間距離d、ノズル間距離eを用いて、各ノズル位置を算出する。
印刷媒体にX軸Y軸(例えば横方向をX軸、縦方向をY軸)を定義し、ナビゲーションセンサの出力軸をX'軸Y'軸とすると、図6に示されるように、ハンドヘルドプリンタ10が印刷媒体上で角度θ傾いた場合、ナビゲーションセンサ30のΔX、ΔYの出力値は、X'軸Y'軸に対する水平方向、垂直方向の成分となり、印刷媒体のX軸Y軸に対するΔX、ΔYではなくなる。そのため、ナビゲーションセンサ30は、X'軸Y'軸の出力値に基づいて、印刷媒体のX軸Y軸に対する位置を逐次算出することにより、自機の正常な位置を把握する。
図7は、ナビゲーションセンサ30の位置の算出式を説明するための図である。図7においては、IJ記録ヘッド19の両端部に搭載された二つのナビゲーションセンサ30を、ナビゲーションセンサs0、ナビゲーションセンサs1とする。また、ナビゲーションセンサs0の印刷媒体における座標を(X0,Y0)、ナビゲーションセンサs1の印刷媒体における(X1,Y1)とする。ナビゲーションセンサ30は、図7に示されるサンプリング時刻T=0を基準とし、次のサンプリング時刻T=1におけるナビゲーションセンサ30の位置算出を、回転成分と平行成分の2つに分離して以下のように行う。
図7に示される回転成分の差分dθは、ナビゲーションセンサs0、ナビゲーションセンサs1のX方向の出力の差分から、数1に基づいて算出される。
dxs0は、ナビゲーションセンサs0のX軸方向の出力値であり、dxs1は、ナビゲーションセンサs1のX軸方向の出力値であり、Lは、ナビゲーションセンサs0とナビゲーションセンサs1間の距離である。Lは、図6に示される距離cと同様である。
平行移動成分dX0、dY0は、T=0時のIJ記録ヘッド19の傾きθ及び数1により求められたT=1における回転成分の差分dθから、数2に基づいて算出される。
したがって、T=1におけるナビゲーションセンサs0の位置は、(X0+dX0、Y0+dY0)で求められる。T=1におけるナビゲーションセンサs1の位置(X1,Y1)は、T=1におけるナビゲーションセンサs0の座標と、IJ記録ヘッド19の傾きθ+dθ、IJ記録ヘッドの長さLから、数3に基づいて算出される。
また、加法定理、及びsin(dθ)=tan(dθ)=dθ(dθ<<1のとき)の近似を、上記の式の計算時に使用する。ナビゲーションセンサ30が検知する移動量ΔX、ΔYをサンプリングして実際のIJ記録ヘッド19の位置を算出する際、dθは十分小さな値となる。
例えば、L=1インチ=25.4mm、400mm/sという高速走査、サンプリング周期が100usである条件において、1サンプリング周期で移動できる距離は40umのため、Lを回転運動の半径とした場合に回転できる最大の角度dθは、dθ=2π×(円周上の移動距離)/(円周長)=2π×(40×10−6)/(2π×25.4×10−3)=0.0015[rad]となる。dθ<<1として近似演算すると、sin(dθ)=0.0015、tan(dθ)=0.0015となる。
この時、例えばcos(θ+dθ)を計算してY1を求める場合、sin(dθ)及びcos(dθ)を求める計算を省略し、数4のようにsinθ及びcosθでcos(θ+dθ)を求めることができる。
以上の演算を、サンプリング周期ごとに実施し続けることにより、2つのナビゲーションセンサ30の印刷媒体に対する2次元座標を逐次把握することができる。
図8は、インクジェットノズル位置の算出式を説明するための図である。図7で説明した方法によってナビゲーションセンサ30の位置を算出した後、図8に示される、ナビゲーションセンサ30とIJ記録ヘッド19の距離a、距離b、また、IJ記録ヘッド19端と先頭ノズル間距離d、のノズル間距離e、IJ記録ヘッドの傾きθにより、ナビゲーションセンサ30の位置(X0,Y0)から、先頭ノズル(図8におけるノズル1)の座標(NZL1_X,NZL1_Y)を数5に基づいて求めることができる。
図9は、本発明の実施の形態における制御部14の機能構成例を示す図である。制御部14は、図9に示されるように、CPU101、位置算出部102、メモリ制御部103、内部メモリ104、画像読み取り部105、アクチュエータ制御部106、ジャイロセンサI/F107、ナビゲーションセンサI/F108、印字/センサタイミング生成部109、IJ記録ヘッド制御部110、割り込み通知部111の各機能部を有する。また、制御部14のハードウェアとしての構成は、例えば図9に示されるような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は、メモリ13に展開されたファームウェアをメモリ制御部103を介して読み込み、実行することにより、制御部14の各機能部を実現する機能部である。
位置算出部102は、ナビゲーションセンサ30が検出するサンプリング周期ごとの移動量及び角速度、あるいはジャイロセンサ17が検出するサンプリング周期ごとの角速度に基づいて、ハンドヘルドプリンタ10の位置を算出する。正確な印刷をするために必要なハンドヘルドプリンタ10の位置とは、厳密にはノズルの位置であるが、ナビゲーションセンサ30の位置が分かれば、図8で説明したようにノズルの位置を算出できる。本発明の実施の形態では、特に断らない限りナビゲーションセンサ30の位置としては、図7に示されるナビゲーションセンサS0の位置をいう。また、位置算出部102は、インクの目標吐出位置を算出する。なお、位置算出部102は、CPU101がファームウェアを実行することにより実現されてもよいし、ワイヤードロジック回路により実現されてもよい。
メモリ制御部103は、各機能部からのメモリ13に対する読み込み又は書き込みを制御する。
内部メモリ104は、読み書きに高速性が必要とされる情報の記憶に使用される。例えば、ナビゲーションセンサ30の位置情報、メモリ13から読み込んだ画像データ等が記憶される。内部メモリ104のハードウェアは、例えばSRAMで構成されてもよい。
画像読み取り部105は、ナビゲーションセンサ30の位置情報から、IJ記録ヘッド19に搭載されている各ノズル位置を算出し、当該ノズル位置に応じた画像データをメモリ13から読み込んで、IJ記録ヘッド制御部110が要求する並び順でデータを送信する。
アクチュエータ制御部106は、CPU101からの制御に基づき、アクチュエータ駆動回路20に信号を供給して、ユーザに方向又は摩擦等の仮想力覚を感じさせる特定パターンで振動するようにアクチュエータ21を駆動させる。
ジャイロセンサI/F107は、印字/センサタイミング生成部109により生成されたタイミングになると、ジャイロセンサ17が検出する角速度を取得して、メモリ13又は制御部14内のレジスタ等に格納する。なお、ハンドヘルドプリンタ10が、ジャイロセンサ17を搭載していない場合は、ジャイロセンサI/F107は制御部14に含まれなくてよい。
ナビゲーションセンサI/F108は、ナビゲーションセンサ30と通信し、ナビゲーションセンサ30からの情報として移動量ΔX、ΔYを受信し、当該移動量をメモリ13又は制御部14内のレジスタに格納する。
印字/センサタイミング生成部109は、ナビゲーションセンサI/F108及びジャイロセンサI/F107が、センサから情報を読み取るタイミングを通知し、また、IJ記録ヘッド制御部110に駆動タイミングを通知する。
IJ記録ヘッド制御部110は、画像データにディザ処理等を施して大きさと密度で画像を表す点の集合に画像データを変換する。当該変換により、画像データは、吐出位置と点のサイズのデータとなる。IJ記録ヘッド制御部110は、点のサイズに応じた制御信号をIJ記録ヘッド駆動回路15に出力する。IJ記録ヘッド駆動回路15は、当該制御信号に対応する駆動波形データを用いて、駆動波形を生成する。また、IJ記録ヘッド制御部110は、ノズルの位置に応じて吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
割り込み通知部111は、ナビゲーションセンサI/F108が、ナビゲーションセンサ30との通信が完了したことを検知して、CPU101に通知するための割り込み信号を出力する。CPU101は割り込みにより、ナビゲーションセンサI/F108が内部レジスタに記憶するΔX、ΔYを取得する。また、割り込み通知部111は、エラー等のステータス通知機能も有する。ジャイロセンサI/F107に関しても同様に、割り込み通知部111はCPU101に対し、ジャイロセンサ17との通信が終了したことを通知するための割り込み信号を出力する。
図10は、アクチュエータ21の動作による力覚提示効果について説明するための図である。アクチュエータ21を特定のパターンで振動させることで、所定の方向軸に関してプラス方向又はマイナス方向の加速度を発生させてユーザに知覚させる。特定のパターンとは例えば、図10に示される入力パターンのようにPWM(Pulse Width Modulation)信号による信号の周期又はHigh/Lowのduty比によって、アクチュエータ21に発生する加速度のパターンである。アクチュエータ21が発生した加速度の積分値は0であり、総和として力又は移動は発生していないが、人間の知覚は、加速度の小さな運動は感じず、加速度の大きな運動のみ感じる特性があるため、人間の知覚機構においては、方向を持った力として感じる。
図10(a)は、加速度がプラス方向への力覚を示している。図10(b)は、加速度がマイナス方向への力覚を示している。また、アクチュエータ21の加速度の大きな運動の量を制御して、人間が知覚する力覚の提示量を変動させることもできる。
図11は、本発明の実施の形態におけるハンドヘルドプリンタ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/F108に通知する。続いて、ナビゲーションセンサ30は位置情報の検知を開始し、制御部14の内部メモリ104に格納する(S301)。ナビゲーションセンサI/F108は、ナビゲーションセンサ30と通信し、位置情報を読み込む(S105)。続いて、ハンドヘルドプリンタ10は、当該位置情報を初期位置とし、例えば座標(0,0)とする(S106)。
続いて、制御部14内部の印字/センサタイミング生成部109によって時間計測し(S107)、予め設定されたナビゲーションセンサ30への読み込みタイミング(=IJ記録ヘッド制御部110の駆動周期)ごとに、(S108)位置情報の読み込みを繰り返す(S109)。ステップS110において、制御部14は、読み込まれた位置情報に基づいて、前回算出したナビゲーションセンサ30の座標(X,Y)と、今回リードした移動量(ΔX,ΔY)から、図7及び図8において説明した方法で、現在のナビゲーションセンサ30の座標を算出し、制御部14の内部メモリ104に格納する(S110)。続いて、制御部14は、算出した現在の各ナビゲーションセンサ30の位置情報と、ナビゲーションセンサ30とIJ記録ヘッド19の予め定められた組み付け位置情報とに基づいて、IJ記録ヘッド19上の各ノズルの位置座標を算出する(S111)。
続いて、画像読み取り部105は、ステップS111で算出した各ノズルの位置情報に基づいて、IJ記録ヘッド19又は各ノズル周辺の画像データをメモリ13から読み込み、位置情報により特定されたIJ記録ヘッド19の位置及び傾きに応じて回転したのち、内部メモリ104に記憶させる(S112)。続いて、画像読み取り部105は、内部メモリ104に記憶させた画像データと、各ノズル位置の座標比較を実施し(S113)、設定された吐出条件を満たすと判断した場合(S114のYES)、IJ記録ヘッド制御部110へ画像データを出力する(S115)。設定された吐出条件を満たさないと判断した場合(S114のNO)、ステップS108に戻る。
上記ステップS108〜ステップS115を繰り返すことで、印刷媒体上に画像を形成していき、全データが吐出された場合(S116のYES)、ハンドヘルドプリンタ10は、例えばLED点灯等の手段で、ユーザに印刷完了を通知する(S117)。全データが吐出されていない場合(S116のNO)、ステップS108に戻る。
なお、全データを吐出しなくても、ユーザが十分と判断した際には、印字完了ボタンを押下し、印字を完了しても良い。
図12は、本発明の実施の形態におけるハンドヘルドプリンタ10の走査時の力覚提示について説明するための図である。図12(a)は、ハンドヘルドプリンタ10の走査時の力覚提示の処理を示すフローチャートである。図12(b)は、ハンドヘルドプリンタ10に搭載されたアクチュエータ21を、アクチュエータX及びアクチュエータYとして、当該アクチュエータの動作状況を示す。図12(b)に示されるように、アクチュエータXが駆動されて力覚を提示できる方向の軸が、適切な走査方向とする。印刷媒体の印刷対象の領域を、印字画像領域という。
ハンドヘルドプリンタ10は、停止した状態から往路方向への印字を開始すると、ステップS401において、図12(b)に示されるアクチュエータXを駆動して、X軸+方向へ力覚を提示する。続いて、ハンドヘルドプリンタ10は、走査中は位置情報を定期的に読み込み(S402)、適切な走査経路と比較し(S403)、経路からずれている(Y軸の+又は−成分がある)場合(S403)、アクチュエータYを駆動して、検出したY軸成分と反対方向へ力覚提示し、経路へ戻るよう誘導する(S404、S405)。Y軸成分を検出していない場合は、アクチュエータYの駆動を停止する。ハンドヘルドプリンタ10が、印字画像領域内を走査中は、アクチュエータXはX軸+方向への力覚提示を継続する。
ステップS406において、ハンドヘルドプリンタ10が印字画像領域を超えて、領域外に達した場合、アクチュエータXの駆動を切替え、走査方向と反対方向のX軸−方向へ力覚提示し、印字画像領域端へ戻るよう誘導する(S407)。印字画像領域端でなければ(S408のNO)、ステップS407に戻る。力覚提示量は、印字画像領域端との距離によって変動する(離れるほど提示量は大きくなる等)としてもよい。印字画像領域端へ戻ったら(S408のYES)、アクチュエータXの駆動を停止する(S409)。
復路での力覚提示は、アクチュエータXの力覚提示方向が往路方向と逆となること以外は、往路での力覚提示と同様である。
図13は、本発明の実施の形態におけるハンドヘルドプリンタ10の改行時の力覚提示について説明するための図である。図13(a)は、ハンドヘルドプリンタ10の改行時の力覚提示の処理を示すフローチャートである。図13(b)は、ハンドヘルドプリンタ10に搭載されたアクチュエータ21を、アクチュエータX及びアクチュエータYとして、当該アクチュエータの動作状況を示す。図13(b)に示されるように、アクチュエータYが駆動されて力覚を提示できる方向の軸が、適切な走査方向とする。印刷媒体の印刷対象の領域を、印字画像領域という。
ハンドヘルドプリンタ10は、停止した状態から往路方向への印字を開始すると、ステップS501において、図13(b)に示されるアクチュエータYを駆動して、Y軸−方向へ力覚を提示する。続いて、ハンドヘルドプリンタ10は、走査中は位置情報を定期的に読み込み(S502)、適切な走査経路と比較し(S503)、経路からずれている(X軸の+又は−成分がある)場合(S503)、アクチュエータXを駆動して、検出したX軸成分と反対方向へ力覚提示し、経路へ戻るよう誘導する(S504、S505)。X軸成分を検出していない場合は、アクチュエータXの駆動を停止する。ハンドヘルドプリンタ10が、改行の走査中は、アクチュエータYはY軸−方向への力覚提示を継続する。
ステップS506において、ハンドヘルドプリンタ10が改行量分の走査が完了した場合(S506のYES)、アクチュエータYの駆動を切替え、走査方向と反対方向のY軸+方向へ力覚提示し、これ以上の走査をしないように誘導する(S507)。改行量分の走査が完了していない場合(S506のNO)、ステップS502に戻る。力覚提示量は、改行すべき位置との距離によって変動する(離れるほど提示量は大きくなる等)としてもよい。
上述のように、本発明の実施の形態によれば、ハンドヘルドプリンタ10は、フリーハンド走査において、アクチュエータを用いてユーザに力覚提示することによって、印字画像領域外での無効な走査を低減して、ナビゲーションセンサ30の検出誤差を蓄積させず、適切な走査方向に誘導して印刷媒体に印刷を実行する。すなわち、ハンドヘルドプリンタのフリーハンド走査において、ユーザが印字ヘッドの大きさ又は印字画像領域を意識しなくても、印字ズレの少ない最適な印刷ができる。
なお、本発明の実施の形態において、IJ記録ヘッド19は、ヘッドの一例である。ナビゲーションセンサ30は、センサの一例である。制御部14は、駆動部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。