質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

5505閲覧

Raspberry Piからサーマルプリンタに印刷命令を送りたい

otyappa_dev

総合スコア18

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

シリアルポート

シリアルポートは一度に一ビットごと移行される物理的なインターフェイスです。一般的には、9ピンのd-subコネクタであるRS-232を指します。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2018/12/19 02:42

編集2018/12/20 01:02

Raspberry Pi使い始めでどう進めれば良いのかも分からない状態なので、調べ方や「自分ならこれを試してみる」といった情報でも頂けると嬉しいです。足りない情報がありましたら教えてください。

前提・実現したいこと

Raspberry piを買って、サーマルプリンタに繋ごうと試しているのですが、
lsusbコマンドでは認識されているのですが(Device 007)、ttyAMA0に印刷命令を出しても応答が無い状態です。
"This is a test"という文字列を印刷したいです。
Raspberry piとサーマルプリンタはUSBで接続しています。

発生している問題・エラーメッセージ

印刷命令を出しても応答が無い状態です。

該当のソースコード

CLI

1pi@raspberrypi:~ $ lsusb 2Bus 001 Device 007: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port 3Bus 001 Device 004: ID 0424:7800 Standard Microsystems Corp. 4Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub 5Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub 6Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 7pi@raspberrypi:~ $ ls /dev 8autofs loop5 ram5 tty20 tty46 vc-mem 9block loop6 ram6 tty21 tty47 vchiq 10btrfs-control loop7 ram7 tty22 tty48 vcio 11bus mapper ram8 tty23 tty49 vcs 12cachefiles mem ram9 tty24 tty5 vcs1 13char memory_bandwidth random tty25 tty50 vcs2 14console mmcblk0 raw tty26 tty51 vcs3 15cpu_dma_latency mmcblk0p1 rfkill tty27 tty52 vcs4 16cuse mmcblk0p2 serial1 tty28 tty53 vcs5 17disk mqueue shm tty29 tty54 vcs6 18fb0 net snd tty3 tty55 vcs7 19fd network_latency stderr tty30 tty56 vcsa 20full network_throughput stdin tty31 tty57 vcsa1 21fuse null stdout tty32 tty58 vcsa2 22gpiochip0 ppp tty tty33 tty59 vcsa3 23gpiochip1 ptmx tty0 tty34 tty6 vcsa4 24gpiomem pts tty1 tty35 tty60 vcsa5 25hwrng ram0 tty10 tty36 tty61 vcsa6 26initctl ram1 tty11 tty37 tty62 vcsa7 27input ram10 tty12 tty38 tty63 vcsm 28kmsg ram11 tty13 tty39 tty7 vhci 29log ram12 tty14 tty4 tty8 watchdog 30loop-control ram13 tty15 tty40 tty9 watchdog0 31loop0 ram14 tty16 tty41 ttyAMA0 zero 32loop1 ram15 tty17 tty42 ttyprintk 33loop2 ram2 tty18 tty43 uhid 34loop3 ram3 tty19 tty44 uinput 35loop4 ram4 tty2 tty45 urandom 36pi@raspberrypi:~ $ lsusb -t 37/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M 38 |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M 39 |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M 40 |__ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M 41 |__ Port 3: Dev 7, If 0, Class=Printer, Driver=, 12M 42pi@raspberrypi:~ $ sudo echo -e "This is a test" > /dev/ttyAMA0

試したこと

lsusb -tコマンドでDevice 007のdriverが表示されていないので、ドライバのインストールが必要なのかと思い、以下サイトからドライバーをダウンロードしてzip内のinstall58ファイルを実行しました。
ドライバダウンロードページ
するとusblpというドライバが表示されるようになりましたが、依然として印刷命令に対して反応がありません。

pi@raspberrypi:~ $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M |__ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M |__ Port 2: Dev 9, If 0, Class=Printer, Driver=usblp, 12M pi@raspberrypi:~ $ sudo echo -e "This is a test" > /dev/ttyAMA0

補足情報(FW/ツールのバージョンなど)

Raspberry Pi 3 Model B+
Symcode 58MM USB サーマルレシートプリンター ESC/POS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

/dev/ttyAMA0 に直接、テキストを送ってもダメだと思います。
テキストや PDF などを、プリンターが解釈できるデータ(ESC/POS)に変換する必要があります。
それは、通常、CUPS などが行なうものです。

投稿2018/12/20 09:23

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

otyappa_devさん、

ドライバ入手先として書かれていたサイトからダウンロードした、58MMThermalrecieptprinter.zipの中の、/Linux Printer Driver Software/linux32bit/install58を見てみましたが、ここから、解凍されるドライバは、Intel CPUのもので、ARMのRaspberryPiでは使用できません。

