S6 · 当前方案 · 概念验证阶段

一台会画数学
桌面摆件

一根贯心横梁旋转,一颗滑块沿横梁进退。θ、ρ 两个平面连续自由度,把极坐标公式变成缓慢生长的实体光迹、沙痕或纸上作品。

2 DOF平面连续定位 Ø220 mm概念画幅 8 mm/s绘制目标 0滑环 / 电刷 ≈ ¥255概念 BOM 目标
示意图 · 结构尺寸与噪声、精度、寿命仍需 CAD 和样机验证
01 —— 最终效果

它能画出什么

下面每一条都是由公式现场计算,不是预存图片。点任意图案可查看指令轨迹;开环样机的真实轨迹与误差,还需要实测或编码器反馈确认。

你的浏览器不支持轨迹画布。

换图形不用换零件

手机上换一条曲线,发过去的是一个约 20 字节的已定义参数记录。同一台机器、同一段程序,就能生成不同图案。

慢,是故意的

当前绘制速度目标是 8 mm/s:五叶玫瑰线约两分半,蝴蝶曲线约二十分钟。长余辉板呈现的是不断生长和消退的移动光迹;要保留完整图案,应换纸或沙。

是真的画在东西上

换个笔头就换一种画法:紫外光在余辉板上留痕、球头针在细沙里犁沟、真笔在纸上画。手机保存的是参数与理论指令轨迹,不是未经测量的实机轨迹。

02 —— 结构

平面轨迹只需两个连续自由度

一根横梁绕中心转,一个滑块在横梁上前后走。θ、ρ 合成后可把笔尖送到工作圆盘内的任意极坐标位置;纸笔的抬落是另一个辅助二态动作。

俯视 · 你会看到的样子横梁贯穿中心
笔尖 候选配重位 θ 转 ρ 进退 笔尖位置 = 转到哪个方向 + 离中心多远 这就是「极坐标」,玫瑰线、蝴蝶曲线的公式本来就是这么写的
横梁剖开 · 槽里有什么放大
滑道由型材自带,不用另加导轨 塑料滑块 (没有电机) 皮带(去) 皮带(回) 咬住 ▶ 笔尖 / LED 铝型材 24 × 14 mm 皮带往哪走,滑块就往哪走
纵剖面 · 动力怎么上去的两个电机都在底座,转动部分没有滑环
惰轮(不出力) 张紧轮 铝型材横梁 · 全长 260 mm · 贯穿中心 滑块 + 笔尖 外管套着内轴,同一根轴心 伞齿轮:把竖着的转动 扳成横着的 轴承 外管 → 带横梁转 内轴 → 拉皮带 底座(不动)· 电机、电路板、电池全在这里 电机 1 · 管转 电机 2 · 管滑 无线供电线圈 非接触 · 5V 2W 没有滑环 转动部分靠一对线圈 隔空取电,不靠碳刷 → 取消滑动电接触
① 电机 2在底座,自己不动
② 内轴穿在外管里转
③ 伞齿轮把转动扳 90°
④ 皮带轮子转一圈走 62.8 mm
⑤ 滑块被皮带拖着走
03 —— 真实留痕

让它真的在东西上画出来

笔尖做成磁吸快换,换个头就换一种画法。同一条曲线,在三种介质上会留下不同痕迹;其中余辉板显示的是有限寿命的移动光迹。

笔尖怎么抬起来换图案时不能拖出连线

画完一个图案要换下一个,笔必须先抬起来再移动,否则会在纸上拖出一条难看的连线。

滑块上装一个微型推挽电磁铁,行程 2 毫米。通电压下、断电弹起——断电时笔是抬起的,所以哪怕中途没电,笔也不会一直压在纸上洇出一个墨点。

  • 长余辉板:不用抬,关掉紫外灯就行
  • 细沙盘:可以不抬,连线本身也是痕迹的一部分
  • 纸:必须抬,这是唯一强制要抬笔的介质
电怎么送到转动的横梁上这是加了笔之后才出现的问题

笔尖要发光、电磁铁要通电,可横梁一直在转——转动的东西怎么供电?

传统滑环靠碳刷接触铜环导电,会额外引入滑动电接触、接触电阻变化与维护风险。

当前方案改用一对同轴线圈隔空送电:一个固定在底座、一个随横梁转动,中间不接触,靠电磁感应供电。它取消了滑环和碳刷,但轴承、皮带等机械件仍有寿命边界。

输出目标5 V / 2 W
线圈间隙目标2 ~ 4 mm
概念成本增量约 ¥ 12
滑动电接触0

上述输出、间隙、温升与效率需要在旋转偏心和实际负载下做样机验证。

为什么标配是长余辉板,而不是纸

这是个摆件,会一天到晚一直画。纸会画满,沙会画乱,都需要人来收拾——那它就变成一个需要伺候的东西了。

长余辉板的痕迹会在一两分钟内自己淡掉,呈现的是新的光迹在生长、旧的光迹在消退,不需要更换耗材。想保留完整作品时,再换上纸笔头或沙盘。

04 —— 原理

为什么两个连续动作就够定位

