一、项目背景与目标
这是由开发者 Adam Simon 发起的开源 DIY 自动发牌器项目,专为 Uno、扑克等卡牌游戏设计,解决手动洗牌发牌效率低、公平性存疑的问题。项目完全开源,包含硬件设计、软件代码、3D 打印模型与生产文件。



二、核心技术架构与实现
1. 软件系统
模块 | 细节说明 |
|---|---|
开发框架 | 基于 PlatformIO 构建,兼容 Arduino 生态,核心语言为 C++(96.6%)与 C(3.4%) |
目录结构 | - - - - |
核心功能 | - 发牌逻辑:支持最多 52 张牌分发,可自定义玩家数量(代码中可调整,理论上限由机械结构决定) - 交互系统:OLED 屏幕显示玩家数、发牌进度,物理按键支持参数设置 / 启动 / 暂停 - 定位系统:霍尔传感器实现 360° 旋转定位,精准识别玩家位置 |
2. 硬件系统(PCB 与电子元件)
主控单元:原设计采用 Arduino Uno 类开发板,社区反馈可替换为 ESP32-C3 等低成本控制器,降低功耗与成本。
执行机构:
步进电机:驱动旋转底座与发牌机械臂,实现精准定位与卡牌抓取
霍尔传感器:检测旋转角度,消除发牌位置误差
驱动模块:控制电机转速与扭矩,适配不同厚度的卡牌
供电方案:内置锂电池 + USB-C 充电接口,支持脱离电源独立使用,续航可满足多局游戏需求。
显示与交互:小型 OLED 屏幕 + 4 个物理按键,支持玩家数设置、发牌模式切换、电量显示。
3. 机械与结构设计(3D 打印模型)
外壳设计:一体化 3D 打印结构,分为底座、卡牌仓、旋转台三部分,支持 Bambu Studio 切片打印,0.2mm 层高、20% 填充即可满足强度需求。
核心机构:
卡牌仓:适配标准扑克牌尺寸,可容纳整副 52 张牌
发牌爪:采用弹力抓取设计,通过电机控制实现单张卡牌的稳定分离与推送
旋转底座:360° 无死角旋转,通过霍尔传感器校准玩家位置,实现多玩家自动发牌
优化空间:社区用户反馈可通过修改打印参数(如增加填充密度)提升结构耐用性,或调整卡槽尺寸适配更大尺寸的卡牌。
三、功能特性与使用流程
✨ 核心功能
全自动发牌:一键启动后自动洗牌(可选)、发牌,支持自定义玩家数量(1-8 人,原设计支持最多 52 张牌均分)。
精准定位:霍尔传感器实现无误差旋转定位,避免发牌偏移,保证每个玩家的发牌顺序公平。
便携独立使用:内置电池供电,无需外接电源,适合桌面、户外等场景使用。
可视化交互:屏幕实时显示当前玩家、剩余牌数、发牌进度,操作简单易上手。
开源可修改:所有代码、PCB、模型文件开源,支持根据需求修改(如适配特殊卡牌、增加洗牌功能、更换主控芯片)。
🛠️ 制作与使用流程
准备材料:
电子元件:主控板、步进电机、霍尔传感器、OLED 屏幕、锂电池、电机驱动模块等(BOM 清单可在项目文件中获取)
3D 打印:外壳与机械结构模型,按平台推荐参数打印
辅助工具:电烙铁、万用表、螺丝刀等焊接与组装工具
组装步骤:
焊接 PCB:按 Gerber 文件打板后,焊接所有电子元件
打印外壳:切片模型并打印,清理支撑结构
机械组装:将电机、传感器、卡牌仓安装到打印外壳中,调试传动机构
软件烧录:通过 PlatformIO 编译代码,烧录到主控板
校准调试:设置玩家数、测试发牌精度与电机转速,优化抓取力度
使用流程:放入卡牌 → 开机设置玩家数 → 一键启动 → 设备自动发牌 → 游戏结束后关机。
四、社区反馈与改进方向
👍 已验证优势
结构简单易复刻,电子元件易采购,新手也能完成制作
发牌稳定可靠,支持长时间连续使用
开源协议宽松,可自由修改与二次开发
⚙️ 常见改进建议(来自 MakerLab 社区)
硬件升级:
更换 ESP32-C3 等更高效的主控芯片,降低成本并增加无线功能
优化电机驱动,提升发牌速度,减少单张卡牌的抓取间隔
改进供电系统,增加快充功能或更换大容量电池
机械优化:
调整发牌爪结构,适配更厚的卡牌(如收藏卡、桌游卡牌)
增加减震结构,降低运行噪音
优化旋转底座的轴承设计,提升耐用性
软件扩展:
增加洗牌算法,实现全自动洗牌 + 发牌一体化
支持自定义发牌规则(如扑克、斗地主、Uno 等不同游戏的发牌逻辑)
增加蓝牙 / WiFi 功能,支持手机 APP 控制与游戏数据统计
五、补充说明
该项目为非商业开源项目,作者 Adam Simon 的初衷是分享 DIY 方案,不支持任何形式的商业变现行为。
如果你希望进行商业用途,需要直接联系原作者获取单独的书面授权,而非直接使用该开源项目的资源。
社区用户分享的修改版本,同样受该协议约束,衍生作品也必须遵循相同的开源条款。
