任务名称
2013年_G题:手写绘图板
任务要求
难度

一、任务

利用普通 PCB 覆铜板设计和制作手写绘图输入设备。系统构成框图如图 1所示。普通覆铜板尺寸为 15cm×10cm,其四角用导线连接到电路,同时,一根带导线的普通表笔连接到电路。表笔可与覆铜板表面任意位置接触,电路应能检测表笔与铜箔的接触,并测量触点位置,进而实现手写绘图功能。覆铜板表面由参赛者自行绘制纵横坐标以及 6cm x 4cm(高精度区 A)和 12 cm x8cm(一般精度区 B)如图中两个虚线框所示。 

二、要求

1. 基本要求:
(1)指示功能:表笔接触铜箔表面时,能给出明确显示。
(2)能正确显示触点位于纵坐标左右位置。
(3)能正确显示触点四象限位置。
(4)能正确显示坐标值。
(5)显示坐标值的分辨率为 10mm, 绝对误差不大于 5mm。
2.发挥部分:
(1)进一步提高坐标分辨率至 8mm 和 6mm;要求分辨率为 8mm 时,绝对误差不大于 4mm;分辨率为 6mm 时,绝对误差不大于 3mm。
(2)绘图功能。能跟踪表笔动作,并显示绘图轨迹。在 A 区内画三个直径分别为 20mm,12mm 和 8mm 不同直径的圆,并显示该圆;20mm 的圆要求能在 10s 内完成,其它圆不要求完成时间。
(3)低功耗设计。功耗为总电流乘 12V;功耗越低得分越高。要求功耗等于或小于 1.5W。
(4)其他。如显示文字,提高坐标分辨率等。

三、说明
1.必须使用普通的覆铜板
(1)不得更换其它高电阻率的材料。
(2)不得对铜箔表面进行改变电阻率的特殊镀层处理。
(3)覆铜板表面的刻度自行绘制,测试时以该刻度为准。
(4)考虑到绘制刻度影响测量,不要求表笔接触刻度线条时也具有正确检测能力。
2.覆铜板到电路的连接应满足以下条件
(1)只有铜箔四角可连接到电路,除此之外不应有其它连接点(表笔触点除外)。
(2)不得使用任何额外传感装置。
3.表笔可选用一般的万用表表笔。
4.电源供电必须为单 12V 供电。
 5.基本要求除(5)外均在 B 区测,测分辨率和圆均在 A 区内测。

评审标准

参考答案

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


一、设计方案

本设计的目的是开发一个带有LCD显示器的手写绘图输入设备,主要实现绘图和定点功能。该设备可以将绘制的轨迹显示在LCD屏幕上。设计要求系统的尺寸为15cm x 10cm,并通过模拟和数字电路实现数据采集和处理。

二、方案论证

  1. 输入设备设计与集成

    • 采用电阻触摸屏或者电容触摸屏作为手写输入介质,尺寸保证15cm x 10cm。
    • 利用微控制器(MCU)进行数据采集和处理。
  2. 信号处理与显示

    • 信号处理模块包括触摸信号采集电路、数据转换电路和显示驱动电路。
    • LCD显示器能够实时显示绘制的内容。使用SPI或I2C接口与MCU通信。
  3. 电源与控制电路

    • 使用12V直流电源供电,通过稳压电路提供各个模块所需的不同电压。
    • 控制电路包括电流测量和数据处理,以保证精度和显示效果。

三、重要指标的理论分析

  • 分辨率与误差分析
    • 分辨率由触摸屏的精度决定,设计目标是4mm 解析度不大于3mm。
    • 误差分析包括触摸屏自身误差、信号处理误差以及数据转换误差,确保总体误差小于5mm。
  • 功耗与响应时间

    • 系统整体功率需求不超过1.5W,使用高效的电源管理芯片。
    • 触摸信号采集和显示刷新率控制在50ms以内,保证用户操作的实时性。

四、最重要的电路原理图设计要点

  1. 触摸屏接口电路

    • 电阻触摸屏或电容触摸屏的驱动电路,包括X轴和Y轴信号采集。
    • 通过ADC将模拟信号转换成数字信号,供MCU处理。
  2. 数据处理电路

    • MCU(如STM32系列)连接触摸屏、LCD显示器以及电源管理模块。
    • 数据传输采用高速SPI接口,确保数据的实时传输和处理。
  3. 电源管理电路

    • 使用LM7805稳压器将12V直流电转换为5V直流,并提供3.3V和其他所需电压。
    • 电流测量电路,包括分流电阻和运算放大器电路,确保功率监控和保护。

