SSブログ

そうだ,ラズパイでポータブルしよう!(仮) [Raspberry Pi]

『RPi4で何か… 第2弾(?)』って事で,そうだ,ラズパイでポータブルしよう! ってのが,今回のお題目。(実は,今決めた(笑)
そこで,とりあえず15.6インチのモバイルディスプレイを用意してみました。
# 事の始まりが,単にAmazonで安いのを見つけたから… ってのは内緒。

ラズパイにLCDって言うと,純正の7インチ,大きくても10インチ位と思いますが… そこを敢えて15.6インチ。
15.6インチはポータブルなのか?ってのは置いておいて…
2.5インチとか,5インチとか,みんながやっている事をやっても面白みに欠けるでしょ。
# ほんとは老眼が進んで,ちんまい画面がシンドいだけなのは内緒(笑


仕入れたブツはこんな感じ… Amazon.jpでもタッチスクリーン付きだと20k越えの中,15k円位で買えた。
以下,MBP15と重ねてみましたが,MBP15が隠れるサイズ(笑

rpi4pad_1.jpg

B6判のコミックスが,ほぼ実サイズで見開き表示出来ます(何故モン娘… orz

rpi4pad_0.jpg

当方的には,普段使いのMBPが16:10なせいか,1920x1080(16:9)は,若干,天地が狭く感じます。

ガワは,アルミっぽく見せてるけど,チャチなプラスティック製,それでも重さは堂々の683g(実測)。
付属のカバーを付けるとなんと1090g!って,サクッと1kg越えます。
RPi4やらモバブやら,諸々載せると,1.5kg超えかなぁ… これは。

で,写真撮影前の話…

いつも通り『開封の儀』なんてすっ飛ばして,ちゃっちゃと繋いで電源オ〜ン!
なんと,初起動からタッチスクリーンは動作します。(こいつ,動くぞぉ!)
おぉ素薔薇しい!なんて素敵なんだ… これは手間いらずで良いではないか!ってのは,ヌカ喜び,取らぬ狸の皮算用。

2本指タップが動作しない… (がっがぁ〜ん!

これRPi界隈では,当たり前の事の様…
とりあえず2本指タップ(右クリック相当)をどうにかしないと,使いづらいったらしょうがない!!

ここから情報収集開始… いつも通りの "行き当たりばったり" が発動です(笑
いや〜TouchScreenの設定って…
まとまったネタが何処にも無いので,少々苦労しました。

て事で,そうだ,RPiでポータブルしよう! って大見得切ったのですが,まずは,2本指タップを動かすまで。
当方の様に,勢いでモバイルディスプレーを買ったけど,タッチスクリーンをどうしましょ?な貴兄の何かの足しにして頂ければ幸いです。


『そうだ,ラズパイでポータブルしよう!』は…

な,感じでやってます。(ました。)





* 以下は作業Logな感じですが,紆余曲折七転八倒Try&玉砕な部分は省いてます。

HW:

  • Raspberry Pi 4B(8GB) with Argon ONE (ケースです)
  • G-Story 15.6inch MultiTouch Display

セットアップには,キーボード,マウスが有ると便利ですよね…
当方は,いつも通り,MBPからのVNCとSSHでヤっつけです。

OS:

  • Raspi OS Desktop 32bit (2020-08-20) →32GBのMicroSDカードへ

OSのインストールに関しては,そこかしこにネタが有るのでググるのが早いです。
当方は,SD作成時に,SSHの有効化とWi-Fiのアクセス情報をセットしてから初回起動してます。
これなら電源接続のみで起動,即SSH可能なので便利です。

接続: こんな感じ…

Rpi4_display.jpg

Displayには,USB-A Microが付いているけど,使い方が分からない orz
# マニュアルは同梱されているけど,日本語が怪しいすぎる…
USB-Cは2ポート有るけど,一方は電源専用(DP対応),もう一方はデータ用,データ用からでもDisplayへ給電可能です。
# USBの "Y字ケーブル" は,Displayの添付品を使いました。


2本指タップを実現する上で "twofinger" ってソフトを使いました。(まんまな名称(笑

ご参考:


タッチスクリーンの接続は,USBになっているはずなので…

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1d5c:7102 Fresco Logic 
Bus 001 Device 004: ID 2a94:524d 
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

『名無し』のデバイスが居ます。

$ usb-devices reports
  :
  :
T:  Bus=01 Lev=03 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=2a94 ProdID=524d Rev=01.01
S:  Manufacturer=G2Touch
S:  Product=Multi-Touch by G2TSP
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=usbhid
I:  If#=0x1 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
  :

VendorIDとProdIDから『名無しさん』が,お目当てのTouchScreenらしい…


H/Wは見えるので,今度はS/W側…

$ lsmod | grep hid
hid_multitouch         24576  0

xinuptで認識してる?

$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ G2Touch Multi-Touch by G2TSP            	id=6	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]

「G2Touch Multi-Touch by G2TSP」が居ます。


セットアップの下準備。

$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y build-essential libx11-dev libxtst-dev libxi-dev x11proto-randr-dev libxrandr-dev xserver-xorg-input-evdev

twofingerのソースをダウンロード,展開,ビルドしてインストール。

$ mkdir ~/temp
$ cd ~/temp
$ wget http://plippo.de/dwl/twofing/twofing-0.1.2.tar.gz

$ tar -xvzf twofing-0.1.2.tar.gz && cd twofing-0.1.2
$ make
$ sudo make install

定義ファイルの編集。

$ sudo mv /etc/udev/rules.d/70-touchscreen-egalax.rules /etc/udev/rules.d/70-touchscreen-G2TSP.rules
$ sudo nano /etc/udev/rules.d/70-touchscreen-G2TSP.rules

中身(元の中身を全消しして,以下に置き換える)

SUBSYSTEMS=="usb",ACTION=="add",KERNEL=="event*",ATTRS{idVendor}=="2a94",ATTRS{idProduct}=="524d",SYMLINK+="twofingtouch",RUN+="/bin/chmod a+r /dev/twofingtouch" KERNEL=="event*",ATTRS{name}=="G2Touch Multi-Touch by G2TSP",SYMLINK+="twofingtouch",RUN+="/bin/chmod a+r /dev/twofingtouch",MODE="0440"
Hint:
  • 70-touchscreen-egalax.rules は,twofingerをインストールすると,自動作成されます。
  • ここでは,ファイル名を /etc/udev/rules.d/70-touchscreen-G2TSP.rules に変えてます。

X11 configの修正

 
$ sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf

以下を文末に追加する。

Section "InputClass" Identifier "calibration" Driver "evdev" MatchProduct "G2Touch Multi-Touch by G2TSP" Option "EmulateThirdButton" "1" Option "EmulateThirdButtonTimeout" "750" Option "EmulateThirdButtonMoveThreshold" "30" EndSection

* 当方,上記の意味を全く理解してません(爆


Rebootします。


ターミナルで以下実行,エラーが無く,こんな感じに出たらOK

$ twofing --debug
twofing, the two-fingered daemon
Version 0.1.2.20120708

Input device name: "G2Touch Multi-Touch by G2TSP"
XInput device id is 6.
XInput device id for calibration is 6.
Start calibration
No calibration data found, use default values.
Calibration: MinX: 0; MaxX: 1920; MinY: 0; MaxY: 1080
Invert X Axis: No
Invert Y Axis: No
Swap Axes: No
Calibration Matrix: 	1.000000	0.000000	0.000000
                    	0.000000	1.000000	0.000000
Grab Result: 0
Reading input from device ... (interrupt to exit)

この状態で,Desktopで2本指タップすると… Logが表示されつつ…

Current window: 'lxterminal'
Use default profile.
^C

同時に,Desktop上に,コンテキストメニューが表示されます。

* Ctrl+Cで抜けます。


自動起動の設定
Xが起動した時に,自動でtwofingerも起動させます。

$ cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/autostart
$ nano ~/.config/lxsession/LXDE-pi/autostart

文末に以下を追加

@/usr/bin/twofing
Caution !
  • ググってみたら。autostartが無いとか,使ちゃダメとか,うまく動かないとか,何を言ってるのか,よく分からない… 動かしゃいいんでしょ。
  • autostartは…
    • 基本的に /etc/xdg/lxsession/LXDE-pi/autostart が実行される。
    • ただし,~/.config/lxsession/LXDE-pi/autostart が存在すれば,こちらが優先的に実行され,/etc/xdg/lxsession/LXDE-pi/autostart は無視される
  • @/usr/bin/twofing で,うまく起動しない場合は,waitを入れてみる。
    頭に@を付けると,起動失敗してもリトライするっぽい…のだが。

waitを入れてみる:
autostart内では出来ないので,外にスクリプトを用意して,それをautostartで起動するようにします。

~/twofinger.sh

#!/bin/bash sleep 3 # 適時要調整 /usr/bin/twofing

autostartへの記述は,こんな感じ…

@/home/pi/twofinger.sh

これで,起動後に2本指タップが使えるようになりました。


余談:

まだ主要部材が全て揃っていないので,本当に組み上がるかは不明。
何より部材全部を合体させる方法が見えてこない…
ケース(今回はカバー的な何か?)で難儀するのは,いつも通り確定事項。
しかも,ラズパイって厚みが有るので,薄くするのは困難…
純正7インチLCDにRPiが合体した,あの醜悪な図,あれより酷い事になりそう orz

あとは重量に関して,1kgを楽に超えるので『ポータブル』感はありませんね(笑
さてさて,どうしたものか…


部材が色々足りないので,ソフトを色々お試し中。

  • 本体回転で,画面も回転
    • スマホやタブレットでは,当たり前の機能。
      でもラズパイでは面倒らしい。
    • 切替スクリプトは用意したけど,スマホと違って,ぬるっと回転はせずに,画面ブラックアウト,1,2秒待って切り替わるって感じ。
    • 発注したセンサーって,6軸?9軸?(忘れた
      • 実装とか制御とか,まるで考えてない。(現物来てからです
  • kodi
    • みんな大好きメディアプレイヤー
    • 録画した番組の消化にもってこい!(お風呂では無理だけどトイレならOK
    • 『ラズパイでレコーダー』のチューナーを使って,IPTV。
    • 当然,Amazon Prime Videoも観られる。
    • ラズパイのWebブラウザからウォッチリストをサクッと編集出来るのは良いかも。
  • MComix
    • サンプルで『モン娘』を表示してたのが,このソフト。
    • どのソフトが良いのか分からないけど,ライブラリ機能とか要らないし,面倒が少ないのが良いですね。
  • レトロゲームエミュ(未確認)
    • Nintendo Switchに勝てるのは,画面サイズだけ(爆
    • 死蔵している "8bitdo BT Gamepad" を使ってみようか…
  • ポータブルヴィデオ会議とか
    • 流行りみたいなので,カメラ付けてとか有りかな?
    • 現状,MBPで足りてるけど…

あ,それで これ,つづく… の?


コメント(0) 
共通テーマ:趣味・カルチャー

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。