このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

5. LCD160CR スキン

このチュートリアルでは、LCD160CR スキンの始め方を説明します。

LCD160CRv1.0 picture

このディスプレイ用ドライバーの詳細な説明については 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()

これは FalseTrue のどちらを返します。画面をタッチしながら上記のコマンドを実行して、結果を確認してみてください。

タッチの位置を取得するには、次のメソッドを使用します:

>>> 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 から調整できます。