自制 Arduino 电子宠物「Tamaguino」:复刻经典 Tamagotchi 全攻略
项目背景
Tamagotchi(口袋精灵)是 90 年代风靡全球的电子宠物玩具,累计销量超 7600 万台。本项目「Tamaguino」由塞尔维亚开发者 Alojz 设计,基于 Arduino Pro Mini 与 0.96″ OLED 屏幕,完整复刻了喂食、游戏、就医、管教等核心玩法,代码约 1300 行、占用 95% Flash,堪称 AVR 单片机极限编程的教科书级范例。
硬件清单(总成本约 $20)
| 元件 | 规格/备注 | 参考价 |
|---|---|---|
| Arduino Pro Mini | 5V 16MHz 版本 | $2 |
| 0.96″ I2C OLED | SSD1306,128×64 像素 | $3 |
| 微动按钮 | 3 颗(上/下/确认) | $0.5 |
| 无源蜂鸣器/小喇叭 | 8Ω 0.5W | $0.3 |
| 自锁开关 | 电源开关 | $0.2 |
| TP4056 充电板 | 带保护,1A 充电电流需改阻 | $0.8 |
| 150mAh 锂电池 | 3.7V,续航 7 小时+ | $2 |
| 万能板 7×5cm | 焊接用 | $1 |
| FTDI 下载器 | CP2102 或 CH340 | $2 |
| 3D 打印外壳 | 木质 PLA(椰子/桦木色),约 70g | $5 |
关键制作步骤
1. 电池充电板改阻
TP4056 默认 1A 充电电流对 150mAh 电池过大(≤0.5C 即 75mA),需将板上标记 Rprog 的 1.2k 电阻更换为 10kΩ,将充电电流降至约 130mA,安全且充满约 1.5 小时。
2. 主电路焊接
- OLED:VCC→5V,GND→GND,SDA→A4,SCL→A5(Pro Mini 硬件 I2C)。
- 三个按钮:一端接 GND,另端分别接 D2、D3、D4,代码启用内部上拉。
- 蜂鸣器:正极接 D5,负极接 GND。
- 电源:电池→充电板 B+/B-,充电板 OUT+→开关→VCC,OUT-→GND。
3. 3D 打印与后处理
从 Thingiverse 下载 STL(5 个零件),建议参数:
- 层高 0.2mm,壁厚 1mm,填充 100%(外壳) / 0%(月球球体)
- 木质 PLA 需 190-200℃ 喷嘴、50℃ 热床,打印约 3 小时
- 打印完成后用 400-800 目砂纸打磨,刷 2 遍木器清漆,间隔 24 小时干燥,手感与质感大幅提升
4. 组装入壳
- 万能板用热熔胶固定在底壳卡槽。
- 充电板与开关粘贴侧壁,电池用双面胶固定(严禁热熔胶直接粘电池)。
- 按钮帽嵌入顶盖对应孔位,蜂鸣器贴近开孔处。
- 合盖前再次通电测试,确认屏幕显示、按键响应、声音正常。
固件烧录与库依赖
- 安装库:Adafruit_GFX、Adafruit_SSD1306(库管理器搜索安装)。
- 从 项目主页 下载最新
.ino文件。 - IDE 选板 Arduino Pro or Pro Mini (5V, 16MHz),处理器选 ATmega328P。
- FTDI 接线:VCC→VCC,GND→GND,TX→RX,RX→TX,DTR→RST(或手动复位)。
- 编译上传,若提示内存不足,可精简字体表或注释调试串口输出。
玩法速览
- 左键:切换菜单(喂食/游戏/医院/管教/睡眠/状态)
- 右键:确认/执行动作
- 中键:返回/取消
- 宠物属性:饥饿、快乐、纪律、卫生、健康、年龄、体重
- 忽视过久会生病甚至「死亡」,需长按中键复活(重置 EEPROM)
进阶扩展建议
作者已计划升级为 2.4″ TFT 彩屏 + ESP32,变身掌上游戏机(支持贪吃蛇、俄罗斯方块等)。若你想在此基础上二次开发,建议:
- 迁移至 ESP32-C3(RISC-V,400KB SRAM,支持 Wi-Fi/BLE)
- 使用 LVGL 图形库替代 Adafruit_GFX,实现更流畅动画
- 加入 IMU 实现体感交互(摇晃喂食、倾斜移动)
- 设计 PCB 替代万能板,体积再缩减 30%
资源链接汇总
- 项目主页(含完整代码、原理图、BOM、固件):https://alojzjakob.github.io/Tamaguino/
- 3D 打印文件:Thingiverse #2374552
- 开发者 GitHub:alojzjakob
制造工艺
- 用 Arduino 打造绚丽显示器 Ambilight 系统
- 自制 Arduboy 克隆掌机:从面包板到专业 PCB
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- Arduino 音频频率检测:基于 FFT 测量最响亮声音峰值
- 智能无线开关控制器:Arduino + 433MHz 远程操控墙壁开关
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 基于 Arduino Nano 的智能运动感应水枪
- 使用 SparkFun 7 段数码管构建可靠的 Arduino 倒计时器
- Arduino 向日葵:制作电子向日葵追踪阳光
- 自制 Arduino 遥控保时捷赛车:从改装底盘到手机 App 控制全攻略
- Arduino 合成乐音:从零实现 88 键钢琴全音域