あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

C99 コミケレポート&除夜のEjectレポート

あけましておめでとうございます。本年もどうぞよろしくお願いいたします。

2年ぶりのコミケ

昨日は2年ぶりのコミケを思いっきり楽しんで来ました。

サンライズの箱を引いて歩くのも2年ぶり。台車はホームセンターで新調しました。ちょっと高かったけれど、前の台車の車輪が弱ってたので買い替えです。ざっくりいつもどおりで移動したら、待ち合わせ時間よりだいぶ早くりんかい線までついてしまい、東京テレポート駅でトイレタイムをはさみましたが、そこで「トイレに一回寄ることを考慮したスケジュール」だったことを思い出しました。

f:id:Akkiesoft:20220101145242j:plain

国際展示場駅で降りてエスカレーターを登るときの壁広告(内容は別)をみて、2年ぶりに来れたみたいな気持ちがすごいこみ上がってきて、エモすぎて泣きそうになりました。年取って涙腺緩んできたかもしれん。

f:id:Akkiesoft:20220101145633j:plain

何もかもが懐かしすぎてと言うか、コロナ乗り越えて来たぞみたいな、そんな気持ちになり。

f:id:Akkiesoft:20220101145636j:plain

コロナ以降もたまに来てたけれど、コミケで朝に訪れるビッグサイトはいいものだなあ……。

f:id:Akkiesoft:20220101145925j:plain

f:id:Akkiesoft:20220101150018j:plain

今回もラパオとの合体サークル出店でざぶとんくんとまってんくんのコンビと、家のサークルは今回はMastodon方面からあくらふさんをお誘いしての参戦となりました。

サークルスペース設営

2年ぶりということで、いつもはOSCと同じくその場のノリで雑に陳列をしていましたが、今回は前日に自宅でリハーサルをしておいたので、その結果をそのまま再現するかたちで配置しました。あの布と本棚は1回使った直後にコロナになってしまったので、2年ぶりにして2回目の活躍です。

f:id:Akkiesoft:20220101150527j:plain

在庫の平積みはせず、本棚はカバー付きの見本だけを陳列しました。真ん中に100ショップの網棚と、その上にSquareの端末と自作レジアプリと名刺類を配置しています。左の書類ケースの上にコイントレイと除夜のEject告知カードを配置。IC決済のPOPシールはまってんくんが気がついて「勝手に作ってきた」ものをありがたく使わせてもらいました。実際わかりやすくてよかったので嬉しい。(FIX ME: ロゴの権利とか…🤔?)

裏から見るとこういう感じです。

f:id:Akkiesoft:20220101152016j:plain

書類ケースは在庫入れになっており、注文が来たらここから取り出す仕組みです。一時期自宅から通販対応をしていた時に同じ感じで入れていたのをそのままコミケでもやってみた感じですが、小規模な弊サークルならこれでも1日数回の補充でなんとかなりました。そもそもの持ち込みが少ないし一般参加者も少ないので、ということもありますが。

iPadはSquareのアプリ用端末兼なんか色々垂れ流したり私が暇つぶしをする用でした。スタンドはあきばお~で見つけたかったものですが、固定を緩めればグルグル回せるので、お客さんに見せたり自分に向けたりできて重宝しました。

本棚の裏と網棚の下はバッテリーとか小物入れにしています。たまに使うものもあの布のポケットに収納しておけるので、手元はだいぶさっぱりしました。レシートプリンターは裏側に配置です。

頒布結果

今回は壁の向かいのお誕生日席で、過去のトラウマがちょっとあったのですが、ビフォーコロナの時にあったような、一般参加者で溢れて通路がこちらまで来てしまうとか、流れがきつすぎて人が来るどころではないとかみたいなことにはならず、快適に頒布活動ができました。一般参加のチケット入場制の導入と入場数の制限で一般参加者が少なかったおかげと言えます。

一方で一般参加が少ないということは頒布数も見込めないので、持ち込み数は直前まで悩んで、大量に売れ残ったEject2020とらずぴっぴいじり5を売りたい気持ちを抑えて減らしたりしていたのですが、結果としては正しくて、いずれも持ち込み分は完売には至りませんでした。コピー誌の新刊を単品購入不可にしたのはセコいかなと悩んでいたものの、Eject2020とセットで購入いただけたので、大変助かりました。

