国庆长假无聊了玩玩行空板K10电子宠物

2026-10-022

一、项目背景

需求来源

国庆7天假期,比较忙没有出去,打算参加df的活动,于是使用ai或者其他工具,找想法,做项目。想想假期无聊了有猫的可以撸猫,有行空板K10的能不能撸电子宠物猫呢,于是使用ai提交想法,并做出了安静的像素小宠物,豆豆。接着我们看看他的定位和项目过程。

定位:一只安静的像素小宠「豆豆」

这个项目电子宠物的气质是静:它大部分时间待在房间中央轻轻呼吸,数值随时间缓慢变化,你随时按键照顾它。没有关卡、没有输赢,只有"养着"的过程。

小宠名叫 豆豆,会饿、会脏、会不开心、会生病、会睡觉、会升级。每次照顾加经验,经验满就升级;任意一项数值掉到 0 附近就"生病",直到被照顾好。


二、功能介绍

玩法

豆豆有三个核心数值,随时间自然下降:

| 数值 | 含义 | 掉到 0 附近 |

|---|---|---|

| 饱食 | 饿不饿 | 会"我饿了" |

| 心情 | 开不开心 | 会不高兴 |

| 清洁 | 脏不脏 | 会"脏" |

睡觉时三项下降变慢、心情回升;任意一项长期为 0 就进入生病状态(屏幕给出异常表情 + 汗滴 + 提示),需要被照顾好才恢复。照顾动作都会加经验,经验满升级,等级提升会有升级音效与提示。

操作方式

| 按键 | 效果 |

|---|---|

| A 短按 | 喂食(饱食 +,心情 +) |

| A 长按 | 玩耍(心情 +,饱食 −);饱食太低会拒绝玩 |

| B 短按 | 清洁(清洁 +,心情 +) |

| B 长按 | 睡觉 / 唤醒(切换) |

| A+B 短按 | 音效 开 / 关 |

| A+B 长按 | 安抚(生病时把当前最差的一项救回来) |

状态机

┌─────────────┐

   上电/读档 ──────▶ │   静息状态   │ ◀───────────────┐

                    └──────┬──────┘                 │

           衰减任一值 →0    │  照顾/玩耍/睡觉          │ 照顾好最差项

            (持续未照顾)   ▼                          │

                    ┌─────────────┐                  │

                    │   生病状态   │ ─── 安抚 ────────┘

                    └──────┬──────┘

           睡觉切换         │

                    ┌─────────────┐

                    │  睡觉状态    │ (衰减变慢, 心情回升)

                    └──────┬──────┘

           经验满           │ 唤醒

                    ┌─────────────┐

                    │   升级瞬间   │ ───→ 回到静息

                    └─────────────┘

