任务名称
2019年_A题:电动小车动态无线充电系统
任务要求
难度

一、任务 

设计并制作一个无线充电电动小车及无线充电系统,电动小车可采用成品车 改制,全车重量不小于 250 g,外形尺寸不大于 30cm×26cm,圆形无线充电装置 发射线圈外径不大于 20cm。无线充电装置的接收线圈安装在小车底盘上,仅采用 超级电容(法拉电容)作为小车储能、充电元件。如图 1 所示,在平板上布置直 径为 70cm 的黑色圆形行驶引导线(线宽≤2cm),均匀分布在圆形引导线上的 A、B、C、D 点(直径为 4cm 的黑色圆点)上分别安装无线充电装置的发射线 圈。无线充电系统由 1 台 5V 的直流稳压电源供电,输出电流不大于 1A。

二、要求

1. 基本要求
(1) 小车能通过声或光显示是否处在充电状态。
(2) 小车放置在 A 点,接通电源充电,60 秒时断开电源,小车检测到发射线圈停止工作自行起动,沿引导线行驶至 B 点并自动停车。
(3) 小车放置在 A 点,接通电源充电,60 秒时断开电源,小车检测到发射线圈停止工作自行起动,沿引导线行驶直至停车(行驶期间,4 个发射线圈均不工作),测量小车行驶距离 L1,L1 越大越好。

2. 发挥部分
(1) 小车放置在 A 点,接通电源充电并开始计时;60 秒时,小车自行起动(小车超过 60 秒起动按超时时间扣分),沿引导线单向不停顿行驶直至停车(沿途由 4 个发射线圈轮流动态充电);180 秒时,如小车仍在行驶,则断开电源,直至停车。测量小车行驶距离 L2,计算 L=L2-L1,L 越大越好。
(2) 在发挥部分(1)测试中,测量直流稳压电源在小车开始充电到停驶时间段内输出的电能 W,计算 K= L2/W,K 越大越好。
(3) 其他。

三、说明
(1) 本题所有控制器必须使用 TI 公司处理器。
(2) 小车行驶区域可采用表面平整的三夹板等自行搭建,4 个发射线圈可放置在板背面,发射线圈的圆心应分别与 A、B、C、D 圆点的圆心同心。
(3) 作品采用的处理器、小车全车重量、外形尺寸、发射线圈最大外形尺寸及安装位置不满足题目要求的作品不予测试。
(4) 每次测试前,要求对小车的储能元件进行完全放电,从而确保测试时小车无预先额外储能。
(5) 题中距离 L 的单位为 cm,电能 W 的单位为 Wh。
(6) 测试小车行驶距离时,统一以与引导线相交的小车最后端为测量点。
(7) 基本要求(2)测试中,小车停车后,其投影任一点与 B 点相交即认为到达 B 点。
(8) 在测试小车行驶距离时,如小车偏离引导线(即小车投影不与引导线相交),则以该驶离点为该行驶距离的结束测试点。

评审标准

参考答案

专家解析:

浙江大学 潘再平老师—电动小车动态无线充电系统(A题)解析与交流

 

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


一、硬件设计

1. 电动小车部分
  • 动力系统: 使用高效低功耗电动机,配合齿轮传动系统,保证小车的平稳驱动。
  • 供电系统: 采用可充电锂电池,提供稳定的电源,确保电池容量适中,重量轻,满足全车重量不大于250g的要求。
  • 控制系统: 使用微控制器(如Arduino或ESP32)作为主控,控制电机驱动,并与无线传输模块通信。
  • 位置检测: 在小车底部安装霍尔传感器,用于检测沿导线磁场变化,实现小车的导线跟随功能。
  • 状态显示: 使用LED或OLED显示模块,实时展示小车是否处在充电状态。
2. 无线充电装置
  • 无线发射模块: 设计圆形发射线圈,直径不大于20cm,工作频率符合无线供电标准。
  • 无线接收模块: 在小车上安装接收线圈,配合整流和电压调节电路,确保无线充电稳定。
  • 充电指示: 无线充电过程中使用LED指示灯显示充电状态。
3. 路径指示
  • 导线布局: 在路径上布设发射导线,形成定义好的路径,确保导线平均分布到路径的ABCD四点和起点,均匀分配距离。
  • 标志点与终点: 在ABCD四点和起点位置加设明确标识,便于小车识别和导航。

二、软件设计

1. 小车自动驾驶控制
  • 路径跟随算法: 基于霍尔传感器数据,设计PID控制算法,保证小车能够跟随导线稳定行驶。
  • 自动启动与停止: 通过微控制器检测无线充电状态,设置60秒延时后自动启动,并在目标点自动停车。
  • 距离测量与速度控制: 实时计算小车行驶距离L1,并根据路径规划和控制算法实现自动停车功能。
2. 无线充电控制
  • 充电功率控制: 动态调节无线充电发射功率,确保充电电流不大于1A。
  • 充电状态监测: 实时监控电池电压和充电电流,切换充电与运行状态。
