aitendoの2.2インチTFT液晶をRasPiで使う
2014年3月17日(月) 12:28 JST
閲覧数 33,290
aitendoの2.2インチTFT液晶をRasPiで使う
aitendoのと言っていますが、同じものをAliExpressで入手しました。
届かない危険性は高いですが、AliExpressは安いので。。。
5枚セットで入手したので、つぶしても心配ありません。
せっかくなので、Raspberry Pi以外でも使いたいところです。
値段はaitendoの半額ですが、まったく同じです。
解像度は240x320とそれなりの大きさです。2.2インチであればコレぐらいが手頃でしょう。
QVGAという事で、フォントサイズを調整すればコンソールとして使えるか期待が持てる処です。
さっそく、Raspberry Piと繋ぎました。
LCDドライバとしては、fbtftを使用する予定だった為、結線方法はAdafruit 2.2と同じにしています。
具体的にはこの様な結線になります。
Adafruit 2.2は低解像度の古いモデルも存在するので、コントローラがILI9340のモデルの情報を元にしてください。
SDカードは使用する予定がないので一部結線していない状態になります。
fbtftはバイナリを拾うのではなく、ソースから真面目に入れる必要がありました。
バイナリだと、コントローラがILI9340の物は含まれて居ませんでした。
Raspberry PiだとKernelのビルドに時間が掛かる為、x86_64環境でクロスビルドしてしまいます。
ざっくりと手順を記載します。
Add to drivers/video/Kconfig: source "drivers/video/fbtft/Kconfig"
Add to drivers/video/Makefile: obj-y += fbtft/
自分はmにしておきました。
起動時にモジュールがロードされる様に設定します。(SPIを利用する為、SPIも読み込まれる様に変更します。)
/etc/modprobe.d/raspi-blacklist.confから"blacklist spi-bcm2708"をコメントアウトします。
/etc/modulesに"fbtft_device name=adafruit22a"を追記します。
以下内容で/sbin/fbterm-loginを作成します。
これだと醜いので横向きに変更したいと思います。
横向きに変える方法は2通りあり、fbconsoleで回転させるかドライバで回転させるかします。
fbconsoleで変更する場合は、/usr/bin/fbtermの実行オプションで-rを利用します。
デバイスで変更する場合は、以下に記載がある"rotate"パラメータを利用します。
https://github.com/notro/fbtft/wiki/fbtft_device
無事横向き表示になりました。
フォントサイズを8dotまで落としてみました。
情報量は大きくなりましたが、少し潰れるフォントもあります。
8dotで可読性の高いフォントを探した方が良さそうです。
ls -lしたときに1行で表示されないと少し使いにくいですし。
aitendoのと言っていますが、同じものをAliExpressで入手しました。
届かない危険性は高いですが、AliExpressは安いので。。。
5枚セットで入手したので、つぶしても心配ありません。
せっかくなので、Raspberry Pi以外でも使いたいところです。
値段はaitendoの半額ですが、まったく同じです。
解像度は240x320とそれなりの大きさです。2.2インチであればコレぐらいが手頃でしょう。
QVGAという事で、フォントサイズを調整すればコンソールとして使えるか期待が持てる処です。
さっそく、Raspberry Piと繋ぎました。
LCDドライバとしては、fbtftを使用する予定だった為、結線方法はAdafruit 2.2と同じにしています。
具体的にはこの様な結線になります。
Adafruit 2.2は低解像度の古いモデルも存在するので、コントローラがILI9340のモデルの情報を元にしてください。
SDカードは使用する予定がないので一部結線していない状態になります。
|
fbtftはバイナリを拾うのではなく、ソースから真面目に入れる必要がありました。
バイナリだと、コントローラがILI9340の物は含まれて居ませんでした。
Raspberry PiだとKernelのビルドに時間が掛かる為、x86_64環境でクロスビルドしてしまいます。
ざっくりと手順を記載します。
$ sudo aptitude install git gcc make libncurses5-dev $ mkdir raspi $ cd raspi $ git clone git://github.com/raspberrypi/linux.git $ export KERNEL_SRC=~/raspi/linux $ git clone git://github.com/raspberrypi/tools.git $ export CCPREFIX=~/raspi/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi- $ cd linux $ make mrproper $ gunzip -c config.gz > .config Raspbianから拾ってきたconfigです。(/procに転がってます。) $ ARCH=arm CROSS_COMPILE=${CCPREFIX} make oldconfigfbtftをKernelに追加。
$ cd drivers/video # git clone https://github.com/notro/fbtft.gitファイルを編集します。
Add to drivers/video/Kconfig: source "drivers/video/fbtft/Kconfig"
Add to drivers/video/Makefile: obj-y += fbtft/
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} make menuconfigFB_TFT、CONFIG_FB_TFT_ILI9340、FB_TFT_FBTFT_DEVICEを有効にします。
自分はmにしておきました。
$ ARCH=arm CROSS_COMPILE=${CCPREFIX} make $ export MODULES_TEMP=~/raspi/modules/ $ ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP} make modules_install $ cd ~/raspi/tools/mkimage $ ./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/zImageRaspberryPiに新しいカーネルイメージ(kernel.img)を/bootにコピー、~/raspi/modules/に出したものをRaspberryPiに一式コピー。
起動時にモジュールがロードされる様に設定します。(SPIを利用する為、SPIも読み込まれる様に変更します。)
/etc/modprobe.d/raspi-blacklist.confから"blacklist spi-bcm2708"をコメントアウトします。
/etc/modulesに"fbtft_device name=adafruit22a"を追記します。
以下内容で/sbin/fbterm-loginを作成します。
#!/bin/bash # example: fbterm-login fb1 tty1 export FRAMEBUFFER=/dev/$1 exec /usr/bin/fbterm -r 1 /bin/login < /dev/$2/etc/inittabを書換え、コンソールが自動で表示されるようにします。
#1:2345:respawn:/sbin/getty --noclear 38400 tty1 1:2345:respawn:/sbin/fbterm-login fb1 tty1無事コンソールが表示されました。
これだと醜いので横向きに変更したいと思います。
横向きに変える方法は2通りあり、fbconsoleで回転させるかドライバで回転させるかします。
fbconsoleで変更する場合は、/usr/bin/fbtermの実行オプションで-rを利用します。
デバイスで変更する場合は、以下に記載がある"rotate"パラメータを利用します。
https://github.com/notro/fbtft/wiki/fbtft_device
無事横向き表示になりました。
フォントサイズを8dotまで落としてみました。
情報量は大きくなりましたが、少し潰れるフォントもあります。
8dotで可読性の高いフォントを探した方が良さそうです。
ls -lしたときに1行で表示されないと少し使いにくいですし。