☰
眼动模块完全指南:如何用一块圆屏让你的机器人拥有8种生动眼神
2026/9/25 12:44:51 网站建设 项目流程

眼动模块完全指南:如何用一块圆屏让你的机器人拥有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 步:

  1. 拖入"眼动模块 显示…"积木
  2. 第一个下拉框选串口(如P1)
  3. 第二个下拉框选眼神,共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 分钟就能看到效果 🚀:

  1. 圆屏接线:TX → P1,RX → P0
  2. 图形化编辑器中拖入两块"眼动模块"积木
  3. 串口都选P1,先选"眼睛",再选"眨眼"
  4. 下载到机器人,看它对你眨眨眼 👋

想查看完整源码细节,可以浏览 library/CircularScreenExtend.py;想理解指令帧格式(0x5A 0xA5帧头 + 校验和),见 clear_screen_command 实现。

现在,让你的机器人用 8 种眼神跟你"对话"吧!

【免费下载链接】eye-tracking-module源师兄扩展项目: 眼动模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/eye-tracking-module

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询