大多数模拟器中的开发板处理的是干净信号:引脚拉高,LED 亮起。而 DFRobot 的产品目录属于另一种电子设备。心跳并不干净,车库中的 CO 浓度、水族箱的 pH 值,或者“此刻房间里是否有人”这个问题也同样不干净。这些正是 DFRobot 所擅长的传感器类型,也是这次合作带给 Velxio 的东西:测量混乱物理世界的硬件,同时将混乱的物理世界也模拟出来,以滑块和控制器的形式,让你在代码运行时可以拖动它们。
这是我们关于支持 Velxio 的公司系列文章的第四篇,前几篇分别是 Seeed Studio、M5Stack 和 Pimoroni。
从 UNIHIKER 开始
UNIHIKER M10 是 DFRobot 面向教育领域的单板计算机:正面是一块 2.8 英寸触摸屏,内部是一个完整的 Linux 系统,Python 是首选语言,边缘连接器让教室里的学生无需面包板即可直接夹上元件。在 Velxio 中,它启动后就是它本来的样子——一台带屏幕的小型 Linux 机器。

打开 velxio.dev/example/unihiker-system-time 并点击运行。这是 DFRobot 官方 wiki 中的“系统时间”练习:一个 Python 脚本在内置屏幕上绘制日期和时钟,并每秒刷新一次。它没有为模拟器做任何改编;关键在于,教师已经在使用的课程可以按原样运行。从这里开始,其他 UNIHIKER 示例也跟随课堂的节奏:边缘引脚上的交通灯、数字钢琴、可触摸的星空,以及一个按照 wiki 教学方式向 SIoT 仪表盘上报数据的 IoT 智能家居。
关于计划有一点说明:UNIHIKER 运行一个完整的 Linux 客户机,这比浏览器开发板更重,因此需要付费的 Velxio 计划。本文中的其他所有内容,包括 Arduino Uno 或 ESP32 上的传感器和 HuskyLens,都可以在免费计划上运行。
一个可以与之争辩的心跳
Gravity ECG 示例是最适合首先展示给别人的。无需接线,它打开时是一个连接到 Uno 的 AD8232 心率前端,以及一个在每个 R 波尖峰时闪烁的红色 LED——一个你可以在板上看到的脉冲。然后将 BPM 滑块从 40 拖到 180,观察 LED 跟上节奏,同时串行监视器打印计算出的心率。
那个滑块就是模拟传感器的全部意义。在桌面上,测试你的心动过速警报意味着找一个心率达到每分钟 180 次的人。而在 Velxio 中,这意味着拖动一个控件,警报示例 正是这样做的:阈值、迟滞,以及在这种电路真正有用之前你实际需要搞对的逻辑。
Gravity 系列,六款传感器

这些传感器今天都已收录在组件选择器中,每个都有其对应的物理控制:
- C4001 毫米波存在传感器。 是雷达,不是 PIR:它能感知存在、距离和方向。示例涵盖存在读数、夜灯、距离分区和接近或离开检测。
- AD8232 ECG,如上所述:从串行绘图仪轨迹到警报共四个示例。
- MQ7 一氧化碳。 从原始读数到校准的 ppm 读数,再到三 LED 空气质量计和200 ppm 警报。
- 模拟 pH 套件。 一个读数、一个水族箱范围守护、一个趋势箭头和一个双泵加药控制器,后者在二十行代码内就是一个真正棘手的控制问题。
- 土壤湿度探头。 阈值浇水、带条形图的校准百分比、带迟滞的自动灌溉以及 ESP32 毫伏读数。
- DF2301Q 离线语音识别。 这个模块无需云端即可监听“你好机器人”。在语音控制灯中,你输入或选择短语,模块就会像真实硬件听到它那样做出反应。
HuskyLens,一个会学习的 AI 摄像头

HuskyLens 是 DFRobot 内置神经网络的摄像头:它能识别人脸、物体、颜色和线条,你可以通过按下其学习按钮来训练它。在 Velxio 中,它保留了这种特性。你向它输入场景,它通过 I2C 或 UART 报告它所看到的内容,DFRobot 自己的 Arduino 库无需修改即可与它通信;DFRobot 的两个官方示例都按原样运行。示例库在此基础上进一步扩展,包括人脸识别门迎、跟随物体的云台舵机和巡线转向信号,这在你拥有机器人之前就已经完成了机器人的大部分工作。
与 DFRobot 合作
DFRobot 支持了这项工作并提供了硬件,而他们的文档文化则完成了其余大部分工作:每个 Gravity 模块都有一个公开的 wiki 页面,详细说明了协议,UNIHIKER 的课程也一步一步地写了下来。当一家公司如此彻底地记录硬件时,“让模拟与文档匹配”就变成了一个可测试的主张,而他们的库无需修改即可运行就是测试。
我们要感谢 DFRobot 团队将浏览器模拟器视为其硬件可以真正栖息的场所。对于传感器这样的主题,这比平时更重要:一个班级可以在桌上没有任何液体的情况下校准 pH 控制器,而正在决定 C4001 是否适合其项目的人可以零成本地找到答案。
实体硬件在 dfrobot.com,这些示例所遵循的 wiki 在 wiki.dfrobot.com。
示例库中的所有 DFRobot 示例
每个链接都会打开一个准备运行的项目。
UNIHIKER M10(付费计划)
- 屏幕上的系统时钟
- 内置屏幕上的 Hello
- 在边缘引脚 2 上闪烁 LED
- 边缘引脚 0/1/2 上的交通灯
- 按钮 A/B + 蜂鸣器
- 数字钢琴
- 表情大师
- 星空(触摸屏幕)
- AI 语音控制灯
- 超声波测距仪
- 舵机控制
- 温湿度监测器
- IoT 智能家居(SIoT)
HuskyLens
- DFRobot 官方 I2C 示例
- DFRobot 官方 UTILITIES 示例
- 读取检测到的物体(I2C)
- 人脸识别门迎
- 云台舵机跟随物体
- 巡线转向信号
- 驱动屏幕:算法、学习、自定义文本
- 将照片和截图保存到 TF 卡
- UART 模式(TX0/RX0)
Gravity 传感器
- ECG:串行绘图仪上的轨迹
- ECG:测量心率
- ECG:随心脏跳动的 LED
- ECG:心动过速/心动过缓警报
- C4001:毫米波存在检测(I2C)
- C4001:存在检测夜灯
- C4001:距离分区
- C4001:接近或离开
- MQ7:读取 CO 浓度
- MQ7:校准的 ppm 读数
- MQ7:三 LED 空气质量计
- MQ7:200 ppm CO 警报
- pH:读取 pH 值
- pH:水族箱范围守护
- pH:带趋势箭头的平滑读数
- pH:双泵加药控制器
- 土壤湿度:浇水阈值
- 土壤湿度:校准百分比 + 条形图
- 土壤湿度:带迟滞的自动灌溉
- 土壤湿度:ESP32 毫伏读数
UNIHIKER 的引脚排列和功能详见开发板参考:UNIHIKER M10。