Raspberry PiでSPI通信をしてLCD(ST7735)に描画してみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

大阪オフィスの山田です。今回、Raspberry Pi3 modelB+を購入したので、LCDに対し描画してみました。

使用した物品

コンプリートスターターキットはRaspbianがインストールされているSDカードまで付属していて楽でした。

開発環境

  • Raspbianのバージョン: 9.4
  • Pythonのバージョン: 3.5.3

LCDに描画するには

今回使用したLCDにはST7735というチップが搭載されています。ST7735への描画命令はSPI通信で行います。SPI通信とはなんぞや?という解説は以下を参照してください。

Raspberry PiでSPIを通信するには

Raspberry PiではSPI通信をするために設定が必要です。ターミナルで以下のコマンドを実行します。

sudo raspi-config

ターミナル上で画面が表示されますので、5 Interfacing Optionsを選んで、更にP4 SPIを選びSPI通信をEnableにします。

配線する

SainSmartの公式ページに記載されているReference ProjectのSainSmart 1.8" TFT LCD display for Raspberry Piを参照します。

リンクを見ると以下のように記載されていますので、その通りに配線します。Raspberry pi側のピンアサインについてはこちらを参照してください。

RasPi LCD
5V Power VCC
GND GND
GPIO 11(SCLK) SCL
GPIO 10(MOSI) SDA
GPIO 8(CE0) CS
GPIO24 RS/DC
GPIO25 RES

 

プログラムをする

プログラムはpythonで行います。今回は、1から全てプログラムをするのではなく、Adafruit Python ILI9341を元にライブラリ化している方を見つけたので、使わせて頂こうかと思います。リンク   

なお、1から全てプログラミングをするにはST7735のスペックシートを読んで理解する必要があります。リンク

まず最初に、Repositoryをcloneしてきます。

git clone git@github.com:cskau/Python_ST7735.git

README.mdにあるように、まず必要なライブラリ類をインストールします。

cd Python_ST7735
sudo python setup.py install

続いて以下のコマンドで、exampleのプログラムを走らせて、正常にLCDに描画されることを確認しましょう。

cd examples
python shapes.py

実際に表示したところ

これで、正常に配線されていることが確認できました。

最後に

いかがだったでしょうか。時間が取れれば今度はライブラリを使用せず、1からプログラミングして、詳細をブログとしてまとめようと思います。