自作レジアプリで記録された頒布数と売上結果をまとめます。先述の通り新刊とEject2020の組み合わせがよく出たのでこれがトップにいます。ラズピッピいじり5はコロナ前の新刊時から芳しく無く、自分で読み返してもびみょい気がしているので多分そういうことなんだと思っています。TinyPicoKeyもどうなるかわからんなと思いながら出したものの意外と買ってもらえて何よりでした。ぜひTiny2040も買って遊んでほしいですね。意外なところではEjectまとめ本と麦子アクキーが3つずつ出ています。まとめ本は表紙のIKEAパロで勝ってる感があるので、さすがIKEAという感じ。麦子は価格改定効果かも?ただ、確かもう赤字です。

アイテム 持ち込み数 売上数
あっきぃのラズピッピいじりPetit-3 28 24
Eject2020 30 21
あっきぃのラズピッピいじり5 25 4
TinyPicoKey[ピンヘッダ付] 6 4
TinyPicoKey[基板のみ] 6 3
EJECTO 2012-2017 5 3
あっきぃのラズピッピいじり4 15 3
麦子アクリルキーホルダー 5 3

レジが良かった

今回自作したレジアプリについて。これは数日前に一旦完成の記事をあげておきました。

akkiesoft.hatenablog.jp

当初お客さんにある程度触ってもらう想定でいましたが、結局私がすべてオペレーションをしていたので、次回はこちらを向けても良い気がしつつ、この端末で目を引いてもらえていたので、まあ気合で逆から操作するのでもいいと言えばいいですね。あるいは操作者が触るべきタイミングで画面を回転させるとか。

レジアプリは以前はPixivPAYアプリのレジを使っていたもののサービス終了で死亡し(カウントが正確にできてたのでよかった)、その前は正の字カウントでずれて頭を抱えると言った感じでしたが、今回は全くズレることなく一発で会計を〆ることができました。勝因は多分「最後にレシートを発行して渡す」手順があったため、端末を必ず触る必要があった点だと思いました。Square払いのときはほぼ同じレジ処理をSquareアプリ側でもやる必要はありますが、それでも自前レジアプリを動かす意味はあったなと思います。売上管理もアプリがCSV出力してくれるため、上に出したような表も割とさっと作れてよかったですし、売上合計も現金とSquareそれぞれの計を出して突き合わせをしやすかったです。

コミケ中とコミケ後で気づいた改善点はこんな感じ。

  • コミケ中: 途中の売り上げ状況を確認できると良かった。レシートで出せるとなお良さそう
  • コミケ中: 会計画面に進んだ時にどの商品が選ばれたのかわからないとSquareで同じオペをしにくい時があった
  • コミケ中: Squareのアイテム並び順と自前アプリの並び順を同じにすればよかった(現場で気づけ案件)
  • コミケ後: 持ち込み数と残部数の管理もできればもうちょい楽できそう

まってんくんがRTしてた売上セルフレポートのやつ。こういうの出したい。メンテ画面の実装が求められる。

現金 vs Square

結果は現金7000円くらい、Square11000円弱でSquareでした。Squareの利用銘柄は交通ICが多めですが、iDも負けておらず、あとはVISAタッチなどのクレカ非接触決済でした。物理カードは「そういやだれもやってないね」となってまってんくんが1回やった程度です。クレカ非接触決済ができるのは知らなかったので、そっち系に詳しいまってんくんから教わったことが多い一日でした。Apple WatchのWalletに入れてるクレカでVISAタッチできるのすら私は知らなかったので…!

Squareだと決済手数料が3〜4%取られるのでそこがあれと言えばあれですが、端末があるだけで「オッやってみようかな」みたいな惹きつけができるなと感じたので、次回以降もSquareはやっていこうとおもっています。

バッテリー

レジアプリといいSquare端末といい電気小物が増えたので、手持ちのモバイルバッテリーを総動員して挑みました。

f:id:Akkiesoft:20220101160409j:plain

  • レジアプリには一番でかいダンボーの13400mAhを割り当てたものの1メーター消費したかしないかで終了
  • Squareはダイソーの3000mAhバッテリー(写真中央のシール貼ったやつ)を割り当て、1メーターで終了
  • もうだいぶ古いのでそろそろ退役のミクバッテリー(4400mAh)はおもにポケモンGoで使っていたiPhone11とメインの12miniの充電にわり当ててほぼ消費
  • Qi充電もできるAnker5000mAhも12miniでたまに使ったもののほぼ未消費
  • AC充電ができるAnker5000mAhは未使用

結果的にはそこまでいらんかったなという感じでした。ダイソーとミクバッテリーはそれぞれAnkerに差し替えて3台で十分でしたね。

一番懸案だったレジアプリが、節電の工夫とか使用ディスプレイ変更(オフィシャル7インチ→HyperPixel4)で使用電力がガラッと変わったので、その効果がデカかったです。ただこいつはバッテリーの電圧出力低下に敏感だったので、ダンボーバッテリーが最適な感じでした。もしかしたらAnkerでも良かったかもですが。

20000mAhとかの暴力的容量&サイズのバッテリーを見てちょっと欲しくなったりもしましたが、コミケ意外じゃ使わんしなあと思ったりするので悩ましいところです。

あと、バッテリー内臓のレシートプリンターも、ちゃんと1日持ちました。こいつこそいつのバッテリーかわからんのにすごいなあ。

C99がおわり、C100へ……

コミケ終了後はいつもどおり自分の周りの机いす解体でテンションをブチアゲてから撤収しました。サクチケをワケてご一緒していたあくらふさんとはここでお別れして、あくらふさんは撤収の最後まで参加された模様。あくらふさんの無限並の労働力すごすぎる……。

最後にまた来たいね〜的な一枚を撮影。

f:id:Akkiesoft:20220101162404j:plain

オッ許せんな

mstdn.nere9.help

social.mikutter.hachune.net

Beautiful......

mstdn.maud.io

さて、次回はコミケ100回目とのことで、申込みはしてみたいところですが、当選できるかどうか、情勢が許すかどうかはまた別なので、また参加できることを祈るしかないですね。参加したい。

晩飯

いつも通り市が尾で一旦下車して見切り品肉を買い込み、帰宅即優勝しました。打ち明げ自粛令がコミケから出されていましたが、そんなことするまでもなくぼっちの俺たちには関係のない話であった(完)

f:id:Akkiesoft:20220101162922j:plain

除夜のEject 2021

今年も開催しました。Twitterでうっかり深淵に触れてしまった初見さんが「狂気…」とツイートするのを見てニヤニヤしつつ今年もスタート。1時間半くらいかけて108回鐘をつきました。その後はフリープレイモードでデモ用URLを公開して好き放題してもらって配信を終えました。

写真をとり忘れたので、配信のアーカイブを見るとかしてください。下の写真は前日の設営風景です。

f:id:Akkiesoft:20220101163207j:plain

www.youtube.com

mikutterで年越し

今年はガキ使がなかったのでテレビを付けることもなく、23時半からmikutterのチケット棚卸し配信に参加して年を越し、3時までmikutter談義やら雑談やらをしていました。そんな年こともまたいいね。

コミケレジアプリできた

諸々実装ができたはずなので公開しました。

github.com

メイン画面。商品情報はJSONに書いてあって、そいつをループで回して出してあります。今回は出し物が微妙に多いのでマックスまで配置されました。商品情報はレシートプリントとか販売記録出力にも使われてます。

f:id:Akkiesoft:20211229213336p:plain

現金払い画面。キーボード使うのがダルいのでキーパッドを実装。入力するとすぐにお釣りが表示されるのでよさげ。

f:id:Akkiesoft:20211229213400p:plain

レシート。日時も入りますがこれは入れ忘れたバージョン。

f:id:Akkiesoft:20211229220258j:plain

端末の選定

開発中はRaspberry Pi公式ディスプレイを使ってきましたが、ふと気づいてHyperPixel4にしてみたら、案外こちらでも操作性に難はなさそうだったので、こちらを使うことにしました。また、Raspberry Pi本体には薄い本でも取り上げたWaveShareのIOボード+CM4(SDカードブート)を採用しました。

