乐高机器人蛇形机器人

99ANYc3cd6 机器人 2

下面我将为你详细介绍如何从零开始制作一个乐高蛇形机器人,包括核心原理、所需零件、搭建步骤和编程思路

乐高机器人蛇形机器人-第1张图片-广州国自机器人
(图片来源网络,侵删)

核心原理:蛇的运动方式

蛇没有腿,它的前进依赖于身体的横向波动,我们可以将这种运动分解为几个关键步骤:

  1. 推力产生:身体的某一部分(通常是腹部)与地面产生摩擦力,作为前进的支点。
  2. 身体弯曲:蛇通过收缩和舒展身体肌肉,在水平面上形成一系列的“S”形弯曲波。
  3. 传递波动:这个“S”形的波从身体后端向前端传递,就像甩鞭子一样。
  4. 前进:当波动传递到头部时,头部就会向前移动一个步距。

乐高蛇形机器人的模仿策略:

  • 身体部分:我们将使用多个相同的关节模块来构成蛇的身体,每个关节模块都能实现弯曲。
  • 动力来源:一个电机通过一个中央传动轴连接到所有关节模块。
  • 运动实现:电机驱动中央轴旋转,轴上的凸轮会推动每个关节模块,使它们依次或按规律弯曲和伸展,从而在整体上形成前进所需的“S”形波动。

所需零件清单

这个项目主要使用乐高MINDSTORMS系列零件,以SPIKE Prime或EV3为例:

核心组件:

乐高机器人蛇形机器人-第2张图片-广州国自机器人
(图片来源网络,侵删)
  • 控制器:1个 (如SPIKE Prime Hub 或 EV3 Brick)
  • 大型电机:1个 (提供动力)
  • 颜色传感器:1个 (可选,用于颜色巡线或交互)
  • 主机架:1个 (用于固定电机和控制器)

结构零件 (数量为估算,可根据身体长度增减):

  • 带轴孔的梁:约20-30根 (用于搭建身体框架)
  • :约10-15根 (连接关节和传递动力)
  • 连接器/万向节:约10-15个 (用于创建灵活的关节)
  • 齿轮:8齿齿轮若干 (用于制作凸轮)
  • 十字轴/销:大量 (用于固定和连接)
  • 轮胎/履带:2个 (可选,套在关节上,增加摩擦力和抓地力)
  • 其他杂件:砖块、面板等,用于美化外壳。

电子连接线:

  • 1根连接线 (用于连接电机和控制器)

搭建步骤详解

这里我们以一个经典的、基于凸轮的设计为例,这种设计结构相对简单,效果也很好。

第1步:制作单个关节模块

这是蛇身体的基本单元,每个模块都将实现一个弯曲动作。

  1. 搭建框架:用两根较短的梁作为上下支撑梁。
  2. 创建铰链:在上下梁的两端,使用十字轴带孔的连接器将它们连接起来,形成一个可以活动的“门”字形结构,这就是关节的弯曲点。
  3. 安装凸轮从动件:在下梁的中间位置,安装一个可以上下活动的“摇臂”或“滑块”,这个部件将接受来自中央轴上凸轮的推力。
  4. 预留连接点:在上梁和下梁的两端,预留出连接下一个关节模块的接口(通常是轴孔或销孔)。

第2步:串联多个关节模块

  1. 将制作好的关节模块一个接一个地连接起来,形成一条长长的“链子”。
  2. 确保所有关节的灵活性一致,能够自由地前后弯曲。

第3步:安装中央传动轴和凸轮

这是实现“S”形波动的关键。

  1. 安装中央轴:将一根长轴穿过所有关节模块中间预留的通道,贯穿整个蛇的身体。
  2. 安装凸轮:在这根中央轴上,按照一定的相位差安装多个8齿齿轮作为凸轮,对于4个关节的蛇,可以每隔90度(一个齿的角度)安装一个凸轮,这意味着当轴转动时,第一个凸轮会推起第一个关节,第二个凸轮紧接着会推起第二个关节,以此类推,从而形成一个波浪。
  3. 连接电机:将中央轴的一端(或通过齿轮组连接)与大型电机相连。

第4步:安装控制器和传感器

  1. 将主机架安装在蛇的“头部”或身体下方,用于固定控制器。
  2. 将电机连接到控制器的输出端口。
  3. 如果使用颜色传感器,可以安装在头部前方,用于探测路径。

