返回

Seeed 全新 XIAO IPS 显示屏开发板,发布数日后即可在浏览器中运行

9 月 8 日,Seeed Studio 发布了三款新玩意:0.96 英寸、1.14 英寸和 1.47 英寸 IPS 显示屏,每一款都是已经焊好 XIAO nRF52840 Plus 的载板。 屏幕、按键、6 轴 IMU、麦克风和电池接口,全都塞进一个指尖大小的东西里。

它们现在已经在 Velxio 里了。你可以打开一块,按下 Run,看着 Seeed 自己的演示固件在玻璃上作画——无需下单买板,免费套餐即可。画布上的开发板 按照 Seeed 拍摄的方式绘制,正反两面:一面是玻璃、USR 按键和麦克风; 另一面是焊上的 XIAO nRF52840 Plus、电池插座、电源开关、卡槽或 Grove 接口,以及你可以接线的焊盘。

XIAO 1.47 英寸 IPS 触摸显示屏:左侧是组装好的开发板,显示其出厂仪表盘;右侧是载板背面,可见 XIAO nRF52840 Plus、电池接口和 microSD 卡槽,由一只手拿着

三款开发板

三款板子搭载的是同一台计算机——XIAO nRF52840 Plus——周围也是同样的 传感器:6 轴 IMU、PDM 麦克风、低功耗蓝牙,以及带充电检测的 JST 电池 接口。不同的是玻璃,以及 Seeed 在它周围放了什么。

XIAO 0.96 英寸 IPS 显示屏 —— ST7789 面板,80 x 160,配两个用户 按键。小尺寸的那款:状态读数、可穿戴设备,任何只需要一行文字加一个数字 的场景。

XIAO 0.96 英寸 IPS 显示屏,正反两面,显示其出厂仪表盘,包含电池、运动和麦克风读数

XIAO 1.14 英寸 IPS 显示屏 —— ST7789 面板,135 x 240,三个用户 按键,并且与另外两款不同,带一个 Grove I2C 接口。如果你想外挂传感器, 这个接口就是选它的理由。

XIAO 1.14 英寸 IPS 显示屏,正反两面,带三个用户按键、一个 Grove I2C 接口和电池接口

XIAO 1.47 英寸 IPS 触摸显示屏 —— JD9853A 面板,172 x 320,带 电容触摸层和 microSD 卡槽。旗舰款,也是内部最热闹的一款。

浏览器实际绘制了什么

三块并排的仿真面板:0.96 英寸运行 Seeed 的 Electronic Quicksand,沙粒堆积在一个角落;1.14 英寸显示 GraphicTest 的彩条;1.47 英寸运行 Touch Circle,九个白色圆圈标记手指点击的位置

这三张图不是效果图。每一张都是仿真显示控制器的帧缓冲,由 Seeed 自己编译的固件填充。

这条链路值得说清楚,因为它正是关键所在。你的草图由真正的 arduino-cli 配合 Seeed 自己的 nRF52 核心编译,使用开发板自己的 FQBN。生成的固件由 全新的浏览器内 nRF52840 引擎逐指令执行——与 Velxio 中已经运行 ESP32 和 RP2040 开发板的是同一类引擎。固件启动 SPI 外设并开始移出字节;一个 ST7789 的模型在每个字节上从引脚读取片选和数据/命令线,并解码它被告知 要做什么。你在屏幕上看到的就是那个控制器内存中的内容。

没有任何东西在库层面被拦截。如果你把 Seeed 的图形库换成自己的 SPI 写入,面板照样会绘制。

从图形测试开始

  1. 打开 velxio.dev/example/xiao-114-graphictest。 无需账号。
  2. 按下工具栏上的播放按钮。草图会在 Velxio 的服务器上编译——新库的 首次构建需要几分钟,之后就会很快——然后开发板启动。
  3. 看着面板依次运行十种绘图原语:彩条、线条、矩形、圆形、三角形、 文字、像素渐变。底部的串口监视器会打印每一项的耗时,和你在工作台上 通过 USB 看到的一模一样。
  4. 然后改点东西。换个颜色,加一个 fillCircle,再运行一次。

倾斜它、点它、往卡里放个文件

面板是最难的部分,但不是最有意思的部分。这些开发板值得仿真的原因在于 板上的其他一切,而它们全都接到了你可以用鼠标操作的东西上。