f:id:Akkiesoft:20211229220813j:plain

公式ディスプレイよりHyperPixel4の方が省電力ですし、CM4もPi4に比べて無線とVL805がない分省電力で動く(節電テクも駆使して0.2A程度)ため、合わせても消費電力が0.4A程度で済むのがかなり良いです。無線LANがないのは使うときだけUSBドングルでカバー、キーボード・マウスも念のため持参して、なにかあったら対応できるようにしてあります。SDカードをもう1セット作っておけば完璧かな。

サークルスペースでの支払い方法について

100円払い機についてですが、採用を断念しました。サージ問題が再発してしまい、ウンウン唸っていたら、GPIOにケーブルを垂らした(コインセレクターにつないでない)状態でコインセレクターに100円玉を当てこすってもカウントされることがわかった瞬間に諦めがつきました。多分ですが、Raspberry Pi側の問題っぽいです。ググると、ローパスフィルターだとかなんとかが出てきましたが、勉強している時間はもう取れないので無理だなと判断しました。現金はすべてコイントレーでお願いします。

Square払いは、JCBの審査が間に合わなかったようなので、クレカはVISA/Master/Amexのみとなりました。また、磁気カードリーダーがないので、ICカードでない場合は番号手打ちになります。接触カード系は、交通系ICカードとiDが使えます。例えばJR東海JCBカードな人はApplePayでiD対応ができるので便利です。私もこないだカードの更新が来た時に気づいて設定しました。

あらためて

弊サークルは12/31(金)東テ-23a「こくだランド」で出店します。いらっしゃる方は十分に気をつけていらっしゃってください。

f:id:Akkiesoft:20211225023907p:plain

ちなみに"全部ください"をした場合は3200円です。TinyPicoKeyの板だけを抜けは3000円ピッタリですね。まあそんなやつはおらんけど。

f:id:Akkiesoft:20211229221829j:plain

TinyPicoKeyの説明書も作り終え。なかなかいい雰囲気になったー。

f:id:Akkiesoft:20211229222026j:plain

コミック

本棚に収めないと片付かない

エロマンガ先生 (11・12)

11巻飛ばしてて、両方まとめて。11はムラマサがえっちだったし12はエルフがえっちだった。rin先生の絵柄がよかったですね。

亜人ちゃんは語りたい (10)

首がつながる回!
しかし次回で最終巻らしく楽しみでありつつ寂しいですな。。

小山内夫妻はいとなみたい (2)

ど、どうオチるんやろなあ。

世話やきキツネの仙狐さん (10)

もふもふ分補充マンガ。水着回もあるよ

月曜日のたわわ (3)

たわわは青版にかぎる。Twitterのサイレントもいいけど、ストーリーがついたたわわもよき。

Raspberry Pi Advent Calendar 25日目

Raspberry Pi Advent Calendar 25日目です。おかげさまで2年連続の完走となりました。ご参加いただいたみなさま、ありがとうございました。

adventar.org

つぼさんは、こんどオジギソウの種を送りますね。mayukaさんはSecondlifeと音楽ストリーミングのお話をありがとうございました。arkw0さんはスキャナーの話で楽しそう〜と思っていたら、どうしてOrange Piの話をしてしまった……w。Orange Pi Zero LTSは調べた感じ技適がなさそうだったのですが、大丈夫なんでしょうか?🤔Orange Piのこと知らないので違ったらごめんなさい。

というわけで今日はシメにふさわしくない雑多な小ネタの寄せ集めです。

ラズパイインスパイア系ボードとCompute Module

Jeffの動画より、PINE64などのRockchip系ラズパイインスパイア系ボードが、Compute Module 4コンパチのモジュールボードを出しているようです。

www.youtube.com

ラズパイのフォームファクターをパクるのって大丈夫なのかなあと昔から各種インスパイアボードが出るたびに思ってるんですが、Compute Module 4もか……面の皮が厚いと言うかなんというか(?)。

