ラズパイでKuman製のタッチスクリーンを設定する

# はじめに

Kumanのタッチスクリーンが、Amazonで比較的安かったので買ってみたものの、ラズパイの設定で詰まったお話。


下記が実際に買ったもので、商品は7インチのディスプレイと、画面を置く土台となるフレーム、その他諸々が付属していました。
(2020年9月頃)

![タッチスクリーン商品画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246336/da97c922-f47b-caa5-0b1c-a4086da66662.png)

マニュアルが入っていない商品のようで、さらに同梱のドライバらしきものもWindowsからは中身をみることすらできませんでした。
参考リンクに記載している、日本語ブログやYouTubeが一部参考になったのですが、自力でやる部分で詰まった点がありましたので書いていきます。

## こういう人向けの記事になります

Kuman製の似たようなモニターを買ったけど...

* 設定方法がわからない。
* 画面タッチが動作しない。
* 画面を縦にした状態で、タッチスクリーンとして使用したい。

といった悩みを抱えている人向けになります。

## 動作環境等

ラズパイ本体：Raspberry Pi 3 Model B
タッチスクリーンの名称らしきもの：KUMAN 7" LCD DISPLAY (1024*600)
OS：Rasbian 10.4
※OSのバージョン番号は、`cat /etc/debian_version` の返り値になります。

# とりあえず結論

買った当初は、特に調べずに`/boot/config.txt`をいじって解像度を調整してみるも、うまいことタッチ機能が動作しませんでした。

あれこれ調べまわった結果、ようやくメーカーさんのサイトと、メーカーさんが公開している設定のバッチファイルのgithubにたどり着きました。

[メーカーの公式wiki、7inch HDMI Display-C(1024*600) (中文)](http://www.lcdwiki.com/zh/7inch_HDMI_Display-C)
[メーカーの公式wiki、7inch HDMI Display-C(1024*600) (English)](http://www.lcdwiki.com/7inch_HDMI_Display-C)
[バッチのgithub](https://github.com/goodtft/LCD-show)

ソフトウェア側は、こちらのgithubに上がっているものを使用するのが最も手っ取り早いと思います。
**※自己責任でお願いします。**

ハードウェア側は、ラズパイのUSBから直接ディスプレイにUSB給電すればいいようです。
私が購入したディスプレイの裏には、「Touch」と「Power Only」の2種類のUSB miniの差込口がありますが、こちらの「Touch」にのみラズパイから接続してあげればいいようです。
ラズパイの電源は2A以上が良いようです。

## やってみよう

下記手順は、執筆時に該当のgithubの.READMEに記載してあったものを、上から順に記述しています。

* Raspberry Pi OS (旧名称：Raspbian)をインストールする。
* SSH接続、または、raspiのターミナルから、下記のコマンド群を実行する。

```bash
$ sudo rm -rf LCD-show
$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show
$ cd LCD-show/
```
ディレクトリ`LCD-show`が既にあった場合、削除します。
cloneしたものを権限を変更して、該当のディレクトリに移動します。
私は、`/home/pi`で実行しました。

gitがインストールされていない場合は、事前に下記を実行してインストールしてください。

```bash
$ sudo apt-get install -y git
```

* 商品に合わせて、バッチを実行する。

サイズ・解像度を含めて私が買ったものと全く同じである場合*(Kuman 7インチ 1024*600)*、下記を実行してください。

```bash
$ sudo ./LCD7C-show
```

実行すると、バッチが走った後に再起動します。
再起動後に上手くタッチ操作できれば、成功です。


## 画面を縦向きで使用したい場合

画面を縦にして使いたい場合、`/boot/config.txt`に`display_rotate=1`を追記すると、画面そのものは90°倒した形になりますが、タッチ機能は画面の向きに追従しません。

また、試行錯誤して、`lcd_rotate=1`等を更に追記して解消を試みたものの、うまくいきませんでした。
こういった場合も、公式でサポートがされていました。

上記の公式のバッチ(`sudo ./LCD7C-show`等) を実行した後で、下記のコマンドを実行しましょう。

```bash
$ cd LCD-show/
$ sudo ./rotate.sh 90
```
cloneしたディレクトリに移動し、バッチを実行します。

これで、縦置きでも正常にタッチ機能が動作するようになりました。
90°を指定すると、ちょうどHDMIやUSBの差込口が上向きになります。

## 何をしているのか

バッチ実行で一体何をしているのかというところが気になりました。
こちらのディスプレイを商用利用で使用した場合、個人でも細心の注意を払いたい場合は、よく読まれた上で実行された方がいいかと思います。

私は勉強不足であまりバッチの読み書きの知識がなく、趣味での利用だったので、軽く読み飛ばした上で実行しました。

[LCD7C-showの中身](https://github.com/goodtft/LCD-show/blob/master/LCD7C-show)
[rotate.shの中身](https://github.com/goodtft/LCD-show/blob/master/rotate.sh)

前者は、`config.txt`のバックアップを取りつつ、追記しているようです。
後者は、よくわかりませんでした...

`sudo ./LCD7C-show`と`sudo ./rotate.sh 90`を実行し、`/boot/config.txt`を確認したところ、下記が追記されていました。

```/boot/config.txt(一部)
hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
display_rotate=1
max_usb_current=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=87
hdmi_drive=1
hdmi_cvt 1024 600 60 6 0 0 0
```

# 余談

~~いかがでしたでしょうか。~~

ついでに、買った商品の導入面以外のレビューをします...

* 画面のフレームと付属のUSB miniのケーブルが干渉するので、画面側のフレームの正面から見えない一部分を切り落とす必要がありました。
* ラズパイを背面に固定できるものの、専用のカバーがないので基盤が剥き出しになってしまう。(流石に取り外しました。)
* 画面が若干暗い...?
* Nintendo Switch用の画面保護のガラスフィルムが、サイズ的にピッタリ貼れる。(どうでもいい)

ほぼ付属したフレームによる不満ですね...
こちらは箱に入っていたので、おそらく正規のフレームではないかなと勝手に思っています。

商品そのものとしては、やや導入に難あったものの、使えはするのでコスパは評価できるものではないかと思います。
ラズパイ公式のものは明るさ調整できるようですが、こちらはできないようですね。

いいねと思われましたら、LGTMいただけましたら幸いです。

# 参考リンク

[jumbler様のブログ jumbleat-Kumanの7インチモニタ](https://jumbleat.com/2018/12/26/kuman_monitor_for_raspberry_pi_zero/)

また、碧流星様がYouTubeにてフレームの組み立て動画をアップロードされていました。
https://www.youtube.com/watch?v=lEIvY5QLOI0