記事の内容が古いため、この手順でセットアップしてもうまくいかない場合があります。
ドライバが入ったイメージもリリースされているようなので、そちらを使ったほうが簡単に使えるかも。
https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install
Raspberry Piを使ってデジカメを作ったという記事を見て、それに使われていた液晶ディスプレイがいい感じ。
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
ただの液晶ディスプレイではなく、タッチパネルでもあるので色々便利そうと思ってポチってしまった。
$36の本体に対して、EMSを使うと送料が同じぐらいの値段してお得感が全くなかったから、「USPS First Class Mail International」で送ってもらいました。
ヘタすると1ヶ月ぐらいさまよってから着くという話もありましたが、10日ぐらいで無事届きました。
よくよく見るとコネクタが基板に付いていない。。
ハンダ付けが必要ってことで、久しぶりにハンダ付けした。
準備ができたので早速セットアップ開始。
Raspberry PiのOSは、2014-01-07-wheezy-raspbian.zipが入ってる状態
ドライバのインストール
sshで入って
cd ~ wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-bin-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-dev-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-doc-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi0-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/raspberrypi-bootloader-adafruit-112613.deb sudo dpkg -i -B *.deb
注意:
2013 Aug以降のRaspbianがインストールされている場合は、以下のコマンドを実行してaccelerated X framebufferを停止しておく必要があります。
sudo mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf ~
(salexkiddコメントありがとうございます)
終わったらPiTFTを繋ぐので、一旦落とします
sudo shutdown -h now
落ちたら、PiTFTを接続して起動します。
この時、起動してもまだディスプレイには何も表示されず、バックライトが点いただけ。
ドライバの設定をして、X serverを起動してみると
sudo modprobe spi-bcm2708 sudo modprobe fbtft_device name=adafruitts rotate=90 export FRAMEBUFFER=/dev/fb1 startx
デスクトップがTFTに表示されました!
続けて、起動時にドライバが読み込まれるように設定をします
Control + C でX Serverを止めます
エディタを開いて、/etc/modules に書きます
$ sudo nano /etc/modules spi-bcm2708 fbtft_device
Control X + Y して、Enterで保存できます
次に
$ sudo nano /etc/modprobe.d/adafruit.conf options fbtft_device name=adafruitts rotate=90 frequency=32000000
frequency=32000000は、20FPSの設定。
ここで、OSを再起動します。
sudo reboot
設定ファイルを追加
$ sudo mkdir /etc/X11/xorg.conf.d $ sudo nano /etc/X11/xorg.conf.d/99-calibration.conf Section "InputClass" Identifier "calibration" MatchProduct "stmpe-ts" Option "Calibration" "3800 200 200 3800" Option "SwapAxes" "1" EndSection
タッチパネルのセットアップ
タッチパネル用のデバイスファイルの設定をします
$ sudo nano /etc/udev/rules.d/95-stmpe.rules SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
タッチスクリーンのモジュールをリロード
sudo rmmod stmpe_ts; sudo modprobe stmpe_ts
sudo apt-get install evtest tslib libts-bin
以下のコマンドで、タッチパネルの情報を見ることが出来ます
sudo evtest /dev/input/touchscreen Input driver version is 1.0.1 Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0 Input device name: "stmpe-ts" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 1692 Min 0 Max 4095 Event code 1 (ABS_Y) Value 1441 Min 0 Max 4095 Event code 24 (ABS_PRESSURE) Value 0 Min 0 Max 255 Properties: Testing ... (interrupt to exit) Event: time 1393059859.794388, type 3 (EV_ABS), code 0 (ABS_X), value 2400 Event: time 1393059859.794398, type 3 (EV_ABS), code 1 (ABS_Y), value 1094 Event: time 1393059859.794402, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 70 Event: time 1393059859.794407, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1393059859.794411, -------------- SYN_REPORT ------------ Event: time 1393059859.800637, type 3 (EV_ABS), code 0 (ABS_X), value 2392 Event: time 1393059859.800651, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 100 Event: time 1393059859.800658, -------------- SYN_REPORT ------------ Event: time 1393059859.806818, type 3 (EV_ABS), code 0 (ABS_X), value 2380 Event: time 1393059859.806830, type 3 (EV_ABS), code 1 (ABS_Y), value 1095 Event: time 1393059859.806835, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 107
キャリブレーション
次のコマンドで、キャリブレーションを開始します
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate
次に、以下のコマンドでお絵かきのテストをします
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test
なにか書いてみて、触ったところと描画位置がずれるようであれば、上記のキャリブレーションをやり直します。
X input systemのキャリブレーション
wget http://adafruit-download.s3.amazonaws.com/xinput-calibrator_0.7.5-1_armhf.deb sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
古いデータを一旦削除して起動
sudo rm /etc/X11/xorg.conf.d/99-calibration.conf FRAMEBUFFER=/dev/fb1 startx & DISPLAY=:0.0 xinput_calibrator
ポチポチが終わると、ターミナルに以下が表示されます
--> Making the calibration permanent <-- copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' Section "InputClass" Identifier "calibration" MatchProduct "stmpe-ts" Option "Calibration" "15 3712 3843 226" Option "SwapAxes" "1" EndSection
この情報をファイルに書きます
sudo nano /etc/X11/xorg.conf.d/99-calibration.conf Section "InputClass" Identifier "calibration" MatchProduct "stmpe-ts" Option "Calibration" "15 3712 3843 226" Option "SwapAxes" "1" EndSection
キャリブレーションはこれで終わり