5. LCD160CR スキン¶
このチュートリアルでは、LCD160CR スキンの始め方を説明します。
このディスプレイ用ドライバーの詳細な説明については lcd160cr
モジュールを参照してください。
5.1. ディスプレイのプラグイン¶
ディスプレイは pyboard に直接差し込めます(すべての pyboard バージョンがサポートされています)。X または Y のいずれかの位置で、ディスプレイを pyboard の上に載せて接続します。ディスプレイは pyboard の半分を覆うように載るはずです。実際にどうなるかは上の画像を参照してください。画像の左半分は X 位置、右半分は Y 位置に載せた場合を示しています。
5.2. ドライバーの導入¶
電源/有効ピンとI2Cバスを使用してディスプレイを直接制御できますが、 lcd160cr
モジュールの提供するドライバーを使用する方がはるかに便利です。このドライバーは最新版の pyboard ファームウェアに含まれています( こちら を参照)。また、 GitHub リポジトリ でドライバーを見つけられます。この GitHub にあるものを使うには、ファイルをボードにコピーする必要があります。import 文で検索されるディレクトリ(通常は lib/ ディレクトリ)にコピーしてください。
ドライバーをインストールしたら、それを import する必要があります:
import lcd160cr
5.3. ディスプレイのテスト¶
ディスプレイの機能をテストし、LCD を使用して独自のコードを作成するための参考ともなるテストプログラムがあります。このテストプログラムは GitHub の こちら から入手できます。USB マスストレージか MicroPython のリモート制御: mpremote を使って、これをボードにコピーしてください。
MicroPython プロンプトからテストを実行するには、次のようにします:
>>> import lcd160cr_test
これを行うと、簡単な説明が印字されます。ディスプレイをどの位置に接続したか(X または Y)を確認しておきましょう。位置が分かれば次のようにしてテストプログラムを実行できます(この例では位置を X としています):
>>> test_all('X')
5.4. グラフィックスの描画¶
まず、ディスプレイを制御する LCD160CR オブジェクトを作成する必要があります。これを行うには次のようにします:
>>> import lcd160cr
>>> lcd = lcd160cr.LCD160CR('X')
これはディスプレイが X 位置に接続されていることを前提としています。Y 位置にある場合は代わりに lcd = lcd160cr.LCD160CR('Y')
とします。
画面を消去して線を引くには、以下を試してみてください:
>>> lcd.set_pen(lcd.rgb(255, 0, 0), lcd.rgb(64, 64, 128))
>>> lcd.erase()
>>> lcd.line(10, 10, 50, 80)
次の例では、画面上にランダムに四角形を描きます。プロンプトで "Ctrl-E" を押し、次にテキストをペーストしたら "Ctrl-D" を押すことで、MicroPython プロンプトにコピー&ペーストできます:
from random import randint
for i in range(1000):
fg = lcd.rgb(randint(128, 255), randint(128, 255), randint(128, 255))
bg = lcd.rgb(randint(0, 128), randint(0, 128), randint(0, 128))
lcd.set_pen(fg, bg)
lcd.rect(randint(0, lcd.w), randint(0, lcd.h), randint(10, 40), randint(10, 40))
5.5. タッチセンサーの使用方法¶
ディスプレイには、画面上の一点タッチの位置(ピクセル単位)を返すことができる感圧型タッチセンサーが含まれています。画面に触れているかどうかを確認するには次のようにします:
>>> lcd.is_touched()
これは False
か True
のどちらを返します。画面をタッチしながら上記のコマンドを実行して、結果を確認してみてください。
タッチの位置を取得するには、次のメソッドを使用します:
>>> lcd.get_touch()
これは3項目のタプルを返します。最初の項目は、現在何かが画面に触れているかどうかによって 0 または 1 になります(触れている場合は1)。タプルの2番目と3番目の項目は、現在の(または最新の)タッチ位置となります。
5.6. MicroPython の出力をディスプレイに出す¶
このディスプレイは UART からの入力をサポートし、基本的な VT100 コマンドを実装しています。つまり、汎用端末として使用できるということです。pyboard を設定して、出力をディスプレイにリダイレクトしましょう。
最初に UART オブジェクトを作成する必要があります:
>>> import pyb
>>> uart = pyb.UART('XA', 115200)
これはディスプレイが X 位置に接続されていることを前提としています。Y 位置にある場合は代わりに uart = pyb.UART('YA', 115200)
としてください。
今度は、REPL 出力をこのUARTに接続してください:
>>> pyb.repl_uart(uart)
以後は MicroPython のプロンプトで入力したものと、受け取った出力がディスプレイに表示されます。
このモードを動作させるためのセットアップコマンドは不要で、ディスプレイを使って pyboard だけでなく UART の出力を監視することもできます。必要とされるのは、ディスプレイに電源、グランド、電源/有効ピンが high で駆動されることだけです。ディスプレイの UART 入力の文字が画面に表示されます。メソッド set_uart_baudrate
を使って UART のボーレートをデフォルトの 115200 から調整できます。