nyaru
1
製作者: nyaru(@sakura_metal)
Twitterなどのアカウントをその場で印刷できるプリンタです.
ハードウェア
構成
3Dモデル
- サーマルプリンタの3Dモデル(Chris Kelley氏)
https://grabcad.com/library/thermal-printer-1/details?folder_id=365542
未準備・・・
ソフトウェア
requirements
ライセンス
CC BY3.0
nyaru
2
手順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はすでに入ってると思う。入ってなければ適宜導入)
nyaru
3
手順2
ハードウェアの準備
私が持っているサーマルプリンタは入力が5-9Vのモデルなので、5VのAC電源とつないでいます。
13.5W推奨となっていますが、5V2A(PSPのACアダプタ)でも印刷できてます。
逆に9Vの電池とつないだ場合はなぜか?印刷できませんでした。(電流量の問題?)
RaspberryPiの6番ピン(GND)とサーマルプリンタの黒(GND)、8番ピン(Tx)とサーマルプリンタの黄(Rx)を接続
その後、RaspberryPiの先程入れた名刺プリンタのライブラリMeisiPrinterのディレクトリに行き
python printer.py
を実行したらテストプリントが開始されるはずです。
nyaru
4
手順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のユーザー名の入力が促されたら、入力すると名刺が印刷されるはずです。
nyaru
5
手順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
Gym
6
手順3
SNS名刺プリンターのための手順
参考(http://phiary.me/twitter-api-key-get-how-to/)
のリンクが切れてる気がします。確認お願いします
Gym
8
ありがとうございます!
そしてぼくのラズパイは古すぎて無線ない子だったので別のボード買って試してみます。
先日スパコミいってきました。Twitterでは、「名刺が欲しい。でも印刷し忘れてコピー機は混んでる」といったツイートを見かけました。こういった手軽に、必要な情報だけその場で印刷できる、といったサービスがそういうところであれば便利だな~~~って思いました!
nyaru
10
なるほど!確かにそのような場面だと有用ですね!
情報ありがとうございます
Twitterで、アプリ連携で、QRコードをつかった名刺みたいなようなモノが拡散されていましたhttp://monokakitools.net/prof/index.php
Gym
12
こんな感じっぽいです。
場所情報は載らないですがお手軽ですね。
nyaru
13
おーこれはお手軽ですね
この画像を2値化して印刷なんてのもありですね