紹介されたCM4パチボードは、ありがちな「Raspberry Piより高スペック!!!」がウリのようですが、同じくありがちな「情報不足」「手薄なソフトウェアサポート」「コミュニティの小ささ」もいつもどおりっぽく、コメントもそのへんが嘆かれていたので、まあ所詮インスパイア系と言った感想でした。

しかし、コミケの新刊のコピー誌でも言及していますが、CM4は現状ほぼ全く入手できないのがつらいところです。技適もまだですし。RAMたっぷりのCM4が欲しいよお〜。

サージ問題再び

私の前回のブログの続き。

akkiesoft.hatenablog.jp

サージ対応ができたので箱に固定しました。電源も雑にユニバーサル基板にごにょっとしたものを取り付けました。

f:id:Akkiesoft:20211225014114j:plain

が、固定した途端、サージ問題が再発しました。コインセレクターの前でカチャカチャするだけでお支払い完了してしまう……。うーんなんか持っていくか悩ましいなあ。

social.mikutter.hachune.net

嘆いていても仕方ないので、コードの整理と、必要な部分の実装を進めています。今回は新刊が単品購入不可なので、それだけ選んだ時に購入に進めない機能、購入完了時にCSVに売上を記録する機能、レシートのコードの組み込み中で日付が変わりました。

残作業はレシート印字、現金支払のUI実装、カード払いのUI実装です。やることがまだ多い。。

リレータッチボードであそんでみた

カレンダーに穴が空いたときに代打できるようにストックしていた記事を放流。スイッチサイエンスのリレータッチボードなるおもちゃであそんでみました。

www.switch-science.com

スマートフォンなどの画面をタッチすることができるボードです。スマートフォンの画面にボードを置いた状態でリレーをONにするとボードを置いた位置を指でタッチした状態として認識されます。

要するに、スマホを指でタッチしているやつをRaspberry Piとか何かしらの電子工作にやらせられるモノ、らしいです。絶対楽しい。というわけで、先日のRTCモジュール購入の時に合わせ買いしていました。

f:id:Akkiesoft:20211208235952j:plain

配線は適当にメスのピンヘッダケーブルを3本用意して、5V、GND、ENのそれぞれにはんだ付けします。Raspberry Piへの配線は、5VとGNDは普通に電源ピンに差し込み、ENはGPIO17あたりに接続します。

f:id:Akkiesoft:20211221234622j:plain

あとはLチカの要領でオンオフしてあげればOKなので、bashで適当に書いてしまいます。

#!/bin/bash
  
if [ ! -f /sys/class/gpio/gpio17/direction ] ; then
  echo "17" | sudo tee /sys/class/gpio/export > /dev/null
  echo "out" | sudo tee /sys/class/gpio/gpio17/direction > /dev/null
fi

while true
do
  echo 1 | sudo tee /sys/class/gpio/gpio17/value > /dev/null
  sleep 0.5
  echo 0 | sudo tee /sys/class/gpio/gpio17/value > /dev/null
  sleep 0.2
done

画面へのモジュール貼り付けは両面テープで、とのことですが、ちょっと面倒かなーと思い、ひっつき虫を採用してみました。これならはがすのは簡単です。

f:id:Akkiesoft:20211221235030j:plain

画面タッチは……そうですね。ひとまずPokemon Goのトレーニングを自動化でもしてみましょう。

social.mikutter.hachune.net

ちゃんとタッチできていそうです。乗っかっているのはリレーなので、オンオフのたびに「カチッカチッ」という機械音がするのがかわいいですね。ポケモンの仕様的な問題かもしれませんが、たまにタッチができなくなってしまうので貼り直しが必要になるみたいです。

タッチができると次はスワイプとか複雑な動作もさせてみたくなりますが、そうするとXY軸で動くプロッター?的な物が必要になるのかな?とおもうとなんか大掛かりになりそうですね。実用的な使い所を見つけるのは難しいかもしれませんが、ネタで遊んでみるにはアリなボードでした。やはり、スイッチサイエンスさんの動画にあるとおりクッキークリッカー…なのかも?w

Raspberry Pi OS Bullseye Desktopの初期セットアップをちゃんとやると日本語入力環境が揃う

