Arduino MEGA ADKの開発環境が整ったので、徐々にペリフェラルを開拓していこうと思い、
いきなりLCDを接続してみることにした。
検索してみると意外とLCDモジュールがあるのに驚いたが、
カラー表示ができ、ある程度表示面積があり、お手頃(失敗してもダメージが少ない)な1.8インチTFTにしてみた。
下調べでは、Arduino UNOと接続する記事はいくつかあり、多少ハードルが高そうだったが、
まあなんとかなるだろうと”ポチッ”とクリック。2日程で到着、流石はAmazon!
中身の確認もしていないのに、マーケットプレイスの評価催促メールが届き、
急いで作業開始した次第・・・・
取り急ぎ、1.8インチLCDの環境構築、立ち上げまでの手順を以下に記載した。
1.環境概要
- 使用するハードウェア
ボード:Arduino MEGA ADK
LCD :SainSmart 1.8" TFT カラー LCD ディスプレイモジュール SPI インターフェース &MicroSD 付
電源供給:USBケーブル経由
- 使用するソフトウェア
統合開発環境:Arduino IDE
ライブラリ・サンプルコード:TFT18.rar
ダウンロード先:http://www.selloutsoon.com/albums/documents/20-011-920/TFT18.rar
※Windows環境では、rar形式の解凍ツールが必要
2.ハードウェア環境の構築
LCDモジュールには接続ケーブル、取説等一切付属していないので、地道に自分で用意することになる。
①LCDモジュールの接続端子確認
モジュール裏の基盤に端子の詳細がシルク印刷されている。
写真右から
1:Vcc (Arduinoとの接続に使用する)
2:GND (Arduinoとの接続に使用する)
3:SCL (Arduinoとの接続に使用する)
4:SDA (Arduinoとの接続に使用する)
5:DC (Arduinoとの接続に使用する)
6:RES (Arduinoとの接続に使用する)
7:CS (Arduinoとの接続に使用する)
8:MISO (MicroSDインターフェース)
9:SCLK (MicroSDインターフェース)
10:MOSI (MicroSDインターフェース)
11:CS (MicroSDインターフェース)
今回使用する端子は1-7番ピンである。
②Arduino MEGA ADKの接続端子確認
サンプルコードでは、既にIOポートの割り当てが行われているが、
これらはユーザーが任意に変更することができる。
今回は配線が楽なフラットになる様にポートのレイアウトを以下の様に変更した。
Arduino側 5Vピン <=> TFT側 1番ピン Vcc
Arduino側 GNDピン <=> TFT側 2番ピン GND
Arduino側 8番ピン <=> TFT側 7番ピン CS
Arduino側 9番ピン <=> TFT側 6番ピン RES
Arduino側 10番ピン <=> TFT側 5番ピン DC
Arduino側 11番ピン <=> TFT側 4番ピン SDA
Arduino側 13番ピン <=> TFT側 3番ピン SCL
③配線作業
ブレッドボードでもあれば楽なのだが、残念ながら持ち合わせていないので、とりあえず動作確認ができる程度ということで、
配線用線材を15cm程に切り、ピンヘッダへ1本ずつハンダ付けした。
ST7735Rの仕様書を見ても、信号周波数に関する値は、高くても1MHz以下の様だったので、大丈夫だろう
以上でハードウェアの準備が完了したことになる。
信号線のアサインが分かれば難しいことはない。しかしこう言った基本的な情報が容易に入手できない所は、昔から
この業界のダメなところではないだろうか。
3.ソフトウェア環境の構築
TFTモジュールを使用する方法として、2通りのやり方がある。1つはSainSmart社サイトから入手できるライブラリ・サンプルコードを使用する方法。
もう一つは統合開発環境IDEのスケッチの例にあるTFTサンプルスケッチを使用する方法である。
まずは、前者からやってみた。
1)SainSmart社サイトからのライブラリ・サンプルコードダウンロード
リンクURL:http://www.selloutsoon.com/albums/documents/20-011-920/TFT18.rar からダウンロードする。
ダウンロードされたファイルはTFT18.rar。Windows環境ではrar形式を解凍するソフトを別途用意しなければならない。
今回は7-Zipを使用した。
1)統合開発環境IDEへのライブラリ・サンプルコードの組込み
解凍したフォルダTFT18内には仕様書、ライブラリソース、サンプルスケッチ(フォルダ:examples内)が含まれている。
IDEへの組込みは、TFT18フォルダごと、スケッチライブラリへコピーすればよい。通常デフォルトでのIDE用スケッチライブラリは
c:\ユーザー\ユーザー名\マイドキュメント\Arduino\libraries になっているので、c:\...\libraries 下にTFT18フォルダをコピーする。
2)統合開発環境IDEでサンプルスケッチの読み込み
以下の手順でサンプルスケッチを開いてみる。
1)IDEを起動する。
2)トップメニュー > ファイル > スケッチの例 > TFT18 を選択する。
TFT18がリストの一番下に追加されていればOK。
3)サンプルスケッチが以下の3つ表示される。
graphicstest
graphicstest_highspeed
spitftbitmap
とりあえずgraphicstestを選択する。
この様に表示されればOK.
さてサンプルコードのままでは当然動作しないので、これからあれこれと修正していくことになる。
3)サンプルスケッチの修正
まず、今表示している ソースコード:graphicstest.pdeを修正する。このファイルではIOポートのアサインの変更を行う。
2-②の内容に従い、ポート番号を変更する。
#define sclk 13
#define mosi 11
#define cs 8
#define dc 10
#define rst 9 // you can also connect this to the Arduino reset
この内容で保存する。保存する際、上書きがでいないエラーが表示されるので、新規でスケッチフォルダを作成して保存する。
4)ライブラリソースの修正
修正するライブラリソースファイルは、TFT18フォルダ直下のST7735.Hとglcdfont.cの2つになる。
1)ST7735.Hの修正
7行目のインクルードファイルがWindows環境のものの様で、どこにもないのでエラーとなる。
そこでWProgram.h =>Arduino.hへと変更する。
2)glcdfont.cの修正
10行目のfont[] 型がstaticになっているのをconstに変更する。
以上でソースコードの修正が完了したことになる。
5)サンプルスケッチの実行
1)ArduinoとTFTの配線接続を確認し、PCとArduinoをUSB接続する。
2)サンプルスケッチの検証・コンパイルを行う。
3)マイコンボードへ書き込む
サンプル動画が表示されれば成功
2)IDE標準TFTスケッチの使用
2つめの方法であるIDE 標準モジュールの使用については、今後でき次第記載する。
以上・・・
※コメント投稿者のブログIDはブログ作成者のみに通知されます