任务名称
2015年_J题:小球滚动控制系统
任务要求
难度

一、任务
如图 1 所示门形支架的一个立柱上用转轴固定一根 U 型导轨,导轨的另一端可由固定在顶梁上的电机控制其上下运动,使小球在导轨上按要求灵活滚动或定位。导轨以转轴处为原点,以厘米(cm)为单位标注位置(见图中放大部分)。

二、要求
1.基本部分
(1) 在导轨两端头设置触发机构,小球触碰时有明显声或光指示;
(2) 15s 内自动将导轨从±15°范围内的任一位置调整至水平状态,小球放置在导轨 25~35cm 区间某一位置时静止不滚动;
(3) 小球在原点从静止开始,15s 内使小球在导轨上做 3 次往复运动,且运动控制在 5~55cm 区间范围内; 

(4) 在往复运动状态下,通过设置指令(按键)使小球在 15s 内稳定停止在 30±2 cm 位置区域内,并至少保持 10s。
2.发挥部分
(1) 小球在原点从静止开始,在 30s 内完成不少于 3 次往复运动,往复运动周期在 3~8s 间可设置;
(2) 小球在原点从静止开始,在 30s 钟内控制小球在导轨上以 30cm 处为中心,做不少于 4 次往复运动;往复运动偏离中心的最大位移可在15cm~25cm 区间设置,且最大位移偏差不超过 2cm。
(3) 其他。

三、说明
1. 系统结构及实现方法说明
(1) 导轨为硬质材料,轨道必须平直光滑,长度 60cm±5cm,如可将双列直插集成电路封装管剖开后使用;导轨外侧可以安装检测装置或电路,但不得以任何方式影响小球自由滚动;
(2) 硬质光滑均质小球直径在 6-20mm 范围内,材质不限;
(3) U 型导轨的边缘不能过高,要求能够在侧面观察到小球运动;在导轨外侧,以转轴处为起始原点,以厘米为单位标注位置;题中各项要求的位置即以此为依据,小球往复运动的位移也据此判断;
(4) 门形支架的高度不超过 1 米,导轨固定转轴端距顶梁的距离不限;电机控制另一非固定端上下运动的方式不限;
(5) 检测小球位置的方法不限;
2. 测试要求说明
(1) 除基本部分(2)可以手动放置小球外,其它各项要求中,小球的起始位置均为原点的导轨顶端;
(2) 开始运动之后,小球不得触碰导轨两边端头,否则本项目视作失败;
(3) 各项要求中,运动最大位移、周期等参数用键盘设置;
(4) 除基本部分(4)外,各项动作启动后不得人为干预;
(5) 各项动作达到要求时,须有明显的声或光指示,以便计时或测量;
(6) 往复运动的中心为运动两端点位置之和除 2,因此在测试中须记录每次运动端点位置数据;
(7) 题中要求的各项动作完成时间越短越好,超过规定时间 1 倍时不计成绩。 

评审标准

参考答案

GPT-4o给出的设计方案

一、设计方案概述

设计一个门形支架的小球运动控制装置。该装置通过电机控制导轨的上下运动和小球在导轨上的滑动,实现小球的准确定位与往复运动。包括电机、导轨、小球、触发机构、显示与控制系统等。

二、硬件结构设计

  1. 机械结构

    • U型导轨:长度60cm±5cm,宽度与滑动小球直径匹配,确保足够光滑。
    • 小球:直径在6-20mm范围内,不同材质均可,但需避免反弹滚动。
    • 触发机构:设置在导轨两端,使用机械限位开关或光电传感器,当小球触发时发出声音或光信号。
    • 电机及传动装置:控制导轨的上下倾斜角度调整。
  2. 电子控制系统

    • 电机控制部分:使用步进电机或伺服电机,通过PWM信号控制电机的速度与方向,精确控制导轨角度。
    • 传感器模块:安装在导轨两端的限位开关或光电传感器,用于检测小球位置。
    • 主控板:使用微控制器(如STM32)接收传感器信号、控制电机、实现角度调整与小球位置定位。
    • 显示与操作部分:包括按键、LCD显示屏,用于显示当前状态和设定目标角度。