3. 数据记录与显示
  • 状态显示: 通过LED或OLED显示模块展示小车当前状态,包括充电状态、运行状态和当前位置。
  • 数据记录: 记录小车的行驶时间、行驶距离L1和耗电量W,并通过无线传输模块回传数据。

三、操作流程

  1. 起始设定

    • 将小车放置在起点位置(图中黑色圆点),启动无线充电设备,等待小车进入充电状态,LED显示充电中。
    • 充电稳定后,小车在接收到充电状态稳定信号后,延时60秒后自动启动,沿导线行驶至目标点B。
  2. 路径跟随与导航

    • 小车行驶至目标点B后,停止并记录行驶距离L1。
    • 小车在指定位置自动检测无线充电发射线圈停止工作后,感应到信号断开后,进行自动停车。
  3. 继续前进

    • 将小车放置在起点位置,启动计时和行驶,记录从起点到目标点C、D等的行驶时间和距离L2、K。
    • 多次测试,记录各次运行情况,评估并优化小车的行驶算法。
  4. 数据记录与分析

    • 实时记录小车行驶的路径数据(距离L1、L2、能耗W等),通过无线传输模块将数据反馈至监控系统,进行数据分析与调整。

 

软件设计详细实现

1、自动驾驶部分

基于Arduino的自动驾驶孔氏代码实现。这里以Arduino为例,使用PID控制算法实现小车的路径跟随功能。

#include <PID_v1.h>

// PID 控制变量
double Setpoint, Input, Output;

// PID 参数
double Kp = 2, Ki = 5, Kd = 1;

// 创建 PID 对象
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);

// 霍尔传感器输入引脚
const int hallSensorPin = A0;

// 电机控制引脚
const int motorPin = 9;

// LED 状态显示引脚
const int ledPin = 13;

// 目标点检测引脚
const int goalPin = 2;

// 设置 PID 控制目标值
void setup() {
  pinMode(motorPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(goalPin, INPUT);
  
  // 设置PID目标值,例如目标磁场值为500
  Setpoint = 500;
  
  // 初始化PID控制器
  myPID.SetMode(AUTOMATIC);
  myPID.SetOutputLimits(-255, 255);  // 输出值限制为电机PWM范围
}

void loop() {
  // 读取霍尔传感器值
  Input = analogRead(hallSensorPin);
  
  // 计算PID输出
  myPID.Compute();
  
  // 根据PID输出值控制电机
  analogWrite(motorPin, Output);
  
  // 检测到目标点,停止小车
  if (digitalRead(goalPin) == HIGH) {
    analogWrite(motorPin, 0);
    digitalWrite(ledPin, HIGH);  // 点亮LED显示已到目标点
    delay(60000);  // 延时60秒后继续执行
    digitalWrite(ledPin, LOW);  // 关闭LED
  }
}

2、无线充电控制部分

使用ESP32和充电状态检测模块的无线充电控制代码实现。此代码使用ESP32的ADC进行电压检测,判断是否开启或关闭充电。

#include <Arduino.h>

const int chargingPin = 34;  // 充电检测引脚
const int threshold = 2000;  // 电压阈值,当检测到的电压低于阈值时认为在充电
const int ledPin = 2;  // LED 状态显示引脚

void setup() {
  Serial.begin(115200);
  pinMode(chargingPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int reading = analogRead(chargingPin);
  Serial.println(reading);

  if (reading < threshold) {
    digitalWrite(ledPin, HIGH);  // 点亮LED,表示正在充电
  } else {
    digitalWrite(ledPin, LOW);  // 关闭LED,表示未在充电
  }

  delay(1000);
}

无线充电发射端控制。下面的代码展示了如何控制无线充电发射端,当小车进入充电区域时打开无线充电,当小车离开时停止充电。

#include <Arduino.h>

const int transmitPin = 12;  // 无线充电发射控制引脚

void setup() {
  Serial.begin(115200);
  pinMode(transmitPin, OUTPUT);
}

void loop() {
  // 当检测到小车进入充电区域时,打开无线充电
  if (/* 条件:检测到小车进入充电区域 */) {
    digitalWrite(transmitPin, HIGH);  // 打开无线充电
  } else {
    digitalWrite(transmitPin, LOW);  // 关闭无线充电
  }

  delay(1000);
}

简要说明

  • 自动驾驶部分: 通过PID控制算法根据霍尔传感器的输入值调节电机输出,实现路径跟随功能,检测到目标点后自动停车并显示状态。
  • 无线充电控制部分: 通过电压检测来判断是否进行无线充电,根据充电状态控制LED显示充电状态,并控制无线充电发射端的开关。

希望这些示例代码能对硬件设计和开发提供参考。如果需要更详细的代码实现,可根据具体硬件配置和系统需求进行调整。


该题目考察的知识点:

本设计方案考察电动小车自动驾驶控制和无线充电系统的设计与实现,包括动力系统设计、路径跟随算法、无线充电电路、数据监测与反馈等。通过硬件和软件的协同设计,确保小车能够自动完成指定路径的任务。

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