
Raspberry Pi 2にディスプレイをつないでみた!
今回はRaspberry Pi 2 Model Bに小型のディスプレイをつないでみます。
ディスプレイの接続方法
いろいろな接続方法
Raspberry Piは、普通のテレビにつないで使えるようにHDMIとアナログビデオ出力の機能が用意されていますが、ディスプレイの接続方法はそれだけではありません。
Raspberry Piにはシングルボードコンピュータとして、I2CやSPIを出力する機能が備わっているため、テレビだけでなく、手のひらサイズの小さなディスプレイや、文字表示専用のディスプレイなどもつなぐことができます。
小型ディスプレイをつなぐ
3.2インチのLCDディスプレイ
今回はAmazonで購入したSPI接続の小型ディスプレイをつないでみます。
Waveshare社の3.2インチLCDディスプレイです。Raspberry Pi用に作られているため、複雑な配線は不要で、直接Raspberry Piのコネクタに差し込むだけで接続完了です。
電源を入れてみる
この状態で電源を入れると、ディスプレイに電源は流れますが、なにも制御されていない状態のため、画面が真っ白に光るだけで、文字や画像はなにも表示されません。
カーネル更新と起動パラメータの設定
対応ドライバを含むカーネルを導入
SPI接続のLCDを使うためにfbtftというドライバを導入します。下記のコマンドを実行することでfbtft導入済みのnotroカーネルにアップデートします。
1 2 |
sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update sudo reboot |
起動パラメータを設定する
fbtftを使うためにはそれぞれのディスプレイに応じたパラメータの設定が必要なので、/boot/cmdline.txtに設定を追記します。(改行なし、スペース区切りで追記します)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fbtft_device.custom fbtft_device.name=fb_ili9340 fbtft_device.gpios=dc:22,reset:27 fbtft_device.bgr=1 fbtft_device.speed=48000000 fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo dma.dmachans=0x7f35 console=tty1 consoleblank=0 fbtft_device.fps=50 fbtft_device.rotate=270 |
X window起動
そのままXを起動
さきほどの/boot/cmdline.txtの設定によってフレームバッファが使えるようになったのでX windowを起動してみます。
1 |
FRAMEBUFFER=/dev/fb1 startx |
このディスプレイは解像度が320×240のため、非常に画面が狭い状態になっています。
fbcpを導入
X windowを小型ディスプレイに表示する別の方法としてfbcpというコマンドが提供されています。
先ほどは/dev/fb1を指定してX windowを起動しましたが、fbcpはHDMI接続時に使われる標準のフレームバッファ(/dev/fb0)の内容を/dev/fb1に(必要あれば縮小して)コピーしてくれるため、HDMIでテレビなどにつないだ時と同じ要領でX windowを使うことができます。
また前回紹介したMinecraft Piは/dev/fb0に描画されるため、/dev/fb1を指定してX windowを起動した場合、真っ黒表示となって遊ぶことができませんが、fbcpを使うことでMinecraft Piを小型ディスプレイで遊ぶことができます。
以下のコマンドでfbcpをインストールします。
1 2 3 4 5 6 7 8 |
sudo apt-get install cmake git clone https://github.com/tasanakorn/rpi-fbcp cd rpi-fbcp/ mkdir build cd build/ cmake .. make sudo install fbcp /usr/local/bin/fbcp |
以下のコマンドでfbcpを使って/dev/fb0のX windowを小型ディスプレイに表示します。
1 2 |
fbcp & startx |
ケース作成
LEGOでケース作り
せっかく小型ディスプレイをつないだので、持ち運びしやすいようにケースを作ってみました。
小型のモバイルバッテリーとタッチパッド付きワイヤレスキーボードを使って一体型のコンピュータ風に仕上げてみました。
ムービーで紹介!
ケース作成とゲームを動かしているところをムービーで紹介します。
次回は…
Raspberry Piをさらにパワーアップ?!専用カメラをつなげてみます!
初めまして。初心者なので教えてください。spiの小型ディスプレーを上記のように購入しましたが、カーネルの更新と起動パラメーターの設定がよくわかりません。液晶が光って映らないのに、どうやってコマンドを打ち込むのでしょうか?それとも別のディスプレーになんとか写すのか、microSDに書き込むのか?詳しく教えて頂けると非常にうれしいです。よろしくお願いします。
コメントありがとうございます。
返信遅くなってしまい、申し訳ありません。
すでに解決済みかもしれませんが、
カーネルの更新と起動パラメーターの設定は、
別のディスプレイをHDMIポートに接続して行いました。
RaspberryPiのLCDまわりは変化が激しいので、
ネット上にも新旧いろいろな情報がいりまじっていて、調べるのも一苦労かと思います。
今のところ、この記事の方法でうまく表示できると思いますが、
もしうまくいかないようでしたら、またコメントください。
SSH接続でもいけるとおもいます
ラズベリーパイ初心者です。
二つほど質問です。
一つ目は私は小型のメディアプレイヤー的なものを作ろうと試みてます。そこでOSMCというOSを導入しようと考えているのですが、OSMCでタッチパネル搭載の液晶は動作するのでしょうか?
二つ目はもし動作しないのであればただの小型の液晶を上記のように取り付ければ動作するのでしょうか?
ディスプレイのドライバー?というかイメージファイルをSDカードにインストールしたら映るようになりました
ご参考までに
kog0lo