IMU。 Seeed 的 Electronic Quicksand 演示会撒下几百粒沙子,让它们 顺着开发板倾斜的方向落下。按下画布工具栏上的 Sensors,拖动 Tilt 面板上的圆点,沙子就会涌向角落。LSM6DS3TR-C 在其真实地址上以 I2C 应答,灵敏度也符合其数据手册,所以草图换算出的数字就是这颗器件会给出的 数字。同一个面板现在也驱动裸板 XIAO nRF52840 Sense、MG24 Sense 和 nRF54L15 Sense 上的 IMU,它们搭载的是同一颗器件。

触摸玻璃。 在 1.47 英寸开发板上,电容控制器应答的是 Seeed 驱动 读取的同一个 14 字节报告,手指按下时其中断线被拉低。用鼠标在面板上 画,圆圈就会落在你点击的位置。

microSD 卡槽。 在真实开发板上,卡和面板共用一条 SPI 总线,靠各自 的片选区分,这里也一样。草图挂载时,你项目里的文件就在卡上,你还可以 通过开发板的 SD Card 面板放入自己的文件。

电池。 这个是最妙的惊喜。Seeed 的电池演示不信任静态电压——在 USB 供电时,充电器自身的节点看起来可能像一节电芯——所以它先学习一个纯 USB 基线,只有在持续压降之后才判定电池存在。在同一个 Sensors 面板里把电池 滑块往下拖十分之一伏,看着草图的状态机做出判断。

仿真中的 0.96 英寸面板,显示滑块下拉后 Seeed 的电池演示:绿色电池图标,52%,3.80 V

运行厂商代码发现了什么

十五个画廊示例中有十四个是 Seeed 自己的文件,只改了两处:顶部的移植 说明变成一段简短的头注释,说明草图来自哪里;以及删掉一个核心已经提供的 #include。运行它们发现了 Seeed_GFX2 1.0.0——这些开发板随附的 图形库——中的两个真实问题。

它无法在区分大小写的文件系统上构建。 该库的产品目录包含 XIAO_ePaper_Boards.h 和 reTerminal_ePaper_Boards.h,而文件实际 拼写为 EPaper——而且这两个头文件各自又以同样错误的方式命名自己的 配置头文件,所以第二对只有在你修好第一对之后才会暴露出来。三个文件里 共四行 #include。在 macOS 和 Windows 上这能解析;在 Linux 上—— 也就是编译农场运行的系统——每个涉及该库的草图都会以 “No such file or directory” 停止。它至今仍在 upstream 的 main 分支上。Velxio 在拉取 该库时会修复这四行,所以示例能够构建。

1.14 英寸面板配置的颜色顺序是错的。 该库把这块板配置为 RGB; 而面板实际接线是 BGR。Seeed 知道这一点——他们自己为这块板做的演示 带有一个草图内的覆盖设置,注释写着 “the panel is physically wired for BGR color order”——但库自身的配置没有跟上,后果在 Seeed 自己发布在 wiki 上的图形测试录像里就能看到:第一条彩条本应画成红色,结果出来是 蓝色;画成黄色的那条出来是青色。

第二点改变了 Velxio 对面板的建模方式。一个带有固定”红蓝互换”标志的 显示模型无法复现这一点,因为这种互换不是面板本身的属性——它是面板接线 与控制器的颜色顺序位不一致时产生的结果。所以 Velxio 将两者分开建模, 让它们相互抵消。使用 Seeed 覆盖设置的草图渲染正确;完全听信库的草图 则会显示与你在桌上看到的一样的红蓝互换。同样的修正也适用于显示反转, 那块板的黑色背景不再变成白色,靠的就是这个。

未建模的部分

坦诚说明这些缺口,因为一个默默什么都不做的模拟器,比一个明说自己不做什么的模拟器更糟糕:

示例库中的每一个示例

XIAO 0.96 英寸 IPS 显示屏

XIAO 1.14 英寸 IPS 显示屏

XIAO 1.47 英寸 IPS 触摸显示屏

这些开发板已在 Seeed 商店上架—— 0.96 英寸、 1.14 英寸 和 1.47 英寸触摸版—— 演示草图位于 Seeed-Projects/Display-Gadgets。 先在这里试试吧;这些草图无论哪种方式都无需改动即可运行。

开发板照片由 Seeed Studio 提供。


分享到:
David Montero

作者

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

相关文章


上一篇
222 个 Seeed Grove 模块现已在浏览器中运行
下一篇
在没有 Z 缓冲的情况下为 ESP32-S3 打造一款 OutRun 风格的 3D 赛车游戏