任务名称
2005年_E题:悬挂运动控制系统
任务要求
难度

一、任务

设计一电机控制系统,控制物体在倾斜(仰角≤100 度)的板上运动。在一白色底板上固定两个滑轮,两只电机(固定在板上)通过穿过滑轮的吊绳控制一物体在板上运动,运动范围为 80cm×100cm。物体的形状不限,质量大于 100 克。物体上固定有浅色画笔,以便运动时能在板上画出运动轨迹。板上标有间距为 1cm 的浅色坐标线(不同于画笔颜色),左下角为直角坐标原点, 示意图如下。

二、要求

1、基本要求:
(1)控制系统能够通过键盘或其他方式任意设定坐标点参数;
(2)控制物体在 80cm×100cm 的范围内作自行设定的运动,运动轨迹长度不小于100cm,物体在运动时能够在板上画出运动轨迹,限 300 秒内完成;
(3)控制物体作圆心可任意设定、直径为 50cm 的圆周运动,限 300 秒内完成;
(4)物体从左下角坐标原点出发,在 150 秒内到达设定的一个坐标点(两点间直线距
离不小于 40cm)。

2、发挥部分
(1)能够显示物体中画笔所在位置的坐标;
(2)控制物体沿板上标出的任意曲线运动(见示意图),曲线在测试时现场标出,线宽1.5cm~1.8cm,总长度约 50cm,颜色为黑色;曲线的前一部分是连续的,长约30cm;后一部分是两段总长约 20cm 的间断线段,间断距离不大于 1cm;沿连续曲线运动限定在 200 秒内完成,沿间断曲线运动限定在 300 秒内完成;
(3)其他。

三、说明

1、物体的运动轨迹以画笔画出的痕迹为准,应尽量使物体运动轨迹与预期轨迹吻合,同时尽量缩短运动时间;
2、若在某项测试中运动超过限定的时间,该项目不得分;
3、运动轨迹与预期轨迹之间的偏差超过 4cm 时,该项目不得分;
4、在基本要求(3)、(4)和发挥部分(2)中,物体开始运动前,允许手动将物体定位;开始运动后,不能再人为干预物体运动;
5、竞赛结束时,控制系统封存上交赛区组委会,测试用板(板上含空白坐标纸) 测试时自带。 

评审标准

参考答案

GPT-4o给出的设计方案:


一、设计思路

  1. 控制系统

    • 使用两个步进电机分别控制物体在X轴和Y轴的运动,通过控制两根钢丝的长度来实现物体在板子上的精确定位。
    • 以MCU作为总体控制核心,负责步进电机的驱动、绘图指令的解析以及坐标的计算。
  2. 定位和识别

    • 在控制物体运动之前,通过限位开关和编码器或者光电传感器来初始化物体的初始位置。
    • 使用光电传感器检测绘图进度,可以确保画出的轨迹准确无误。
  3. 用户交互

    • 用户通过键盘或其他输入设备(如触摸屏)输入目标轨迹的坐标,MCU根据输入的数据计算运动路径并控制物体运动。

二、简单论证

通过步进电机控制钢丝拉动物体,可以实现准确的二维平面运动。使用MCU对输入的坐标数据进行处理和控制能够提高系统的灵活性和精度,光电传感器的反馈可以进一步提高绘图的精度和稳定性。

重要的指标和理论分析

  1. 运动控制

    • 控制范围:80cm x 100cm,定位精度达到1cm,确保在限位开关和光电传感器的辅助下可以精准调整位置。
    • 动作速度:物体运动路线长度不小于100cm,限制在300秒内完成。
  2. 轨迹绘制

    • 总长度约50cm,线宽为1.5cm~1.8cm,包括曲线和直线部分。
    • 曲线部分的误差不应超过1cm,直线部分的误差不应超过0.5cm。
  3. 负载

    • 被控制物体的质量不超过100g,考虑到步进电机的扭矩和钢丝的强度。

