5. LCD160CR皮肤¶
本教程展示了如何开始使用 LCD160CR 皮肤。
有关显示器驱动程序的详细文档,请参阅
lcd160cr
模块。
5.1. 插入显示器¶
显示器可以直接插入 pyboard(支持所有 pyboard 版本)。您将显示器插入到 pyboard 顶部的 X 或 Y 位置。显示器应覆盖 pyboard 的一半。有关如何实现这一点,请参见上图;图片左半部分显示X位置,右半部分显示Y位置。
5.2. 找驱动¶
您可以使用电源/使能引脚和 I2C 总线直接控制显示器,但使用
lcd160cr
模块提供的驱动程序会方便得多 。该驱动程序包含在最新版本的 pyboard 固件中(请参阅此处)。您还可以在
此处的 GitHub 存储库中找到驱动程序 ,要使用此版本,您需要将文件复制到您的开发板,并复制到通过导入搜索的目录(通常是 lib/ 目录)。
安装驱动程序后,您需要导入它才能使用它:
import lcd160cr
5.3. 测试显示¶
有一个测试程序,您可以使用它来测试显示器的功能,也可以作为开始创建自己的使用 LCD 的代码的基础。这个测试程序包含在最新版本的 pyboard 固件中,也可以在 GitHub 上 此处找到。
要从 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),元组中的第二个和第三个条目是 x 和 y 坐标当前(或最近)的触摸。
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 提示符下键入的任何内容以及您收到的任何输出都将出现在显示屏上。
此模式不需要设置命令即可工作,您可以使用显示器来监控任何 UART 的输出,而不仅仅是来自 pyboard。显示器所需的只是电源、接地和电源/使能引脚驱动为高电平。然后显示器的 UART 输入上的任何字符都将打印到屏幕上。您可以使用
set_uart_baudrate
方法从默认的 115200 调整 UART 波特率 。