精通 ComXim 转盘:用 3 种不同 CT 指令实现完全相同的 30° 旋转

1 一个物理动作。三种截然不同的编码方式。无限灵活。

2 在使用 ComXim 可编程转盘开发自动化解决方案时,你并不会被锁死在单一的刚性 API 上。CT 指令集在设计时就考虑到开发者——提供多种途径去实现完全相同的一个机械结果。

3 在本指南中,我们将演示一个简单的用例:**让 *电动转盘* 顺时针旋转 30° 并立即停止。** 我们将用三条本质不同的 CT 指令来实现它。理解这些方法,让你能根据具体应用选择最合适的编码风格,无论你看重简洁性、未来的可扩展性,还是由 UI 驱动的参数管理。


4 先决条件:搭建你的开发环境

5 在深入代码之前,请确保你的控制终端(PC/MCU)能与电动转盘通信。

  • 6 USB 连接:安装 CH340 驱动。设备会显示为一个虚拟 COM 端口(波特率:115200)。这是为你的可编程电动转盘建立 USB 指令控制最常见的方式。
  • 7 WiFi 连接:连接到转盘的 AP(SSID:型号名,密码:88889999)。建立到 192.168.181.181:8181 的 TCP Socket,实现 WiFi 控制的旋转平台操作。
  • 8 蓝牙连接:对于支持 BLE 4.0 的型号,你也可以实现蓝牙控制接口连接。

9

CT 指令表

10 用于调试时,我们强烈建议使用串口控制工具(如 SSCOM)或官方 TurntableX 软件来发送这些指令,并观察转盘回复 CR+OK;。


11

官方 TurntableX 软件

13 方法 1:直接原子指令(CT+TURNSINGLE)

CT+TURNSINGLE(0, 30.0);

14 编码理念:“现在就做这一件事。”

  • 15 这是执行单次旋转最直接、最高效的方式。它完全不需要预先配置。你发送动作,旋转平台立即执行。
  • 16 最适合:快速测试、手动触发按钮,以及紧急停止替换。

17 优点:代码最少、执行最快、无需状态管理。



18 缺点:若不发送新指令,难以扩展成多步循环。

19 指令:

20 参数详解:

  • 21
  • 0: 旋转方向控制(0 = 顺时针 / 1 = 逆时针)。这实现了双向旋转,便于灵活的拍摄设置。
  • 22

30.0: 目标角度(度)(支持浮点数和分数,如 360/12)。这可实现精确的步进角度旋转和步进角度精度。

CT+START(0, 1, 0, 30.0, 1, 1);

23 预期反馈:

  1. CR+OK; → 转盘顺时针旋转 30° → 停止。
  2. 24 方法 2:一体化参数指令(CT+START)
  3. 25 编码理念:“在一个负载里配置好一切并执行。”
  4. 26 这条指令是 CT 指令集中的瑞士军刀。虽然它通常用于重复步进,但你可以轻松让它执行单次 30° 步进。它要求你在一个字符串中定义全部 6 个运动参数。
  5. 27 最适合:远程 API 调用、记录完整指令历史,或当你希望在所有操作中保持统一的指令格式时。
  6. 28 优点:高度可扩展(把 times 改成 36 即可完成整圈 360° 拍摄);所有内容保持在一行内。

29 缺点:如果你只想要一次旋转,会略显冗长;pause 参数是必填的。



30 指令:

31 参数详解:

32

  • 0: 方向(顺时针)。
  • 33
  • 1: 转动模式(1 = 步进/间歇模式)。与自动快门结合时,这会启用步进拍摄模式。

34

CT+SETMODE(1);
CT+SETANGLE(30.0);
CT+SETREPEATTIMES(1);
CT+RUN();

0: 自动快门(0 = 关闭。此处我们不需要拍照)。

  1. 35
  2. 30.0: 步进角度。
  3. 36
  4. 1: 暂停时间(秒)(注意:必须是正整数。即使我们在这之后停止,系统仍要求提供一个值)。

37



1: 重复次数(设为 1 表示 “执行这一步一次并停止”)。

38 预期反馈: CR+OK; → 电动转盘顺时针旋转 30° → 暂停 1 秒 → 停止(因为 times=1)。 39 方法 3:分段配置 + 运行(CT+SET… + CT+RUN) 40 编码理念:“先在内存中准备好设置,准备就绪后再执行。”
41 这种方法将逻辑与执行分离。你先把参数写入转盘的易失性内存,只有在所有参数确认后才发送 RUN 指令。 1 1 4
42 最适合:GUI 应用(例如带滑块的 Windows/移动应用),用户动态调节角度/速度,确认后才点击 “开始”。 43 优点:代码可读性极佳;将配置与动作分离;无需重新发送长字符串即可轻松更新。这种模式非常适合可编程旋转器开发。 44 缺点:需要 4 次独立传输(延迟略高,但对大多数用例可忽略不计)。不过,这种方法实现了跨平台控制兼容性。 45 指令(按顺序发送):
46 说明: 47 CT+SETMODE(1); → 设为步进模式。 48 CT+SETANGLE(30.0); → 将步进度数设为 30°。这演示了精确的旋转角度控制。 49 CT+SETREPEATTIMES(1); → 将重复次数设为 1(仅一次)。
50 CT+RUN(); → 执行已准备好的动作。 51 预期反馈: CR+OK;(对应每条 SET 指令)→ CR+OK;(对应 RUN)→ 转盘顺时针旋转 30° → 停止。 52 并排对比:你应该选择哪一种?
53 功能 54 方法 1:直接 55 方法 2:一体化 56 方法 3:分段

57 代码行数


58 可读性

59 高

  • 60 中
  • 61 最高

62 参数灵活性

63 低(仅方向+角度)

64 高(全部 6 个参数)


65 高(可扩展)

66 最佳用例

67 简单触发

68 远程 API / 日志

  • 69 GUI / 动态设置
  • 70 可扩展性
  • 71 手动重发
  • 72 将 times 改为 N

73 修改 SETREPEATTIMES(N)

74 这三种方法都支持实时指令执行,并通过 CR+OK; 响应机制提供状态反馈。该指令反馈机制确保你的应用始终知晓电动转盘的旋转状态。

75 进阶技巧:将其扩展为自动化工作流

76 虽然目标只是一次简单的 30° 停止,但请注意方法 2 和方法 3 原生支持 pause 参数。如果你想将其升级为自动化 360° 产品拍摄循环(例如旋转 30°、暂停、拍照、重复 12 次),只需修改快门和重复参数:

77 方法 2 版本:CT+START(0, 1, 1, 30.0, 4, 12); (自动快门开启、暂停 4 秒、重复 12 次) —— 非常适合用于单反的自动快门同步转盘应用。

78 方法 3 版本:发送 CT+SETSHUTTER(1);、CT+SETPAUSETIME(4);、CT+SETREPEATTIMES(12);,然后 CT+RUN();

80

81 这证明 CT 指令架构不仅仅是一份控制列表,而是一个能适配你编码习惯的灵活框架。无论你是在构建面向开发者的带 SDK 转盘,还是将 API 集成到你现有的系统中,CT 指令集都能提供你所需的控制接口。


类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注