三、电路原理图设计要点

  1. 步进电机驱动电路

    • 使用步进电机驱动器(如A4988或DRV8825)驱动两个步进电机。
    • MC控制步进电机驱动器发出脉冲信号,控制电机运动方向和步进速率。
  2. 限位开关电路

    • 在X轴和Y轴的两个极限位置安装限位开关,确保物体在初始位置和极限位置时能够自动停止。
    • 限位开关与MCU的GPIO端口连接,实现限位检测。
  3. 光电传感器电路

    • 光电传感器用于精确检测物体运动的当前位置。
    • 传感器信号通过模数转换器采集并传输给MCU进行处理。

四、核心器件设计要点

  1. 步进电机与驱动器

    • 选择扭矩合适的步进电机(如NEMA 17),通过A4988驱动器实现控制。
    • 需精确调节电流和微步参数,保证电机平稳运行。
  2. MCU

    • 选择STM32系列MCU,具备丰富的I/O接口和强大的计算能力,符合复杂控制需求。
    • 利用定时器生成步进电机的脉冲信号,使用UART或I2C接口进行外部通信。
  3. 光电传感器

    • 采用反射式或透射式光电传感器,实现精确位置检测。
    • 需配合滤波电路,减少环境光干扰,保证信号稳定可靠。

五、MCU重要功能的C代码和介绍

以下是一个实现基本步进电机控制和坐标计算的示例代码:

#include "stm32f1xx_hal.h"
#include "A4988.h"

// 步进电机引脚定义
#define STEP_PIN_X GPIO_PIN_0
#define DIR_PIN_X  GPIO_PIN_1
#define STEP_PIN_Y GPIO_PIN_2
#define DIR_PIN_Y  GPIO_PIN_3

#define LIMIT_SWITCH_X GPIO_PIN_4
#define LIMIT_SWITCH_Y GPIO_PIN_5

void stepMotorX(int steps, int direction) {
    HAL_GPIO_WritePin(GPIOA, DIR_PIN_X, direction);
    for (int i = 0; i < steps; i++) {
        HAL_GPIO_WritePin(GPIOA, STEP_PIN_X, GPIO_PIN_SET);
        HAL_Delay(1);
        HAL_GPIO_WritePin(GPIOA, STEP_PIN_X, GPIO_PIN_RESET);
        HAL_Delay(1);
    }
}

void stepMotorY(int steps, int direction) {
    HAL_GPIO_WritePin(GPIOA, DIR_PIN_Y, direction);
    for (int i = 0; i < steps; i++) {
        HAL_GPIO_WritePin(GPIOA, STEP_PIN_Y, GPIO_PIN_SET);
        HAL_Delay(1);
        HAL_GPIO_WritePin(GPIOA, STEP_PIN_Y, GPIO_PIN_RESET);
        HAL_Delay(1);
    }
}

void setup() {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    HAL_GPIO_WritePin(GPIOA, STEP_PIN_X|DIR_PIN_X|STEP_PIN_Y|DIR_PIN_Y, GPIO_PIN_RESET);
}

int main(void) {
    setup();
    while (1) {
        if(HAL_GPIO_ReadPin(GPIOA, LIMIT_SWITCH_X) == GPIO_PIN_RESET) {
            // 初始化完成,进入绘图状态
            int targetX = calculateTargetX();  // 用户输入目标X坐标
            int targetY = calculateTargetY();  // 用户输入目标Y坐标
            stepMotorX(targetX, GPIO_PIN_SET);
            stepMotorY(targetY, GPIO_PIN_SET);
        }
    }
}

这个题目考察的知识点:

  1. 运动控制技术:需要利用步进电机和钢丝绳控制系统实现物体的二维运动,精确控制电机的步进和方向是实现物体运动的关键。
  2. 传感与检测:通过限位开关和光电传感器检测和校准物体位置,以确保轨迹的精确绘制。
  3. 系统集成与编程:使用MCU作为系统的核心控制单元,负责处理输入信号并生成控制指令,协调步进电机和传感器的工作。
  4. 用户交互:设计简便的用户界面,通过按键或触屏输入目标参数,实时显示物体位置和轨迹。
  5. 轨迹规划与控制算法:需要制定精确的轨迹规划算法,确保物体按照设定的路线移动,精准完成绘图任务。

上述设计和控制系统涉及到机械运动、传感器检测、系统控制和用户交互等多个方面,每个模块需要紧密协调工作,才能实现精准的机械控制和轨迹绘图任务。

硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号