MPDisplay:一个通用多平台的显示、事件和设备驱动框架,适用于 MicroPython 和 CPython

文摘   2024-10-30 00:01   湖南  

MPDisplay 是一款针对 MicroPython、CircuitPython 和 CPython(标准Python)等多种 Python 版本的通用显示器、事件和设备驱动框架。它可以作为独立工具为您的应用程序创建图形前端,也可以作为基础与 LVGL、MicroPython-touch 等 GUI 库或您自己开发的 GUI 框架结合使用。MPDisplay 的主要目的是为 MicroPython 提供显示器和触摸驱动程序,但它对那些可能从未接触过 MicroPython 的开发者同样有用。

MPDisplay 的优势

1. 跨平台兼容性

MPDisplay 提供了统一的 API,适用于 MicroPython、CircuitPython 和 CPython,使其能够在不同的平台之间无缝迁移。例如,您可以将 ESP32-S3 上的 MicroPython 代码移植到 Windows 上的 CPython 环境中,而无需修改代码。您可以在桌面、笔记本电脑或 Chromebook 上进行图形开发,然后将代码移植到微控制器,与您的传感器和设备交互。CPython 的错误消息比 MicroPython 更详细,这使得在出现问题时更容易进行故障排除。

2. 设备兼容性

MPDisplay 基于微控制器上的可用设备,而这些设备不一定在桌面操作系统上可用。例如,旋钮编码器和鼠标滚轮显示为相同的设备类型,产生相同的事件。微控制器上的触摸屏与桌面上的鼠标产生相同的事件。键盘/按键也是如此。

3. 可扩展性

MPDisplay 提供了一些基本元素,您可以利用这些元素添加自己的库、类和函数,以实现更强大的功能。

4. 颜色调色板

MPDisplay 提供了一些内置的调色板,以及生成自定义调色板的机制。

5. 丰富的示例

MPDisplay 包含了许多示例,包括专门为 MPDisplay 开发的示例,以及从 Russ Hughes 的 st7789py_mpy 移植的示例。它还兼容 Peter Hinch 的 MicroPython GUI 库 MicroPython-Touch 和 Nano-GUI 在 MicroPython 上的示例。

6. 硬件支持

MPDisplay 支持在微控制器和类 Unix 操作系统上的 MicroPython。

7. 高效的驱动程序

在 MicroPython 上,MPDisplay 支持 kdschlosser 的 lvgl_micropython 总线驱动程序,这是一种用 C 语言编写的速度非常快的总线驱动程序。

8. 多种显示驱动方式

MPDisplay 支持 CircuitPython 的 FourWire 和 ParallelBus 总线驱动程序,以及基于 FrameBufferDisplay 的接口,例如 dotclockframebuffer、usb_video 和 rgbmatrix。

入门指南

重要:您需要从 board_configs 目录中找到与您的硬件相匹配的 board_config.py 文件。如果您在桌面操作系统上运行,该文件会为您提供,您不需要任何其他文件。如果您在微控制器(如 ESP32 或 RP2040)上运行,您还需要在 board_config.py 中引用的显示器、触摸和编码器驱动程序。这些驱动程序中的许多可以在 drivers 目录中找到。有关 board_config.py 的更多详细信息,请参阅本节末尾。

MPDisplay 的核心功能

MPDisplay 本质上是一个用于 GUI 库的基础,而不是一个 GUI 库本身。它不提供诸如按钮、复选框或滑块之类的控件,也不提供计时机制。如果需要,您将需要一个 GUI 库来提供这些功能,尽管许多应用程序不需要它们。(如果需要使用定时中断,您可以使用跨平台的库 timer。它适用于 CPython 和 MicroPython,但不适用于 CircuitPython。您也可以使用 asyncio 进行计时。)

总结

MPDisplay 是一款功能强大的图形界面框架,它提供了跨平台兼容性、设备兼容性、可扩展性和丰富的示例,使其成为构建嵌入式应用程序的用户界面的理想选择。无论您是 MicroPython、CircuitPython 还是 CPython 开发者,MPDisplay 都能为您提供强大的图形界面开发能力。

项目地址:https://github.com/bdbarnett/mpdisplay


DIY太阳系
专注分享嵌入式系统、电子产品diy,iot、机器人等相关知识!
 最新文章