Raspberry Pi OS Bullseyeでは、デスクトップ版の初期設定ウィザードをちゃんとやると日本語フォント(fonts-vlgothicとfonts-mplus)とfcitx-mozcがインストールされるようになりました。

ちゃんとってなんだよって話ですが、要点をまとめるとこうです。

  • 言語設定で日本語を設定する
  • ネットワークにつなぐ(有線か、ウィザード中で無線の設定をする)
  • アップデートをスキップせずに実行する

アップデートをスキップしたあとは、再実行しても入らなくなるっぽいので、気づかないとタイミングを逃しますが、以下のコマンドで同等にできます。

sudo apt install fonts-vlgothic fonts-mplus fcitx-mozc

BullseyeとHDMI節電

前に書いたこれの続き。

akkiesoft.hatenablog.jp

Bullseyeではディスプレイ周りがKMSに移行したため、HDMIサービスをオフをするための/opt/vc/bin/tvserviceコマンドがそのままでは使えなくなりました。tvserviceコマンド自体は/usr/bin/tvserviceに移動したため、tvserviceと打つだけでよくなりましたが、HDMIをオフにするには、KMSを無効化して以前のシステムに戻す必要があります。

$ sudo vi /boot/config.txt

# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
↑これをコメントアウト

$ sudo reboot

(再起動後)
$ tvservice -o
Powering off HDMI

一応、Bullseyeでも上記の手順で節電効果は引き続きありそうでした。いつまで使える方法かは不明ですが、KMSを切ってしまうのはアリかなと思っています。

forums.raspberrypi.com

薄い本剃ったあとで気づいてしまったので、パッチを挟み込まないといけませんね……。

ことしのAdvent Calendarおわり!最後に告知!

今回みたいな感じの与太話とかラズパイ作例がたくさんある薄い本は来週のコミケで頒布します。参加チケットの購入が大変みたいですが、ゲットできた方はぜひ遊びに来てくださいね。

f:id:Akkiesoft:20211225023907p:plain

また、ほとんどが既刊で、メロンブックスさんなどで委託中です。年末年始の暇つぶしにぜひ。

www.melonbooks.co.jp

コインセレクターをちゃんとつなぎつつレシートプリント機能に着手

Raspberry Pi Advent Calendar 19日目です。18日目はunaristさんのMIDIバイスRaspberry Piで動かすお話でした。初代Model Bアツい。初代でももちろんBullseyeも動きますしね(たぶんLiteじゃないときついけど)。

adventar.org

コミケまであと2週間を切ったけど、レジアプリは……

今日新刊のコピー誌を印刷・製本し終えました。

f:id:Akkiesoft:20211218223110j:plain

売り物は用意できたので、あとはレジアプリですが、進捗していませんでした……。実は、コイン投入時に誤作動が起こしがちで、コイン投入口にコインを当てこするだけでたまにカウントすることが判明していたのですが、対策を考えるのが面倒で放置になっていました。

もともとの配線はコインセレクターの5V・GND・100円の信号線をほぼ直結していたのですが、ググってみるとどうもコインセレクターはサージが起きやすいらしく、コインセレクターで工作している人達は大体リレー回路を使っていることがわかりました。ウワーめんどくせーという感じになったのですが、100円専用のお遊び要素だとしてもカウントミスはやはり避けたいので導入します。

リレーということは、電源を分離することになりそうなので、この際USBから5V取れるブツを用意して分離していきます。ちょうどMicroUSBのブレイクアウトがあったので、これにピンヘッダーを立てて、D+とD-をショートさせることで電源を取り出せるようにします。

f:id:Akkiesoft:20211218221657j:plain

で、5V電源をリレーモジュールとコインセレクターに食わせて、100円の信号線をリレーモジュールのIN1に接続します。Raspberry Pi側からはGPIO18とGNDをリレーモジュールのK1に接続します。コード側の変更はありません。

f:id:Akkiesoft:20211218221744j:plain

では動作確認。以前はコイン投入口にカツカツ100円玉を当てたりするだけでまれによくカウントされていましたが、それがなくなりました。投入がしっかり判定できていて良さそうです。リレーモジュールが一瞬ピカッと光るのがいい。

