1. 项目概述与核心价值
最近在整理工作室的旧项目时,翻出了一个几年前用WITBLOX套件做的“多米诺骨牌搭建机器人”。这玩意儿虽然结构简单,但当时为了让它能稳定、等间距地“吐出”骨牌,可没少折腾。今天就把这个项目的完整制作过程、背后的机械原理,以及我踩过的那些坑,系统地梳理出来。无论你是对机器人感兴趣的创客新手,还是正在寻找一个综合性STEM教育项目的老师,这个案例都能提供一个从电子控制到机械设计的完整视角。
这个机器人的核心目标很明确:制作一台能自主移动,并沿途自动、等距放置多米诺骨牌的小车。它本质上是一个“移动式水平投放器”。我选择了WITBLOX套件作为电子部分的核心,主要是看中了它模块化、免焊接的特性,能让制作者更专注于机械结构和控制逻辑本身,而不是繁琐的电路连接。整个项目涉及底盘设计与力学分析、曲柄滑块机构的应用、电机负载与速度的精细控制,以及最终的整机调试,是一个典型的“机电一体化”微型实践。
2. 核心思路与方案选型解析
2.1 为什么选择“水平装载推杆”方案?
在构思初期,我考虑过几种常见的骨牌投放方案:比如垂直落下的“漏斗式”,或者用机械臂夹取放置。但经过权衡,最终选择了“水平装载推杆”方案。这个决策基于几个关键考量:
首先,可靠性优先。多米诺骨牌是长方体,重心较高。垂直下落方案容易因骨牌姿态不正而卡住,或者在落地时倾倒。而水平推出方式,骨牌在滑道内始终有一个面被支撑,姿态稳定,推出后依靠自身重力从倾斜滑道末端自然“坐”到桌面上,过程可控性更强。
其次,结构简单。推杆机构本质上是一个经典的“曲柄滑块机构”,利用电机的旋转运动,通过一个偏心轮(或曲柄)和连杆,转化为滑块的直线往复运动。这种机构设计成熟,零件少,用硬纸板(Sun board)或亚克力板就能轻松制作,非常适合快速原型开发。
最后,与移动底盘兼容性好。将推杆机构集成在一个两轮驱动的移动小车上,可以实现“边走边放”的连续作业。推杆的往复周期与小车的前进速度需要匹配,这是一个有趣的同步控制问题,虽然我们这里用机械方式解决,但为后续引入传感器闭环控制留下了空间。
2.2 WITBLOX套件的优势与局限
在这个项目中,WITBLOX套件扮演了“电子神经系统”的角色。它的模块化设计确实带来了巨大便利:
- 即插即用:电机驱动、电源管理都集成在独立的塑料块里,通过特制的卡扣线缆连接,完全避免了焊接错误或短路风险,极大降低了电子入门的门槛。
- 快速迭代:想法可以迅速通过实物连接验证,方便在机械调试阶段频繁地调整电机接线(如正反转)来测试机构。
但作为资深玩家,也必须指出其局限,以便你在类似项目中做出更合适的选择:
- 控制粒度粗:套件内的电机驱动模块通常是简单的开关控制(前进/后退/停止),或最多提供有限的几档速度(通过PWM占空比预设)。这意味着你无法通过编程对电机转速进行精细、动态的调节。本项目中的速度控制完全依赖后续会讲到的机械负载调节法。
- 扩展性受限:模块的接口和协议是封闭的,很难直接接入Arduino、树莓派或更复杂的传感器(如编码器)进行高级控制。
- 成本考量:对于单一项目,套件的性价比可能不如自购Arduino、电机驱动板和散件电机。但对于教育场景或希望零电路基础快速上手的人来说,其节省的时间和降低的挫败感价值很高。
选型建议:如果你是教育者或纯新手,WITBLOX能让你在第一天就看见机器人动起来,建立信心。如果你是有一定基础的创客,希望有更大的控制自由度和扩展性,那么“Arduino + L298N/L293D电机驱动板 + 直流减速电机”的组合是更强大、更经济的选择。本项目的机械和算法思路完全通用。
3. 材料与工具准备清单
原项目的清单比较简略,这里我结合实操经验,给出一个更详细、更可靠的准备清单,并解释每样东西的用途和备选方案。
3.1 电子与控制部分
- 核心控制套件:WITBLOX基础套件(需包含至少2个直流减速电机、2个对应的电机驱动模块、1个电源模块、1块9V电池及连接线)。这是项目的“大脑”和“肌肉”。
- 备选方案:如果你不用WITBLOX,需要准备:
- 微控制器:Arduino Uno 或 Nano 1个。
- 电机驱动板:L298N或TB6612FNG驱动模块 1个(可驱动两个电机)。
- 直流减速电机:5V或6V,转速在100-200RPM之间为宜,2个。转速太高不易控制,太低则力量可能不足。
- 电源:为电机部分单独供电,建议使用4节AA电池盒(6V)或7.4V锂电池(配合降压模块),避免从单片机取电导致不稳定。
- 连接线:杜邦线若干。
3.2 机械与结构部分
这是项目的“骨骼”和“执行机构”,材料选择直接影响机器人的强度和精度。
- 主结构材料:
- Sun board(泡沫板):原项目使用。优点是轻便、易切割、成本低。缺点是强度一般,长期使用易变形,螺丝固定不牢。我的改进建议:使用3mm-5mm厚的亚克力板或椴木板。它们强度高,尺寸稳定,可以用螺丝螺母紧固,适合制作需要精密配合的滑道和连杆。虽然加工需要激光切割或精细手锯,但成品可靠度提升不止一个档次。
- 车轮与万向轮:2个与电机轴匹配的塑料或橡胶轮(直径约6-8cm),1个小型万向轮(作为从动轮提供支撑和转向)。
- 传动机构材料:
- 曲柄滑块零件:需要制作一个曲柄(偏心轮)和一个滑块(推杆)。
- 曲柄:原项目使用3D打印的红色轴套。你可以用乐高十字轴零件配合小齿轮,或者直接在亚克力板上切割一个偏心圆盘,在偏离圆心处打孔。
- 连杆:原项目用吸管。吸管摩擦力小但易弯折。建议:使用细竹签或直径2mm的碳纤维杆,两端用热熔胶固定小段自行车气门芯胶管或硅胶管来充当“轴承”,连接曲柄和滑块,这样更耐用。
- 滑块与滑道:滑块(推杆头)需要用表面光滑的材料(如小块亚克力或塑料片),并在与滑道的接触面贴上电工胶带以减少摩擦。滑道内侧也需要打磨光滑或贴胶带。
- 曲柄滑块零件:需要制作一个曲柄(偏心轮)和一个滑块(推杆)。
- 连接与辅助材料:
- 紧固件:热熔胶枪及胶棒(快速固定,但承力处慎用)、AB胶或401快干胶(用于关键结构点的永久粘合)、M3螺丝螺母套装(如果使用亚克力板)。
- 调速装置:数根橡胶筋,用于给电机轴增加负载,这是实现机械调速的关键。
- 测量与划线工具:钢尺、直角尺、铅笔、记号笔。
- 加工工具:勾刀(切割泡沫板)、手锯或线锯(切割木板/亚克力)、手电钻或锥子(打孔)、砂纸(打磨边缘)。
4. 机械结构设计与制作详解
4.1 底盘与框架:稳定性的基石
机器人的底盘是所有部件的安装平台,其设计首要考虑稳定性和刚性。
- 尺寸确定:底盘需要容纳两个驱动轮电机、一个万向轮、电池盒(或WITBLOX电源模块)、控制模块以及上层的骨牌仓和推杆机构。我设计的底盘长约25cm,宽约15cm。这个尺寸保证了足够的设备空间和行驶稳定性,避免头重脚轻。
- 布局规划:将两个驱动轮电机安装在底盘后部同一轴线上,万向轮安装在底盘前部正中。这样构成了稳定的“三点支撑”。重要提示:驱动轮和万向轮的安装高度必须仔细调节,确保底盘整体水平。如果前部万向轮过高,会导致机器人“仰头”,重心后移,影响驱动轮抓地力;过低则会“低头”,增加前进阻力。
- 材料与加固:如果使用Sun board,建议采用双层板粘合,并在关键受力点(如电机安装座)粘贴加强肋(用边角料裁成三角形粘在背面)。如果使用亚克力板,可以直接在安装孔位使用螺丝固定,强度远胜胶粘。
4.2 骨牌仓与滑道系统:精准投放的通道
这是项目的核心机械模块,其作用是储存骨牌并引导它们被单个推出。
- 储牌仓设计:它是一个垂直或略向后倾斜的矩形通道,宽度略大于一块骨牌的厚度(通常多米诺骨牌厚约7-8mm),长度能容纳10-15块骨牌为宜。仓的底部是开放的,与水平的推出滑道相连。关键细节:仓的底部开口高度必须严格等于一块骨牌的厚度。这是实现“每次只推出一块”的物理基础。可以通过在开口处粘两条间距精确的导条来实现。
- 水平推出滑道:与储牌仓底部开口垂直相接。滑道的宽度同样略大于骨牌厚度,高度略高于骨牌宽度(让骨牌能平躺通过)。滑道的末端需要设计一个向下的倾斜出口(约30-45度角)。当推杆将骨牌推到此处时,骨牌前半部分悬空,在重力作用下会自然向前下方翻倒,从而竖直“坐”在桌面上。
- 推杆机构(曲柄滑块)制作:
- 滑块(推杆头):一块小矩形板,厚度略小于滑道高度,能在滑道内顺畅滑动。前端面需要粘贴一层海绵或软橡胶,以柔和地推动骨牌,避免撞击导致骨牌在仓内跳动卡住。
- 曲柄与连杆:将曲柄(偏心轮)固定在电机输出轴上。计算曲柄的旋转半径(即偏心距),这决定了滑块的单次行程。行程应略大于一块骨牌的厚度,确保能完全将其推出。连杆一端连接在曲柄的偏心孔上,另一端连接滑块。调试要点:确保整个机构运动时无卡滞。连杆与滑块的连接点最好能有一定自由度(如使用小螺丝加垫片构成铰链),避免死点。
4.3 速度同步的机械实现:巧用橡胶筋负载
这是本项目最巧妙也最需要耐心调试的部分。理想状态是:小车每前进一段固定距离(即骨牌间距),推杆机构恰好完成一次往复运动,推出一块骨牌。
- 问题分析:两个直流电机(驱动轮电机和推杆电机)即使型号相同,在相同电压下的空载转速也会有细微差异,且随着电池电量下降,转速都会变。我们无法依赖电机的绝对转速来实现同步。
- 解决方案:主动降低推杆电机的转速,使其周期略慢于小车行走固定距离所需的时间,然后通过机械方式“触发”。但这里我们采用更直接的负载调节法:给推杆电机的转轴增加阻力,使其转速下降。
- 实操步骤:
- 先将小车放在地上,测量其空载行驶速度(例如,每秒走10厘米)。
- 计算你期望的骨牌间距(例如15厘米)。那么,小车走过15厘米需要1.5秒。
- 目标:让推杆电机完成一次推出-收回的完整周期,时间也等于1.5秒。
- 在推杆电机的转轴(或曲柄)上,松松地套上一根橡胶筋,让橡胶筋的另一端固定在电机外壳或附近框架上。电机转动时,橡胶筋会被缠绕拉伸,产生一个与转向相反的阻力矩。
- 精细调试:通过调整橡胶筋的缠绕圈数、松紧度(更换不同粗细的橡胶筋),来改变阻力大小,从而微调推杆电机的转速。用秒表反复测量其运动周期,直到接近1.5秒。
- 核心技巧:不要追求绝对精确的1.5秒。实际上,让推杆周期略短于小车行走间距的时间(例如1.4秒),会更有容错性。因为推杆提前回到起点等待,可以确保下一块骨牌总是就位。小车速度的轻微波动更容易被这个“等待时间”吸收。
5. 电路连接与系统集成
5.1 使用WITBLOX套件的连接
这部分相对简单,但顺序很重要:
- 供电:将9V电池接入“Power”电源模块。
- 驱动行走电机:用线缆将电源模块连接到第一个“Motor Driver”电机驱动模块。再将这个驱动模块的输出端,用双头电机线连接到两个行走电机。注意:两个行走电机通常是并联连接在这个驱动模块上的,所以它们会同步正反转。你需要通过测试,确保接线方式能使小车直行。
- 驱动推杆电机:用另一根线缆从电源模块连接到第二个电机驱动模块,再将推杆电机接入此模块。
- 独立控制:这样,两个电机驱动模块都独立受控于电源模块上的开关或速度旋钮(如果模块有)。你可以分别调节行走速度和推杆速度,为后续的同步调试提供基础。
注意:WITBLOX模块的连接口有防呆设计,一般不会插反。但务必在通电前,手动旋转一下电机轴和车轮,确保整个机械传动部分没有任何卡死的地方。电机堵转是烧毁驱动模块或耗尽电池的常见原因。
5.2 (备选)使用Arduino的方案连接
如果你采用开源方案,连接逻辑如下:
- Arduino的
VIN或外部电源口接6V电池正极,GND接电池负极。 - 将两个行走电机接入电机驱动板(如L298N)的
OUT1、OUT2和OUT3、OUT4。 - 将推杆电机接入驱动板的另一通道(如果驱动板支持两路)或使用另一块驱动板。
- 驱动板的电源输入接同一组6V电池(注意共地)。
- Arduino的数字引脚(如5, 6, 9, 10等支持PWM的引脚)连接到驱动板的控制输入端(IN1, IN2, IN3, IN4),通过
analogWrite()函数可以无级调节电机速度,实现比橡胶筋更精准的同步控制。
6. 总装、调试与优化实录
6.1 分步总装流程
- 底盘总成:先将两个驱动轮电机和万向轮牢固安装在底盘上。接通电路测试小车能否直线行走,必要时微调电机安装角度或轮子松紧来修正跑偏。
- 安装上层结构:将制作好的骨牌仓、滑道系统作为一个整体,安装到底盘中部。确保滑道出口略超出底盘边缘,且出口高度与桌面距离合适(通常骨牌高度的一半再加1-2毫米)。
- 安装推杆机构:将推杆电机固定在预定位置,安装好曲柄、连杆和滑块。手动旋转电机轴,检查滑块在滑道中运动是否顺滑,全程无卡顿。调整连杆长度,确保滑块行程能完全覆盖骨牌推出路径。
- 电路集成与走线:将电池、控制模块用尼龙扎带或魔术贴固定在底盘空闲处。整理好线缆,避免缠绕进车轮或运动部件中。
- 加载骨牌测试:放入一叠骨牌,手动触发推杆电机,观察第一块骨牌能否被顺利推出并自然立在桌面。调整重点:滑道末端倾斜角度。角度太小,骨牌可能“趴着”出去;角度太大,骨牌可能向前翻倒。需要多次试验找到最佳角度。
6.2 同步调试与问题排查
这是最考验耐心的环节。准备好纸、笔和秒表。
- 基准测试:标记起点,让小车空载(不推骨牌)直线行驶一段距离(如1米),记录时间,计算平均速度。
- 推杆周期测试:单独启动推杆电机,用秒表测量推出-收回-再推出(一个完整周期)的时间。
- 首次匹配尝试:根据小车速度和期望的骨牌间距,计算目标推杆周期。通过调整橡胶筋,使推杆周期接近目标值。
- 带负载联合调试:
- 在桌面画一条直线作为轨迹。
- 将小车放在起点,骨牌仓内装入5-6块骨牌。
- 同时启动两个电机,让机器人开始工作。
- 观察并记录:第一块骨牌放置的位置;后续骨牌之间的间距是否均匀;是否有骨牌卡住、未推出或推出后立不稳的情况。
- 常见问题与解决策略:
| 问题现象 | 可能原因 | 排查与解决思路 |
|---|---|---|
| 骨牌卡在仓内推不出 | 1. 储牌仓底部开口过窄或不平滑。 2. 滑块行程不足,未完全推出骨牌。 3. 骨牌之间摩擦力太大(木制骨牌表面粗糙)。 | 1. 用砂纸打磨开口两侧,确保光滑且宽度略大于骨牌厚度0.5mm。 2. 加长曲柄的偏心距,增加滑块行程。 3. 选用表面光滑的塑料骨牌,或在木制骨牌两侧涂抹少许滑石粉。 |
| 骨牌推出后立不住 | 1. 滑道末端倾斜角度不合适。 2. 桌面不平或太滑。 3. 推出速度过快,骨牌动能太大。 | 1. 重新调整滑道末端角度,通常在30-45度之间微调。 2. 在桌面铺上桌布或美纹纸胶带增加摩擦。 3. 进一步增加推杆电机负载(多加一根橡胶筋),降低推出速度。 |
| 骨牌间距忽大忽小 | 1. 小车行走速度不稳定(电池电量下降、轮子打滑)。 2. 推杆周期与行走速度未同步好。 | 1. 确保电池电量充足;检查轮子是否抓地良好,必要时增加轮子配重或使用橡胶轮。 2.这是核心调试点:优先保证推杆周期稳定。如果周期稳定但间距仍不均,说明是行走电机速度问题。尝试稍微降低行走速度(给行走电机也轻微增加一点阻力,或降低电压),让系统运行在“富余”状态。 |
| 小车走不直 | 1. 两个驱动轮电机转速有差异。 2. 万向轮转动不灵活。 3. 底盘左右重量不平衡。 | 1. 这是直流电机的固有特性。可在转速稍快的那个轮子的电机轴上,也轻微增加一点橡胶筋负载进行微调。 2. 清洁万向轮,确保其能自由转动。 3. 调整电池、模块的位置,使底盘左右配重基本一致。 |
6.3 性能优化与扩展思考
当基本功能实现后,可以考虑以下优化:
- 增加“开始”传感器:在滑道出口内侧安装一个轻触开关或红外对管。当一块骨牌被成功推出后,传感器被触发,才允许小车前进一小段距离(或计时前进)。这样就从开环控制变成了简单的闭环事件控制,同步精度会大大提高。这需要升级到Arduino控制器来实现逻辑判断。
- 骨牌间距可调:改变小车行走电机的供电电压(如用可调降压模块)或PWM占空比,就能轻易改变骨牌间距。配合一个旋钮电位器,就能做出“可调间距”的高级版本。
- 美化与加固:用彩色胶带或喷漆装饰机器人。对所有胶粘连接点进行二次加固。考虑为骨牌仓增加一个透明的亚克力盖板,防止骨牌在移动中跳出。
这个“多米诺骨牌搭建机器人”项目,从想法到实现,充满了工程实践中的典型问题:设计权衡、精度控制、系统调试。它没有用到复杂的算法和昂贵的传感器,却生动地展示了如何用基础的机械原理和电子模块解决一个具体的自动化问题。调试过程中,那种反复微调橡胶筋,看着骨牌从杂乱无章到逐渐均匀排列的过程,是纯理论学习无法替代的体验。无论最终成果是否完美,这个过程中对机械传动、速度匹配、问题排查的深入理解,才是创客制作和STEM教育的真正精髓所在。