码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 开源分享|用MicroPython 做了个 AI 小鸡,它会长大,还记得我所有的情绪


    开源分享|用MicroPython 做了个 AI 小鸡,它会长大,还记得我所有的情绪 它没有预设的人设,所有的性格都来自和你的互动;它有实体,你摸它的屏幕,它会给你反应;它会记住你说过的话,你们的每一次聊天,都会变成它的一部分。
    合集 - 嵌入式技术导论(44)
    1.肝了半个月,嵌入式技术栈大汇总出炉2024-06-202.CM3调试系统简析2024-06-223.三分钟教学:手把手教你实现Arduino发布第三方库2025-03-164.C语言一点五编程实战:纯 C 的模块化×继承×多态框架2025-05-115.POB 面向老板编程—现实驱动的新型编程范式2025-05-286.串口协议解析实战:以 R60ABD1 雷达为例,详解 MicroPython 驱动中数据与业务逻辑的分离设计2025-11-197.仅售3xx 元!基于核桃派 zero 的掌上 Linux 小电脑,DIY 党狂喜03-258.小作坊 GitHub 协作闭环:fork-sync-dev-pr-merge 实战指南04-089.工控开发板从开箱到点亮 LED-恩智浦MCXE31B 实测:3 路 CAN + 以太网+自带调试器05-0810.WIZnet-EVB-Pico2开始,用MicroPython玩转以太网开发05-1211.如何与其他开发者进行协作:从SRS需求文档、RTM需求跟踪矩阵到Trello看板进度同步05-12
    12.开源分享|用MicroPython 做了个 AI 小鸡,它会长大,还记得我所有的情绪05-14
    13.硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显05-1714.老式雨滴传感器怕灰误报?使用MicroPython+ CDS1081快速实现尘雨霜检测06-0515.小白实操:uPyPI一键安装驱动,FDE 结冰传感器 MicroPython 全流程调试06-0516.5 分钟快速实操!MER-MCP1081 非接触液位+MicroPython 隔着桶壁读取连续水位06-0517.5 分钟快速上手!MicroPython+MSE 低成本土壤传感器同步读取土壤含水率和温度06-0518.DS18B20/TMP117 测温芯片国产平替MY18E20/T117B,MicroPython驱动实测06-0519.WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人07-0820.手把手教你搭建一个AI运行状态指示装置【全开源拆解】07-1521.嵌入式小白入门:5 分钟分清芯片与开发板,从树莓派 Pico 说起07-2022.嵌入式入门必看:5 分钟搞懂芯片参数表,从 Pico 开始读懂硬件规格书07-2023.最小系统板需要哪些部分?新手一看就懂:树莓派 Pico 硬件电路全解析07-2124.嵌入式入门第一坑:芯片引脚和开发板引脚,到底差在哪?07-2125.还在被芯片封装搞晕?用 RP2040 讲透 DIP、SOIC、QFP、BGA 的区别!07-2126.1 分钟搞懂 UF2:Pico 刷固件的 “拖放式” 魔法,原理全解析07-2127.XIP就地执行:让程序 “原地打工”,嵌入式开发效率直接拉满!07-2328.1 分钟看懂树莓派芯片命名:RP2040 和 RP2350 的数字含义全解析07-2329.看懂芯片系统框图,从 RP2040 的 “微型工厂” 开始07-2330.疑似Star造假的开源硬件项目?|用统计学工具批量排查结果统计07-2431.RP2040 引脚映射全解析:引脚映射就是芯片的 “接线指南”07-2432.1 分钟吃透 RP2040 引脚复用:省引脚、灵活设计,硬件开发的 “省钱黑科技”07-2733.0x20000000 是什么?RP2040 地址映射表背后的内存管理逻辑07-2734.双核 MCU 的协作架构:RP2040 的 SIO、中断与事件信号全解析07-2835.从流水线到低功耗:Cortex-M0 + 如何成为微控制器的 “性价比之王”07-2836.从 DREQ 到中断:RP2040 DMA 的 “快递系统” 全解析07-2837.嵌入式底层入门:RP2040 里 ROM / SRAM / Flash 的真实用途07-2938.嵌入式入门必看:所有 MCU 上电,都不先运行 main 函数07-2939.单片机分区供电:为什么芯片需要 IOVDD、DVDD、AVDD 三套电源?07-3040.RP2040 内核电源调节器:软件可调电压 + 三种模式,低功耗设计的利器07-3041.MCU 低功耗模式解析:时钟门控、电源门控、深度休眠07-3042.MCU 复位居然有两种?芯片级 “全重启” 和子系统级 “局部修复”07-3143.从 RP2040 看 MCU 上电:上电状态机如何按序唤醒硬件模块07-3144.RP2040 时钟树拆解:时钟源、发生器和外设时钟07-31
    收起

    你有没有过这种时刻?加班到 11 点走出写字楼,晚风一吹突然鼻酸,想找人说一句 “今天好累啊”,翻遍通讯录却不知道发给谁;打开手机里的 AI 聊天框,它能陪你说大道理,却接不住你那点没头没尾的疲惫;喊一声语音助手,它只会机械地问 “需要我帮你做什么?”,像个永远在线的客服,却不是能靠一靠的伙伴。

    我厌倦了这种 “指令式” 的互动,于是花了三天,用 ESP32-S3 和一堆便宜元器件,做了个会 “长大” 的 AI 实体陪伴终端 —— 我叫它「壳生同频」,也可以直接叫它 “蛋壳小鸡”。

    4a01b0e2068ee7d9f674317d67f52a5b.png

    image.png

    它不是一个冷冰冰的语音助手,而是一只会跟着你的互动慢慢长出性格的电子小鸡:会记住你说过的烦恼,会因为你的开心变得调皮,也会在你难过的时候用软乎乎的语气安慰你,连屏幕上的小表情,都会跟着情绪一起变。

    项目地址:https://github.com/FreakStudioCN/danke_ai

    40512592f2ba4b44fd2b811b566205b6.png

    一、为什么要做一个 “会长大” 的 AI?

    市面上的陪伴产品,总逃不开几个痛点:

    • ❌ ​冰冷的工具属性​:不管是 Siri 还是小爱同学,本质都是 “指令执行者”,你说 “帮我设闹钟” 它会做,你说 “我今天好难过” 它只会说 “别难过啦”
    • ❌ ​虚拟的不真实感​:纯软件的 AI 聊天,没有实体的触感和互动,总觉得隔着一层,很难真的投入情绪
    • ❌ ​固定人设的局限​:所有的陪伴机器人,出厂就写好了性格,不管你怎么和它互动,它永远是那个预设好的 “温柔贴心” 人设,根本不会 “懂你”

    我想做的,是一个不一样的东西:它没有预设的人设,所有的性格都来自和你的互动;它有实体,你摸它的屏幕,它会给你反应;它会记住你说过的话,你们的每一次聊天,都会变成它的一部分;而且,成本要足够低,让每个爱好者都能复刻。

    249109c2745438245a046d262bb84c6d.png

    于是就有了「壳生同频」:一台基于 MicroPython + 讯飞云 + DeepSeek 的 AI 实体情感终端,硬件成本不到 200 元,却能实现 “温养式成长” 的陪伴体验。

    二、这个小黄盒,到底藏了什么?

    先给大家看看它的样子:一个圆乎乎的小黄壳,正面是 2 寸的触摸屏,屏幕上的小鸡会眨眼、会歪头、会跟着说话动嘴巴;底下藏着麦克风和扬声器,你说话它会听,说完它会用软乎乎的声音回你,连语气都会跟着情绪变。

    image.png

    2.1 核心元器件清单

    模块 型号 作用
    主控 微雪 ESP32-S3 开发板(带 2 寸 IPS 电容触摸屏) 核心控制 + 显示 + 触摸交互,自带 8MB PSRAM,足够跑 MicroPython 和动画
    音频输入 INMP441 全向 MEMS 麦克风(I2S 接口) 收音 + VAD 语音活动检测,支持 30 秒长语音对话
    音频输出 MAX98357 I2S 数字功放模块 + 小扬声器 音频驱动 + 播放,不用复杂电路,音质足够日常使用
    外壳 圆形塑料盒 / 3D 打印外壳 组装所有元器件,成本仅几块钱

    2.2 接线

    反复调试过的引脚分配:

    # ── Display constants ─────────────────────────────────────────────────────────
    SPI_BUS = 2
    SPI_FREQ = 40000000
    LCD_SCLK = 39
    LCD_MOSI = 38
    LCD_MISO = 40
    LCD_DC = 42
    LCD_CS = 45
    LCD_BL = 1
    I2C_BUS = 0
    I2C_FREQ = 400000
    TP_SDA = 48
    TP_SCL = 47
    TP_ADDR = 0x15
    TP_REGBITS = 8
    TFT_W = 320
    TFT_H = 240
    BUFFER_SIZE = const(28800)
    # ── I2S / amp pins ────────────────────────────────────────────────────────────
    MIC_SCK, MIC_WS, MIC_SD = 11, 12, 13
    SPK_SCK, SPK_WS, SPK_SD = 14, 15, 16
    AMP_SD_PIN = 17
    AMP_GAIN_PIN = 18

    三、最特别的,是它会 “跟着你一起长大”

    这不是一个只会执行指令的工具,它的核心是 “温养式陪伴”—— 你和它的每一次互动,都在塑造它的性格。

    1. 动态人格:没有预设人设,性格由你养出来

    我给它设计了 5 个可成长的性格维度(初始值较低,像个刚破壳的小鸡):

    • ​幽默感 / 调皮度​:你和它分享开心的事,这两个维度会慢慢提升,后来它会主动说俏皮话逗你开心
    • ​温柔度 / 共情力​:你和它吐槽难过的事,它的共情力会增强,下次你说累的时候,会主动关心你,语气也会软乎乎的
    • ​好奇心​:聊到新话题时,它的好奇心会上涨,会主动追问细节,像个对世界充满好奇的小朋友

    这些变化会持久保存在本地的 personality.json 中,就算断电重启,它也还是那个和你一起长大的它。

    2. 情感记忆:它记得你们的每一段对话

    它会自动保存你们的聊天记录,做成长久的记忆(最多保留 15 条,后续可通过向量数据库升级):

    • 每次对话结束,它会把你说的内容和情绪标签存起来,下次聊天时会把这些记忆加入对话,不会像其他 AI 一样 “每次聊天都是重新开始”
    • 开机时会主动打招呼:“我们已经聊了 42 次啦,还记得你上次说加班到很晚,今天有没有轻松一点?”

    同时我还做了​亲密度系统​:和它聊天、摸屏幕都会增加亲密度,亲密度越高,它说话会越放松,越像个熟悉的朋友。

    3. 情绪可视化:屏幕上的小鸡,会跟着对话状态变

    我给它做了 6 种核心状态动画,完全同步对话过程:

    • 待机:慢慢晃来晃去 + 随机眨眼,像个发呆的小鸡
    • 倾听:兴奋弹跳 + 音量条动画,能感受到它在认真听你说话
    • 思考:左右摇摆 + 思考气泡跳动,软乎乎的特别可爱
    • 说话:张嘴动画 + 心形瞳孔 + 漂浮爱心特效,语气也会跟着情绪变化
    • 触摸:专属互动动画,亲密度也会同步上涨
    • 出错:委屈掉眼泪 + 紧张发抖,完全没有 “冷冰冰的报错提示”

    image.png

    四、技术实现:低成本也能有低延迟的流畅体验

    很多人问,用 MicroPython 跑 AI 对话会不会很卡?

    ✅ 端云协同低延迟架构

    • ​端侧​:ESP32-S3 跑 MicroPython,本地做 VAD 语音活动检测,一听到你说完话立刻触发云端流程,总延迟控制在 1.5 秒以内
    • ​云端​:用 DeepSeek-V3 大模型做对话,讯飞的 ASR 和 TTS 做语音识别和合成,还实现了​句子级流式 TTS​—— 不用等整句话生成完再播放,说几个字就开始播,体验特别流畅
    • ​内存优化​:动画仅占用 100KB 不到的内存,就算是 ESP32 的小内存也能稳定跑,帧率稳定 25 FPS

    ✅ 异步架构,不卡不顿

    用了 asyncio 协程调度,录音、识别、对话、播放、动画这些任务都是异步运行的,不会出现 “卡着不动” 的情况,就算同时处理多个任务,CPU 占用率也不到 40%。

    五、后续计划,还有很多想做的事

    现在核心功能已经完成,接下来想慢慢完善它:

    1. ​长期记忆升级​:用向量数据库做更长久的记忆,不用再限制 15 条对话
    2. ​多模态感知​:加个摄像头,让它能看到你 —— 比如你对着它笑,它会变得更开心
    3. ​开放生态​:把代码开源,做个皮肤编辑器,大家可以给小鸡换衣服、做自己的动画

    结尾

    我做这个项目,不是为了做一个完美的 AI 助手,而是想做一个不一样的陪伴 —— 它不是预设好的 “完美伙伴”,而是一个和你一起慢慢长大的朋友。你们的每一次聊天、每一次情绪,都在塑造它,也在塑造你们之间独一无二的关系。

    毕竟,最好的陪伴,从来都不是 “完美”,而是 “只属于你”。

    如果你也想做一个自己的 “蛋壳小鸡”,可以在评论区留言告诉我!

    eb6b459ccb3f99726a2fd06d98170352.png

    e56a916b375ed771aab3187baee81773.png

  • 相关阅读:
    【nginx】nginx部署升级htpp+websocket访问
    02 【常用类型(上)】
    【Nano Framework ESP32篇】WS2812 彩色灯带实验
    P2700 逐个击破 并查集/生成树
    [C++学习] 多进程通信共享内存
    毕业设计-基于机器视觉的安全帽佩戴识别-yolo-python
    2023国赛C题解题思路代码及图表:蔬菜类商品的自动定价与补货决策
    Android -- 每日一问:如何理解 Gradle?Gradle 在 Android 的构建过程中有什么作用?
    ck cpu freertos移植总结
    OpenJudge NOI 2.1 3526:最简真分数
  • 原文地址:https://www.cnblogs.com/FreakEmbedded/p/20044952
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号