social.mikutter.hachune.net

電源分離とリレーでうまくいくようなら、もともとコインセレクターについていたソレノイドのコインシャッターもまたつけられそうですが、昇圧回路とかを考えるのも手間なので今回は外したままにしておきましょう。アレも動くとカチカチ言ってかっこいいんですけどね。

リレーでうまくいくことはわかったので、1ch版のリレーモジュールを買うか否かが悩みどころです。4chはでかすぎるんよ。

レシート!

せっかくレシートプリンターがあるので、レシートというか、私がこれを見ながら商品のピックアップをやる感じの紙が欲しく、レシートをデザインしていきます。レジアプリの操作を売り手買い手のどちらがやるかのオペレーションが固まっていないのが悪いせいではあるのですが……。

さておき、サークルのロゴを出そうとしたところ、画像出力がバグっているのかうまく出せず、断念。雑にpngじゃなくて、ESCPOSに合わせてちゃんとしたデータを食わせたらいいのかなあ?

f:id:Akkiesoft:20211218222757j:plain

まあ、今回はテキストで妥協します。と思ったら文字サイズ変更もライブラリの仕様が変わったらしく、サイズ指定の他にcustom_size=Trueとか言う宣言的なものが必要になっていて、これも出すまでに苦労しました。そのへんがクリアできれば、あとはハードコードでざっくりデザインです。

from datetime import datetime
from escpos import printer
from jptext import jptext

Printer = printer.Usb(0x08a6,0x0041)

# 1x: 16文字
#Printer._raw(jptext("あいうえおかきくけこさしすせそた\n"))
# 2x:  8文字
#Printer._raw(jptext("あいうえおかきく\n"))

Printer.set(align="center",width=2,height=2,custom_size=True)
Printer._raw(jptext("こくだランド\n"))
Printer.set(align="center",width=1,height=1)
Printer._raw(jptext("https://l.kokuda.org/\n"))
Printer._raw(jptext("コミックマーケット99 東5-テ23a\n\n"))
Printer.set(align="left",width=1,height=1)
Printer._raw(jptext("ミ★こくだランドでお買い上げ\n"))
Printer._raw(jptext("  ありがとうございます。\n"))
Printer._raw(jptext("  良いお年をお過ごしください!\n\n"))

now = datetime.now().strftime("%Y年%m月%d日 %H:%M\n\n")
Printer._raw(jptext(now))

Printer._raw(jptext("あっきぃのラズピッピ4        500\n"))
Printer._raw(jptext("あっきぃのラズピッピ5        500\n"))
Printer._raw(jptext("あっきぃのラズピッピPetit-3  100\n"))
Printer._raw(jptext("EJECTO 2012-2017             800\n"))
Printer._raw(jptext("Eject2020                    300\n"))
Printer._raw(jptext("麦子アクリルキーホルダー     500\n"))
Printer._raw(jptext("TinyPicoKeyピン付き          300\n"))
Printer._raw(jptext("TinyPicoKey板のみ            200\n"))
Printer._raw(jptext("--------------------------------\n"))
Printer.set(width=2,height=1,custom_size=True)
Printer._raw(jptext("合 計     3,200\n"))
Printer.set(width=1,height=1,custom_size=True)
Printer._raw(jptext("交通IC支払                 3,200\n"))
Printer._raw(jptext("上記領収致しました。\n\n\n"))

このスクリプトをそのまま使う人はいないと思いますが、jptextはこれです

印刷結果はこちら。やべ、紙がなくなってしまった。ヨドバシでポチりました。

f:id:Akkiesoft:20211218221150j:plain

あとはレジアプリへの組み込みをしていく感じになりますが、なんか若干体調不良気味?なので、健康第一で今日はデザインまでにしておきます。

組み込むために必要な実装が思い浮かべると、複数個買ったときの表記とか、両端揃えとかの処理とか、支払い方法に応じた表記とか、まあまあやること多くてだるそうだなあ?という感じです。レシートに特化したプロダクトがあるのも知ってはいるのですが今回はパスして、なんとか今日作ったやつベースでゴリゴリしていくつもりです。