$ file rastertozj rastertozj: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.15, BuildID[sha1]=844905193e8c3faaac51a35b89572b2054ed4853, not stripped

また、/dev/ttyAMA0は、GPIOピンヘッダーのとこから出ているUART(シリアルポート)なので、USBで接続している、ということであれば、デバイス名が違います。

通常USBのシリアルポートは、/dev/ttyUSB0 というようなデバイス名になります。
上記のドライバをインストールする前に、そういったデバイスがありませんでしたか?

lsusbで表示されている、↓をみると、com portになるような感じがしますが、どうでしょう?

Bus 001 Device 007: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port

うまくシリアル通信ができるようになれば、このサイトあたりを参考に、CUPSのドライバを入れてみるのはどうでしょうか。

ちなみに、似たようなサーマルプリンタで、AdafruitのMini Thermal Receipt Printerは、
RaspberryPiのGPIO PinのGND,TXD,RXDに接続して使用するので、/dev/ttyAMA0を使用して、通信するようです。

投稿2018/12/30 00:06

編集2018/12/30 00:16
mt08

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otyappa_dev

2018/12/30 03:01

回答ありがとうございます。 > 通常USBのシリアルポートは、`/dev/ttyUSB0` というようなデバイス名になります。 > 上記のドライバをインストールする前に、そういったデバイスがありませんでしたか? サーマルプリンタを接続した上で、`lsusb /dev -l`コマンドを実行してみましたが、`/dev/ttyUSB0`というデバイスは見つかりませんでした。 ```CLI pi@raspberrypi:~ $ ls /dev autofs loop5 ram5 tty20 tty46 vc-mem block loop6 ram6 tty21 tty47 vchiq btrfs-control loop7 ram7 tty22 tty48 vcio bus mapper ram8 tty23 tty49 vcs cachefiles mem ram9 tty24 tty5 vcs1 char memory_bandwidth random tty25 tty50 vcs2 console mmcblk0 raw tty26 tty51 vcs3 cpu_dma_latency mmcblk0p1 rfkill tty27 tty52 vcs4 cuse mmcblk0p2 serial1 tty28 tty53 vcs5 disk mqueue shm tty29 tty54 vcs6 fb0 net snd tty3 tty55 vcs7 fd network_latency stderr tty30 tty56 vcsa full network_throughput stdin tty31 tty57 vcsa1 fuse null stdout tty32 tty58 vcsa2 gpiochip0 ppp tty tty33 tty59 vcsa3 gpiochip1 ptmx tty0 tty34 tty6 vcsa4 gpiomem pts tty1 tty35 tty60 vcsa5 hwrng ram0 tty10 tty36 tty61 vcsa6 initctl ram1 tty11 tty37 tty62 vcsa7 input ram10 tty12 tty38 tty63 vcsm kmsg ram11 tty13 tty39 tty7 vhci log ram12 tty14 tty4 tty8 watchdog loop-control ram13 tty15 tty40 tty9 watchdog0 loop0 ram14 tty16 tty41 ttyAMA0 zero loop1 ram15 tty17 tty42 ttyprintk loop2 ram2 tty18 tty43 uhid loop3 ram3 tty19 tty44 uinput loop4 ram4 tty2 tty45 urandom pi@raspberrypi:~ $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M |__ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M |__ Port 3: Dev 5, If 0, Class=Printer, Driver=, 12M pi@raspberrypi:~ $ lsusb Bus 001 Device 005: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port Bus 001 Device 004: ID 0424:7800 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub ``` > lsusbで表示されている、↓をみると、com portになるような感じがしますが、どうでしょう? comポートのことをよく分かっていないのですが、comポートだとttyUSBというデバイス名になるのでしょうか? > うまくシリアル通信ができるようになれば、[このサイト](http://scruss.com/blog/2015/07/12/thermal-printer-driver-for-cups-linux-and-raspberry-pi-zj-58/)あたりを参考に、CUPSのドライバを入れてみるのはどうでしょうか。 サイトの紹介ありがとうございます。`ttyUSB0`はありませんでしたが、サイトに沿って進めてみます。 完了したら結果をご連絡します。
otyappa_dev

2018/12/30 03:51

紹介いただいたサイトの通りに進めたところテストページの印刷ができました! githubにドライバがあったんですね・・・ 分かっていない点も多いですが、一応問題は解決したので先に進もうと思います。 ありがとうございました。
mt08

2018/12/30 08:38

先に進めた、とのことで、なによりです。 うまく動作できましたら、手順や動作の様子などをまとめて、ブログなどで公開されると、他の方々も参考にできると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問