五、核心器件设计要点

  1. 触摸屏接口电路要点
    • 选择触摸屏类型:电阻式触摸屏需要X轴和Y轴的电压分布,通过ADC读取分布电压;电容式触摸屏通过电容变化来检测触摸位置。
    • 驱动电路:对于电阻式触摸屏,使用匹配的电压驱动电路,如分压电路和运放;对于电容式触摸屏,使用控制IC(如FT6236)。
    • 信号处理:将触摸屏的模拟信号转换为数字信号,通过微控制器(MCU)的ADC接口读取。
  2. 数据处理电路要点
    • 微控制器(MCU)选择:选用STM32系列,具有较高的处理能力和丰富的外设接口,包括ADC、SPI、I2C。
    • 接口电路:使用高速SPI接口连接LCD显示屏,同时使用I2C接口连接触摸屏控制器。
    • 信号处理和数据传输:实时采集触摸屏数据,将数据处理并通过SPI传输给LCD显示器显示,确保低延迟和高刷新率。
  3. LCD显示控制电路要点
    • 选用TFT LCD显示器:分辨率至少为320x240,支持颜色显示,接口支持SPI。
    • 显示驱动电路:使用LCD驱动IC(如ST7789),通过SPI与MCU连接,控制图形的显示。
    • 电源管理:LCD需要独立的电源稳压模块,通常为3.3V,保证显示屏幕的稳定工作。
  4. 电源管理电路要点
    • 稳压电源:主电源为12V,通过LM7805将电压稳压到5V,再通过LDO或DC-DC转换器生成3.3V和其他所需电压。
    • 电流测量电路:包括分流电阻和精密运算放大器,用于监测系统的电流消耗,保护电路防止过流。
    • 滤波电路:在电源输入和输出端添加电容器滤波,减少电源纹波和噪声干扰。
  5. 总体电路设计整合
    • PCB布局设计:将上述各模块集成至单个PCB上,注意电源和信号的分布,减少电磁干扰。
    • 模块化设计:各个模块(如触摸屏接口、MCU核心、电源管理和显示模块)设计为独立单元,便于调试和维护。

六、实施步骤

  1. 硬件设计

    • 设计触摸屏接口、数据处理电路和电源管理电路的原理图和PCB。
    • 选择匹配的元器件,焊接和测试电路功能。
  2. 软件开发

    • 编写MCU程序,实现触摸信号采集、数据处理和LCD显示控制。
    • 优化数据刷新和显示算法,确保系统响应和显示效果。
  3. 系统调试

    • 对系统进行集成调试,包括硬件和软件的联合调试。
    • 根据测试结果调整参数和优化系统性能。

代码实现:MCU (STM32) C代码

#include "stm32f1xx_hal.h"
#include "lcd_i2c.h" // LCD I2C通信库文件

ADC_HandleTypeDef hadc1;
I2C_HandleTypeDef hi2c1;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_I2C1_Init(void);

int main(void) {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_ADC1_Init();
    MX_I2C1_Init();
    LCD_Init();
    
    uint32_t adcVal;
    char buffer[20];
    while (1) {
        HAL_ADC_Start(&hadc1);
        if (HAL_ADC_PollForConversion(&hadc1, 1000000) == HAL_OK) {
            adcVal = HAL_ADC_GetValue(&hadc1);
            float current = ((adcVal / 4096.0) * 5.0 - 2.5) / 0.185; // 假定ACS712 5A模块
            sprintf(buffer, "Current: %.2fA", current);
            LCD_SetCursor(0, 0);
            LCD_PrintStr(buffer);
        }
        HAL_ADC_Stop(&hadc1);
        HAL_Delay(1000);
    }
}

static void MX_ADC1_Init(void) {
    ADC_ChannelConfTypeDef sConfig = {0};
    hadc1.Instance = ADC1;
    hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
    hadc1.Init.ContinuousConvMode = DISABLE;
    hadc1.Init.DiscontinuousConvMode = DISABLE;
    hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
    hadc1.Init.NbrOfConversion = 1;
    HAL_ADC_Init(&hadc1);
    sConfig.Channel = ADC_CHANNEL_0;
    sConfig.Rank = 1;
    sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
    HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}

static void MX_I2C1_Init(void) {
    hi2c1.Instance = I2C1;
    hi2c1.Init.ClockSpeed = 100000;
    hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
    hi2c1.Init.OwnAddress1 = 0;
    hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
    hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
    hi2c1.Init.OwnAddress2 = 0;
    hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
    hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
    HAL_I2C_Init(&hi2c1);
}

// 其后的系统初始化配置与库函数调用部分省略

以上代码实现了对电流传感器数据的采集和LCD数值显示。

通过以上方案设计,可以实现一个功能完善、响应快速、显示效果良好的手写绘图输入设备,并满足题目中的各项具体要求。


本项目考察得主要知识点

  1. 传感器应用:理解并使用触摸屏技术,掌握传感器的接口和数据读取方法。
  2. 嵌入式系统设计:使用微控制器(如STM32系列)编写嵌入式控制程序,实现数据采集、处理及显示功能。
  3. 电源管理:设计稳压电路,提供系统所需的不同电压,确保整个系统的稳定运行。
  4. 信号处理与数据转换:对触摸信号进行预处理、滤波及转换,提高系统的精度和稳定性。
  5. 电流测量技术:理解并实现电流测量电路设计,掌握运算放大器和分流电阻的应用。
  6. 系统集成与调试:综合硬件与软件设计,进行系统集成与调试,确保系统的可靠性和测量的精度。
  7. 文档撰写与技术报告:记录设计过程、测试数据及结果分析,并撰写规范的设计报告。
  • 通过此设计方案,项目将实现一个功能完善、低功耗、高精度的手写绘图输入设备,并兼具电流测量与显示功能,满足题目中所预期的各项挑战和要求。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号