2017年12月28日木曜日

思いつきで買ったサーマルプリンタが結構使えた

先日行われた『ゆかり公式生放送を見る忘年会』にてこんなレシートを作ってみました。



割烹着ゆかりさんのお店...割烹ゆかり。そのままですね。
会場が和室だったので「それならやるしかないやん!」って思いつきでサーマルプリンタを買って使ってみたところ案外使えました。
買ったのはコレ↓
Aibecy POS-5805DD USBサーマルプリンタ

USB接続だけで良いならもう少し安いものがありますが、Bluetoothに対応していたこととバッテリ内蔵、あと見た目がこっちのほうが良いという点で選びました。
型番で調べてみると一応日本語も印刷できるっぽい、程度の認識で購入したので思い通りに印刷できるようになるまで苦労するorダメかもと思っていました。
ところがWindows用ドライバを使ってみるとInkscapeから直接印刷できて拍子抜けしてしまう程簡単でした。導入まで一癖あるのでメモを残しておきます。

USB接続の場合、サーマルプリンタの電源をONにして、PCに接続。デバイスマネージャーに"プリンターが接続されていません"と表示されることを確認します。

Bluetooth接続の場合、プリンタの電源を投入。まずはペアリングを行います。
BluetoothPrinterを選択。PINは1234


Bluetooth設定を開いて方向が発信のCOMポート番号を確認。この場合COM5。
amazon商品ページ説明欄からドライバをダウンロードして実行。
Portsに確認したCOMポート番号を選択して、OSはWindows10、Select PrinterはPOS-58を選択してBegin Setupをクリック。


そしてCOM(232C)接続...
電圧を確認したところTTLレベルではなく、±5.4Vが出ているので232Cレベル変換が必要です。
そしてピンアサインは下記の通り。マニュアルに載っておらず、調査したものです。
1:GND
2:TXD(プリンタからの出力)
3:RXD(プリンタへの入力)
4:???

1番にGNDがあることによって、USBとCOM両方を同じPCのUSBポートに接続すると+5VとGNDがショートするという恐ろしい仕様になっております。

通信仕様はボーレート115200bps,データ8bit,ストップ1bit,パリティなし
FRDM-K64Fボードと232Cレベル変換ICを介して接続してみたところうまく動きました。

使わせて頂いたソースはこれ。
https://os.mbed.com/users/aross34/code/Thermal_HelloWorld/

AdafruitThermal.cppの29行目のボーレートを115200に変更して動作しました。
ただし一部のコマンドが動いていないようで、真ん中あたりのLarge,Midium,smallはそれぞれ文字の大きさが変わるようですが、変わっていません。

Android端末からBluetoothで印刷する場合、ペアリングを行うところまでは普通のbluetoothデバイスと同じです。印刷はサーマルプリンタ用アプリを使用します。
画像を印刷するだけであれば iPrint が簡単かつ綺麗に印刷できました。


4 件のコメント :

匿名 さんのコメント...

Windows 7でInkscapeからPOS-5805DDに印刷できなくて困っています。もしお時間があれば、その方法をお教えください。(PDF経由では印刷できます。) よろしくお願いいたします。

en129 さんのコメント...

Inkscapeのページサイズを変更してみてください。デフォルトのA4サイズのままでは印刷できなかったことを確認しました。幅を58mmにすることで印刷できます。

匿名 さんのコメント...

ご丁寧にご説明ありがとうございます。
Inkscapeで幅を58mmに設定し、印刷で「ビットマップ」を選択し、印刷したい高さが30mm程度だったので、プリンタの印刷設定で印刷の向きを「縦」にしましたら(Inkscapeの画面では横長ですが)、思ったように印刷できるようになりました。(印刷する高さが幅より長い場合には印刷の向きを変更せずに問題ありません。Windowsでは縦横の長さを見て勝手に印刷の向きを回転させるようです。PDF経由でAdobe Readerを使うと印刷の設定変更の必要なく印刷してくれます・・) これで私もPOS-5805DDを活用できます。
Windowsでハンディサーマルプリンタを利用する方法の記事がインターネットに余りなく、プリンタ利用に踏み切るに当たり大変参考になりました。ありがとうございました。

en129 さんのコメント...

お役に立ててなによりです