feat(bot4cj/scripts): 13 个 .mt 脚本的 mtc DSL 源码(新格式)
std/stdd/tilt-r/l/f/b/lie-down/jump/rght-hand/left-hand/left-turn/t0/record_stand 全部转为 Python DSL(mtc 编译器输入),与原 .mt 执行级等价:经 RobotStruct dry-run + EpisodeRecorder 验证,actions.npy 形状一致且逐元素相等,record_stand 的 imu.npy (100,8) 形状一致,编译零告警。 关键语义依据:pybot 微步对舵机列线性插值、对 spk.F 列不插值(行级阶跃),分别对应 SetTo 斜坡段与 Beep 恒值段;首行 delay=200 恒等分解对应 stand() 的 10ms 瞬时到位段。原 .mt 保留未动,可用各文件头注释中的编译命令重新生成。
This commit is contained in:
1 parent
a80aaabffe
commit
0be9e5d0d2
13 files changed
+695
No files matched your search
@@ -0,0 +1,54 @@
|
||||
# left-hand.py —— left-hand.mt 的 mtc DSL 源码(新格式)
|
||||
# 左手:s1/s8 展开维持 1s 后收回;蜂鸣 10→400→1000→10 Hz 阶跃。
|
||||
# 编译:cd mtc && python -m mtc ../bot4cj/scripts/left-hand.py -o ../bot4cj/scripts/left-hand.mt
|
||||
|
||||
Alias("A", "angle")
|
||||
Alias("F", "frequency")
|
||||
|
||||
I2C("i2c-0", "/dev/i2c-0")
|
||||
I2C("i2c-1", "/dev/i2c-1")
|
||||
|
||||
PCA9685("pca9685-0", "i2c-1", "0x40")
|
||||
|
||||
# 姿态传感器按需启用:
|
||||
# MPU6050_BIND("mpu6050-0", "i2c-1", "0x69")
|
||||
# MPU6050_BIND("mpu6050-1", "i2c-1", "0x68")
|
||||
# MPU6050_BIND("mpu6050-2", "i2c-0", "0x68")
|
||||
# MPU6050_BIND("mpu6050-3", "i2c-0", "0x69")
|
||||
|
||||
Speaker("spk", 2, 48000, 0.6, 5000, 0)
|
||||
|
||||
# 名 max ch
|
||||
_SERVOS = [("s1", 90, 0), # rb0
|
||||
("s2", 180, 1), # rb1
|
||||
("s3", -90, 2), # lb0
|
||||
("s4", -180, 3), # lb1
|
||||
("s5", 90, 4), # lf0
|
||||
("s6", 180, 5), # lf1
|
||||
("s7", -90, 6), # rf0
|
||||
("s8", -180, 7), # rf1
|
||||
("s9", 180, 8), # cam0
|
||||
("s10", 180, 9)] # cam1
|
||||
for _name, _max, _ch in _SERVOS:
|
||||
Servo(_name, _max, 0, 0, "pca9685-0", _ch)
|
||||
|
||||
_STAND = [45, 0, 45, 0, 45, 0, 45, 0, 90, 90]
|
||||
|
||||
def stand(dur=10):
|
||||
for _i, _ang in enumerate(_STAND, 1):
|
||||
SetTo(f"s{_i}", _ang, dur)
|
||||
|
||||
# ---- 动作序列(200 + 200 + 1000 + 20,T=1420ms) ----
|
||||
stand()
|
||||
Beep(10, 200) # r1: F=10
|
||||
Delay(200)
|
||||
Beep(400, 200) # r2: 仅变频率(原行无舵机变化)
|
||||
Delay(200)
|
||||
SetTo("s1", 0, 1000) # r3: s1 45→0,s8 0→150
|
||||
SetTo("s8", 150, 1000)
|
||||
Beep(1000, 1000) # r3: F=1000
|
||||
Delay(1000)
|
||||
SetTo("s1", 45, 20) # r4: 收回
|
||||
SetTo("s8", 0, 20)
|
||||
Beep(10, 20) # r4: F=10
|
||||
Delay(20)
|
||||
Reference in new issue
Block a user