ここのところ、Raspberry-pi + 液タブ + pn532 + オリジナル通信デバイスという構成で製品化開発をしております。液タブは、XP-PEN、WACOMを使ってみてますが、いろいろと問題にぶつかってしまってたりするので、備忘録を書いておこうかと。
WACOMとRaspberry-pi
使っている液タブは、Cintiqシリーズです。HDMI接続、USB接続をすれば、マウス代わりのペンはそれなりに動きますが、設定を変えようとするといろいろと障害がでてきます。
1.xsetwacomが使えない
正確に言えば、wayland deviceではない、ということでまともに使えない状態。サイトを検索してもwacom driverのインストールと/boot/firmware/cmdline.txtの追記すれば良い的なことがあちらこちらに書いてある。(多分コピペ、オリジナルはどこなんですかね?)
ところが、本日時点(2024年11月14日)でのRaspberry-piのOSでは動作しない。
探っていくと、やはりXserverをX11にしないとダメっぽい。ということで、X11に変更する。
変更の仕方は、下記サイトを参考にしました。
raspi-configでは、もう一つでてきて、3つの選択肢でしたが、あまり気にせずにX11を設定。
再起動して、無事にxsetwacomが動作します。
2.画面を回転
次に画面回転ですが、わりとxsetwacom –helpをみれば出てくるようなことばかり掲載しているサイトばかりで、どうしたものかと思っていましたが、試行錯誤で理解。
何が困ったかというと、xsetwacomで回転に合わせて座標を出力しないと、ペンの位置とカーソル側なくなります。で、これに対応したコマンドとして Rotateというのがxsetwacomには準備されているんですが、曲者が、このコマンド指定するする際に必要な device name というやつでした。
例えば、画面を右回転(cw)しようとしたら、xrandrというコマンドで、Windowの画面を回転させて、xsetwacomで液タブの座標出力を右回転させた出力に合わせる、という段取りが必要になります。で、この時に、ターミナルのコマンドラインでコマンドを打つわけです。コマンド書式は、こんな感じ。
xrandr -o 回転方向
xsetwacom set “device name” Rotate 回転方向
xrandrの回転方向は 0:normal, 1:左回転(ccw)、2:180度回転、3:右回転(ccw) になってます。これに合わせて xsetwacomの回転方向は、none,ccw,half,cw とこちらは文字列で指定。
必要なのは、device nameとなる文字列。これにstylusと入れても、そんなもの無いといわれる。
ここで、xsetwacom –listで列挙されたものを眺めてると、
Wacom Cintiq 16 Pen stylus id: 16 type: STYLUS
Wacom Cintiq 16 Pen Eraser id: 13 type: ERASER
と表示。もしかして?と右側の長ったらしい名前を利用してみたら、OKになった。
つまり、右回転(cw)をする場合は、こんなコマンドを打ちます。
xrandr -o 3
xsetwacom “Wacom Cintiq 16 Pen stylus” Rotate cw
これで画面回転とペン座標が一致するようになりました。
※かかるコストではXP-PENで何とかしたいところですが、ペンの応答性はWacomの方が段違いに早いのと、XP-PENでは、画面解像度とOS側のWindowの解像度が一致しないときがあったり、また画面回転の座標変換方法が不明だったりで、見送り中・・・
※pn532について
これはNXPから出ているNFC/RFIDの基板で、libnfc経由でNFCカードリーダーにしようとしているためにつなげています。が、データブロックの中身について、libnfcを利用して取り出せてないので、これは今後のアプローチになってます。こちらも、後日記事にできればいいなぁ、と。

