Visuino で1.8インチ液晶ディスプレイ表示 -Arduino UNOとESP8266の比較-
以前小型有機ELディスプレイでテストしたVisuinoでの画像表示をTFT液晶ディスプレイでも試してみました!
目次
1.8インチ液晶ディスプレイ
恒例の激安謎ショップHiLetgoで購入しました!やしーーー!鬼やしーーー!!
ドライバICはST7735RでSPIでデータ通信します。128×160ピクセルです。
構成
ディスプレイに目玉を表示させてWiiのヌンチャクコントローラで動かします。
マイコンにはArduino UNOとESP8266を使用し比較しました。
以下はマイコンの性能比較です。ESP8266は安いのに高性能ですね。WiFi使わなくても十分つかえる。。。
Arduino UNO版
ESP8266版
以下は接続一覧です。
Visuinoの設定
VisuinoではWiiコントローラやST7735ディスプレイコンポーネントもあるので簡単にプログラミングできちゃいます。すごく便利!(・ω・)!
Visuinoを起動し以下のコンポーネントを配置します。
- マイコン:デフォルトではArduino UNOなのでESP8266版ではGeneric ESP8266を選択
- Wii Nunchuck Controller
- Map Range×2
- Analog To Integer×2
- TFT Color Display ST7735
Arduino UNO版
ESP8266版
Wii Nunchuck Controllerコンポーネント
StickのXをMapRange2のIn、YをMapRange1のInに接続
I2C OutをマイコンコンポーネントのI2C Inに接続
Map Range1コンポーネント
Input RangeのMax:0.9、Min:0.1とし
Output RangeのMax:28、Min:0とする。
コンポーネントのOutはAnalogToInteger1のInに接続
Map Range2コンポーネント
Input RangeのMax:0.9、Min:0.1とし
Output RangeのMax:60、Min:0とする。
コンポーネントのOutはAnalogToInteger2のInに接続
Analog To Integerコンポーネント
アナログ値を整数に変換します。
AnalogToInteger1のOutはディスプレイコンポーネントのClockとXに接続AnalogToInteger2のOutはディスプレイコンポーネントのYに接続
TFT Color Display ST7735コンポーネント
Background ColorにclWhite(白)を選択
コンポーネントをダブルクリックしてElenmentsウィンドウを開きDraw Bitmapを追加
Bitmapに100*100ピクセルの目玉ビットマップ画像を選択
X:14としてピンアイコンをクリックしてInteger SinkPinを選択
Y:30としてピンアイコンをクリックしてInteger SinkPinを選択
Integer SinkPinにすることで画像の表示座標X, Yが外部から入力できるようになります。
コンポーネントのSPI OutはマイコンコンポーネントのSPI Inに接続ChipSelect(CS [10])はUNO版はDigital[10]、8266版はDigital[0]に接続
Reset(RESET [6])はUNO版はDigital[8]、8266版はDigital[2]に接続
RegisterSelect(A0 [7])はUNO版はDigital[9]、8266版はDigital[16]に接続
ウィンドウ上部のArduinoアイコンを押してArduino IDEを立ち上げてマイコンに書き込みます。
動作
Arduino UNO版
ESP8266版
動画だとわかりにくいですがESP8266のほうが動きがサクサクで表示もきれいでした。性能的に当然か。
1.8インチ液晶ディスプレイ安かったけど今後いろいろ使えそうです!
参考
- Bitmap animation on ILI9341 TFT Touchscreen Display Shield
- Cheap 1.8″ TFT (ST7735R) how to wire?
- 1.8″ TFT Display Breakout and Shield
追記 (2017/4/20)
Arduino公式様よりTweetいただきました(*´ω`*)!
“I tried animating the eye of a bitmap image using a TFT LCD display and Visuino.” https://t.co/1wmA1dv3Qo pic.twitter.com/G8h1zBo60T
— Arduino (@arduino) 2017年4月19日