第5步:美化与优化

  • 用砖块或面板覆盖机械结构,让蛇看起来更像一条真正的蛇。
  • 在关节部分套上轮胎,可以增加与地面的摩擦力,防止打滑,让运动更平稳。
  • 可以在头部加上“眼睛”(如两个圆形砖块)和“舌头”(如一根红色轴),增加趣味性。

编程思路

编程的目标是让电机旋转,从而驱动蛇前进。

基础前进程序

这是最简单的程序,让蛇以固定的速度前进一段距离。

SPIKE Prime (Python):

from spike.control import wait_for_seconds
from spike.robot import Robot
# 初始化机器人
robot = Robot()
# 获取电机
motor = robot.get_motor('A')  # 假设电机连接在端口A
# 设置电机速度 (0-100)
motor.set_speed(50)
# 让电机旋转3圈
motor.rotate_for_degrees(1080) # 360 * 3 = 1080
# 程序结束

EV3 (EV3-G - 图形化):

  • 添加一个“移动转向”或“大型电机”模块。
  • 选择“开启端口A的电机”。
  • 设置“功率”为50。
  • 设置“旋转”为“旋转”,角度为1080(代表3圈)。
  • 下载并运行。

高级编程:巡线与交互

让蛇变得更“智能”!

目标:使用颜色传感器让蛇沿着黑线前进。

原理:通过不断检测颜色传感器的读数,判断蛇是否偏离黑线,然后通过微调电机(或两侧差速,如果你的蛇设计支持)来修正方向。

SPIKE Prime (Python):

from spike.control import wait_for_seconds
from spike.robot import Robot
from spike.sensor import ColorSensor
robot = Robot()
color_sensor = ColorSensor('D') # 假设颜色传感器在端口D
motor = robot.get_motor('A')
# 设置巡线参数
BLACK = 3
WHITE = 80
threshold = (BLACK + WHITE) / 2
# 设置巡线速度
BASE_SPEED = 20
kp = 1.5 # 比例系数,需要调试
while True:
    # 读取反射光强度
    reflection = color_sensor.get_reflection()
    # 计算误差
    error = reflection - threshold
    # 计算转向值
    steering = kp * error
    # 应用转向 (注意:这是一个简化的单电机转向,效果可能有限)
    # 更好的方法是使用差速转向,但蛇形机器人通常只有一个电机
    # 这里我们通过短暂的正反转来模拟转向效果
    if steering > 0: # 偏向白色,需要向左转
        motor.run_for_degrees(BASE_SPEED, 10) # 短暂前进
    else: # 偏向黑色,需要向右转
        motor.run_for_degrees(-BASE_SPEED, 10) # 短暂后退/反转
    wait_for_seconds(0.01)

目标:当蛇看到特定颜色(如红色)时,停下并发出声音。

SPIKE Prime (Python):

from spike.robot import Robot
from spike.sensor import ColorSensor
from spike.sound import Sound
robot = Robot()
color_sensor = ColorSensor('D')
motor = robot.get_motor('A')
speaker = Sound()
motor.set_speed(50)
motor.start()
# 持续检测颜色
while True:
    if color_sensor.get_color() == 'red':
        motor.stop()
        speaker.beep() # 发出提示音
        break # 退出循环
    wait_for_seconds(0.1)

拓展与挑战

当你成功制作出第一条蛇后,可以尝试以下挑战,让它变得更强大:

  1. 增加自由度:除了身体的横向波动,能否增加一个电机控制头部的上下摆动,模拟“探路”?
  2. 多段独立控制:如果使用多个电机控制身体的不同段落,能否实现更复杂的运动,如“8”字前进或原地旋转?
  3. 遥控功能:通过蓝牙或Wi-Fi,用手机或另一个控制器来实时控制蛇的移动方向。
  4. 增加传感器:加入超声波传感器(测距),实现“自动避障”功能。
  5. 外观升级:设计不同主题的蛇,如机械龙、蟒蛇、甚至是一条可爱的卡通蛇。

希望这份详细的指南能帮助你成功制作出自己的乐高蛇形机器人!祝你搭建愉快!

抱歉,评论功能暂时关闭!