前回は、HummingBoardにWiringXを載せて、WiringXのAPIコマンドでGPIOの制御の検証をしました。”LEDチカ”まではこれでできるようになりました。併せてPythonでの制御もまもなくできそうです。今回は、GPIOと同じコネクタ上にあるSPIを使って、LCDモジュールを接続して表示をさせてみる検証を行ってみます。HummingBoardを装置に組み込んで、その装置の設定や状態の表示に使うというような用途が一番もっともらしいでしょう。小ぶりなもののほうが実際の用途に合っていそうです。
[LCDパネル]
まずLCDを選ぶところから始めます。LCDモジュールと言ってもその種類は多様です。今回はドライバが公開されているこのページを参考にして選ぶことにしました。https://github.com/notro/fbtft/wiki/LCD-Modules
2.4" 240x320 SPI TFT LCD Serial Port Module+3.3V Pbc Adapter Micro SD ILI9341 ならば、ebayにはありました。
http://www.ebay.com/itm/2-4-240x320-SPI-TFT-LCD-Serial-Port-Module-3-3V-Pbc-Adapter-Micro-SD-ILI9341-/400760404213
これを日本で探しても無かったので、最終的に次をチョイスしました。
サインスマート 2.2インチ serial LCD モジュール 240*320 SPI TFT ディスプレイ 電子工作
Amazonで買えます。ebayでは800円程度のものが日本では2000円になってしまいます。PetapicoShopでも輸入販売をしているので事情はよくわかるのですがちょっと差が大きすぎるような。
[配線]
HumminBoardとの接続表です。今回の実験では、前回までと同じGPIO 拡張ボードとブレッドボードを用いています。実験でも、配線を確実にしないと結局は時間のロスになることを避けるためです。
配線を改めて下に表にします。LCDの信号は黄色の列、GPIO拡張ボードコネクタ上に記述されたラズベリーパイ用の信号名が青色の列になっています。
何を作るにしても、CiBox-i信号名、GPIO信号名、ラズベリーパイ用信号名の対比をはっきりとさせるためにもこのような表はいつも作ったほうがいいでしょう。
GPIO Signal 対応表
GPIO Signal Comparison | ||||||||||
GPIO | Signal | pin# | HB Signal | LCD-PIN | GPIO | Signal | pin# | HB Signal | LCD-PIN | |
7 | CE1 | 26 | ECSPI2_SS1 | 17 | P0 | 11 | GPIO 73 | |||
8 | CE0 | 24 | ECSPI2_SS0 | 7 CS | 18 | P1 | 12 | GPIO 72 | 2 LED | |
11 | SCLK | 23 | SPI_SCLK | 3 SCK | 27(21) | P2 | 13 | GPIO 71 | ||
9 | MISO | 21 | SPI_MISO | 1 SDO (MISO) | 22 | P3 | 15 | GPIO 10 | ||
10 | MOSI | 19 | SPI_MOSI | 4 SDI(MOSI) | 23 | P4 | 16 | GPIO 194* | ||
15 | RXD | 10 | UART RX | 24 | P5 | 18 | GPIO 195* | 5 D/C | ||
14 | TXD | 8 | UART TX | 25 | P6 | 22 | GPIO 67 | 6 RESET | ||
3(1) | SCL | 5 | I2C_SCL | 4 | P7 | 7 | GPIO 1 | |||
2(0) | SDA | 3 | I2C_SDA | GND | ||||||
GND | 1 | GND | ||||||||
3.3V | 25 | VCC |
[OS]
HummingBoardのGPIOの検証に使っているDebianを用います。v2.6(2015年2月時点で最新)以降のものを使ってください。(SPIのバグフィックスが入っているので重要)
http://www.igorpecovnik.com/2014/08/19/cubox-i-hummingboard-debian-sd-image/
http://mirror.igorpecovnik.com/Cubox-i_Debian_2.6_wheezy_3.14.14.zip
Debian v2.6 / 5.2.2015
Kernel 3.14.14
Fixed bug in SPI. Display works now
XBMC upgrade ready / tested.
との説明にもある通り、XBMCメディアプレーヤーにすることもできるらしいが、これについては別途。
[ドライバモジュールの設定]
rootで、/etc/modules ファイルに
fbtft_device name=adafruit22a rotate=90 speed=48000000 fps=50 gpios=reset:67,led:72,dc:195 busnum=1 |
の1行を追加してReboot します。
以上で設定終了です。
[テスト]
それでは、画面に絵を表示させてみましょう。まず表示用に使うfbiを持ってきます。
# sudo
apt-get install fbi |
テスト用画像として240x320のjpgファイルも用意します。ここではpeanut.jpgという名にしてあります。
# fbi -d /dev/fb2 -T 1
-noverbose -a peanut.jpg |
どうだったでしょうか。絵は表示されたでしょうか。
fbtftのgithubはここにあります。問題があればここの情報源がお役に立ちます。
https://github.com/notro/fbtft/wiki
今回のキーは何と言っても、このDebian v2.6をリリースしてくれたことです。感謝。
コメントをお書きください