Skip to content

[兼容性问题] 掌控板3.0 Python代码模式下缺少oled库,与图形化模式及官方教程不一致 #3

@tyzr123

Description

@tyzr123

[兼容性问题] 掌控板3.0 Python代码模式下缺少oled库,与图形化模式及官方教程不一致

问题描述

在掌控板3.0上,图形化编程模式已经默认适配了新的显示系统(使用lv_gui),用户拖拽显示控件可以正常工作。然而在Python代码模式中,原有的oled库仍然缺失,直接使用from mpython import oled会报错NameError: name 'oled' isn't defined

更值得注意的是,官方提供的教程案例中仍广泛使用oled显示功能,例如教程中常出现以下代码:

from mpython import oled
oled.DispChar("示例文字", 0, 0)
oled.show()

这些示例代码在掌控板3.0上无法运行,导致初学者按照官方教程学习时直接遇到障碍。

重现步骤

  1. 在掌控板3.0上运行以下Python代码(来自官方教程示例):
    from mpython import oled
    oled.DispChar("示例", 0, 0)
    oled.show()
  2. 观察运行结果:报错 NameError: name 'oled' isn't defined

(是的,没错,这就卒了¯_(ツ)_/¯)

而在图形化模式下,同样的显示功能正常(使用lv_gui控件)。

为啥必须要改

  • 官方教程失效:初学者依赖官方教程入门,但教程中的代码在最新硬件上无法运行,严重影响学习体验和产品口碑。
  • 图形化与代码模式行为不一致:用户从图形化过渡到代码模式时,会发现同样的显示功能无法使用,造成困惑。
  • 社区资源浪费:大量已有的教学资料、开源项目仍基于oledAPI,用户无法在3.0上直接复用这些资源。

预期的解决方案

建议官方从以下三个方面着手,帮助用户平稳过渡:

  1. 发布公告
    在官网、社区及IDE内醒目位置说明掌控板3.0的显示系统变更,告知用户:

    • 图形化模式已自动适配新显示系统,无需修改。
    • Python代码模式下,旧版oled库不再提供,用户需要迁移到新API或等待兼容方案。
    • 同时更新官方教程,将涉及oled的示例统一替换为lv_gui的等效实现。
  2. 提供迁移教程
    编写详细的代码迁移指南,对比展示旧版oled与新lv_gui的对应用法,给出常见显示操作的改写示例(如显示文本、清屏、画图等),帮助开发者快速适配现有项目。尤其应标注官方教程中每个示例对应的新写法。

  3. 实现兼容层
    在固件中增加一个向后兼容的模块(例如oled_compat.py),将旧oledAPI调用映射到新显示系统,使得旧代码无需修改即可在3.0上运行。若无法做到100%兼容,也应提供简易适配方案,降低用户迁移成本。同时,可以考虑在IDE中增加自动转换工具,帮助用户一键迁移代码。也可以选择在IDE中添加一个遇到oled报错时的自动弹窗提示

补充说明

目前本仓库的Issue页面为空,希望官方能完善沟通渠道。
而不是像一个年久失修的仓库那样。
如已有修复计划或时间表,请及时告知,以便社区用户合理安排项目迁移。

感谢你们对掌控板产品的持续投入,期待上述问题能尽快得到妥善解决。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions