眼动模块完全指南:如何用一块圆屏让你的机器人拥有8种生动眼神
【免费下载链接】eye-tracking-module源师兄扩展项目: 眼动模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/eye-tracking-module
eye-tracking-module(源师兄眼动模块)是源师兄扩展项目中的眼动控制模块,通过串口连接一块圆形屏幕,让 OpenBrother 机器人的"眼睛"会眨眼、会转头、会变色。本文带你零基础学会用它快速实现 8 种生动眼神与 7 种清屏颜色,让你的机器人瞬间拥有"表情"。
1. 眼动模块是什么?
可以把眼动模块理解为机器人的一双"电子眼" 🧐:
- 一块圆形屏幕通过**串口(UART)**接在源师兄主板上
- 屏幕里预先存好了 73 张表情图片(眼睛、眨眼睛、朝各个方向看等)
- 代码只需发送一个"图片编号",圆屏就会立刻切换到对应眼神
相比自己画眼睛、控制舵机转眼珠,这种方式零调试、即插即显,特别适合新手做表情交互、情绪反馈类项目。
模块的基本信息可以在 config.json 中查看, Blockly 积木入口定义在 category.json 中。
2. 接线前必看:串口怎么选?
积木块里第一个下拉框是串口选择,支持 6 个选项:
| 串口 | 说明 |
|---|---|
| P1 / P2 | 常用主串口 |
| P8 / P12 / P15 / P16 | 备选 GPIO 软串口 |
💡 接线小贴士:圆屏的 TX 接对应 P 口,RX 固定接 P0。选哪个 P 口,积木里就要选哪个,二者必须一致,否则屏幕没反应。
串口初始化的底层逻辑在 library/CircularScreenExtend.py 中:选 P1/P2 等软串口时会自动调用SUART()建立通信。
3. 积木用法:两块积木搞定眼神控制
打开图形化编辑器,你会看到"眼动模块"分类下只有两块积木,简单到一次就能学会 ✅:
3.1 "显示眼神"积木
⚠️ 注意:本图仅作示意占位,实际以编辑器中积木为准。
操作 3 步:
- 拖入"眼动模块 显示…"积木
- 第一个下拉框选串口(如P1)
- 第二个下拉框选眼神,共8 种:
| 眼神 | 效果 |
|---|---|
| 👀 眼睛 | 默认睁开的大眼睛 |
| 😑 眨眼 | 自动连续眨一次眼 |
| ⬆️ 向上看 | 眼珠朝上 |
| ⬇️ 向下看 | 眼珠朝下 |
| ⬅️ 向左看 | 眼珠朝左 |
| ➡️ 向右看 | 眼珠朝右 |
| ↙️ 左下看 | 眼珠朝左下 |
| ↘️ 右下看 | 眼珠朝右下 |
眨眼并不是单张图片,而是一段由 8 帧图片连播 200ms/帧 组成的动画,源码见 library/CircularScreenExtend.py 的eye_blink()函数。
3.2 "清屏颜色"积木
第二块积木可以让整块圆屏纯色填充,用于"闭屏休息"或氛围灯效果 🎨,共 7 种:
清屏(黑)、白色、红色、蓝色、绿色、黄色、橙色
清屏本质是发送 RGB565 颜色值,对应实现在 library/CircularScreenExtend.py 的clear_screen_command()。
3.3 组合玩法示例
- 打招呼:红色清屏 → 显示"眼睛" → 眨个眼
- 卖萌:连续"向上看" + "眨眼",像好奇宝宝
- 报警:橙色清屏 → 左右快速扫视
4. 想更进一步?直接调用 Python 库
积木本质是生成了 Python 代码,你可以跳过积木直接调用库函数,能力比积木更强(积木只暴露了 8 种眼神,屏幕其实预存了73 张图片,编号 0~72)。
核心 3 个函数都在 library/CircularScreenExtend.py:
| 函数 | 作用 |
|---|---|
show_pic_command(pic_id, uart) | 显示任意编号 0~72 的表情图片 |
clear_screen_command(r, g, b, uart) | 自定义 RGB 清屏任意颜色 |
show_text_command(text, x, y, ...) | 在屏幕上显示文字(支持 GB2312 中文) |
show_icons_command(icon_infos, uart) | 显示牛/兔/狗/蛇图标和数字 0-9 |
调用方式很简单:
from CircularScreenExtend import * uart = SUART('P1') show_pic_command(0, uart) # 显示默认眼睛 clear_screen_command(255, 0, 0, uart) # 红色清屏📌 每发一条指令后底层会
sleep_ms(50)等待屏幕刷新,这是协议要求,请勿删改。
积木到 Python 的映射规则可参考 blocksdef.js。
5. 常见问题速查
Q1:屏幕完全没反应?先检查串口选择是否与物理接线一致;再确认接线是否松动。圆屏只收不显通常是 TX/RX 接反。
Q2:眼神切换有延迟、一顿一顿?这是正常的,每帧切换内置 50ms 等待。想要更"快"的节奏,建议用"眨眼"这类组合动画而不是手动循环切图。
Q3:可以显示自定义图片吗?不行。屏幕 Flash 中预存的 73 张图片编号固定(0~72),只能切换,不能上传新图。想换风格,可用清屏颜色 + 文字组合表达。
Q4:P0 口能用吗?P0 被内部固定为 RX 使用,不要占用。
6. 动手试试吧!
按下面的最小流程走一遍,10 分钟就能看到效果 🚀:
- 圆屏接线:TX → P1,RX → P0
- 图形化编辑器中拖入两块"眼动模块"积木
- 串口都选P1,先选"眼睛",再选"眨眼"
- 下载到机器人,看它对你眨眨眼 👋
想查看完整源码细节,可以浏览 library/CircularScreenExtend.py;想理解指令帧格式(0x5A 0xA5帧头 + 校验和),见 clear_screen_command 实现。
现在,让你的机器人用 8 种眼神跟你"对话"吧!
【免费下载链接】eye-tracking-module源师兄扩展项目: 眼动模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/eye-tracking-module
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考