想象一根钟表指针,但它是贯穿中心的一整根,上面串着一颗能前后滑的珠子。指针转到哪、珠子滑多远,就决定了珠子在桌面上的位置。

拆开看:两个动作各自能画什么合起来
你的浏览器不支持原理演示画布。
关键一步:横梁为什么要贯穿中心

玫瑰线的公式 r = cos(kθ) 里那个 r,会变成负数。负数的意思是「往反方向走」。

  • 横梁只有半根 → 一遇到负数,整根横梁得瞬间甩 180°,又快又难看,电机也吃不消
  • 横梁贯穿中心 → 滑块直接滑过中心到另外半边,动作是连续的

一条五叶玫瑰线画完要过中心 5 次,一条蝴蝶曲线要 74 次。所以「贯穿」不是为了好看,是必须。

动力怎么隔着旋转传上去拖滑杆试试

难点在这:横梁一直在转,怎么把径向驱动力送给滑块?答案是不把径向电机装到横梁上——让底座里的内轴和外管转得不一样快,这个「差」经同步带变成滑块位移。

05 —— 怎么做出来

工程上怎么落地

从传动选型到控制程序,几个关键决定和它们背后的算账。

决定一:用皮带,不用丝杆算过账的

丝杆看起来更「精密」,但按当前抬笔快速移动目标 36.7 mm/s估算,常见 T4×2 丝杆会把电机推到约 1100 转/分。实际绘制目标仍是 8 mm/s;最终选型需结合加速度、负载和扭矩曲线验证。

滑块全行程±110 mm
抬笔快速移动目标36.7 mm/s
绘制速度目标8 mm/s
丝杆 T4×2 → 电机转速1 100 转/分 ✗ 带不动
Ø20 皮带轮 → 电机转速35 转/分 ✓ 很轻松
径向理论微步分辨率约 0.02 mm
整机绝对精度待样机标定
要不要防止滑块自己滑走不用(横梁是平放的)
决定二:存公式,不存坐标记录大小需明确序列化格式

若一只蝴蝶按 93,400 个采样点、每点两个 16 位坐标保存,约需 365 KiB。参数化公式按下方常规 C 结构通常占约 20 字节;无线传输还应定义固定字节序、版本和校验。

存坐标点存公式
一只蝴蝶约 365 KiB约 20 字节
20 个图案约 7.1 MiB
通常需要额外存储
< 1 KiB
参数库即可
手机换图案传数百 KiB传参数记录
手机走开后要传完才能画照画不误
控制程序:核心其实就这么几行每秒重复 200 次

控制循环每 5 ms 更新一次目标,但不能简单让 θ 匀速增加:要先沿曲线弧长推进,再受两个电机的速度与加速度上限约束,才能让笔尖接近恒定的 8 mm/s。

// 每 5 毫秒执行一次
void on_tick(void) {
    path_mm += limited_feed_step(8.0f, 0.005f); // ① 弧长推进,并遵守电机限速/限加速度
    point_t p = curve_at_arclength(&cur, path_mm);
    float outer = p.theta_deg;                 // ② 横梁角度
    float inner = outer + p.rho_mm / 62.8f * 360.f;
    stepper_goto(MOTOR_OUTER, outer);
    stepper_goto(MOTOR_INNER, inner);         // ③ 内轴比外管多转的量决定滑块位置
}

inner 目标里必须加回 outer滑块位置由「内轴比外管多转了多少」决定。开放曲线结束、换图案或回到起点时,还要先抬笔再快速移动,不能把重定位路径当成绘制轨迹。

图案是怎么存的
typedef struct {
    uint8_t type;        // 哪一类:玫瑰线/蝴蝶/心形…
    float   a, k, phase; // 三个参数
    float   turns;       // 转几圈才画完
} curve_t;               // 常见 ABI 下通常为 20 字节,线上格式另行定义

手机上选「玫瑰线 k=5」,蓝牙发过去的就是 {0, 110, 5, 0, 0.5} 这么几个数。想要七叶?把那个 5 改成 7 就行——同一台机器,同一段程序

概念 BOM 目标报价、损耗与量产良率尚未计入
主控 ESP32-C3(自带蓝牙)¥ 8
步进电机 × 2¥ 40
静音驱动 TMC2208 × 2¥ 12
霍尔开关 × 2(找零位用)¥ 2
无线供电线圈对¥ 12
抬笔电磁铁 + 紫外笔头¥ 16
电子件小计¥ 90
结构件 / 型材 / 皮带 / 轴承¥ 103
长余辉板 Ø220¥ 22
电池 / 外罩 / 包装¥ 40
整机物料目标(1000 台)≈ ¥ 255

该目标不含模具、装配测试、认证、损耗、税费与售后,需以供应商报价和样机 BOM 为准。

当前概念为何先用开环步进

现阶段可先由步数推算位置,并用两个霍尔开关建立角度与径向零位,以较低成本验证结构和控制链路。但开环系统只能知道发出了什么指令,不能证明机构没有失步、回差或弹性变形;要声明真实轨迹与绝对精度,应增加编码器或外部测量并完成标定。