Raspberry PiでSPI通信をしてLCD(ST7735)に描画してみた
概要
大阪オフィスの山田です。今回、Raspberry Pi3 modelB+を購入したので、LCDに対し描画してみました。
使用した物品
- Raspberry Pi3 B+ コンプリートスターターキット
- サインスマート(SainSmart) 1.8" TFT カラー LCD ディスプレイ モジュール SPI インタフェース & MicroSD 付き for Arduino UNO MEGA R3
- ジャンパーケーブル
- ブレッドボード
コンプリートスターターキットは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 [email protected]:cskau/Python_ST7735.git
README.mdにあるように、まず必要なライブラリ類をインストールします。
cd Python_ST7735 sudo python setup.py install
続いて以下のコマンドで、exampleのプログラムを走らせて、正常にLCDに描画されることを確認しましょう。
cd examples python shapes.py
実際に表示したところ
これで、正常に配線されていることが確認できました。
最後に
いかがだったでしょうか。時間が取れれば今度はライブラリを使用せず、1からプログラミングして、詳細をブログとしてまとめようと思います。