背景
Teensy3.6とは、Ardinoというマイコンボードより計算能力があり、Arduinoを開発できる環境でプログラムの開発・書き込みが出来るマイコンボードです。ILI9341とはLCDのドライバです。
M5StackというLCDなどが付いたマイコンボードでもILI9341で動くLCDが利用されています。
利用には成功しましたが、ライブラリの選択やピンの接続方法に時間を要したので、備忘録を兼ねてやったことを共有します。
使ったもの
- Teensy3.6 1つ
スイッチサイエンスか製造元で買えます。 - Teensy3.6を開発出来るようにしたPC 1台
Ubuntu18.04でPlatformIOを利用して動作を確認しました。 - 320x240 LCD 1つ
amazonやaliexpressで買えます。 - ブレッドボード 2枚
- ジャンパワイヤ 1セット
- 抵抗 1k 2つ
配線
このように配線します。Teensy | LCD |
---|---|
9 | CS |
10 | DC |
11 | MOSI |
12 | MISO |
3V3 | VCC |
3V3に1kを通して接続 | LED, RESET |
LCDのDCとCSはプログラムで利用するピンを変えられますが、その用途で利用可能なピンは限られています。
他のピンを利用する場合は、Teensy3.5, 3.6のkickstarterのページで示されているピンの役割でCS0と書かれているピンを利用してください。
(もしかしたらDSはどのピンでも良いのかもしれませんが、未検証です。)
実際に配線するとこうなりました。
ライブラリをインストール
ILI9341_3tというライブラリの使い勝手が良さそうだったので、自分はそれを利用しました。Arduino IDEならライブラリマネージャーからILI9341_t3をインストール、PlatformIOならplatformio.iniのlib_depsにILI9341_t3を記述すれば利用できます。
プログラム
先ほどインストールしたライブラリILI9341_3tを利用して「Hello on LCD at (経過したミリ秒)」という文字を1秒ごとに更新しながらLCDに表示するプログラムを紹介します。#include <Arduino.h> #include <SPI.h> #include <ILI9341_t3.h> #include <font_Arial.h> const uint8_t TFT_CS = 9; const uint8_t TFT_DC = 10; ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC); void setup() { tft.begin(); tft.setTextColor(ILI9341_WHITE); tft.setFont(Arial_18); tft.setRotation(3); } void loop() { tft.fillScreen(ILI9341_BLACK); tft.setCursor(0, 0); tft.println("Hello"); tft.println("on LCD"); tft.println("at " + String(millis())); delay(1000); }
書き込んで動かすと、期待通りの情報が表示されました。
まとめ
Teensy3.6でILI9341が使われているLCDを利用できました。これにより、M5StackでLCDを利用しつつもピンが足りない用途に対してTeensy3.6を適用できそうです。
参考
Color 320x240 TFT Touchscreen, ILI9341 Controller ChipILI9341_t3/examples/DemoSauce/DemoSauce.ino
Teensy 3.5 & 3.6
変更履歴
2019.10.023.3Vの接続先がRESETになっていたのでVCCに修正しました。
2019.11.29
platformioの設定ファイルを「platformio.ino」と間違えていたので、「platformio.ini」 に修正しました。
0 件のコメント :
コメントを投稿