まず、図1を用いて本実施形態のハンディモバイルプリンタ(以下、HMPという)の概略的な特徴を説明する。図1は、本実施形態のHMP20の構成の概略を示す図である。図1(a)は比較のために示された従来のHMP20の構成図を示す。従来のHMP20は1つのIJ記録ヘッド24と2つのナビゲーションセンサ30(以下、区別するためナビゲーションセンサS0,S1という)を有している。
図1(b)は従来のHMP20の画像形成可能範囲501を示す。図1(a)のHMP20は左側にIJ記録ヘッド24があり右側に2つのナビゲーションセンサS0,S1が縦に配置されている。ナビゲーションセンサS1とノズル61の下端との間隔はA〔mm〕、ノズル61からナビゲーションセンサS0,S1までの間隔はB〔mm〕である。ナビゲーションセンサS0,S1が印刷媒体12からはみ出してしまうのでHMP20は、印刷媒体12の左端からB〔mm〕よりも右に移動できない。また、ナビゲーションセンサS1とノズル61の下端の間隔がA〔mm〕なので、HMP20は、印刷媒体12の下端からA〔mm〕よりも下に移動できない。したがって、図示するように印刷媒体12の下にも横にも印刷できない場所が生じてしまう。
図1(c)は本実施形態のHMP20の構成図を示す。本実施形態のHMP20は1つのIJ記録ヘッド24、1つのナビゲーションセンサS0、及び、1つのジャイロセンサ31を有している。図1(d)は本実施形態のHMP20の画像形成可能範囲501を示す。ノズル61の下端とナビゲーションセンサS0までの間隔をA〔mm〕とする。ナビゲーションセンサS0が印刷媒体12からはみ出してしまうので、HMP20は印刷媒体12の下端からA〔mm〕より下に移動できない。一方、ノズル61とナビゲーションセンサS0の横方向の間隔はゼロなので、HMP20は印刷媒体12の左端から右端まで移動できる。したがって、図示するように下側にだけ印刷できない場所が生じる。
図1(b)と図1(d)を比較すると明らかなように、ジャイロセンサ31が搭載されることでナビゲーションセンサの数を1つにでき、底面のサイズを削減できる。この結果、画像形成可能範囲501を大きくすることができる。
<用語について>
底面のサイズは、ナビゲーションセンサとノズル61を囲む範囲、又は、この範囲の制約を受けることでそれ以上は小さくできないHMP20の底面の大きさである。実際のHMP20の底面のサイズはナビゲーションセンサとノズル61を囲む範囲よりも大きくてよく、操作性やデザインなどが考慮されて決定されてよい。
被搭載物とは、位置検出装置が搭載された物をいう。移動面において位置が検出されうる物としてもよい。例えば、HMP20が被搭載物の一例である。また、位置検出装置は移動した距離を検出することができるため距離測定器も被搭載物の一例となりうる。
移動面は、HMP20が移動できる面であればよく、平面の他、曲面も含まれる。具体的には印刷媒体12が挙げられるがこれには限られない。
また、物体の姿勢とは、剛体の6つの自由度のうち回転角を表す自由度(剛体の重心を通って直交する3つの軸をそれぞれ中心とする回転角)をいう。このうち、平面における物体の姿勢は、平面に垂直な軸を中心とする回転角で表される。
位置を算出するとは、何らかのデータに演算を施すことにより位置に関する情報を得ることであり、位置を検出するとは、プロセスを問わずに位置に関する情報を得ることをいう。ただし、両者は位置に関する情報が得られる点で同じであり本実施形態では位置の算出と位置の検出を厳密には区別しない。
<HMP20による画像形成>
図2は、HMP20による画像形成を模式的に示す図の一例である。HMP20には、例えばスマートフォンやPC(Personal Computer)等の画像データ出力器11から画像データが送信される。ユーザはHMP20を把持して、印刷媒体12(例えば定形用紙やノートなど)から浮き上がらないようにフリーハンドで走査させる。
HMP20は後述するようにナビゲーションセンサS0とジャイロセンサ31で位置を検出し、HMP20が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされるので(インクの吐出の対象とならないので)、ユーザは印刷媒体12上で任意の方向にHMP20を走査させることで画像を形成できる。
印刷媒体12からHMP20が浮き上がらないことが好ましいのは、ナビゲーションセンサS0が印刷媒体12からの反射光を利用して移動量を検出するためである。印刷媒体12からHMP20が浮き上がると反射光を検出できなくなり移動量を検出できない。印刷媒体12からナビゲーションセンサS0がはみ出した場合も、印刷媒体12の厚みにより反射光を検出できなくなったり、検出できても位置がずれたりする場合がある。このため、ナビゲーションセンサS0は印刷媒体12上で走査されることが好ましく、上記のようにノズル61とナビゲーションセンサS0が印刷媒体12上に共に存在することが好ましい。
<構成例>
図3は、HMP20のハードウェア構成図の一例を示す。HMP20は、印刷媒体12に画像を形成する液滴吐出装置又は画像形成装置の一例である。HMP20は、制御部25によって全体の動作が制御され、制御部25には通信I/F27、IJ記録ヘッド駆動回路23、OPU26、ROM28、DRAM29、ナビゲーションセンサ30、及びジャイロセンサ31が電気的に接続されている。また、HMP20は電力により駆動されるため、電源22と電源回路21を有している。電源回路21が生成する電力は、点線22aで示す配線などにより、通信I/F27、IJ記録ヘッド駆動回路23、OPU26、ROM28、DRAM29、IJ記録ヘッド24、制御部25、ナビゲーションセンサ30、及び、ジャイロセンサ31に供給されている。
電源22としては主に電池(バッテリー)が利用される。太陽電池や商用電源(交流電源)、燃料電池等が用いられてもよい。電源回路21は、電源22が供給する電力をHMP20の各部に分配する。また、電源22の電圧を各部に適した電圧に降圧や昇圧する。また、電源22が充電可能な電池である場合、電源回路21は交流電源の接続を検出して電池の充電回路に接続し、電源22の充電を可能にする。
通信I/F27は、スマートフォンやPC(Personal Computer)等の画像データ出力器11から画像データの受信等を行う。通信I/F27は例えば無線LAN、Bluetooth(登録商標)、NFC(Near Field Communication)、赤外線、3G(携帯電話)、又は、LTE(Long Term Evolution)等の通信規格に対応した通信装置である。また、このような無線通信の他、有線LAN、USBケーブルなどを用いた有線通信に対応した通信装置であってもよい。
ROM28は、HMP20のハードウェア制御を行うファームウェアや、IJ記録ヘッド24の駆動波形データ(液滴を吐出するための電圧変化を規定するデータ)や、HMP20の初期設定データ等を格納している。
DRAM29は通信I/F27が受信した画像データを記憶したり、ROM28から展開されたファームウェアを格納したりするために使用される。したがって、CPU33がファームウェアを実行する際のワークメモリとして使用される。
ナビゲーションセンサ30は、所定のサイクル時間ごとにHMP20の移動量を検出するセンサである。ナビゲーションセンサ30は、例えば、発光ダイオード(LED)やレーザ等の光源と、印刷媒体12を撮像する撮像センサを有している。HMP20が印刷媒体12上を走査されると、印刷媒体12の微小なエッジが次々に検出され(撮像され)エッジ間の距離を解析することで移動量が得られる。本実施形態では、ナビゲーションセンサ30は、HMP20の底面に1つだけ搭載されている。従来は2つであった。ただし、説明のためナビゲーションセンサ30が2つあるHMP20について説明する場合がある。なお、ナビゲーションセンサ30として、さらに多軸の加速度センサを用いてもよく、HMP20は加速度センサのみでHMP20の移動量を検出してもよい。
ジャイロセンサ31は、印刷媒体12に垂直な軸を中心にHMP20が回転した際の角速度を検出するセンサである。詳細は後述される。
OPU(Operation panel Unit)26は、HMP20の状態を表示するLED、ユーザがHMP20に画像形成を指示するためのスイッチ等を有している。ただし、これに限定するものではなく、液晶ディスプレイを有していてよく、さらにタッチパネルを有していてもよい。また、音声入力機能を有していてもよい。
IJ記録ヘッド駆動回路23は上記の駆動波形データを用いて、IJ記録ヘッド24を駆動するための駆動波形(電圧)を生成する。インクの液滴のサイズなどに応じた駆動波形を生成できる。
IJ記録ヘッド24は、インクを吐出するためのヘッドである。図ではCMYKの4色のインクを吐出可能になっているが、単色でもよく5色以上の吐出が可能でもよい。各色ごとに一列(二列以上でもよい)に列状に並んだ複数のインク吐出用のノズル61(吐出部)が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、この他の方式でもよい。IJ記録ヘッド24は、ノズル61から液体を吐出・噴射する機能部品である。吐出される液体は、IJ記録ヘッド24から吐出可能な粘度や表面張力を有するものであればよく、特に限定されないが、常温、常圧下において、または加熱、冷却により粘度が30〔mPa・s〕以下となるものであることが好ましい。より具体的には、水や有機溶媒等の溶媒、染料や顔料等の着色剤、重合性化合物、樹脂、界面活性剤等の機能性付与材料、DNA、アミノ酸やたんぱく質、カルシウム等の生体適合材料、天然色素等の可食材料、などを含む溶液、懸濁液、エマルジョンなどであり、これらは例えば、インクジェット用インク、表面処理液、電子素子や発光素子の構成要素や電子回路レジストパターンの形成用液、3次元造形用材料液等の用途で用いることができる。
制御部25はCPU33を有しHMP20の全体を制御する。制御部25は、ナビゲーションセンサ30により検出される移動量及びジャイロセンサ31により検出される角速度を元に、IJ記録ヘッド24の各ノズルの位置、該位置に応じて形成する画像の決定、後述する吐出ノズル可否判定等を行う。制御部25について詳細は次述する。
図4は、制御部25の構成を説明する図の一例である。制御部25はSoC50とASIC/FPGA40を有している。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が検出するサンプリング周期ごとの角速度に基づいてHMP20の位置(座標情報)を算出する。HMP20の位置とは、厳密にはノズル61の位置であるが、ナビゲーションセンサ30のある位置が分かればノズル61の位置を算出できる。本実施例では、特に断らない限りナビゲーションセンサ30の位置としてナビゲーションセンサS0の位置をいう。また、位置算出回路34は目標吐出位置を算出する。なお、位置算出回路34をCPU33がソフト的に実現してもよい。
ナビゲーションセンサ30の位置は、後述するように例えば所定の原点(画像形成が開始される時のHMP20の初期位置)を基準に算出されている。また、位置算出回路34は、過去の位置と最も新しい位置の差に基づいて移動方向や加速度を推定し、例えば次回の吐出タイミングにおけるナビゲーションセンサ30の位置を予測する。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
メモリCTL35は、DRAM29とのインタフェースであり、DRAM29に対しデータを要求し、取得したファームウェアをCPU33に送出したり、取得した画像データをASIC/FPGA40に送出したりする。
ROM CTL36は、ROM28とのインタフェースであり、ROM28に対しデータを要求し、取得したデータをCPU33やASIC/FPGA40に送出する。
回転器39は、DMAC38が取得した画像データを、インクを吐出するヘッド、ヘッド内のノズル位置、及び、取り付け誤差などによるヘッド傾きに応じて回転させる。DMAC38は回転後の画像データをIJ記録ヘッド制御部44へ出力する。
Image RAM37はDMAC38が取得した画像データを一時的に格納する。すなわち、ある程度の画像データがバッファリングされ、HMP20の位置に応じて読み出される。
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との通信が終了したことを通知するための割込み信号を出力する。
<ジャイロセンサ>
図5は、ジャイロセンサ31が角速度を検出する原理を説明する図の一例である。移動している物体に回転が加わると、物体の移動方向と回転軸の両方に直行する方向にコリオリ力が発生する。
物体を移動させるため、ジャイロセンサ31ではMEMS(Micro Electro Mechanical Systems)素子を振動させることで速度v(ベクトル)を発生させる。振動している質量mのMEMS素子に外部から角速度ω(ベクトル)の回転が加わると、MEMS素子にコリオリ力が加わる。コリオリ力Fは以下のように表すことができる。
F=−2mΩ×v
なお、「×」はベクトルの外積を表し、上記のように物体の移動方向と回転軸に直交する方向がコリオリ力Fの方向である。MEMS素子は例えば櫛歯構造の電極を有しており、ジャイロセンサ31はコリオリ力Fにより発生した変位を静電容量の変化として捉える。コリオリ力Fの信号はジャイロセンサ31内で増幅されフィルタリングされた後、角速度に演算されて出力される。すなわち、F,m、vが既知なので角速度ωを取り出すことができる。
<ナビゲーションセンサについて>
図6は、ナビゲーションセンサのハードウェア構成の構成例を示す図である。ナビゲーションセンサ30は、ホスト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上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができるからである。
次に、図7を用いて、ナビゲーションセンサ30の動作について説明する。図7はナビゲーションセンサ30による移動量の検出方法を説明する図である。LEDドライバ303が照射した光は、レンズ306を介して印刷媒体12の表面に照射される。印刷媒体12の表面は、図7(a)に示すように様々な形状の微小な凹凸を有している。このため、様々な形の影が発生する。
イメージプロセッサ302は、予め決められたサンプリングタイミング毎に、レンズ304及びイメージアレイ305を介して反射光を受光し、イメージデータ310を取得する。図7(b)に示すように生成したイメージデータ310を、イメージプロセッサ302は規定の分解能単位でマトリクス化する。すなわち、イメージデータ310を複数の矩形領域に分割する。そして、イメージプロセッサ302は、前回のサンプリングタイミングで得られたイメージデータ310と、今回のサンプリングタイミングで得られたイメージデータ310とを比較してイメージデータ310が移動した矩形領域の数を検出し、それを移動距離として算出する。図7(b)で図示するΔX方向にHMP20が移動したとする。t=0とt=1のイメージデータ310を比較すると、右端にある形状が中央の形状と一致する。したがって、形状は−X方向に移動しているので、HMP20がX方向に一マス分移動したことが分かる。時刻t=1とt=2についても同様である。
<IJ記録ヘッド駆動回路>
図8は、IJ記録ヘッド駆動回路23の構成図の一例である。まず、IJ記録ヘッド24は、複数のノズル61を備え、各ノズル61にはアクチュエータが設けられている。アクチュエータは、サーマル方式、ピエゾ方式のいずれであってもよい。サーマル方式は、ノズル内のインクに熱を与えて膨張させ、この膨張によりノズル61からインク滴を吐出させるものである。ピエゾ方式は、圧電素子によりノズル壁を押し、内部のインクを押し出すことによりインク滴を吐出させるものである。
IJ記録ヘッド駆動回路23は、アナログスイッチ231と、レベルシフタ232と、階調デコーダ233と、ラッチ234と、シフトレジスタ235とを備えている。IJ記録ヘッド制御部44は、IJ記録ヘッド駆動回路23に対し、IJ記録ヘッド24のノズル61の数(アクチュエータの数も同じ)分のシリアルデータである画像データSDを、画像データ転送クロックSCKによってシフトレジスタ235に転送する。
転送が終了すると、IJ記録ヘッド制御部44は、画像データラッチ信号SLnによりノズル毎に設けられたラッチ234に各画像データSDを記憶させる。
IJ記録ヘッド制御部44は、画像データSDをラッチさせた後、アナログスイッチ231へ各階調値のインク滴を各ノズルから吐出させるためのヘッド駆動波形Vcomを出力する。このとき、IJ記録ヘッド制御部44は、階調デコーダ233に対してヘッド駆動マスクパターンMNを階調制御信号として与えるが、そのヘッド駆動マスクパターンMNを駆動波形のタイミングに合わせて選択するように遷移させる。
階調デコーダ233は、階調制御信号とラッチされた画像データとを論理演算し、レベルシフタ232は、論理演算した得られた論理レベル電圧信号を、アナログスイッチ231を駆動できる電圧レベルまで昇圧する。
アナログスイッチ231は、昇圧された電圧信号を受け付けON/OFFすることにより、IJ記録ヘッドのアクチュエータへ供給する駆動波形VoutNが各ノズルで異なる波形となる。IJ記録ヘッド24は、この駆動波形に基づきインク滴を吐出させ、印刷媒体12上に画像を形成する。
なお、図8の構成及びその説明は、インクジェット方式のプリンタで一般に採用されている構成である。インク滴を吐出できれば、図8の構成に限られずHMP20に搭載されてよい。
<IJ記録ヘッドにおけるノズル位置について>
次に、図9を用いて、IJ記録ヘッド24におけるノズル位置等について説明する。図9(a)は、HMP20の平面図の一例である。図9(b)はIJ記録ヘッド24のみを説明する図の一例である。図示されている面が印刷媒体12に対向する面である。
本実施形態のHMP20は、1つのナビゲーションセンサS0を有している。図9(a)のS1は、説明の便宜上、ナビゲーションセンサが2つある場合の設置位置を示す。ナビゲーションセンサ30が2つある場合の、2つのナビゲーションセンサS0,S1の間の長さは距離Lである。距離Lは長いほどよい。これは、距離Lが長いほど検出可能な最小の回転角θが小さくなり、HMP20の位置の誤差が少なくなるからである。
ナビゲーションセンサ30からIJ記録ヘッド24までの距離はそれぞれ距離a、bである。距離aと、距離bは等しくてもよいし、ゼロでもよい(IJ記録ヘッド24に接している)。また、ナビゲーションセンサ30が1つだけの場合、ナビゲーションセンサS0はIJ記録ヘッド24の周囲の任意の場所に配置される。したがって、図示するナビゲーションセンサS0の位置は一例である。ただし、IJ記録ヘッド24とナビゲーションセンサS0の距離が短いことでHMP20の底面のサイズを削減しやすくなる。
図9(b)に示すように、IJ記録ヘッド24の端から最初のノズル61までの距離は距離d、隣接するノズル間の距離は距離eである。a〜eの値はROM28などに予め記憶されている。
位置算出回路34などがナビゲーションセンサS0の位置を算出すれば、距離a(距離b)、距離d及び距離eを用いて、位置算出回路34はノズル61の位置を算出できる。
<印刷媒体12におけるHMP20の位置について>
図10は、HMP20の座標系と位置の算出方法を説明する図の一例である。本実施形態では、印刷媒体12に水平な方向をX軸、垂直な方向をY軸に設定する。原点は画像形成が開始された際のナビゲーションセンサS0の位置である。この座標を印刷媒体座標と称することにする。これに対し、ナビゲーションセンサS0は図10の座標軸(X´軸、Y´軸)で移動量を出力する。すなわち、ノズル61の配列方向をY´軸、Y´軸に直交する方向をX´軸として移動量を出力する。
図9(a)に示したように、印刷媒体12に対しHMP20が時計回りにθ回転している場合を例にして説明する。ユーザがHMP20を印刷媒体座標に対し全く傾けることなく走査させることは困難でゼロでないθが生じると考えられる。全く回転していなければ、X=X´、Y=Y´である。しかし、HMP20が印刷媒体12に対し回転角θ、回転した場合、ナビゲーションセンサS0の出力とHMP20の印刷媒体12における実際の位置が一致しなくなる。回転角θは時計回りが正、X、X´は右方向が正、Y、Y´は上方向が正である。
図10(a)はHMP20のX座標を説明する図の一例である。図10(a)では回転角θのHMP20がX方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。なお、ナビゲーションセンサ30が2つある場合、相対位置は固定なので2つのナビゲーションセンサ30の出力(移動量)は同じである。ナビゲーションセンサS0のX座標はX1+X2であり、X1+X2はΔX´、ΔY´及び回転角θから求められる。
図10(b)は回転角θのHMP20がY方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサS0が検出する移動量ΔX´、ΔY´とX,Yの対応を示している。ナビゲーションセンサS0のY座標はY1+Y2であり、Y1+Y2は−ΔX´、ΔY´及び回転角θから求められる。
したがって、HMP20がX方向及びY方向に回転角θのまま移動した場合、ナビゲーションセンサS0が出力するΔX´、ΔY´は印刷媒体座標のX,Yに以下のように変換できる。
X=ΔX´cosθ+ΔY´sinθ …(1)
Y=−ΔX´sinθ+ΔY´cosθ …(2)
<<回転角θの検出>>
本実施形態では、回転角θをジャイロセンサ31の出力により位置算出回路34が求める。しかしながら、距離Lが長い方が位置を高精度に求められることを示すため、ナビゲーションセンサ30が2つある場合の回転角θの求め方を説明する。
図11は、画像形成中に生じるHMP20の回転角dθの求め方を説明する図の一例である。回転角dθは2つのナビゲーションセンサS0,S1が検出する移動量ΔX´を用いて算出される。印刷媒体12の上側のナビゲーションセンサS0が検出する移動量ΔX´0、ナビゲーションセンサS1が検出する移動量をΔX´1とする。なお、図11ではすでに得られている回転角をθとしている。
HMP20が平行移動しながらdθ回転した場合、移動量ΔX´0とΔX´1は一致しない。しかし、どちらの出力も2つのナビゲーションセンサS0,S1を結ぶ直線に垂直な方向の移動量なので、移動量ΔX´0とΔX´1の差は「ΔX´0−ΔX´1」として求めることができる。この差はHMP20がdθ回転したことにより生じた値である。また、「ΔX´0−ΔX´1」、L、及び、dθに図11に示す関係があることから、dθは以下のように表すことができる。
dθ=arcsin{(ΔX´0−ΔX´1)/L} …(3)
位置算出回路34がこのdθを積算することで回転角θを求めることができる。式(1)(2)に示すように、回転角θは位置の算出に用いられるので、回転角θが位置の精度に影響する。また、式(3)から分かるように、より小さいdθを検出するには距離Lを大きくすることが好ましい。したがって、距離Lが位置の精度に影響するが、距離Lを大きくするとHMP20の底面積が大きくなり、画像形成可能範囲501が小さくなる。
続いて、ジャイロセンサ31の出力を用いた回転角θの算出方法を説明する。ジャイロセンサ31の出力は角速度ωである。
ω=dθ/dt
であるから、dtをサンプリング周期とすると回転角dθは以下で表せる。
dθ=ω×dt
したがって、現在(時間t=0〜N)の回転角θは以下のようになる。
このように、ジャイロセンサ31でも回転角θを求めることができる。式(1)(2)に示すように、回転角θを用いて位置を算出できる。ナビゲーションセンサS0の位置を算出できれば、図9(b)に示したa〜eの値により、位置算出回路34は各ノズル61の座標を算出することができる。なお、式(1)のX、式(2)のYはそれぞれサンプリング周期における変化量なのでこのX,Yを累積することで現在の位置が求められる。
<目標吐出位置>
続いて、図12を用いて目標吐出位置について説明する。図12は、目標吐出位置とノズル61の位置の関係を説明する図の一例である。目標吐出位置G1〜G9は、HMP20がノズル61からインクを着弾させる目標位置(画素の形成先)である。目標吐出位置G1〜G9は、HMP20の初期位置とHMP20のX軸/Y軸方向の解像度(Xdpi,Ydpi)から求めることができる。
例えば、解像度が300dpiの場合、IJ記録ヘッド24の長手方向及びこれに対し垂直な方向に約0.084[mm]ごとに目標吐出位置が設定される。この目標吐出位置G1〜G9に吐出される画素があれば、HMP20はインクを吐出する。
しかし、実際には、ノズル61と目標吐出位置が完全に一致するタイミングを捉えることは困難なので、HMP20は目標吐出位置とノズル61の現在位置との間に許容誤差62を設けている。そして、ノズル61の現在位置が目標吐出位置から許容誤差62の範囲内にある場合に、ノズル61からインクを吐出する(このような許容範囲を設けることを「吐出ノズル可否判定」という。)。
また、矢印63に示すように、HMP20はノズル61の移動方向と加速度を監視しており、次回の吐出タイミングのノズル61の位置を予測している。したがって、予測された位置と許容誤差62の範囲内を比較してインクの吐出を準備することが可能になる。
<動作手順>
図13は、画像データ出力器11とHMP20の動作手順を説明するフローチャート図の一例である。まず、ユーザは画像データ出力器11の電源ボタンを押下する(U101)。画像データ出力器11はそれを受け付け、電池等から電源が供給されて起動する。
ユーザは画像データ出力器11で出力したい画像を選択する(U102)。画像データ出力器11は画像の選択を受け付ける。ワープロアプリケーションのようなソフトウェアの文書データが画像として選択されてもよいし、JPEGなどの画像データが選択されてもよい。必要であればプリンタドライバが画像データ以外のデータを画像に変更してよい。
ユーザは選択した画像をHMP20で印刷する操作を行う(U103)。HMP20は印刷ジョブの実行の要求を受け付ける。印刷ジョブの要求により画像データがHMP20へ送信される。
ユーザは、HMP20を持ち、印刷媒体12(例えばノート)の上で初期位置を決定する(U104)。
そして、ユーザはHMP20の印刷開始ボタンを押下する(U105)。HMP20は印刷開始ボタンの押下を受け付ける。
ユーザはHMP20を印刷媒体12の上で滑らせるように自由に走査する(U106)。
続いて、HMP20の動作を説明する。以下の動作はCPU33がファームウェアを実行することで行われる。
HMP20も電源のONにより起動する。HMP20のCPU33は、HMP20に内蔵されている図3,4のハードウェア要素を初期化する(S101)。例えば、ナビゲーションセンサI/F42やジャイロセンサI/F45のレジスタを初期化したり、印字/センサタイミング生成部43にタイミング値を設定したりする。また、HMP20と画像データ出力器11との間の通信を確立する。
HMP20のCPU33は初期化が完了したかどうかを判定し、完了していない場合はこの判定を繰り返す(S102)。
初期化が完了すると(S102のYes)、HMP20のCPU33は、OPU26の例えばLED点灯によりユーザに印刷可能な状態であることを報知する(S103)。これにより、ユーザは印刷可能な状態であることを把握し、上記のように印刷ジョブの実行を要求する。
印刷ジョブの実行の要求により、HMP20の通信I/F27は画像データ出力器11から画像データの入力を受け付け、画像が入力された旨をOPU26のLEDを点滅させる等によりユーザに対し報知する(S104)。
ユーザが印刷媒体12上でHMP20の初期位置を決め印刷開始ボタンを押下すると、HMP20のOPU26はこの操作を受け付け、CPU33がナビゲーションセンサI/F42に位置(移動量)を読み取らせる(S105)。これにより、ナビゲーションセンサI/F42はナビゲーションセンサS0と通信し、ナビゲーションセンサS0が検出した移動量を取得しレジスタなどに格納しておく(S1001)。CPU33はナビゲーションセンサI/F42から移動量を読み出す。
ユーザが印刷開始ボタンを押下した直後に取得された移動量はゼロであるがゼロでないとしても、CPU33は例えば座標(0,0)の初期位置としてDRAM29やCPU33のレジスタなどに格納する(S106)。
また、初期位置を取得すると印字/センサタイミング生成部43がタイミングの生成を開始する(S107)。印字/センサタイミング生成部43は、初期化で設定されたナビゲーションセンサS0の移動量の取得タイミングに達するとナビゲーションセンサI/F42にタイミングとジャイロセンサI/F45にタイミングを指示する。これが周期的に行われ上記のサンプリング周期となる。
HMP20のCPU33は、移動量と角速度情報を取得するタイミングであるか否かを判定する(S108)。この判定は、割込みコントローラ41からの通知により行うが、印字/センサタイミング生成部43と同じタイミングをCPU33がカウントすることで判定してもよい。
移動量と角速度情報を取得するタイミングになると、HMP20のCPU33はナビゲーションセンサI/F42から移動量を取得し、ジャイロセンサI/F45から角速度情報を取得する(S109)。上記のように、ジャイロセンサI/F45は印字/センサタイミング生成部43が生成するタイミングでジャイロセンサ31から角速度情報を取得しており、ナビゲーションセンサI/F42は印字/センサタイミング生成部43が生成するタイミングでナビゲーションセンサS0から移動量を取得している。
次に、位置算出回路34は角速度情報と移動量を用いてナビゲーションセンサS0の現在の位置を算出する(S110)。具体的には、位置算出回路34は、前回のサイクルで算出した位置(X,Y)と、今回取得した移動量(ΔX´、ΔY´)及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサS0の位置を算出する。初期位置のみで、前回算出した位置がない場合は、初期位置に今回取得した移動量(ΔX´、ΔY´) 及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサS0の位置を算出する。
次に、位置算出回路34はナビゲーションセンサS0の現在の位置を用いて各ノズル61の現在の位置を算出する(S111)。
このように、印字/センサタイミング生成部43により角速度情報と移動量が同時に又はほぼ同時に取得されるので、回転角と回転角が検出されたタイミングで取得された移動量でノズル61の位置を算出できる。したがって、種類が異なるセンサの情報でノズル61の位置が算出されても、ノズル61の位置の精度が低下しにくい。
次に、CPU33はDMAC38を制御して、算出した各ノズル61の位置を基に、各ノズル61の周辺画像の画像データをDRAM29からImage RAM37へ送信する(S112)。なお、回転器39は、ユーザにより指定されたヘッド位置(HMP20の持ち方など)及びIJ記録ヘッド24の傾きに応じて、画像を回転させる。
次に、IJ記録ヘッド制御部44は周辺画像を構成する各画像要素の位置座標と、各ノズル61の位置座標とを比較する(S113)。位置算出回路34は、ノズル61の過去の位置と現在の位置を用いてノズル61の加速度を算出している。これにより、位置算出回路34は、ナビゲーションセンサI/F42が移動量を取得しジャイロセンサI/F45が角速度情報を取得する周期よりも短いIJ記録ヘッド24のインク吐出周期ごとにノズル61の位置を算出している。
IJ記録ヘッド制御部44は、位置算出回路34が算出するノズル61の位置から所定範囲内に画像要素の位置座標が含まれるか否かを判定する(S114)。
吐出条件を満たさない場合、処理はステップS108に戻る。吐出条件を満たす場合、IJ記録ヘッド制御部44はノズル61ごとに画像要素のデータをIJ記録ヘッド駆動回路23に出力する(S115)。これにより、印刷媒体12にはインクが吐出される。
次に、CPU33は全画像データを出力したかを判定する(S116)。出力していない場合、ステップS108からS115までの処理を繰り返す。
全画像データを出力した場合、CPU33は、例えばOPU26のLEDを点灯させユーザに印刷が終了したことを報知する(S117)。
なお、全画像データを出力しなくても、ユーザが十分と判断した場合には、ユーザは印刷完了ボタンを押下し、OPU26がそれを受け付けて、印刷を終了してよい。印刷終了後、ユーザが電源をOFFにすることもできるし、印刷が終了した時点で、自動で電源がOFFにされるようになっていてもよい。
<ナビゲーションセンサが1つの場合の画像形成可能範囲>
図14、15を用いて、ナビゲーションセンサが1つの場合の画像形成可能範囲501を説明する。図14は、比較のために示されたナビゲーションセンサ30が2つの場合の画像形成可能範囲501を説明する図の一例である。
図14(a)ではノズルに対し並列に2つのナビゲーションセンサ30が配置されている。なお、図14(a)はHMP20を上から見た図である。図14(b)は、図14(a)の配置において印刷媒体12上になければいけない部品(ナビゲーションセンサ、ノズル)により形成される多角形502を示す。多角形502は底面のサイズの一例である。多角形502を形成するノズル61から右側のナビゲーションセンサS0,S1までの間隔をA〔mm〕、ノズル61の下端と下側のナビゲーションセンサS1までの間隔をB〔mm〕とする。
図14(c)は、図14(a)の配置の場合の画像形成可能範囲501を示す。ノズル61は多角形502の左端かつ上端にあるので印刷媒体12の左端の上端から画像形成可能である。これに対し、ノズル61から右側のナビゲーションセンサS0,S1までの間隔がA〔mm〕なので、ノズル61は印刷媒体12の右端からA〔mm〕よりも右方向に移動できない(画像形成できない)。このため、画像形成可能範囲501の右端は印刷媒体12の右端から長さA〔mm〕の場所になる。同様にノズル61から下側のナビゲーションセンサS1までの間隔がB〔mm〕なので、ノズル61は印刷媒体12の下短からB〔mm〕よりも下方向に移動できない(画像形成できない)。このため、画像形成可能範囲501の下端は印刷媒体12の下端から長さB〔mm〕の場所になる。
図14(d)ではノズル61の上下に直列に2つのナビゲーションセンサS0、S1が配置されている。図14(e)は、図14(d)の配置において印刷媒体12上になければいけない部品(ナビゲーションセンサ、ノズル)により形成される多角形502を示す。多角形502を形成するナビゲーションセンサS0からS1までの長さをA〔mm〕とする。
図14(f)は、図14(d)の配置の場合の画像形成可能範囲501を示す。印刷媒体12の縦の長さが長さA〔mm〕よりも短いので、HMP20は印刷媒体12に画像を形成できない。HMP20が90度回転され、印刷媒体12の横方向に平行にHMP20が配置されても、印刷媒体12の横の長さが長さA〔mm〕よりも短いので、HMP20は印刷媒体12に画像を形成できない。このため、図14(f)には画像形成可能範囲501が存在しない。
このように、2つのナビゲーションセンサ30のいずれか1つでも印刷媒体12からはみ出ると、HMP20が位置を検出できなくなる(位置が正確でなくなる)ため、HMP20の底面部のサイズが大きいことは、印刷媒体12における画像形成可能範囲501を制限するという不都合をもたらしていた。また、当然ながら2つのナビゲーションセンサ30が印刷媒体12の上にあっても、IJ記録ヘッド24が印刷媒体12からはみ出すとHMP20は画像を形成できない。したがって、2つのナビゲーションセンサ30及びIJ記録ヘッド24が印刷媒体12の内側になければならず、画像形成可能範囲501が制限されていた。このため、従来のHMP20ではユーザが紙面を広く使って画像形成することが難しい場合があった。
図15は、ナビゲーションセンサ30が1つの場合の画像形成可能範囲501を説明する図の一例である。図15(a)ではノズル61に対し直列に1つのナビゲーションセンサS0が配置されている。すなわち、ノズル61の下方に可能な限り接近した状態でナビゲーションセンサS0が隣接して配置されている。なお、図15(a)はHMP20を上から見た図である。図15(b)は、図15(a)の配置において印刷媒体12上になければいけない部品(ナビゲーションセンサ、ノズル)により形成される多角形502を示す。多角形502を形成するノズル61の下端とナビゲーションセンサS0までの距離をA〔mm〕とする。
図15(c)は、図15(a)の配置の場合の画像形成可能範囲501を示す。多角形502はほぼ直線状なので印刷媒体12の左端の上端から、印刷媒体12の右端の上端まで画像形成可能である。しかし、ノズル61から下側のナビゲーションセンサS0までの間隔がA〔mm〕なので、ノズル61は印刷媒体12の下短からA〔mm〕よりも下方向に移動できない(画像形成できない)。このため、画像形成可能範囲501の下端は印刷媒体12の下端から長さA〔mm〕の場所になる。
図14(c)(f)と図15(c)を比較すると明らかなように、ナビゲーションセンサ30が1つとなることで、画像形成可能範囲501が大きく広がることが分かる。とくに印刷媒体12の上半分以上が画像形成可能範囲501となるので、HMP20が180度反転されると印刷媒体12の下半分が画像形成可能範囲501となる。したがって、実質的に印刷媒体12の全体を画像形成可能範囲501とすることができる。なお、図15(a)においてナビゲーションセンサS0はIJ記録ヘッド24の上方に配置されていてもよい。この場合、画像形成可能範囲501は印刷媒体12の下端から、上端までA〔mm〕を残す範囲までである(図15(c)の画像形成可能範囲501が上下反転する)。
図15(d)ではノズル61の配列方向に垂直な方向に1つのナビゲーションセンサS0が配置されている。すなわち、ノズル61の右側に可能な限り接近した状態でナビゲーションセンサS0が隣接して配置されている。図15(e)は、図15(d)の配置において印刷媒体12上になければいけない部品(ナビゲーションセンサ、ノズル)により形成される多角形502を示す。多角形502を形成するノズルとナビゲーションセンサS0までの距離をA〔mm〕とする。
図15(f)は、図15(d)の配置の場合の画像形成可能範囲501を示す。ノズルは多角形502の上端かつ左端にありノズル61の下方にナビゲーションセンサS0がないので印刷媒体12の左端の上端から下端まで画像形成可能である。しかし、ノズル61から右側のナビゲーションセンサS0までの間隔がA〔mm〕なので、ノズル61は印刷媒体12の右端からA〔mm〕よりも右方向に移動できない(画像形成できない)。このため、画像形成可能範囲501の右端は印刷媒体12の右端から長さA〔mm〕の場所になる。
図14(c)(f)と図15(f)を比較すると明らかなように、ナビゲーションセンサ30が1つとなることで、画像形成可能範囲501が大きく広がることが分かる。とくに印刷媒体12の左半分以上が画像形成可能範囲501となるので、HMP20が180度反転されると印刷媒体12の右半分が画像形成可能範囲501となる。したがって、実質的に印刷媒体12の全体を画像形成可能範囲501とすることができる。なお、図15(d)において、ナビゲーションセンサS0はIJ記録ヘッド24の左側に配置されていてもよい。この場合、画像形成可能範囲501は印刷媒体12の右端から、左端までA〔mm〕を残す範囲までである(図15(f)の画像形成可能範囲501が左右反転する)。
また、図16に示すように、IJ記録ヘッド24にナビゲーションセンサS0が配置されていてもよい。図16は、ナビゲーションセンサS0の配置例を説明する図の一例である。ナビゲーションセンサS0は、例えばノズル61を囲むブラケット(保持部材)に設けられた孔に配置される。あるいは、ナビゲーションセンサS0が底面付近になくてもよい場合、底面よりも筐体の内側にナビゲーションセンサS0が設置されてもよい。この場合、同一平面にナビゲーションセンサS0とノズル61が配置されなくてよいのでナビゲーションセンサS0とノズル61の間隔を短くできる。
<ジャイロセンサの配置例>
ジャイロセンサ31は回転の中心に近い方に配置されていることが好ましいことが知られている。しかし、HMP20の回転中心はHMP20の中心や重心となる場合よりも、ユーザの肘の付近となる場合が多い。ユーザは肘を中心にHMP20を走査させるからである。そこで、ジャイロセンサ31は図17に示すように配置されることが好ましい。
図17(a)はジャイロセンサ31の配置例を示す図の一例である。ジャイロセンサ31はHMP20の筐体の手前側であって、幅方向のほぼ中央に配置されている。ユーザの肘に最も近いためである。このような配置により、ジャイロセンサ31が回転中心の近い場所に配置されるので検出する角速度の精度が向上することが期待される。なお、ユーザはHMP20を90度又は180度回転させた状態で走査させる場合がある。この点を考慮すると、ジャイロセンサ31はHMP20の上方からの平面視においてHMP20の端部に1つ以上設置されていることが好ましい。
一方、HMP20を剛体とする場合、必ず筐体の手前側に配置しなければ必要な精度が得られないわけではなく、HMP20のどこに配置されても実用上不足のない精度が得られる。しかし、ユーザが触れうるHMP20の部分の近くは、ユーザがHMP20を走査させる際に加重がかかることで変形することもあり得る。このような変形がジャイロセンサ31に伝わると角速度にノイズが入るおそれがある。
したがって、HMP20の筐体の内部でユーザが触れることができず、変形しにくい状態でジャイロセンサ31が配置されることが好ましい。具体的には、HMP20の底面付近のプリント基板70に配置される。なお、プリント基板70は、樹脂などでできた板状の部品で電子部品や集積回路(IC)、及びそれらを繋ぐ金属配線などを高密度に実装したものである。プリント基板はPWBや電子基板と呼ばれる場合がある。このように配置されることで、一般的な人の力でHMP20が変形したとしてもジャイロセンサ31には伝わりにくいので、角速度にノイズが入ることを抑制できる。
また、ジャイロセンサ31の角速度は温度変化の影響を受けることが知られており、筐体内の温度変化が少ない場所に配置されることが好ましい。SoC、ASIC/FPGA等のLSI又は電源など、電流が多く流れる回路は動作中、発熱する発熱体である。したがってこれらの回路の近くは温度変化が大きい。このため、図17(b)に示すようにSoC50及びASIC/FPGA40から可能な限り遠方にジャイロセンサ31が配置されることが好ましい。図17(b)では、少なくともSoC及びASIC/FPGAとは異なるプリント基板70にジャイロセンサ31が配置されている。
なお、人間の手も熱源となるので、この点からもジャイロセンサ31は底面付近に配置されることが好ましい。
また、温度特性が線形的であったり、事前に温度特性を調査したりすることが可能な場合、温度センサで温度を測定し、温度特性に応じて角速度を補正してもよい。
また、ナビゲーションセンサS0とジャイロセンサ31が同じプリント基板70に実装されることも有効である。図17(c)ではHMP20の手前側のジャイロセンサ31とナビゲーションセンサS0が1つのプリント基板70上に配置されている。ジャイロセンサ31とナビゲーションセンサS0の位置が近くても特にHMP20の底面のサイズの削減に貢献しない。しかし、ジャイロセンサ31が三軸の場合、印刷媒体12に垂直な軸に対する回転角以外の姿勢の変化を検出できるため、以下のように利点がある。
図18はジャイロセンサ31が検知するHMP20の姿勢を説明する図の一例である。ジャイロセンサ31が三軸の場合、ヨー方向、ロール方向及びピッチ方向の角速度を検出できる。このうちヨー方向の角速度がナビゲーションセンサの位置の算出に使用されている。画像形成中にロール方向及びピッチ方向の角速度が検出された場合、ナビゲーションセンサS0が印刷媒体12から離れてしまった可能性がある。同じプリント基板70にナビゲーションセンサS0とジャイロセンサ31が配置されている場合、ジャイロセンサ31が検出したロール方向及びピッチ方向の角速度と同程度の角速度がナビゲーションセンサS0にも作用していると考えられるので、ナビゲーションセンサS0が印刷媒体12から離れるほどのロール方向又はピッチ方向の角速度が生じたことを検知しやすい。
したがって、同じプリント基板70にナビゲーションセンサS0とジャイロセンサ31が配置されている場合、三軸のジャイロセンサ31を用いることで、ナビゲーションセンサS0が印刷媒体12から離れたかどうかを検知しやすくなる。
<ジャイロセンサ31の組み付け時の処理>
また、ジャイロセンサ31が三軸の角速度を検出可能である場合、ジャイロセンサ31がHMP20に組み付けられた際の組み付け精度をHMP20などが検出できる。ジャイロセンサ31はHMP20に可能な限り水平に組み付けられることが好ましい。こうすることでヨー方向のHMP20の姿勢の変化が全て角速度で検出可能となる。しかしながら、実際の組み付けではわずかに水平からのずれが生じる場合があり、この場合、ユーザが水平にのみHMP20を回転させてもロール方向又はピッチング方向の角速度が検出される場合がある。
したがって、ユーザは例えばHMP20を試験モードなどで動作させ、HMP20を水平に走査させる。HMP20はロール方向又はピッチング方向の角速度を検出し、ジャイロセンサ31がHMP20に対しどのくらい傾いているかを判定する。どのくらい傾いているかが分かるとヨー方向の角速度を補正することができる。
また、ジャイロセンサ31が一軸(ヨー方向)のみの角速度を検出する場合、0度→90度→0度の範囲で動かせる冶具が用意される。HMP20はユーザが治具で0度→90度→0度の範囲で動かしている際に、角度を検出する。検出された角度が90度にならない場合、90度になるような補正係数を算出し機器内部に格納しておく。したがって、実際の画像形成時には角速度を補正できる。
ユーザがHMP20を印刷媒体12上で走査する際、わずかに底面が印刷媒体12から浮いてしまう場合がある。ナビゲーションセンサ30も浮いてしまうため、ナビゲーションセンサ30が検出する位置も正確でなくなる。この浮きによる位置の誤差は無視できるが、移動量の解像度が大きく変わってしまう。
光学的なナビゲーションセンサ30の解像度はCPI(Count Per Inch)で表される。これは、ナビゲーションセンサ30が1インチ移動される間にカウントされる数を意味し、数が大きいほど高解像度である。
図19に示すように、ナビゲーションセンサ30は、紙面とナビゲーションセンサ30間の距離によって、移動量の解像度が変化する。図19は、センサ紙間距離と移動量の解像度の変化を示す図の一例である。センサ紙間距離が大きいほど解像度が低下することが分かる。これは、ナビゲーションセンサ30は印刷媒体12のエッジを光学的に検知するため、センサ紙間距離が近い方がエッジの検出に有利なためである(微小なエッジを検出しやすい)。
ナビゲーションセンサ30にはこのような性質があるため、HMP20のメーカではHMP20におけるナビゲーションセンサ30の組み付け位置に合わせて、決まった解像度(CPI)で、X,Yの移動量を検出する。
このため、HMP20が印刷媒体12から浮いた場合、移動量にもずれが生じるため(実際の移動量よりも少ない移動量しか検出できない)、何らかの補正が行われることが好ましい。本実施例ではHMP20の印刷媒体12からの浮きによる移動量の解像度の低下を抑制するHMP20について説明する。
図20(a)はナビゲーションセンサ30の組み付け位置をHMP20の上面から示す図であり、図20(b)はナビゲーションセンサ30の3軸の回転を説明するための図である。
図20(b)に示すように、X-Y平面に印刷媒体12が設置され、印刷媒体12に対し垂直方向がZ軸とする。実施例1にて説明したようにノズル61の位置は、Z軸中心の回転角度により算出される。一方、ナビゲーションセンサ30が印刷媒体12からどのくらい浮いたかは、X軸中心の回転角度、及びY軸中心の回転角度の少なくとも一方に影響される。なお、ナビゲーションセンサ30の全体がZ軸方向に平行移動することは考えなくてよい。一般にユーザがそのような使い方をすることはなく、ナビゲーションセンサ30の全体が大きく浮いた場合はエラーとなるためである。
印刷開始時のX軸中心の回転角度、及びY軸中心の回転角度がゼロとすると、ジャイロセンサ31がX軸(Y-Z平面)の回転角度、Y軸(Z-Z平面)の回転角度を検出することで、位置算出回路34が印字走査中の浮きを検出することができる。
次に、図21を参照して浮き量の算出方法を説明する。図21はナビゲーションセンサ30の印刷媒体12からの浮き量を説明する図の一例である。図21(a)は、ナビゲーションセンサ30を図20(a)のY軸方向から見た場合の側面図である。図21(b)はナビゲーションセンサ30が左端を軸にして回転した(浮いた)場合の浮き量を示し、図21(c)はナビゲーションセンサ30が右端を軸にして回転した(浮いた)場合の浮き量を示す。
ナビゲーションセンサ30のHMP20の筐体の左端からの距離をL1、右端からの距離をL2とする。左端を軸に回転した場合と右端を軸に回転した場合とでY軸中心の回転方向が逆になるので、位置算出回路34は回転角度が正か負かによって回転方向(左端軸回転と右端軸回転)を判断できる。左端軸回転の場合は図21(b)のように浮き量を算出し、右端軸回転の場合は図21(c)のように浮き量を算出する。
ジャイロセンサ31が検出する回転角をαとする。回転方向が判断された後のαは絶対値でよい。図21(b)から左端軸回転の場合の浮き量は以下のようになる。
L1sinα
同様に図21(c)から左端軸回転の場合の浮き量は以下のようになる。
L2sinα
図21(a)(b)の浮き量はY軸を中心とする回転により生じるものであるが、HMP20にはX軸を中心とする回転も生じる。このため、位置算出回路34はX軸を中心とする回転により生じる浮き量も算出する。以上から、最終的な浮き量は以下のように、X軸中心回転による浮き量とY軸中心回転による浮き量の合計(和)として算出される。
ナビゲーションセンサ30の浮き量
=浮き量(X軸中心回転) + 浮き量(Y軸中心回転)
なお、ナビゲーションセンサ30が浮いたことで、ナビゲーションセンサ30の高さ方向だけでなく横方向にナビゲーションセンサ30が移動する。移動量は、「L1−L1cosα」「L2−L2cosα」である。しかし、実際のHMP20の走査においては浮き量が小さいため無視することができる。
しかしながら、上記した、浮きにより生じる印刷媒体12とナビゲーションセンサ30間の距離の変化による移動量の解像度の違いは無視できない。走査時に、ナビゲーションセンサ30が若干浮いてしまうだけで、ナビゲーションセンサ30が出力する移動量の解像度が大きく変化する(小さくなる)ため、ナビゲーションセンサ30が実際に移動した量よりも検出される移動量が小さくなる。
そこで、位置算出回路34は図19に示すセンサ紙間距離と移動量の解像度の比例関係を利用して、浮き量を解像度の変化に換算する解像度換算を行い、移動量を補正する。具体例を用いて説明する。
例えば、ナビゲーションセンサ30のセンサ紙間距離と移動量の解像度との関係が以下のとおりであるとする。
印刷媒体−センサ間 2mmのとき、4000cpi相当
印刷媒体−センサ間 2.1mmのとき、3500cpi相当
つまり、浮き量が2mmから2.1mmに変化すると、移動量の解像度が500cpi低下する。これは、印刷媒体−センサ間が2mmの場合、ナビゲーションセンサ30が1mm動いた際にナビゲーションセンサ30が出力する移動量は157カウントだが、印刷媒体−センサ間が2.1mmに変化すると、ナビゲーションセンサ30が1mm動いた際にナビゲーションセンサ30が出力する移動量は137カウントに低下することを意味する。したがって、ナビゲーションセンサ30の移動量が実際の移動量よりも少なく算出されてしまい、ナビゲーションセンサ30の位置にズレが生じてしまう。
しかしながら、図19のようにセンサ紙間距離と移動量の解像度の比例関係をHMP20が保持しておくことで、浮き量から移動量の解像度を位置算出回路34が推定できるため、位置の補正が可能になる。
例えば、図19のようなセンサ紙間距離と移動量の解像度の関係をy=ax+bの式で表す。yが移動量の解像度、xがセンサ紙間距離、a、bが係数である。浮き量でxが求められるので、移動量の解像度を求めることができる。浮き量がゼロの場合の移動量の解像度を求めた移動量の解像度で割った値を、ナビゲーションセンサ30が浮いている場合に検出された移動量(カウント数)に乗じる。これにより、ナビゲーションセンサ30が浮いても浮き量がゼロの場合の移動量に補正できる。
なお、紙種によってセンサ紙間距離と移動量の解像度の比例関係が変わる場合があるため、紙種に応じたセンサ紙間距離と移動量の解像度の比例関係を保持しておくことが好ましい。
図22は、画像データ出力器11とHMP20の動作手順を説明するフローチャート図の一例である。図22の説明では図13との相違を主に説明する。
まず、ステップS106で、CPU33は例えば座標(0,0)の初期位置と共に、ジャイロセンサ31の初期角度(X,Y軸)をDRAM29やCPU33のレジスタなどに格納する(S106)。すなわち、CPU33はジャイロセンサ31の角速度情報をリードする。
そして、ステップS110で位置算出回路34は、角速度情報と移動量を用いてナビゲーションセンサS0の現在の位置を算出する際、ジャイロセンサ31が検出するX軸及びY軸を中心とする回転角に基づいて浮き量を算出し、ナビゲーションセンサ30の位置を補正する。
以上のように、本実施例によれば、ナビゲーションセンサ30が浮いたことで、移動量の解像度が変化しても、ナビゲーションセンサ30の位置を補正できる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上記したSoC50、ASIC/FPGA40の構成要素は、CPU性能やASIC/FPGA40の回路規模等により、どちらに含まれていてもよい。
また、本実施形態ではインクを吐出して画像を形成すると説明したが、可視光、紫外線、赤外線、レーザなどを照射して画像を形成してもよい。この場合、印刷媒体12として例えば熱や光に反応するものが用いられる。また、透明な液体を吐出してもよい。この場合、特定の波長域の光が照射されると可視情報が得られる。また、金属ペーストや樹脂などを吐出してもよい。
また、本実施形態ではジャイロセンサ31により印刷媒体12における姿勢を検出すると説明したが、地磁気センサによっても水平方向の姿勢(方位)を検出できる。
また、ジャイロセンサ31は1つに限られず2つ以上設置されていてもよい。
なお、ナビゲーションセンサS0は移動量検出手段の一例であり、ジャイロセンサ31は姿勢検出手段の一例であり、位置算出回路34は位置算出手段の一例である。印字/センサタイミング生成部43はタイミング通知手段の一例であり、IJ記録ヘッド制御部44等は液滴吐出手段の一例であり、HMP20は液滴吐出装置の一例である。CPU33、位置算出回路34及びジャイロセンサ31は浮き量算出手段の一例である。
また、HMP20のうち位置の算出に必要な機能を最低限有する装置が位置検出装置である。例えば、ナビゲーションセンサS0、ジャイロセンサ31、位置算出回路34,及びCPU33を有する。換言すると画像形成に必要な機能を有さないHMP20が位置検出装置である。また、位置検出装置が搭載された装置が被搭載物であり、HMP20は被搭載物の一例である。