2016年5月2日月曜日

Raspberry Pi3 を一体型 PC にする (2) :リベンジ

前回、Raspberry Pi3 を無線 Linux 端末にするところまでたどり着きました。
最後の手順で LCD-show.tar.gz をダウンロードしましたが、
現時点で最新の Raspbian である jessie ではこれは上手く動きません。
waveshare のマニュアルをよく読むと書いてあるんですが気づきませんでした。

また、amazon の商品説明にあるURLからRaspbianを入手してインストールした場合、
一時的には動作しますがOSをアップデートするとLCDが表示されなくなります。

という訳で、jessie に対応したドライバをインストールしてLCDを動作させます。

ブート時にX-windowを起動


pi@raspberrypi:~ $ sudo raspi-config

Boot Option で Desktop Autologin を選択します。
後の手順の都合で Autologin にしておく必要があるので注意。
RaspiLCD_2.jpg
RaspiLCD_3_201605012357385d7.jpg

LCDドライバを入れる




waveshare のマニュアルのImageセクションからjessie用のLCDドライバを
ダウンロードして4inchのドライバをロードします。
http://www.waveshare.com/wiki/4inch_RPi_LCD_(A)#Image
pi@raspberrypi:~ $ wget http://www.waveshare.com/w/upload/9/9d/LCD-show-151020.tar.gz
pi@raspberrypi:~ $ tar xzfv LCD-show-151020.tar.gz
pi@raspberrypi:~ $ cd LCD-show
pi@raspberrypi:~/LCD-show $ sudo ./LCD4-show

しばらくすると自動的にrebootしてLCDモニタが映るようになります。
こんな感じ。
電源以外のケーブルが無くなって素敵。
RaspiLCD_4.jpg

タッチパネルをキャリブレーション


ドライバを入れただけだと、タッチパネルをタッチした座標が
何故か上下反転するので、キャリブレーションして修正します。

キャリブレーションの準備として、ドライバに同梱されている
xinput-calibrator をインストールします。
pi@raspberrypi:~/LCD-show $ sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb


その後、xinput-calibrator を実行するのですが、
モニタ上で pi ユーザでログインしていないとエラーになってしまうので、
キーボードを接続していない状態の場合は Autologin で起動しておく必要があります。
pi@raspberrypi:~ $ DISPLAY=:0.0 xinput_calibrator
Calibrating EVDEV driver for "ADS7846 Touchscreen" id=6
current calibration values (from XInput): min_x=3950, max_x=172 and min_y=3871, max_y=194


こんな感じの画面が表示されるので、マーカーをタッチすれば
キャリブレーション完了。
RaspiLCD_5.jpg

おまけ:Bluetooth キーボードを接続


せっかくケーブルレスなので Bluetooth キーボードを設定してみます。
Raspberry Pi3 はBluetooth内蔵なのでペアリング設定だけでつながります。
pi@raspberrypi:~ $ bluetoothctl
[bluetooth]# scan on
Discovery started
[CHG] Controller xx:xx:xx:xx:xx:xx Discovering: yes
[bluetooth]# scan off
Discovery stopped
[bluetooth]# pair xx:xx:xx:xx:xx:xx
Attempting to pair with xx:xx:xx:xx:xx:xx
Pairing successful
[CHG] Device xx:xx:xx:xx:xx:xx Connected: no
[bluetooth]# connect xx:xx:xx:xx:xx:xx
Attempting to connect to xx:xx:xx:xx:xx:xx
Connection successful
[bluetooth]# trust
[bluetooth]# exit


完成


そんなこんなで小型Youtube端末ができました。
RaspiLCD_6.jpg

【追記】
X-Windowの設定を直接書き換えればキャリブレーションなしでもカーソルが正しく反応するようになります。
pi@raspberrypi:~ $ sudo vi /etc/X11/xorg.conf.d/99-calibration.conf
pi@raspberrypi:~ $ cat /etc/X11/xorg.conf.d/99-calibration.conf
Section "InputClass"
Identifier      "calibration"
MatchProduct    "ADS7846 Touchscreen"
Option  "Calibration"   "3950 172 194 3871"
#Option  "Calibration"   "3950 172 3871 194"
Option  "SwapAxes"      "1"
EndSection

元々「3950 172 3871 194」だった値の後半2つを入れ替えます。


【追記2】
Waveshare のドライバを持ってこなくても表示できる方法があるようです。
http://www.orsx.net/archives/5422

0 件のコメント:

コメントを投稿