三、硬件清单

  • 行空板 K10(ESP32-S3,2.8" ILI9341 240×320 竖屏,无触摸)
  • 自带:A / B 两个按键、3 颗 WS2812 RGB、SC7A20H 六轴加速度计、温湿度 + 光照、2MP 摄像头、WiFi、扬声器
  • 一根 USB-C 数据线
  • 一台 Windows 电脑

四、程序编写

模块划分

18_pet.py 单文件,逻辑分区如下:

  • 布局 / 配色常量:屏幕方向、舞台矩形、状态条坐标、配色
  • 中文点阵绘制:hz() / hz_w() / hz_v()(见 5.3)
  • 宠物绘制:fill() / body() / blush() / eyes() / mouth() / z_sleep() / sweat()
  • 静态层:draw_static()(房间 + 标题 + 状态条底框,只画一次)
  • 每帧动态:draw_stage() / draw_bars() / footer_text() / draw_footer() / draw_level() / tick_light()
  • 动作:do_feed() / do_clean() / do_play() / do_sleep_toggle() / do_comfort() / check_level()
  • 数值系统:decay(now) / satiety/mood/clean/level/exp/sick/sleeping 全局 + last_tick 哨兵
  • 主循环:main()(按键边沿检测 + 动作 + 衰减 + 渲染 + 周期存档)

布局与配色

W,H = 240,320  (竖屏 dir=2)

舞台(宠物房间): STAGE_X=24, STAGE_Y=46, STAGE_W=192, STAGE_H=170  (底部 y=216)

宠物中心: (120, 128), 身体半径 PET_R=26

三根状态条: BAR_X=56, BAR_W=168, BAR_H=12, BAR_YS=(232, 254, 276)  # 饱食/心情/清洁

顶部标题 "电子宠物", 宠物名 "豆豆"

底部: 一行 ASCII 状态提示(如 T/Z) + 中文提示语(仅变化时重画)

配色(深蓝夜色风,护眼):

常量 值 用途
C_BG 0x101830 背景
C_PANEL 0x1B2238 面板 / 状态条底
C_PET 0x8ED0E6 宠物外圈 / 装饰
C_BODY F2D6A0 身体(暖白)
C_OK 0x39D353 数值充足
C_LOW 0xE8541F 数值偏低

宠物绘制

豆豆是一只圆滚滚的小宠:

  • body() 用 draw_circle(r=26,约 9 ms)画身体,加 blush() 腮红、不同 eyes() 表情、mouth() 嘴型。
  • 呼吸动画:身体中心 STAGE_CY 随 time.ticks_ms() 正弦上下浮动 1~2 px。
  • z_sleep():睡觉时画飘出的 "Z"(用英文 draw_text,ASCII 可用)。
  • sweat():生病时额头冒汗滴。
  • footer_text(now) 返回当前应显示的状态字母(如 T 睡觉 / Z 普通),只有变化时才 draw_footer() 重画,避免每帧重绘中文。

数值与状态机

  • 全局:satiety = mood = clean = 80,level = 1,exp = 0,sleeping = False,sick = False,age_days,anim_type。
  • decay(now):用 last_tick 哨兵(初值 0)跳过首帧;此后按真实时间差自然下降。睡觉时下降速率减半、心情回升。
  • 任一值 ≤ 阈值 → sick = True,持续给出病态表情与提示。
  • check_level(now):经验满则 level += 1、清经验、播升级音效、置升级提示。
  • do_comfort()(A+B 长按):生病时把当前最低的一项拉回安全线。

按键处理

main() 里每帧读 bt_a.status() / bt_b.status(),做边沿检测:

  • 记录 a_down_ms / b_down_ms(按下瞬间时刻),松开时按持续时长区分短按 / 长按。
  • 同时按下 A+B:置 both_ms,达 BOTH_MS 判为长按 → do_comfort();若未达长按就松开 → 切换静音。
  • suppress_single:A+B 周期内抑制单键动作,防止误喂食 / 误清洁。两键都松开才清除。

主循环

while True:

    读 A/B 状态 -> 边沿/长按/A+B 组合 -> 触发动作(sfx+ 改数值)

    decay(now); check_level(now)

    draw_stage(); draw_bars(); footer_text()-> 按需 draw_footer(); draw_level(); tick_light()

    screen.show_draw()            # 每帧一次

    每 8s save()

    time.sleep_ms(LOOP_MS)        # 主循环节拍

撸豆豆视频

五、后续可改进方向

  • 喂食动画 / 食物图标:吃的时候画个小碗或骨头。
  • 更多表情 / 动作:打哈欠、转圈、跳舞(升级时)。
  • 昼夜与年龄:用 age_days 做成长曲线,或按板载光照传感器自动调背景亮度。
  • 小游戏互动:A+B 短按除了静音,可加"猜拳""抚摸"等轻互动。

d

硬件清单

创作许可协议

本项目采用 CC BY(署名) 进行许可。

所需材料/产品

加载全部

    行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算

    行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算

    行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算

相关推荐

评论(0)
- 没有更多了 -

创作许可协议

本项目采用 CC BY(署名) 进行许可。

相关推荐

所需材料/产品

行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算

行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算

行空板K10 AI智能体编程主板,支持ESP-Claw/DeepSeek/MCP/边缘计算