2015年12月18日金曜日

SHARPのIGZO液晶用のスタンドをタミヤの楽しい工作キットで作り、Raspberry Piで使ってみた

はじめに

秋月電子通商を始めとする様々なショップでSHARPのIGZO液晶の取り扱いが開始されました(2018年4月時点ではどの店でも売り切れですが、本ページ末尾で類似商品を紹介します)。
実は2015年8月のMaker Faire Tokyoで参考出展されていたようなのですが、私は今回初めて知りましたので、早速購入して試してみました。

あまり深く考えずに購入したのですが、なかなか骨のある商品でした。

タミヤの楽しい工作シリーズでスタンドを作成して表示している様子がこちら。


組み立てから電源投入まで

組み立ては詳細な説明書がついてくるので、流れ自体は難しくありません。

ただし、フレキシブルケーブルを基板に取り付けるの作業がかなり繊細なので、慎重に行なう必要があります。また、このフレキシブルケーブルは非常に断線しやすい(後述)ので、注意する必要があります。

Raspberry Piで用いる場合、/boot/config.txtにLCDの解像度に関する設定を追加する必要があります。/boot/config.txtの冒頭に、下記を追加します。KSYさんのページを参考にしました。
# SHARP 7" Settings: (KSY)
hdmi_pixel_freq_limit=200000000
hdmi_timings=1200 0 164 8 32 1920 0 12 2 6 0 0 0 60 0 163430000 0
hdmi_drive=2
disable_overscan=1
max_framebuffer_width=1200
max_framebuffer_height=1920

# Landscape (display_rotate=1 for upside down)
display_rotate=3
framebuffer_width=1920
framebuffer_height=1200
# Test
hdmi_group=2
hdmi_mode=87
hdmi_force_hotplug=1
なお、上記の秋月電子通商の商品ページで公開されているconfig.txtでは、2016-02-03以降のRaspbianで横向き表示ができないので注意しましょう。上記の設定の「hdmi_mode=87」が必要なようです。こちらの解説によると、カスタムモードを作るための設定のようですね。
また、上記設定にある「display_rotate=3」は、HDMI端子やUSB端子がディプレイの上側にある場合の設定です。これらの端子をディスプレイの下側に配置したい場合、「display_rotate=1」としてください。

なお、2015年12月頃のRaspbianでは「NOOBSでインストールしたRaspbian」で映像が表示されず、イメージ書き込みである必要がある」ようでしたが、2016年5月現在、上記の設定を用いればNOOBSでインストールしたRaspbianでも表示可能でした。


2015年12月当時、NOOBSでは画面が映らないと気づくまでの数日間、「組み立て時に破損してしまったのではないか?」と思い、二個目の液晶を購入してしまいましたが、その心配は不要でした(少なくともこの時点では)。


スタンドの作成

このままでは液晶を机にベタ置きで使う羽目になるので、スタンドを作成する必要があります。

既に、フォトフレームを流用する方法を紹介されている方や、きれいなスタンドを自作している方がいらっしゃるのですが、私はタミヤの楽しい工作シリーズのキットが手元で余っているので、これを使うことにしました。

それが冒頭の写真です。


どのようなパーツを使っているのかを解説すると、まず、前面側は下図のようになっており、

  • ユニバーサルプレートL
  • ユニバーサルアームセットのアームを2本
  • ユニバーサルアームセットのパイプ材(小)をスペーサーとして6個(ニッパなどで多少細らせる必要がある)
  • 3mmのビスとナットを6組

が使われています。


背面側は下図のようになっており、
  • ユニバーサルアームセットのL型アーム2個
  • ユニバーサルアームを長さ10でカットしたものを2つ
  • 3mmプッシュリベットを1つ(オレンジ色の部分)
  • 3mmのビスとナットを適宜
が使われています。

ユニバーサルプレートの穴と基板の穴の間隔が合わないため、ユニバーサルプレートへの固定は一箇所だけプッシュリベットを取りつけ、さらにタミヤのマスキングテープを貼って仮止めしています(これについては後述)。


