LoginSignup
3
2

More than 3 years have passed since last update.

Raspberry PiにSPI接続のディスプレイを接続する

Last updated at Posted at 2019-11-23

Shigezoneさんで2.2インチ(320×240)のSPI接続のディスプレイを購入したので、Raspberry Pi3のディスプレイとして使用してみました。
Raspberry Pi3上のRaspbian Stretch環境で試しています。

IMG_0423.jpg

接続

基本はこのサイトの情報の通りにやっています。
こちらのサイトではバックライトのLEDの電源を抵抗を取り付けて取っているようですが、3V3の電源ピンは2つあるので、ラズパイから直接取るようにしました。

設定

①「Raspberry Pi の設定」か「sudo raspi-config」コマンドでSPIインタフェースを有効にします。
これにより「boot/config.txt」に「dtparam=spi=on」が追加されます。

以降の設定は以下サイトの通りにやっています。
http://arkouji.cocolog-nifty.com/blog/2016/07/raspberry-pi-32.html

②配線が間違っていなければ、以下のコマンド実行でディスプレイにRaspbianの画面が表示されると思います。

sudo rpi-update
sudo reboot
#再起動後
sudo modprobe fbtft_device name=tm022hdh26 rotate=90
sudo mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf ~
sudo FRAMEBUFFER=/dev/fb1 startx

あとは、起動後に以下の2行を実行すればのディスプレイに表示されるようになります。

sudo mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf ~
sudo FRAMEBUFFER=/dev/fb1 startx

自動起動設定

とりあえず「/etc/rc.local」に「modprove~」以降の行を追加しました。
多分「mv~」以降の2行で良いんだとは思います。

#…
modprobe fbtft_device name=tm022hdh26 rotate=90
mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf ~
FRAMEBUFFER=/dev/fb1 startx

exit 0

GUIで使い物になるアプリはほとんどないので、コンソールを起動してCUIならぎりぎり使えないことは無いかと思います。

TightVNCインストール

VNCサーバが標準のRealVNCだとディスプレイに出力されている画面がそのまま表示されるので、この環境だとかなり使いにくくなります。
以下のサイトを参考にVNCサーバをRealVNCからTightVNCに変更しました。
(両方はインストールできません。インストール時にRealVNCが削除されます。)
VNC接続した場合には広い画面を使用可能になります。

https://qiita.com/okkun_osaka/items/e170be03a937395a15da
https://qiita.com/sugasaki/items/8f73b4cb239744ac2570

上記2サイトに記述されていたコマンドですが、以下のような内容です。

sudo apt-get purge realvnc-vnc-server
sudo apt-get install tightvncserver
vncserver :1
#VNC接続用のパスワードを入力する

sudo vi /etc/init.d/vncboot
#vncbootの内容を入力する

sudo update-rc.d vncboot defaults
sudo chmod 755 /etc/init.d/vncboot
sudo reboot

(vncbootの中身)

#! /bin/sh    

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
    start)
        echo "Starting VNC Server"
        #Insert your favoured settings for a VNC session
        su $USER -c '/usr/bin/vncserver :1 -geometry 1280x720 -depth 24'
        ;;

    stop)
        echo "Stopping VNC Server"
        su $USER -c '/usr/bin/vncserver -kill :1'
        ;;

    *)
        echo "Usage: /etc/init.d/vncboot {start|stop}"
        exit 1
        ;;
esac

exit 0
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2