秋月でラズパイ用液晶を買ってみた。

秋月電子通商が出している5.5インチ液晶ディスプレイ [LS055-CGS-LCD-SET] を買ってみた。raspberry piにつけられる小型の液晶ディスプレイを探していたところ、高精細という触れ込みの記事を見つけて調べてたらぽちってた。二日後には届いていた。早いねー。


akizukidenshi.com

やりたいことはRaspberry pi B+にraspbianを入れて、小型の動画自動再生機を作りたかったのだ。もともとraspberry piには5インチのタッチパネルディスプレイをつないで動画再生機としていて、ケース付きで安く取り付けられて気に入っていたのだが、画面映りがとにかく青っぽい。猫の映像でチャトラがモノトーンに見える!と妻からのクレームを受け、とにかく綺麗な液晶が欲しいと思っていたところだったのだ。タッチパネルは便利なんだが、タッチ機能があると液晶映りがどうしても悪くなるし、かといって車につけるような小型モニターは太いフレームに大きなACアダプタが邪魔になる。きれいでUSB電源で何かいいものないかなー、2015年に出たIGZO液晶パネルの再販ないかなーと思ってた矢先だった。

さて、この液晶キット、簡単にできるだろうとちょっと舐めてました。うまく表示できたのは1週間後の今日だった。いやぁ、苦労したよ。組み立ては簡単なんだよ。ボード2枚と液晶パネルとケーブルを2本つなぐだけ。手順書も秋月電子通商が用意したカラー印刷の説明書もあり、取り付けはそんなに悩むものではない。5分ほどでつなぐことができた。さらにこのキットはHDMIポートでつなぐものなので、つないだら速攻表示するんじゃねー?と、簡単に考えていたのだが。raspbianだとconfig.txtを編集しなければならない。ちなみに、Windows10やubuntuなど搭載のパソコンは何も編集しなくても表示できる。ubuntuでやってみると縦表示でもデスクトップは崩れずに縦サイズできちんと表示できる。話を戻して、raspbianだとconfig.txtを編集しなければならないことは必須だ。なぜなら、つなぐだけだと本当に表示しなくて、液晶パネルのバックライトが点滅する怪現象が起きる。きちんと編集してつなごう。つなぐ方法は秋月が用意したカラー説明書にも記載されているし、config.txtのサンプルは、秋月のサイトにもある。が、これが曲者だった。

実は秋月が用意しているconfig.txtはいくつか間違いがある。このままコピーするだけでは動作しない。なので、試行錯誤で頑張ってみた。一番苦労したのがhdmi_modeパラメータだった。秋月の数値だと画面が2画面に分割され、しかも思いっきり位置ずれして3分の1程度が画面の外に追いやられてしまうというトンデモ表示だった。いろんなサイトをチェックして、ようやくここにたどり着いたのだ。やれやれ。raspbianのraspi-configコマンドで設定できるHDMI設定では、hdmi_modeは16になるが、これは表示できない。秋月は87を指定することになっているが、これもトンデモ表示。成功したのは82だった。

で、苦労話なんぞ言ってないでさっさとconfig.txtを見せろと怒られそうなので、以下にconfig.txtを記載するよ。

 /boot/config.txt

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
hdmi_mode=82
#hdmi_mode=16
#hdmi_group=2
#hdmi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=128


hdmi_pixel_freq_limit=400000000
hdmi_timings=1080 0 60 10 35 1920 0 4 4 2 0 0 0 50 0 114352500 0

max_framebuffer_width=1920
max_framebuffer_height=1920
display_rotate=1
framebuffer_width=1920
framebuffer_height=1080

 とりあえず、このconfig.txtを使うと、パネルのフレキシブルケーブルが右側にくる形で横画面として表示できるようになる。(縦表示や反対表示などは、display_rotateをいじってください。それに合わせて、framebuffer_widthやframebuffer_heightを合わせてください。)

ようやくこれで小型動画自動表示器が作れるようになったよ。raspbianにこだわってるのは、GPIOを簡単に使いたかったから。GPIOを使わないのなら、ubuntuとか入れたほうが楽だったかもね。raspberry piは、B+/2/3で対応しているとのこと。自分はB+で使いたかったからだけど、以降のrapsberry piならどれでも同じconfig.txtでいけるんじゃないかなー。試してないけどー。(無責任さーせん)

 最後にちょっとだけ気に入らないことを1つ。このキットのボードの都合なんだろうが、raspberry pi とこのキットを同時に起動すると表示されない。なぜなら、このキットのボードは、起動に8秒ほど時間がかかる。起動が終わらないとHDMIを正しく受信しない模様。マニュアルにもキットを先に電源入れてからraspberry piを起動するように但し書きがある。せっかくraspberry piからUSB電源とって配線をきれいにしようと思ってたのに。ちょっと残念な気分になった。それ以外は何も問題ないし、むしろよくできていると思う。

きれいな小型液晶でフレームは自作してもいいと考えている方には、おすすめの商品だ。サイズも3種類あるしね。さぁ、let's DIY!