ひとまずはこれで使えるようになりました。このIGZO液晶(1920x1200)(左)と公式タッチパネル(800x480)(右)を比較したのが下図です。

IGZO液晶の方が解像度が高いのですが、プログラムを書くなどのように文字を読み書きするためには、フォントを大きくするなどの設定が必須でしょう。


オチ

そのようなわけで、IGZO液晶をRaspberry Piで使えるようになってめでたい、で締めようと思っていました。

しかし、ブログにまとめるにあたって、基板とユニバーサルプレートをマスキングテープで仮止めたままではカッコ悪いかなあと思い、うまい固定方法を考えることにしました。

そのためにいろいろと試行錯誤している際、ビリッ、という異音がし、フレキシブルケーブルが下図のように断線してしまいました。


上述のようにIGZO液晶を2個購入していたので、2個目を使って復活させることはできましたが、断線に気づいたときはかなり落ち込みました。

そんなわけで、私のIGZO液晶の基板はマスキングテープでユニバーサルプレートに仮止めされたままです。

使いやすかったら常用しようかな、と考えていたのですが、また壊すと落ち込みそうなので、棚にしまっておくことにしました。

オチ2

そんなわけで棚で眠っていたIGZO液晶なのですが、emerge+さんの「IGZOパネルエンクロージャ」というアクリルケースを購入してうまれかわりました。これ、すごく良いですよ。お勧めです。


オチ3

そんなわけで、emerge+さんのエンクロージャで満足度の上がったIGZO液晶ですが、IGZO液晶の1920x1200という解像度では、文字が小さすぎて読むことが難しく、実用には難があるというのが正直なところでした。

2018年4月時点で最新のRaspbianを用いると、GUIの設定アプリケーションに「Pixel Doubling」という、解像度を半分にするための設定が追加されています。Retinaディスプレイのように高解像度のディスプレイを用いるための設定のようです。
これを有効にすると、下図のようにIGZO液晶が960x600という実用的な(文字が読める)解像度で使えるようになります。

なお、2022年7月現在、Raspberry Pi OS Bullseye には、この Pixel Doubling の設定はないようです。代わりに、デスクトップ上で右クリックし、「デスクトップの設定」→「デフォルト」タブ→「大きな画面向け」の設定、を行うと似た効果を得ることができます。

オチ4

「オチ2」と「オチ3」でemerge+さんのIGZOパネルエンクロージャをお勧めしましたが、IGZO液晶同様、こちらも2018年4月の時点では入手不可能ですね。

代替として、下記の組み合わせをお勧めしておきます。
こちらは、本ページで紹介したIGZO液晶よりも一回り小さいのですが、emerge+さんのエンクロージャが美しいので満足度が高いです。


なお、上記の写真で用いている短いHDMIケーブルはこちらです。

また、電源は下記の組み合わせのもの用いており、これによりACアダプターが一個で済むので良い感じです。
こちらの液晶の場合、config.txtの末尾に追加する設定は下記のようになります。
# SHARP 5.5" Settings
hdmi_pixel_freq_limit=400000000
hdmi_timings=1080 0 60 10 35 1920 0 4 4 2 0 0 0 50 0 114352500 0
hdmi_drive=2
disable_overscan=1
max_framebuffer_width=1080
max_framebuffer_height=1920

# Landscape
display_rotate=1
framebuffer_width=1920
framebuffer_height=1080

hdmi_group=2
hdmi_mode=87
dmi_force_hotplug=1
なお、2022年7月現在、Raspberry Pi OS Bullseye では上の設定では画面が縦向きになります。設定中の「# Landscape」の項目が機能していない、ということでしょう。その場合、画面左上のメニューから「設定」→「Screen Configuration」→「Configure」→「Screens」→「HDMI-1」→「向き」を「right」または「left」に設定すると画面が横向きになるでしょう。



「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。