三、操作模式与流程

  1. 单点定位

    • 小球从静止位置开始,导轨在15s内调整至水平,确保小球在导轨25-35cm区间某一位置静止且不滚动。
    • 使用限位开关或光电传感器检测小球静止位置,控制电机停止。
  2. 往复运动控制

    • 小球由原点出发,连续做3次往复运动控制,确保在5-55cm区间内停止。
    • 控制系统通过传感器检测小球位置,并调整导轨角度实现复位。
  3. 精确停留操作

    • 按键触发,控制系统调整导轨角度,使小球在30±2cm范围内停止,保持15s。
    • 使用PID控制算法调整电机速度,精确定位小球。

四、具体代码实现

#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define ANGLE_SENSOR_PIN A0
#define BALL_POSITION_PIN A1
#define MOTOR_CONTROL_PIN 9
#define LIMIT_SWITCH_LEFT 2
#define LIMIT_SWITCH_RIGHT 3
#define BUTTON_PIN 4

Servo motor;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
    pinMode(ANGLE_SENSOR_PIN, INPUT);
    pinMode(BALL_POSITION_PIN, INPUT);
    pinMode(LIMIT_SWITCH_LEFT, INPUT_PULLUP);
    pinMode(LIMIT_SWITCH_RIGHT, INPUT_PULLUP);
    pinMode(BUTTON_PIN, INPUT_PULLUP);

    motor.attach(MOTOR_CONTROL_PIN);
    lcd.begin();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Ball Control");
}

void loop() {
    if (digitalRead(BUTTON_PIN) == LOW) {
        moveBallToPosition(30);
    }
    // 控制逻辑
    int currentAngle = analogRead(ANGLE_SENSOR_PIN);
    int ballPosition = analogRead(BALL_POSITION_PIN);

    //显示当前状态
    lcd.setCursor(0, 1);
    lcd.print("Pos: ");
    lcd.print(ballPosition);
    lcd.print(" Angle: ");
    lcd.print(currentAngle);

    delay(100);
}

void moveBallToPosition(int targetPos) {
    int currentPos = analogRead(BALL_POSITION_PIN);
    while (abs(currentPos - targetPos) > 2) {
        int angleAdjust = calculateAngleAdjust(currentPos, targetPos);
        motor.write(angleAdjust);
        delay(100);
        currentPos = analogRead(BALL_POSITION_PIN);
    }
    delay(15000);
}

int calculateAngleAdjust(int currentPos, int targetPos) {
    int error = currentPos - targetPos;
    int adjustAngle = map(error, -50, 50, -45, 45);
    return constrain(adjustAngle, -15, 15);
}

五、测试与验证

  1. 系统整体测试

    • 对各种操作模式进行逐项测试,确保小球在规定时间内达到设定位置并稳定停留。
    • 检查限位开关和传感器是否灵敏可靠。
  2. 动态响应测试

    • 测试小球在3~8s内完成3次以上往复运动,确保摆动周期可调。
    • 检查往复运动偏离中心的最大位置误差是否在设定范围内。
  3. 稳定性测试

    • 小球在原点静止开始,做3次或以上复位运动,确保最终静止于5-55cm位置内,误差不大于2cm。

通过该方案的设计和实施,将能够满足题目中的各项要求,确保小球运动控制系统的精确性和稳定性。


本题目考察的主要知识点:

  1. 电机控制:了解并应用电机控制原理,使用电机驱动软硬件控制导轨的角度调整,确保系统实现精准定位。
  2. 传感器应用:使用限位开关或光电传感器检测小球位置,确保小球在导轨上的准确定位及运动范围控制。
  3. 机械结构设计:设计合理的U型导轨、小球、支架等机械结构,确保系统能够稳定可靠地运行,并且满足小球从不同位置出发及停止的要求。
  4. 自动控制:实现复杂的控制算法,如PID控制,以实现小球在导轨上的精确运动。
  5. 嵌入式系统编程:使用微控制器(如STM32)进行系统编程,实现传感器数据采集、电机驱动控制以及状态显示功能。

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