印刷したったー【SNS名刺印刷プリンター】

製作者: nyaru(@sakura_metal)

Twitterなどのアカウントをその場で印刷できるプリンタです.

ハードウェア

構成

3Dモデル

  • サーマルプリンタの3Dモデル(Chris Kelley氏)

https://grabcad.com/library/thermal-printer-1/details?folder_id=365542

  • ケースの3Dモデル

未準備・・・

ソフトウェア

requirements

ライセンス

CC BY3.0
image

手順1

Raspberry piの準備

Raspberry pi 2 Model BとRaspbian 9.4(2018-3-18)の場合です。
他の場合では少しデバイス名異なるかもしれません。
Twitterのキー入力とかあるので場合によってはSSHで作業すると楽だと思います。

シリアル通信を使えるようにしたりする

sudo apt-get install python-serial
sudo apt-get install python-imaging-tk
sudo usermod -a -G dialout pi

をコマンド実行。

また/boot/cmdline.txtに

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

の部分があれば削除
(自分の環境ではconsole=serial0,115200となっていたのを削除した)

gettyを停止させるために(必要ないかも?)

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

をコマンド実行。
(ラズパイ1や3はhttps://hack-le.com/44765804-2/参考)

参考


gitインストールする

sudo apt-get install git-core

実行

任意ディレクトリ(~/git とか。なかったら作っても良い)に移動して

git clone git://github.com/nyarurato/MeisiPrinter.git

名刺プリンタのライブラリを入手。

名刺プリンタを動かすために必要なpythonのライブラリを導入

sudo pip install qrcode

を実行。(PILやrequests_oauthlibはすでに入ってると思う。入ってなければ適宜導入)

手順2

ハードウェアの準備

私が持っているサーマルプリンタは入力が5-9Vのモデルなので、5VのAC電源とつないでいます。
13.5W推奨となっていますが、5V2A(PSPのACアダプタ)でも印刷できてます。
逆に9Vの電池とつないだ場合はなぜか?印刷できませんでした。(電流量の問題?)

RaspberryPiの6番ピン(GND)とサーマルプリンタの黒(GND)、8番ピン(Tx)とサーマルプリンタの黄(Rx)を接続

その後、RaspberryPiの先程入れた名刺プリンタのライブラリMeisiPrinterのディレクトリに行き

python printer.py

を実行したらテストプリントが開始されるはずです。

手順3

SNS名刺プリンターのための手順

参考( http://phiary.me/twitter-api-key-get-how-to/

TwitterのAPIを使うのでAPIキーを取得してください。

https://apps.twitter.com/

にアクセスして適当なアプリを登録しましょう。
ユーザー情報を取得したいだけなのでRead onlyのアプリとして登録するといいと思います。

登録したらConsumer Key、Consumer Secret、Access Token、Access Token Secretを取得してください。

取得したら、Raspberry piの方に戻り、名刺プリンタのライブラリのディレクトリMeisiPrinterにあるTwitter.pyを編集します。

Twitter.pyの
CK、CS、AT、ASにそれぞれ取得したキーを入力してください。
("Input ○○"のダブルクオーテーションの中身を書き換えてください。)

		self.oathkeys = {
			"CK":"Input ConsumerKey",
			"CS":"Input ConsumerSecret",
			"AT":"Input AccessToken",
			"AS":"Input AccessTokenSecret"
		}

その後、

python meisi.py

を実行し、Twitterのユーザー名の入力が促されたら、入力すると名刺が印刷されるはずです。

手順4

styleについて

限定的ではありますが、名刺のフォーマットはxmlで管理しています。
styleディレクトリにある、twitter_meisi.xmlやtwitter_meisi_mini.xmlのようにです。
名刺のサイズ、それぞれの画像、文字の位置を管理しています。

twitter_meisi.xml等を参考にxmlの中身を書き換えると画像、文字の位置、サイズを変更できます
読み込むタグStyleParser.pyのcreate_style_list関数の中にて判定しています。
自分で追加したいタグがあればそちらで定義してください。

プリンタの都合上384pixel以上のピクセルは受け付けないようなので、サイズに注意。

印刷の濃さについて

印刷の濃さ等はprinter.pyの__init__のところでデフォルトの値を変更できます。
「いいね!」 1

手順3
SNS名刺プリンターのための手順
参考(http://phiary.me/twitter-api-key-get-how-to/)
のリンクが切れてる気がします。確認お願いします

参考URL変えました!

ありがとうございます!
そしてぼくのラズパイは古すぎて無線ない子だったので別のボード買って試してみます。

先日スパコミいってきました。Twitterでは、「名刺が欲しい。でも印刷し忘れてコピー機は混んでる」といったツイートを見かけました。こういった手軽に、必要な情報だけその場で印刷できる、といったサービスがそういうところであれば便利だな~~~って思いました!

なるほど!確かにそのような場面だと有用ですね!
情報ありがとうございます

Twitterで、アプリ連携で、QRコードをつかった名刺みたいなようなモノが拡散されていましたhttp://monokakitools.net/prof/index.php

こんな感じっぽいです。
場所情報は載らないですがお手軽ですね。

おーこれはお手軽ですね
この画像を2値化して印刷なんてのもありですね